@jmruthers/pace-core 0.6.9 → 0.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1182) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/audit-tool/00-dependencies.cjs +46 -13
  3. package/audit-tool/audits/01-pace-core-compliance.cjs +96 -21
  4. package/audit-tool/audits/02-project-structure.cjs +74 -2
  5. package/audit-tool/audits/03-architecture.cjs +220 -20
  6. package/audit-tool/audits/04-code-quality.cjs +95 -3
  7. package/audit-tool/audits/05-styling.cjs +19 -7
  8. package/audit-tool/audits/06-security-rbac.cjs +214 -25
  9. package/audit-tool/audits/07-api-tech-stack.cjs +31 -15
  10. package/audit-tool/audits/08-testing-documentation.cjs +11 -3
  11. package/audit-tool/audits/09-operations.cjs +19 -7
  12. package/audit-tool/index.cjs +22 -11
  13. package/audit-tool/utils/report-utils.cjs +4 -0
  14. package/cursor-rules/01-pace-core-compliance.mdc +1 -0
  15. package/cursor-rules/02-project-structure.mdc +3 -26
  16. package/cursor-rules/03-architecture.mdc +3 -1
  17. package/cursor-rules/04-code-quality.mdc +1 -0
  18. package/cursor-rules/05-styling.mdc +120 -8
  19. package/cursor-rules/06-security-rbac.mdc +126 -2
  20. package/cursor-rules/07-api-tech-stack.mdc +1 -0
  21. package/cursor-rules/08-testing-documentation.mdc +1 -0
  22. package/cursor-rules/09-operations.mdc +1 -0
  23. package/dist/DataTable-EFYP2QLE.js +16 -0
  24. package/dist/InactivityServiceProvider-BbxwwDz1.d.ts +308 -0
  25. package/dist/UnifiedAuthProvider-Bkt_tzdS.d.ts +183 -0
  26. package/dist/api-BZR2CYXL.js +5 -0
  27. package/dist/api-result-USV1Czr-.d.ts +51 -0
  28. package/dist/assets/app-icons/admin_favicon.svg +462 -0
  29. package/dist/assets/app-icons/base_favicon.svg +85 -0
  30. package/dist/assets/app-icons/cake_favicon.svg +68 -0
  31. package/dist/assets/app-icons/core_favicon.svg +256 -0
  32. package/dist/assets/app-icons/gear_favicon.svg +91 -0
  33. package/dist/assets/app-icons/medi_favicon.svg +92 -0
  34. package/dist/assets/app-icons/mint_favicon.svg +83 -0
  35. package/dist/assets/app-icons/pace_favicon.svg +49 -0
  36. package/dist/assets/app-icons/pump_favicon.svg +68 -0
  37. package/dist/assets/app-icons/seed_favicon.svg +91 -0
  38. package/dist/assets/app-icons/team_favicon.svg +67 -0
  39. package/dist/assets/app-icons/trac_favicon.svg +112 -0
  40. package/dist/assets/app-icons/trip_favicon.svg +102 -0
  41. package/dist/audit-HI2DHUVU.js +4 -0
  42. package/dist/auth-JvdRVaud.d.ts +49 -0
  43. package/dist/chunk-2DL2WSOE.js +327 -0
  44. package/dist/chunk-2OEVOGGR.js +9598 -0
  45. package/dist/chunk-44CNXN4P.js +15 -0
  46. package/dist/chunk-4R3T5ENU.js +2943 -0
  47. package/dist/chunk-7A6IMHH2.js +2321 -0
  48. package/dist/chunk-BTHN5MKC.js +121 -0
  49. package/dist/chunk-CU2BU2MQ.js +2 -0
  50. package/dist/chunk-D6BMFMQZ.js +200 -0
  51. package/dist/chunk-DDMPHZ3D.js +58 -0
  52. package/dist/chunk-ENLXB7GP.js +721 -0
  53. package/dist/chunk-J2KQK6DG.js +2159 -0
  54. package/dist/chunk-KJXRL3XE.js +6434 -0
  55. package/dist/chunk-L5LFKKLJ.js +61 -0
  56. package/dist/chunk-PCSHBLPB.js +811 -0
  57. package/dist/chunk-QRYSEPHB.js +429 -0
  58. package/dist/chunk-RMLY6KB5.js +187 -0
  59. package/dist/chunk-SACF5YSM.js +31 -0
  60. package/dist/chunk-UZNAFKGW.js +125 -0
  61. package/dist/chunk-V7FTM2LU.js +1080 -0
  62. package/dist/chunk-WY6Y7KC3.js +264 -0
  63. package/dist/chunk-XOJME5T7.js +407 -0
  64. package/dist/chunk-XPFVT3GN.js +492 -0
  65. package/dist/chunk-YFTFFJIV.js +529 -0
  66. package/dist/chunk-YYTWKVHO.js +1334 -0
  67. package/dist/components.d.ts +12 -89
  68. package/dist/components.js +23 -55
  69. package/dist/database.generated-qkdoiVrJ.d.ts +9441 -0
  70. package/dist/eslint-rules/index.cjs +3 -0
  71. package/dist/eslint-rules/rules/03-architecture.cjs +74 -0
  72. package/dist/eslint-rules/rules/05-styling.cjs +507 -0
  73. package/dist/eslint-rules/rules/06-security-rbac.cjs +84 -0
  74. package/dist/event-BfCox3N2.d.ts +265 -0
  75. package/dist/file-reference-DU1hcawx.d.ts +164 -0
  76. package/dist/functions-DH45k8ec.d.ts +208 -0
  77. package/dist/hooks.d.ts +28 -14
  78. package/dist/hooks.js +90 -56
  79. package/dist/icons/index.d.ts +1 -0
  80. package/dist/icons/index.js +1 -0
  81. package/dist/index.d.ts +392 -155
  82. package/dist/index.js +337 -347
  83. package/dist/pagination-BW1mqywp.d.ts +201 -0
  84. package/dist/papaparseLoader-WG2UXQ22.js +7 -0
  85. package/dist/providers.d.ts +29 -14
  86. package/dist/providers.js +7 -5
  87. package/dist/rbac/eslint-rules.js +2 -2
  88. package/dist/rbac/index.d.ts +180 -351
  89. package/dist/rbac/index.js +13 -11
  90. package/dist/theming/runtime.d.ts +28 -5
  91. package/dist/theming/runtime.js +2 -2
  92. package/dist/timezone-BTWWXKVY.d.ts +696 -0
  93. package/dist/types-BE2sEHKd.d.ts +55 -0
  94. package/dist/types-CvOPXWWZ.d.ts +111 -0
  95. package/dist/types-Dr8sNhER.d.ts +50 -0
  96. package/dist/types.d.ts +20 -13
  97. package/dist/types.js +1 -0
  98. package/dist/usePublicPageContext-B91dGYW1.d.ts +4367 -0
  99. package/dist/usePublicRouteParams-BgV6VhMi.d.ts +946 -0
  100. package/dist/utils.d.ts +338 -156
  101. package/dist/utils.js +78 -60
  102. package/dist/validation-g5n0hDkh.d.ts +177 -0
  103. package/docs/api/modules.md +1226 -1094
  104. package/docs/api-reference/components.md +5 -5
  105. package/docs/api-reference/rpc-functions.md +12 -3
  106. package/docs/core-concepts/rbac-system.md +8 -0
  107. package/docs/getting-started/cursor-rules.md +17 -20
  108. package/docs/getting-started/dependencies.md +1 -1
  109. package/docs/getting-started/setup.md +235 -0
  110. package/docs/implementation-guides/authentication.md +27 -0
  111. package/docs/implementation-guides/data-tables.md +365 -10
  112. package/docs/migration/ApiResult-migration.md +25 -0
  113. package/docs/rbac/RBAC_CONTRACT.md +0 -12
  114. package/docs/rbac/api-reference.md +33 -31
  115. package/docs/standards/0-standards-overview.md +50 -15
  116. package/docs/standards/1-pace-core-compliance-standards.md +62 -57
  117. package/docs/standards/2-project-structure-standards.md +45 -90
  118. package/docs/standards/3-architecture-standards.md +41 -1
  119. package/docs/standards/4-code-quality-standards.md +26 -6
  120. package/docs/standards/5-styling-standards.md +35 -1
  121. package/docs/standards/6-security-rbac-standards.md +288 -7
  122. package/docs/standards/7-api-tech-stack-standards.md +116 -17
  123. package/docs/standards/8-testing-documentation-standards.md +31 -0
  124. package/docs/standards/9-operations-standards.md +19 -0
  125. package/docs/standards/README.md +20 -201
  126. package/docs/testing/README.md +10 -0
  127. package/docs/testing/test-setup-for-consumers.md +916 -0
  128. package/docs/troubleshooting/common-issues.md +17 -1
  129. package/docs/troubleshooting/organisation-context-setup.md +8 -0
  130. package/docs/troubleshooting/print-event-name-css-variable-analysis.md +217 -0
  131. package/eslint-config-pace-core.cjs +24 -0
  132. package/package.json +14 -20
  133. package/scripts/build-docs.js +180 -0
  134. package/scripts/setup.cjs +536 -0
  135. package/scripts/validate.cjs +480 -0
  136. package/src/__mocks__/lucide-react.ts +0 -2
  137. package/src/__tests__/helpers/component-test-utils.test.tsx +260 -0
  138. package/src/__tests__/helpers/optimized-test-setup.test.ts +224 -0
  139. package/src/__tests__/helpers/supabaseMock.test.ts +273 -0
  140. package/src/__tests__/helpers/test-providers.test.tsx +99 -0
  141. package/src/__tests__/helpers/test-providers.tsx +37 -39
  142. package/src/__tests__/helpers/test-utils.test.tsx +447 -0
  143. package/src/__tests__/helpers/timer-utils.test.ts +371 -0
  144. package/src/assets/app-icons/admin_favicon.svg +462 -0
  145. package/src/assets/app-icons/base_favicon.svg +85 -0
  146. package/src/assets/app-icons/cake_favicon.svg +68 -0
  147. package/src/assets/app-icons/core_favicon.svg +256 -0
  148. package/src/assets/app-icons/gear_favicon.svg +91 -0
  149. package/src/assets/app-icons/index.test.ts +304 -0
  150. package/src/assets/app-icons/index.ts +83 -0
  151. package/src/assets/app-icons/medi_favicon.svg +92 -0
  152. package/src/assets/app-icons/mint_favicon.svg +83 -0
  153. package/src/assets/app-icons/pace_favicon.svg +49 -0
  154. package/src/assets/app-icons/pump_favicon.svg +68 -0
  155. package/src/assets/app-icons/seed_favicon.svg +91 -0
  156. package/src/assets/app-icons/team_favicon.svg +67 -0
  157. package/src/assets/app-icons/trac_favicon.svg +112 -0
  158. package/src/assets/app-icons/trip_favicon.svg +102 -0
  159. package/src/components/AddressField/AddressField.test.tsx +379 -4
  160. package/src/components/AddressField/AddressField.tsx +239 -213
  161. package/src/components/AddressField/types.ts +2 -2
  162. package/src/components/Alert/Alert.test.tsx +35 -25
  163. package/src/components/Alert/Alert.tsx +8 -8
  164. package/src/components/AppSwitcher/AppSwitcher.test.tsx +1250 -0
  165. package/src/components/AppSwitcher/AppSwitcher.tsx +315 -0
  166. package/src/components/Avatar/Avatar.test.tsx +11 -1
  167. package/src/components/Avatar/Avatar.tsx +3 -2
  168. package/src/components/Badge/Badge.test.tsx +11 -1
  169. package/src/components/Button/Button.test.tsx +13 -3
  170. package/src/components/Button/Button.tsx +1 -1
  171. package/src/components/Calendar/Calendar.test.tsx +523 -131
  172. package/src/components/Calendar/Calendar.tsx +107 -488
  173. package/src/components/Card/Card.test.tsx +384 -258
  174. package/src/components/Card/Card.tsx +19 -10
  175. package/src/components/Checkbox/Checkbox.test.tsx +58 -174
  176. package/src/components/ContextSelector/ContextSelector.internals.tsx +204 -0
  177. package/src/components/ContextSelector/ContextSelector.test.tsx +360 -0
  178. package/src/components/ContextSelector/ContextSelector.tsx +66 -280
  179. package/src/components/ContextSelector/ContextSelector.types.ts +35 -0
  180. package/src/components/ContextSelector/useContextSelectorState.tsx +195 -0
  181. package/src/components/DataTable/AUDIT_REPORT.md +59 -44
  182. package/src/components/DataTable/DataTable.comprehensive.test.tsx +759 -0
  183. package/src/components/DataTable/DataTable.default-state.test.tsx +524 -0
  184. package/src/components/DataTable/DataTable.export.test.tsx +705 -0
  185. package/src/components/DataTable/DataTable.grouping-aggregation.test.tsx +658 -0
  186. package/src/components/DataTable/DataTable.hooks.test.tsx +192 -0
  187. package/src/components/DataTable/DataTable.select-label-display.test.tsx +485 -0
  188. package/src/components/DataTable/DataTable.test.tsx +787 -416
  189. package/src/components/DataTable/DataTable.tsx +14 -14
  190. package/src/components/DataTable/DataTableCore.integration.test.tsx +458 -0
  191. package/src/components/DataTable/DataTableCore.test-setup.ts +221 -0
  192. package/src/components/DataTable/DataTableCore.test.tsx +970 -0
  193. package/src/components/DataTable/README.md +155 -0
  194. package/src/components/DataTable/TESTING.md +101 -0
  195. package/src/components/DataTable/a11y.basic.test.tsx +788 -0
  196. package/src/components/DataTable/components/DataTableCore.tsx +126 -894
  197. package/src/components/DataTable/components/GroupingDropdown.test.tsx +621 -0
  198. package/src/components/DataTable/components/GroupingDropdown.tsx +2 -3
  199. package/src/components/DataTable/components/ImportModal.tsx +82 -408
  200. package/src/components/DataTable/components/ImportModalFileSection.tsx +148 -0
  201. package/src/components/DataTable/context/DataTableContext.test.tsx +328 -0
  202. package/src/components/DataTable/context/DataTableContext.tsx +13 -13
  203. package/src/components/DataTable/core/ColumnFactory.test.ts +403 -0
  204. package/src/components/DataTable/core/ColumnFactory.ts +3 -3
  205. package/src/components/DataTable/hooks/useColumnOrderPersistence.test.ts +516 -0
  206. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +12 -9
  207. package/src/components/DataTable/hooks/useColumnVisibilityPersistence.test.ts +256 -0
  208. package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +12 -9
  209. package/src/components/DataTable/hooks/useDataTableConfiguration.test.ts +297 -0
  210. package/src/components/DataTable/hooks/useDataTableConfiguration.ts +15 -3
  211. package/src/components/DataTable/hooks/useDataTableDataPipeline.test.ts +270 -0
  212. package/src/components/DataTable/hooks/useDataTableDeletionBatching.test.ts +127 -0
  213. package/src/components/DataTable/hooks/useDataTableDeletionBatching.ts +106 -0
  214. package/src/components/DataTable/hooks/useDataTableEffectiveActions.test.ts +461 -0
  215. package/src/components/DataTable/hooks/useDataTableEffectiveActions.ts +238 -0
  216. package/src/components/DataTable/hooks/useDataTableLayoutHandlers.test.ts +296 -0
  217. package/src/components/DataTable/hooks/useDataTableLayoutHandlers.ts +175 -0
  218. package/src/components/DataTable/hooks/useDataTablePaginationSync.test.ts +203 -0
  219. package/src/components/DataTable/hooks/useDataTablePaginationSync.ts +109 -0
  220. package/src/components/DataTable/hooks/useDataTablePermissions.test.ts +280 -0
  221. package/src/components/DataTable/hooks/useDataTablePermissions.ts +81 -260
  222. package/src/components/DataTable/hooks/useDataTablePipeline.test.tsx +219 -0
  223. package/src/components/DataTable/hooks/useDataTablePipeline.tsx +239 -0
  224. package/src/components/DataTable/hooks/useDataTableRenderGuard.test.tsx +316 -0
  225. package/src/components/DataTable/hooks/useDataTableRenderGuard.tsx +195 -0
  226. package/src/components/DataTable/hooks/useDataTableScope.test.ts +110 -0
  227. package/src/components/DataTable/hooks/useDataTableScope.ts +123 -0
  228. package/src/components/DataTable/hooks/useDataTableState.test.ts +733 -0
  229. package/src/components/DataTable/hooks/useDataTableState.ts +161 -114
  230. package/src/components/DataTable/hooks/useDataTableStateAndPersistence.test.ts +277 -0
  231. package/src/components/DataTable/hooks/useDataTableStateAndPersistence.ts +222 -0
  232. package/src/components/DataTable/hooks/useDataTableSuperAdmin.test.ts +93 -0
  233. package/src/components/DataTable/hooks/useDataTableSuperAdmin.ts +86 -0
  234. package/src/components/DataTable/hooks/useDataTableTableInstance.test.ts +185 -0
  235. package/src/components/DataTable/hooks/useDataTableTableInstance.ts +178 -0
  236. package/src/components/DataTable/hooks/useEffectiveColumnOrder.test.ts +183 -0
  237. package/src/components/DataTable/hooks/useHierarchicalState.test.ts +294 -0
  238. package/src/components/DataTable/hooks/useImportModalFocus.test.ts +184 -0
  239. package/src/components/DataTable/hooks/useImportModalFocus.ts +53 -0
  240. package/src/components/DataTable/hooks/useImportModalState.test.ts +390 -0
  241. package/src/components/DataTable/hooks/useImportModalState.ts +345 -0
  242. package/src/components/DataTable/hooks/useKeyboardNavigation.test.ts +787 -0
  243. package/src/components/DataTable/hooks/useKeyboardNavigation.ts +311 -271
  244. package/src/components/DataTable/hooks/usePermissionTracking.test.ts +381 -0
  245. package/src/components/DataTable/hooks/usePermissionTracking.ts +122 -0
  246. package/src/components/DataTable/hooks/useServerSideDataEffect.test.ts +258 -0
  247. package/src/components/DataTable/hooks/useServerSideDataEffect.ts +27 -4
  248. package/src/components/DataTable/hooks/useTableColumns.test.ts +499 -0
  249. package/src/components/DataTable/hooks/useTableColumns.ts +15 -39
  250. package/src/components/DataTable/hooks/useTableHandlers.test.ts +461 -0
  251. package/src/components/DataTable/hooks/useTableHandlers.ts +13 -22
  252. package/src/components/DataTable/index.ts +28 -5
  253. package/src/components/DataTable/keyboard.test.tsx +734 -0
  254. package/src/components/DataTable/mocks/MockRBACProvider.tsx +66 -0
  255. package/src/components/DataTable/pagination.modes.test.tsx +728 -0
  256. package/src/components/DataTable/ssr.strict-mode.test.tsx +319 -0
  257. package/src/components/DataTable/styles.test.ts +379 -0
  258. package/src/components/DataTable/styles.ts +0 -1
  259. package/src/components/DataTable/test-utils/MockDataTableComponents.tsx +55 -0
  260. package/src/components/DataTable/test-utils/dataFactories.ts +103 -0
  261. package/src/components/DataTable/test-utils/featureConfig.ts +10 -0
  262. package/src/components/DataTable/test-utils/sharedTestUtils.ts +419 -0
  263. package/src/components/DataTable/test-utils.ts +94 -0
  264. package/src/components/DataTable/types/actions.ts +71 -0
  265. package/src/components/DataTable/types/base.ts +39 -0
  266. package/src/components/DataTable/types/columns.ts +125 -0
  267. package/src/components/DataTable/types/export.ts +32 -0
  268. package/src/components/DataTable/types/features.ts +81 -0
  269. package/src/components/DataTable/types/hierarchical.ts +44 -0
  270. package/src/components/DataTable/types/index.ts +43 -0
  271. package/src/components/DataTable/types/pagination.ts +85 -0
  272. package/src/components/DataTable/types/performance.ts +47 -0
  273. package/src/components/DataTable/types/props.ts +62 -0
  274. package/src/components/DataTable/types/rbac.ts +45 -0
  275. package/src/components/DataTable/ui/layout/DataTableCore.test.tsx +1194 -0
  276. package/src/components/DataTable/ui/layout/DataTableCore.tsx +345 -0
  277. package/src/components/DataTable/ui/layout/DataTableErrorBoundary.test.tsx +438 -0
  278. package/src/components/DataTable/ui/layout/DataTableErrorBoundary.tsx +225 -0
  279. package/src/components/DataTable/ui/layout/DataTableLayout.test.tsx +1352 -0
  280. package/src/components/DataTable/ui/layout/DataTableLayout.tsx +661 -0
  281. package/src/components/DataTable/ui/modals/BulkDeleteConfirmDialog.test.tsx +91 -0
  282. package/src/components/DataTable/ui/modals/BulkDeleteConfirmDialog.tsx +43 -0
  283. package/src/components/DataTable/ui/modals/DataTableModals.test.tsx +749 -0
  284. package/src/components/DataTable/ui/modals/DataTableModals.tsx +341 -0
  285. package/src/components/DataTable/ui/modals/ImportModal.test.tsx +1834 -0
  286. package/src/components/DataTable/ui/modals/ImportModal.tsx +197 -0
  287. package/src/components/DataTable/ui/modals/ImportModalFailedRowsSection.tsx +60 -0
  288. package/src/components/DataTable/ui/modals/ImportModalFileSection.tsx +148 -0
  289. package/src/components/DataTable/ui/modals/ImportModalPreviewSection.tsx +60 -0
  290. package/src/components/DataTable/ui/modals/ImportModalSummarySection.tsx +59 -0
  291. package/src/components/DataTable/ui/modals/importModalPersistence.ts +73 -0
  292. package/src/components/DataTable/ui/shared/AccessDeniedPage.test.tsx +245 -0
  293. package/src/components/DataTable/ui/shared/AccessDeniedPage.tsx +159 -0
  294. package/src/components/DataTable/ui/shared/ActionButtons.test.tsx +921 -0
  295. package/src/components/DataTable/ui/shared/ActionButtons.tsx +195 -0
  296. package/src/components/DataTable/ui/shared/ColumnFilter.test.tsx +497 -0
  297. package/src/components/DataTable/ui/shared/ColumnFilter.tsx +113 -0
  298. package/src/components/DataTable/ui/shared/PaginationControls.test.tsx +451 -0
  299. package/src/components/DataTable/ui/shared/PaginationControls.tsx +291 -0
  300. package/src/components/DataTable/ui/shared/SortIndicator.test.tsx +135 -0
  301. package/src/components/DataTable/ui/shared/SortIndicator.tsx +50 -0
  302. package/src/components/DataTable/ui/table/EditFields.test.tsx +526 -0
  303. package/src/components/DataTable/ui/table/EditFields.tsx +355 -0
  304. package/src/components/DataTable/ui/table/EditableRow.test.tsx +1003 -0
  305. package/src/components/DataTable/ui/table/EditableRow.tsx +444 -0
  306. package/src/components/DataTable/ui/table/EmptyState.test.tsx +360 -0
  307. package/src/components/DataTable/ui/table/EmptyState.tsx +74 -0
  308. package/src/components/DataTable/ui/table/FilterRow.test.tsx +416 -0
  309. package/src/components/DataTable/ui/table/FilterRow.tsx +148 -0
  310. package/src/components/DataTable/ui/table/LoadingState.test.tsx +77 -0
  311. package/src/components/DataTable/ui/table/LoadingState.tsx +17 -0
  312. package/src/components/DataTable/ui/table/RowComponent.test.tsx +1024 -0
  313. package/src/components/DataTable/ui/table/RowComponent.tsx +429 -0
  314. package/src/components/DataTable/ui/table/UnifiedTableBody.test.tsx +1273 -0
  315. package/src/components/DataTable/ui/table/UnifiedTableBody.tsx +440 -0
  316. package/src/components/DataTable/ui/table/cellValueUtils.test.ts +453 -0
  317. package/src/components/DataTable/ui/table/cellValueUtils.ts +40 -0
  318. package/src/components/DataTable/ui/toolbar/BulkOperationsDropdown.test.tsx +551 -0
  319. package/src/components/DataTable/ui/toolbar/BulkOperationsDropdown.tsx +160 -0
  320. package/src/components/DataTable/ui/toolbar/ColumnVisibilityDropdown.test.tsx +751 -0
  321. package/src/components/DataTable/ui/toolbar/ColumnVisibilityDropdown.tsx +114 -0
  322. package/src/components/DataTable/ui/toolbar/DataTableToolbar.test.tsx +629 -0
  323. package/src/components/DataTable/ui/toolbar/DataTableToolbar.tsx +271 -0
  324. package/src/components/DataTable/ui/toolbar/GroupingDropdown.test.tsx +621 -0
  325. package/src/components/DataTable/ui/toolbar/GroupingDropdown.tsx +107 -0
  326. package/src/components/DataTable/utils/a11yUtils.test.ts +548 -0
  327. package/src/components/DataTable/utils/a11yUtils.ts +1 -1
  328. package/src/components/DataTable/utils/aggregationUtils.test.ts +288 -0
  329. package/src/components/DataTable/utils/aggregationUtils.ts +5 -5
  330. package/src/components/DataTable/utils/columnUtils.test.ts +94 -0
  331. package/src/components/DataTable/utils/csvParse.test.ts +74 -0
  332. package/src/components/DataTable/utils/csvParse.ts +65 -0
  333. package/src/components/DataTable/utils/errorHandling.test.ts +209 -0
  334. package/src/components/DataTable/utils/errorHandling.ts +3 -1
  335. package/src/components/DataTable/utils/exportUtils.test.ts +954 -0
  336. package/src/components/DataTable/utils/exportUtils.ts +1 -1
  337. package/src/components/DataTable/utils/flexibleImport.test.ts +573 -0
  338. package/src/components/DataTable/utils/flexibleImport.ts +3 -186
  339. package/src/components/DataTable/utils/hierarchicalSorting.test.ts +235 -0
  340. package/src/components/DataTable/utils/hierarchicalSorting.ts +3 -3
  341. package/src/components/DataTable/utils/hierarchicalUtils.test.ts +586 -0
  342. package/src/components/DataTable/utils/importDateParser.test.ts +162 -0
  343. package/src/components/DataTable/utils/importDateParser.ts +114 -0
  344. package/src/components/DataTable/utils/importValueParser.test.ts +138 -0
  345. package/src/components/DataTable/utils/importValueParser.ts +91 -0
  346. package/src/components/DataTable/utils/paginationUtils.test.ts +593 -0
  347. package/src/components/DataTable/utils/paginationUtils.ts +7 -4
  348. package/src/components/DataTable/utils/performanceUtils.test.ts +470 -0
  349. package/src/components/DataTable/utils/performanceUtils.ts +1 -1
  350. package/src/components/DataTable/utils/rowUtils.test.ts +235 -0
  351. package/src/components/DataTable/utils/selectFieldUtils.test.ts +271 -0
  352. package/src/components/DataTable/utils/selectFieldUtils.ts +97 -67
  353. package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +18 -25
  354. package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +1 -1
  355. package/src/components/DateTimeField/DateTimeField.test.tsx +3 -16
  356. package/src/components/DateTimeField/DateTimeField.tsx +1 -1
  357. package/src/components/Dialog/Dialog.test-utils.ts +49 -0
  358. package/src/components/Dialog/Dialog.test.tsx +2865 -458
  359. package/src/components/Dialog/Dialog.tsx +183 -986
  360. package/src/components/Dialog/dialogLock.test.ts +238 -0
  361. package/src/components/Dialog/dialogLock.ts +98 -0
  362. package/src/components/Dialog/index.ts +2 -0
  363. package/src/components/Dialog/useDialogDimensions.test.ts +163 -0
  364. package/src/components/Dialog/useDialogDimensions.ts +140 -0
  365. package/src/components/Dialog/useDialogLifecycle.test.ts +358 -0
  366. package/src/components/Dialog/useDialogLifecycle.ts +135 -0
  367. package/src/components/Dialog/useDialogPersistence.test.ts +381 -0
  368. package/src/components/Dialog/useDialogPersistence.ts +357 -0
  369. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +2 -62
  370. package/src/components/ErrorBoundary/ErrorBoundaryContext.context.ts +17 -0
  371. package/src/components/ErrorBoundary/ErrorBoundaryContext.tsx +2 -45
  372. package/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts +41 -0
  373. package/src/components/ErrorBoundary/index.ts +3 -4
  374. package/src/components/ErrorBoundary/useErrorBoundaryContext.ts +20 -0
  375. package/src/components/FileDisplay/FileDisplay.test.tsx +479 -247
  376. package/src/components/FileDisplay/FileDisplay.tsx +29 -659
  377. package/src/components/FileDisplay/FileDisplayContent.test.tsx +395 -0
  378. package/src/components/FileDisplay/FileDisplayContent.tsx +242 -0
  379. package/src/components/FileDisplay/FileDisplayDeleteConfirmDialog.test.tsx +74 -0
  380. package/src/components/FileDisplay/FileDisplayDeleteConfirmDialog.tsx +38 -0
  381. package/src/components/FileDisplay/FileDisplayEmptyView.test.tsx +33 -0
  382. package/src/components/FileDisplay/FileDisplayEmptyView.tsx +33 -0
  383. package/src/components/FileDisplay/FileDisplayErrorView.test.tsx +71 -0
  384. package/src/components/FileDisplay/FileDisplayErrorView.tsx +50 -0
  385. package/src/components/FileDisplay/FileDisplayLoadingFallbackView.test.tsx +22 -0
  386. package/src/components/FileDisplay/FileDisplayLoadingFallbackView.tsx +22 -0
  387. package/src/components/FileDisplay/FileDisplayLoadingView.test.tsx +21 -0
  388. package/src/components/FileDisplay/FileDisplayLoadingView.tsx +23 -0
  389. package/src/components/FileDisplay/FileDisplayMultipleFilesView.test.tsx +101 -0
  390. package/src/components/FileDisplay/FileDisplayMultipleFilesView.tsx +109 -0
  391. package/src/components/FileDisplay/FileDisplaySingleDocumentLinkView.test.tsx +58 -0
  392. package/src/components/FileDisplay/FileDisplaySingleDocumentLinkView.tsx +48 -0
  393. package/src/components/FileDisplay/FileDisplaySingleFileWithActionsView.test.tsx +111 -0
  394. package/src/components/FileDisplay/FileDisplaySingleFileWithActionsView.tsx +270 -0
  395. package/src/components/FileDisplay/FileDisplaySingleImageView.test.tsx +78 -0
  396. package/src/components/FileDisplay/FileDisplaySingleImageView.tsx +67 -0
  397. package/src/components/FileDisplay/fallbackUtils.test.ts +50 -0
  398. package/src/components/FileDisplay/fallbackUtils.ts +44 -0
  399. package/src/components/FileDisplay/fetchFileDisplayData.ts +24 -0
  400. package/src/components/FileDisplay/fetchFileDisplayData.unit.test.ts +183 -0
  401. package/src/components/FileDisplay/fileDisplayUtils.test.ts +58 -0
  402. package/src/components/FileDisplay/fileDisplayUtils.ts +24 -0
  403. package/src/components/FileDisplay/index.tsx +1 -1
  404. package/src/components/FileDisplay/useFileDisplay.test.ts +538 -0
  405. package/src/components/FileDisplay/useFileDisplay.ts +515 -0
  406. package/src/components/FileDisplay/useFileDisplay.unit.test.ts +1438 -0
  407. package/src/components/FileDisplay/useFileDisplayData.ts +126 -0
  408. package/src/components/FileDisplay/usePublicFileDisplay.test.ts +729 -0
  409. package/src/components/FileDisplay/usePublicFileDisplay.ts +579 -0
  410. package/src/components/FileUpload/FileUpload.test.tsx +69 -27
  411. package/src/components/FileUpload/FileUpload.tsx +112 -527
  412. package/src/components/FileUpload/FileUploadDropZone.tsx +112 -0
  413. package/src/components/FileUpload/FileUploadProgressItem.tsx +86 -0
  414. package/src/components/FileUpload/FileUploadProgressList.tsx +40 -0
  415. package/src/components/FileUpload/index.tsx +1 -1
  416. package/src/components/FileUpload/useFileUploadManager.test.ts +308 -0
  417. package/src/components/FileUpload/useFileUploadManager.ts +454 -0
  418. package/src/components/FileUpload/useResolvedAppId.test.ts +102 -0
  419. package/src/components/FileUpload/useResolvedAppId.ts +77 -0
  420. package/src/components/Footer/Footer.test.tsx +15 -382
  421. package/src/components/Footer/Footer.tsx +8 -125
  422. package/src/components/Form/Form.test.tsx +425 -88
  423. package/src/components/Form/Form.tsx +91 -299
  424. package/src/components/Form/useFormPersistence.ts +257 -0
  425. package/src/components/Header/Header.test.tsx +653 -163
  426. package/src/components/Header/Header.tsx +62 -44
  427. package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +35 -76
  428. package/src/components/Input/Input.test.tsx +34 -120
  429. package/src/components/Input/Input.tsx +1 -1
  430. package/src/components/Label/Label.test.tsx +46 -45
  431. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +8 -11
  432. package/src/components/LoginForm/LoginForm.test.tsx +0 -1
  433. package/src/components/NavigationMenu/HierarchicalNavItem.tsx +104 -0
  434. package/src/components/NavigationMenu/NavigationMenu.test.tsx +2422 -102
  435. package/src/components/NavigationMenu/NavigationMenu.tsx +62 -362
  436. package/src/components/NavigationMenu/index.ts +6 -1
  437. package/src/components/NavigationMenu/navigationPermissionHelper.ts +188 -0
  438. package/src/components/NavigationMenu/useNavigationFiltering.test.ts +1949 -0
  439. package/src/components/NavigationMenu/useNavigationFiltering.ts +199 -308
  440. package/src/components/NavigationMenu/useNavigationScope.ts +125 -0
  441. package/src/components/PaceAppLayout/PaceAppLayout.edge-cases.test.tsx +1322 -0
  442. package/src/components/PaceAppLayout/PaceAppLayout.integration.test.tsx +50 -49
  443. package/src/components/PaceAppLayout/PaceAppLayout.performance.test.tsx +81 -38
  444. package/src/components/PaceAppLayout/PaceAppLayout.security.test.tsx +103 -85
  445. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +774 -44
  446. package/src/components/PaceAppLayout/PaceAppLayout.tsx +282 -764
  447. package/src/components/PaceAppLayout/README.md +0 -9
  448. package/src/components/PaceAppLayout/test-setup.tsx +15 -9
  449. package/src/components/PaceAppLayout/useFilteredNavItems.ts +304 -0
  450. package/src/components/PaceAppLayout/usePaceAppLayoutConfig.ts +142 -0
  451. package/src/components/PaceAppLayout/usePaceAppLayoutGate.tsx +150 -0
  452. package/src/components/PaceAppLayout/usePaceAppLayoutPermissions.ts +162 -0
  453. package/src/components/PaceAppLayout/usePaceAppLayoutScope.ts +79 -0
  454. package/src/components/PaceAppLayout/useRoleBasedRouteAccess.ts +157 -0
  455. package/src/components/PaceAppLayout/useSuperAdminFallback.ts +58 -0
  456. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +782 -20
  457. package/src/components/PaceLoginPage/PaceLoginPage.tsx +33 -125
  458. package/src/components/PaceLoginPage/useLoginAppAccess.ts +153 -0
  459. package/src/components/PasswordChange/PasswordChangeForm.test.tsx +1 -1
  460. package/src/components/Progress/Progress.test.tsx +127 -1
  461. package/src/components/Progress/Progress.tsx +1 -2
  462. package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +1196 -4
  463. package/src/components/ProtectedRoute/ProtectedRoute.tsx +29 -217
  464. package/src/components/ProtectedRoute/useProtectedRouteState.ts +128 -0
  465. package/src/components/ProtectedRoute/useVisibilityRedirectGrace.ts +89 -0
  466. package/src/components/PublicLayout/PublicLayout.test.tsx +1640 -38
  467. package/src/components/PublicLayout/PublicPageContext.ts +28 -0
  468. package/src/components/PublicLayout/PublicPageLayout.tsx +134 -75
  469. package/src/components/PublicLayout/PublicPageProvider.tsx +7 -42
  470. package/src/components/PublicLayout/usePublicPageContext.ts +36 -0
  471. package/src/components/Select/Select.test.tsx +45 -8
  472. package/src/components/Select/Select.tsx +57 -40
  473. package/src/components/Select/context.test.tsx +56 -0
  474. package/src/components/Select/text.test.tsx +104 -0
  475. package/src/components/Select/text.ts +26 -0
  476. package/src/components/Select/types.ts +3 -0
  477. package/src/components/Select/useSelectEvents.test.ts +279 -0
  478. package/src/components/Select/useSelectEvents.ts +87 -0
  479. package/src/components/Select/useSelectSearch.test.tsx +295 -0
  480. package/src/components/Select/useSelectSearch.ts +91 -0
  481. package/src/components/Select/useSelectState.test.ts +268 -0
  482. package/src/components/Select/useSelectState.ts +104 -0
  483. package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +28 -112
  484. package/src/components/Switch/Switch.test.tsx +57 -153
  485. package/src/components/Table/Table.test.tsx +395 -317
  486. package/src/components/Tabs/Tabs.test.tsx +270 -0
  487. package/src/components/Tabs/Tabs.tsx +4 -4
  488. package/src/components/Textarea/Textarea.test.tsx +11 -38
  489. package/src/components/Toast/Toast.test.tsx +425 -496
  490. package/src/components/Tooltip/Tooltip.test.tsx +4 -21
  491. package/src/components/UserMenu/UserMenu.test.tsx +1 -21
  492. package/src/components/UserMenu/UserMenu.tsx +0 -1
  493. package/src/components/index.test.ts +346 -0
  494. package/src/components/index.ts +12 -1
  495. package/src/constants/performance.test.ts +91 -0
  496. package/src/hooks/ServiceHooks.test.tsx +725 -0
  497. package/src/hooks/hooks.integration.test.tsx +608 -0
  498. package/src/hooks/index.ts +18 -3
  499. package/src/hooks/index.unit.test.ts +220 -0
  500. package/src/hooks/public/usePublicEvent.test.ts +304 -0
  501. package/src/hooks/public/usePublicEvent.ts +11 -11
  502. package/src/hooks/public/usePublicEventLogo.test.ts +655 -120
  503. package/src/hooks/public/usePublicEventLogo.ts +2 -2
  504. package/src/hooks/public/usePublicRouteParams.test.ts +595 -0
  505. package/src/hooks/public/usePublicRouteParams.ts +2 -2
  506. package/src/hooks/services/useAuth.ts +9 -7
  507. package/src/hooks/services/useAuthService.ts +1 -1
  508. package/src/hooks/services/useEventService.ts +1 -1
  509. package/src/hooks/useAccessibleApps.test.ts +400 -0
  510. package/src/hooks/useAccessibleApps.ts +264 -0
  511. package/src/hooks/useAddressAutocomplete.test.ts +170 -47
  512. package/src/hooks/useAddressAutocomplete.ts +109 -81
  513. package/src/hooks/useApiFetch.unit.test.ts +111 -0
  514. package/src/hooks/useAppConfig.ts +13 -3
  515. package/src/hooks/useAppConfig.unit.test.ts +712 -0
  516. package/src/hooks/useComponentPerformance.unit.test.tsx +314 -0
  517. package/src/hooks/useDataTablePerformance.ts +111 -130
  518. package/src/hooks/useDataTablePerformance.unit.test.ts +720 -0
  519. package/src/hooks/useDataTableState.test.ts +170 -0
  520. package/src/hooks/useDataTableState.ts +5 -5
  521. package/src/hooks/useDebounce.unit.test.ts +157 -0
  522. package/src/hooks/useEventTheme.test.ts +70 -18
  523. package/src/hooks/useEventTheme.ts +50 -22
  524. package/src/hooks/useEvents.ts +49 -2
  525. package/src/hooks/useEvents.unit.test.ts +227 -0
  526. package/src/hooks/useFileReference.test.ts +388 -107
  527. package/src/hooks/useFileReference.ts +184 -179
  528. package/src/hooks/useFileUrl.ts +1 -1
  529. package/src/hooks/useFileUrl.unit.test.ts +686 -0
  530. package/src/hooks/useFileUrlCache.test.ts +319 -0
  531. package/src/hooks/useFileUrlCache.ts +5 -2
  532. package/src/hooks/useFocusManagement.unit.test.ts +604 -0
  533. package/src/hooks/useFocusTrap.unit.test.tsx +613 -0
  534. package/src/hooks/useFormDialog.test.ts +307 -0
  535. package/src/hooks/useFormDialog.ts +2 -2
  536. package/src/hooks/useInactivityTracker.ts +141 -134
  537. package/src/hooks/useInactivityTracker.unit.test.ts +446 -0
  538. package/src/hooks/useIsMobile.unit.test.ts +317 -0
  539. package/src/hooks/useIsPrint.ts +62 -0
  540. package/src/hooks/useIsPrint.unit.test.ts +545 -0
  541. package/src/hooks/useKeyboardShortcuts.unit.test.ts +907 -0
  542. package/src/hooks/useOrganisationPermissions.test.ts +1 -2
  543. package/src/hooks/useOrganisationPermissions.ts +1 -4
  544. package/src/hooks/useOrganisationPermissions.unit.test.tsx +293 -0
  545. package/src/hooks/useOrganisationSecurity.test.ts +4 -33
  546. package/src/hooks/useOrganisationSecurity.ts +192 -203
  547. package/src/hooks/useOrganisationSecurity.unit.test.tsx +959 -0
  548. package/src/hooks/useOrganisations.ts +1 -1
  549. package/src/hooks/useOrganisations.unit.test.ts +369 -0
  550. package/src/hooks/usePerformanceMonitor.ts +1 -1
  551. package/src/hooks/usePerformanceMonitor.unit.test.ts +693 -0
  552. package/src/hooks/usePermissionCache.test.ts +298 -329
  553. package/src/hooks/usePermissionCache.ts +277 -276
  554. package/src/hooks/usePreventTabReload.test.ts +307 -0
  555. package/src/hooks/usePublicEvent.simple.test.ts +794 -0
  556. package/src/hooks/usePublicEvent.test.ts +670 -0
  557. package/src/hooks/usePublicEvent.unit.test.ts +638 -0
  558. package/src/hooks/usePublicFileDisplay.test.ts +948 -0
  559. package/src/hooks/usePublicRouteParams.unit.test.ts +442 -0
  560. package/src/hooks/useQueryCache.test.ts +391 -0
  561. package/src/hooks/useQueryCache.ts +7 -9
  562. package/src/hooks/useRBAC.unit.test.ts +253 -0
  563. package/src/hooks/useSessionDraft.test.ts +556 -0
  564. package/src/hooks/useSessionDraft.ts +14 -11
  565. package/src/hooks/useSessionRestoration.ts +1 -1
  566. package/src/hooks/useSessionRestoration.unit.test.tsx +381 -0
  567. package/src/hooks/useStorage.ts +94 -54
  568. package/src/hooks/useStorage.unit.test.ts +684 -0
  569. package/src/hooks/useToast.test.ts +413 -0
  570. package/src/hooks/useToast.ts +2 -2
  571. package/src/hooks/useToast.unit.test.tsx +481 -0
  572. package/src/hooks/useZodForm.ts +3 -3
  573. package/src/hooks/useZodForm.unit.test.tsx +191 -0
  574. package/src/icons/index.test.ts +133 -0
  575. package/src/icons/index.ts +3 -1
  576. package/src/index.test.ts +528 -0
  577. package/src/index.ts +56 -9
  578. package/src/providers/AuthProvider.test.tsx +218 -0
  579. package/src/providers/EventProvider.test.tsx +487 -0
  580. package/src/providers/InactivityProvider.test-helper.tsx +40 -0
  581. package/src/providers/InactivityProvider.test.tsx +421 -0
  582. package/src/providers/ProviderLifecycle.test.tsx +308 -0
  583. package/src/providers/UnifiedAuthProvider.smoke.test.tsx +7 -12
  584. package/src/providers/UnifiedAuthProvider.test.tsx +503 -0
  585. package/src/providers/index.test.ts +138 -0
  586. package/src/providers/services/AuthServiceContext.ts +27 -0
  587. package/src/providers/services/AuthServiceProvider.integration.test.tsx +229 -0
  588. package/src/providers/services/AuthServiceProvider.test.tsx +638 -0
  589. package/src/providers/services/AuthServiceProvider.tsx +81 -20
  590. package/src/providers/services/EventServiceContext.ts +25 -0
  591. package/src/providers/services/EventServiceProvider.test.tsx +839 -0
  592. package/src/providers/services/EventServiceProvider.tsx +11 -20
  593. package/src/providers/services/InactivityServiceContext.ts +25 -0
  594. package/src/providers/services/InactivityServiceProvider.test.tsx +662 -0
  595. package/src/providers/services/InactivityServiceProvider.tsx +7 -17
  596. package/src/providers/services/OrganisationServiceContext.ts +25 -0
  597. package/src/providers/services/OrganisationServiceProvider.test.tsx +440 -0
  598. package/src/providers/services/OrganisationServiceProvider.tsx +7 -17
  599. package/src/providers/services/UnifiedAuthContext.ts +102 -0
  600. package/src/providers/services/UnifiedAuthProvider.advanced.test.tsx +434 -0
  601. package/src/providers/services/UnifiedAuthProvider.appId.test.tsx +408 -0
  602. package/src/providers/services/UnifiedAuthProvider.integration.test.tsx +304 -0
  603. package/src/providers/services/UnifiedAuthProvider.test.tsx +212 -0
  604. package/src/providers/services/UnifiedAuthProvider.tsx +147 -497
  605. package/src/providers/services/contexts.test.tsx +281 -0
  606. package/src/providers/services/useUnifiedAuth.test.tsx +251 -0
  607. package/src/providers/services/useUnifiedAuth.ts +29 -0
  608. package/src/providers/services/useUnifiedAuthContextValue.ts +279 -0
  609. package/src/providers/useInactivity.test-helper.ts +27 -0
  610. package/src/rbac/README.md +5 -5
  611. package/src/rbac/adapters.comprehensive.test.tsx +429 -0
  612. package/src/rbac/adapters.test.tsx +654 -0
  613. package/src/rbac/adapters.tsx +53 -38
  614. package/src/rbac/api.test.ts +986 -259
  615. package/src/rbac/api.ts +260 -216
  616. package/src/rbac/audit-batched.test.ts +550 -0
  617. package/src/rbac/audit-batched.ts +5 -4
  618. package/src/rbac/audit.test.ts +225 -28
  619. package/src/rbac/audit.ts +26 -18
  620. package/src/rbac/auth-rbac-security.integration.test.tsx +300 -0
  621. package/src/rbac/auth-rbac.e2e.test.tsx +510 -0
  622. package/src/rbac/cache-invalidation.test.ts +715 -0
  623. package/src/rbac/cache-invalidation.ts +18 -15
  624. package/src/rbac/cache.test.ts +123 -63
  625. package/src/rbac/cache.ts +3 -4
  626. package/src/rbac/components/AccessDenied.test.tsx +324 -0
  627. package/src/rbac/components/AccessDenied.tsx +20 -18
  628. package/src/rbac/components/NavigationGuard.test.tsx +1148 -0
  629. package/src/rbac/components/NavigationGuard.tsx +10 -8
  630. package/src/rbac/components/PagePermissionGuard.guard.test.tsx +236 -0
  631. package/src/rbac/components/PagePermissionGuard.performance.test.tsx +252 -0
  632. package/src/rbac/components/PagePermissionGuard.race-condition.test.tsx +243 -0
  633. package/src/rbac/components/PagePermissionGuard.test.tsx +1430 -0
  634. package/src/rbac/components/PagePermissionGuard.tsx +188 -381
  635. package/src/rbac/components/PagePermissionGuard.verification.test.tsx +185 -0
  636. package/src/rbac/config.test.ts +131 -48
  637. package/src/rbac/config.ts +69 -26
  638. package/src/rbac/docs/event-based-apps.md +26 -13
  639. package/src/rbac/engine.comprehensive.test.ts +808 -0
  640. package/src/rbac/engine.test.ts +974 -130
  641. package/src/rbac/engine.ts +53 -13
  642. package/src/rbac/errors.test.ts +99 -87
  643. package/src/rbac/errors.ts +89 -55
  644. package/src/rbac/eslint-rules.js +2 -2
  645. package/src/rbac/hooks/permissions/runPermissionCheck.ts +77 -0
  646. package/src/rbac/hooks/permissions/useAccessLevel.test.ts +622 -0
  647. package/src/rbac/hooks/permissions/useAccessLevel.ts +23 -14
  648. package/src/rbac/hooks/permissions/useCan.test.ts +798 -0
  649. package/src/rbac/hooks/permissions/useCan.ts +173 -253
  650. package/src/rbac/hooks/permissions/useMultiplePermissions.test.ts +843 -0
  651. package/src/rbac/hooks/permissions/useMultiplePermissions.ts +63 -10
  652. package/src/rbac/hooks/permissions/usePermissions.test.ts +543 -0
  653. package/src/rbac/hooks/permissions/usePermissions.ts +50 -78
  654. package/src/rbac/hooks/useCan.test.ts +348 -32
  655. package/src/rbac/hooks/usePageAccessLogging.ts +160 -0
  656. package/src/rbac/hooks/usePageGuardScope.ts +117 -0
  657. package/src/rbac/hooks/usePagePermissionCheck.ts +67 -0
  658. package/src/rbac/hooks/usePermissions.integration.test.ts +427 -0
  659. package/src/rbac/hooks/usePermissions.stability.test.ts +268 -0
  660. package/src/rbac/hooks/usePermissions.test.ts +459 -33
  661. package/src/rbac/hooks/usePermissions.ts +5 -7
  662. package/src/rbac/hooks/useRBAC.test.ts +1784 -21
  663. package/src/rbac/hooks/useRBAC.ts +148 -88
  664. package/src/rbac/hooks/useResolvedScope.test.ts +442 -5
  665. package/src/rbac/hooks/useResolvedScope.ts +4 -1
  666. package/src/rbac/hooks/useResourcePermissions.test.ts +561 -24
  667. package/src/rbac/hooks/useResourcePermissions.ts +76 -140
  668. package/src/rbac/hooks/useResourcePermissionsSuperAdmin.ts +67 -0
  669. package/src/rbac/hooks/useRoleManagement.test.ts +634 -61
  670. package/src/rbac/hooks/useRoleManagement.ts +158 -586
  671. package/src/rbac/hooks/useSecureSupabase.test.ts +1179 -0
  672. package/src/rbac/hooks/useSecureSupabase.ts +21 -14
  673. package/src/rbac/hooks/useSuperAdminCheck.ts +80 -0
  674. package/src/rbac/index.test.ts +107 -0
  675. package/src/rbac/index.ts +32 -32
  676. package/src/rbac/performance.test.ts +451 -0
  677. package/src/rbac/permissions.test.ts +149 -68
  678. package/src/rbac/permissions.ts +0 -3
  679. package/src/rbac/rbac-core.test.tsx +276 -0
  680. package/src/rbac/rbac-engine-core-logic.test.ts +387 -0
  681. package/src/rbac/rbac-engine-simplified.test.ts +252 -0
  682. package/src/rbac/rbac-functions.test.ts +703 -0
  683. package/src/rbac/rbac-integration.test.ts +523 -0
  684. package/src/rbac/rbac-role-isolation.test.ts +456 -0
  685. package/src/rbac/request-deduplication.test.ts +352 -0
  686. package/src/rbac/request-deduplication.ts +5 -4
  687. package/src/rbac/scenarios.user-role.test.tsx +271 -0
  688. package/src/rbac/secureClient.test.ts +499 -115
  689. package/src/rbac/secureClient.ts +54 -28
  690. package/src/rbac/security.test.ts +448 -44
  691. package/src/rbac/security.ts +7 -6
  692. package/src/rbac/types/roleManagement.ts +66 -0
  693. package/src/rbac/types.test.ts +236 -0
  694. package/src/rbac/types.ts +7 -5
  695. package/src/rbac/utils/clientSecurity.test.ts +192 -0
  696. package/src/rbac/utils/clientSecurity.ts +6 -4
  697. package/src/rbac/utils/contextValidator.test.ts +126 -0
  698. package/src/rbac/utils/contextValidator.ts +6 -3
  699. package/src/rbac/utils/deep-equal.test.ts +76 -0
  700. package/src/rbac/utils/eventContext.test.ts +401 -0
  701. package/src/rbac/utils/eventContext.ts +38 -34
  702. package/src/rbac/utils/fetchPermissionMap.ts +13 -0
  703. package/src/rbac/utils/permissionMapHelpers.ts +34 -0
  704. package/src/rbac/utils/roleManagementRpc.ts +303 -0
  705. package/src/services/AuthService.edge-cases.test.ts +746 -0
  706. package/src/services/AuthService.restoreSession.test.ts +59 -0
  707. package/src/services/AuthService.test.ts +1362 -0
  708. package/src/services/AuthService.ts +197 -216
  709. package/src/services/BaseService.edge-cases.test.ts +506 -0
  710. package/src/services/BaseService.test.ts +363 -0
  711. package/src/services/EventService.edge-cases.test.ts +636 -0
  712. package/src/services/EventService.eventColours.test.ts +64 -0
  713. package/src/services/EventService.test.ts +1250 -0
  714. package/src/services/EventService.ts +244 -315
  715. package/src/services/InactivityService.edge-cases.test.ts +492 -0
  716. package/src/services/InactivityService.lifecycle.test.ts +406 -0
  717. package/src/services/InactivityService.test.ts +829 -0
  718. package/src/services/InactivityService.ts +172 -213
  719. package/src/services/OrganisationService.edge-cases.test.ts +633 -0
  720. package/src/services/OrganisationService.pagination.test.ts +409 -0
  721. package/src/services/OrganisationService.test.ts +1579 -0
  722. package/src/services/OrganisationService.ts +186 -257
  723. package/src/services/base/BaseService.test.ts +214 -0
  724. package/src/services/interfaces/IAuthService.test.ts +184 -0
  725. package/src/services/interfaces/IAuthService.ts +10 -9
  726. package/src/services/interfaces/IEventService.test.ts +176 -0
  727. package/src/services/interfaces/IInactivityService.test.ts +183 -0
  728. package/src/services/interfaces/IOrganisationService.test.ts +207 -0
  729. package/src/services/interfaces/IOrganisationService.ts +0 -1
  730. package/src/styles/core.css +244 -12
  731. package/src/theming/parseEventColours.test.ts +321 -0
  732. package/src/theming/parseEventColours.ts +18 -9
  733. package/src/theming/runtime.test.ts +495 -0
  734. package/src/theming/runtime.ts +72 -7
  735. package/src/types/api-result.ts +53 -0
  736. package/src/types/auth.ts +0 -1
  737. package/src/types/core.test.ts +397 -0
  738. package/src/types/database-generated.test.ts +78 -0
  739. package/src/types/database.generated.ts +45 -10
  740. package/src/types/event.ts +39 -19
  741. package/src/types/file-reference.test.ts +351 -0
  742. package/src/types/file-reference.ts +37 -12
  743. package/src/types/guards.test.ts +246 -0
  744. package/src/types/index.test.ts +265 -0
  745. package/src/types/index.ts +3 -0
  746. package/src/types/organisation.roles.test.ts +55 -0
  747. package/src/types/organisation.test.ts +1105 -0
  748. package/src/types/organisation.ts +15 -15
  749. package/src/types/rpc-responses.ts +33 -0
  750. package/src/types/supabase.ts +14 -6
  751. package/src/types/theme.test.ts +830 -0
  752. package/src/types/type-validation.test.ts +526 -0
  753. package/src/types/validation.test.ts +729 -0
  754. package/src/types/vitest-globals.d.ts +1 -1
  755. package/src/utils/app/appConfig.test.ts +235 -0
  756. package/src/utils/app/appIdResolver.test.ts +252 -57
  757. package/src/utils/app/appIdResolver.ts +31 -20
  758. package/src/utils/app/appNameResolver.test.ts +18 -10
  759. package/src/utils/app/appNameResolver.ts +11 -9
  760. package/src/utils/app/appPortMap.test.ts +125 -0
  761. package/src/utils/app/appPortMap.ts +51 -0
  762. package/src/utils/app/buildAppUrl.test.ts +273 -0
  763. package/src/utils/app/buildAppUrl.ts +114 -0
  764. package/src/utils/appConfig.unit.test.ts +55 -0
  765. package/src/utils/audit/audit.test.ts +354 -39
  766. package/src/utils/audit.unit.test.ts +69 -0
  767. package/src/utils/auth-utils.unit.test.ts +69 -0
  768. package/src/utils/bundleAnalysis.unit.test.ts +326 -0
  769. package/src/utils/cn.unit.test.ts +34 -0
  770. package/src/utils/context/organisationContext.test.ts +115 -95
  771. package/src/utils/context/organisationContext.ts +32 -43
  772. package/src/utils/context/sessionTracking.test.ts +354 -0
  773. package/src/utils/core/cn.test.ts +66 -0
  774. package/src/utils/core/debugLogger.test.ts +113 -0
  775. package/src/utils/core/debugLogger.ts +15 -8
  776. package/src/utils/core/logger.test.ts +217 -0
  777. package/src/utils/core/logger.ts +20 -16
  778. package/src/utils/core/mergeRefs.ts +24 -0
  779. package/src/utils/debugLogger.test.ts +417 -0
  780. package/src/utils/device/deviceFingerprint.test.ts +8 -5
  781. package/src/utils/device/deviceFingerprint.ts +3 -3
  782. package/src/utils/deviceFingerprint.unit.test.ts +818 -0
  783. package/src/utils/dynamic/createLazyComponent.tsx +46 -0
  784. package/src/utils/dynamic/dynamicUtils.test.ts +185 -0
  785. package/src/utils/dynamic/dynamicUtils.ts +6 -6
  786. package/src/utils/dynamic/lazyLoad.test.tsx +156 -0
  787. package/src/utils/dynamic/lazyLoad.tsx +8 -36
  788. package/src/utils/dynamic/papaparseLoader.ts +7 -0
  789. package/src/utils/dynamicUtils.unit.test.ts +331 -0
  790. package/src/utils/file-reference/file-reference.test.ts +1238 -0
  791. package/src/utils/file-reference/index.ts +330 -348
  792. package/src/utils/formatDate.unit.test.ts +109 -0
  793. package/src/utils/formatting/formatDate.test.ts +22 -148
  794. package/src/utils/formatting/formatDateTime.test.ts +41 -119
  795. package/src/utils/formatting/formatDateTimeTimezone.test.ts +41 -85
  796. package/src/utils/formatting/formatNumber.test.ts +259 -0
  797. package/src/utils/formatting/formatTime.test.ts +36 -128
  798. package/src/utils/formatting/formatting.ts +1 -1
  799. package/src/utils/formatting.unit.test.ts +99 -0
  800. package/src/utils/google-places/googlePlacesUtils.test.ts +127 -36
  801. package/src/utils/google-places/googlePlacesUtils.ts +67 -86
  802. package/src/utils/google-places/loadGoogleMapsScript.test.ts +68 -8
  803. package/src/utils/google-places/loadGoogleMapsScript.ts +140 -118
  804. package/src/utils/index.ts +52 -11
  805. package/src/utils/index.unit.test.ts +251 -0
  806. package/src/utils/lazyLoad.unit.test.tsx +319 -0
  807. package/src/utils/location/location.test.ts +19 -116
  808. package/src/utils/logger.unit.test.ts +398 -0
  809. package/src/utils/organisationContext.unit.test.ts +180 -0
  810. package/src/utils/performance/bundleAnalysis.test.ts +148 -0
  811. package/src/utils/performance/bundleAnalysis.ts +16 -22
  812. package/src/utils/performance/performanceBenchmark.test.ts +251 -0
  813. package/src/utils/performance/performanceBenchmark.ts +12 -4
  814. package/src/utils/performance/performanceBudgets.test.ts +241 -0
  815. package/src/utils/performance/performanceBudgets.ts +9 -6
  816. package/src/utils/performanceBenchmark.test.ts +174 -0
  817. package/src/utils/performanceBudgets.unit.test.ts +288 -0
  818. package/src/utils/permissionTypes.unit.test.ts +250 -0
  819. package/src/utils/permissionUtils.unit.test.ts +362 -0
  820. package/src/utils/permissions/permissionTypes.test.ts +149 -0
  821. package/src/utils/permissions/permissionUtils.test.ts +20 -42
  822. package/src/utils/persistence/keyDerivation.test.ts +306 -0
  823. package/src/utils/persistence/sensitiveFieldDetection.test.ts +271 -0
  824. package/src/utils/persistence/sensitiveFieldDetection.ts +2 -2
  825. package/src/utils/request-deduplication.test.ts +349 -0
  826. package/src/utils/request-deduplication.ts +6 -4
  827. package/src/utils/sanitization.unit.test.ts +346 -0
  828. package/src/utils/schemaUtils.unit.test.ts +441 -0
  829. package/src/utils/secureDataAccess.unit.test.ts +334 -0
  830. package/src/utils/secureErrors.unit.test.ts +390 -0
  831. package/src/utils/secureStorage.unit.test.ts +289 -0
  832. package/src/utils/security/auth-utils.ts +38 -27
  833. package/src/utils/security/secureDataAccess.test.ts +22 -191
  834. package/src/utils/security/secureDataAccess.ts +241 -281
  835. package/src/utils/security/secureErrors.test.ts +163 -0
  836. package/src/utils/security/secureStorage.test.ts +156 -0
  837. package/src/utils/security/secureStorage.ts +1 -1
  838. package/src/utils/security/security.test.ts +212 -0
  839. package/src/utils/security/security.ts +15 -18
  840. package/src/utils/security/securityMonitor.test.ts +90 -0
  841. package/src/utils/security/securityMonitor.ts +1 -1
  842. package/src/utils/security.unit.test.ts +155 -0
  843. package/src/utils/securityMonitor.unit.test.ts +276 -0
  844. package/src/utils/sessionTracking.unit.test.ts +218 -0
  845. package/src/utils/storage/config.unit.test.ts +239 -0
  846. package/src/utils/storage/helpers.test.ts +769 -456
  847. package/src/utils/storage/helpers.ts +174 -253
  848. package/src/utils/storage/index.unit.test.ts +68 -0
  849. package/src/utils/storage/storageUtils.ts +32 -0
  850. package/src/utils/storage/types.ts +9 -2
  851. package/src/utils/supabase/createBaseClient.test.ts +201 -0
  852. package/src/utils/supabase/createBaseClient.ts +2 -1
  853. package/src/utils/timezone/timezone.test.ts +26 -44
  854. package/src/utils/timezone.test.ts +345 -0
  855. package/src/utils/validation/common.test.ts +115 -0
  856. package/src/utils/validation/csrf.test.ts +198 -0
  857. package/src/utils/validation/csrf.ts +42 -41
  858. package/src/utils/validation/htmlSanitization.ts +27 -31
  859. package/src/utils/validation/htmlSanitization.unit.test.ts +618 -0
  860. package/src/utils/validation/passwordSchema.test.ts +164 -0
  861. package/src/utils/validation/schema.test.ts +127 -0
  862. package/src/utils/validation/schema.ts +6 -3
  863. package/src/utils/validation/sqlInjectionProtection.test.ts +165 -0
  864. package/src/utils/validation/sqlInjectionProtection.ts +2 -2
  865. package/src/utils/validation/user.test.ts +173 -0
  866. package/src/utils/validation/validation.test.ts +197 -0
  867. package/src/utils/validation/validationUtils.test.ts +294 -0
  868. package/src/utils/validation.unit.test.ts +307 -0
  869. package/src/utils/validationUtils.unit.test.ts +558 -0
  870. package/src/vite-env.d.ts +6 -0
  871. package/dist/AuthService-DmfO5rGS.d.ts +0 -524
  872. package/dist/DataTable-DRUIgtUH.d.ts +0 -166
  873. package/dist/DataTable-SOAFXIWY.js +0 -15
  874. package/dist/PublicPageProvider-CIGSujI2.d.ts +0 -4147
  875. package/dist/UnifiedAuthProvider-7SNDOWYD.js +0 -7
  876. package/dist/UnifiedAuthProvider-CKvHP1MK.d.ts +0 -139
  877. package/dist/api-7P7DI652.js +0 -4
  878. package/dist/audit-MYQXYZFU.js +0 -3
  879. package/dist/auth-BZOJqrdd.d.ts +0 -49
  880. package/dist/chunk-4DDCYDQ3.js +0 -544
  881. package/dist/chunk-5HNSDQWH.js +0 -5046
  882. package/dist/chunk-5W2A3DRC.js +0 -164
  883. package/dist/chunk-6GLLNA6U.js +0 -31
  884. package/dist/chunk-7ILTDCL2.js +0 -80
  885. package/dist/chunk-A3W6LW53.js +0 -70
  886. package/dist/chunk-AHU7G2R5.js +0 -423
  887. package/dist/chunk-C7ZQ5O4C.js +0 -481
  888. package/dist/chunk-EF2UGZWY.js +0 -611
  889. package/dist/chunk-FEJLJNWA.js +0 -181
  890. package/dist/chunk-FYHN4DD5.js +0 -415
  891. package/dist/chunk-GS5672WG.js +0 -2003
  892. package/dist/chunk-HF6O3O37.js +0 -187
  893. package/dist/chunk-J2U36LHD.js +0 -8517
  894. package/dist/chunk-LX6U42O3.js +0 -2177
  895. package/dist/chunk-MPBLMWVR.js +0 -2161
  896. package/dist/chunk-OJ4SKRSV.js +0 -105
  897. package/dist/chunk-S6ZQKDY6.js +0 -62
  898. package/dist/chunk-S7DKJPLT.js +0 -699
  899. package/dist/chunk-T5CVK4R3.js +0 -2816
  900. package/dist/chunk-TTRFSOKR.js +0 -121
  901. package/dist/chunk-Z2FNRKF3.js +0 -994
  902. package/dist/database.generated-DT8JTZiP.d.ts +0 -9406
  903. package/dist/event-CW5YB_2p.d.ts +0 -239
  904. package/dist/file-reference-BavO2eQj.d.ts +0 -148
  905. package/dist/functions-lBy5L2ry.d.ts +0 -208
  906. package/dist/timezone-0AyangqX.d.ts +0 -697
  907. package/dist/types-BeoeWV5I.d.ts +0 -110
  908. package/dist/types-DXstZpNI.d.ts +0 -614
  909. package/dist/types-t9H8qKRw.d.ts +0 -55
  910. package/dist/usePublicRouteParams-DQLrDqDb.d.ts +0 -876
  911. package/dist/useToast-AyaT-x7p.d.ts +0 -68
  912. package/dist/validation-643vUDZW.d.ts +0 -177
  913. package/scripts/build-docs-incremental.js +0 -179
  914. package/scripts/eslint-audit.cjs +0 -123
  915. package/scripts/generate-docs.js +0 -157
  916. package/scripts/install-cursor-rules.cjs +0 -255
  917. package/scripts/install-eslint-config.cjs +0 -349
  918. package/scripts/setup-build-cache.js +0 -73
  919. package/scripts/validate-pre-publish.js +0 -145
  920. package/src/__tests__/helpers/__tests__/component-test-utils.test.tsx +0 -260
  921. package/src/__tests__/helpers/__tests__/optimized-test-setup.test.ts +0 -224
  922. package/src/__tests__/helpers/__tests__/supabaseMock.test.ts +0 -273
  923. package/src/__tests__/helpers/__tests__/test-providers.test.tsx +0 -99
  924. package/src/__tests__/helpers/__tests__/test-utils.test.tsx +0 -448
  925. package/src/__tests__/helpers/__tests__/timer-utils.test.ts +0 -371
  926. package/src/__tests__/hooks/usePermissions.test.ts +0 -268
  927. package/src/__tests__/integration/UserProfile.test.tsx +0 -124
  928. package/src/__tests__/public-recipe-view.test.ts +0 -228
  929. package/src/__tests__/rbac/PagePermissionGuard.test.tsx +0 -220
  930. package/src/__tests__/rls-policies.test.ts +0 -471
  931. package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +0 -759
  932. package/src/components/DataTable/__tests__/DataTable.default-state.test.tsx +0 -524
  933. package/src/components/DataTable/__tests__/DataTable.export.test.tsx +0 -705
  934. package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +0 -658
  935. package/src/components/DataTable/__tests__/DataTable.hooks.test.tsx +0 -192
  936. package/src/components/DataTable/__tests__/DataTable.select-label-display.test.tsx +0 -483
  937. package/src/components/DataTable/__tests__/DataTable.test.tsx +0 -876
  938. package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +0 -220
  939. package/src/components/DataTable/__tests__/DataTableCore.test.tsx +0 -1474
  940. package/src/components/DataTable/__tests__/README.md +0 -145
  941. package/src/components/DataTable/__tests__/a11y.basic.test.tsx +0 -788
  942. package/src/components/DataTable/__tests__/keyboard.test.tsx +0 -756
  943. package/src/components/DataTable/__tests__/mocks/MockRBACProvider.tsx +0 -66
  944. package/src/components/DataTable/__tests__/pagination.modes.test.tsx +0 -730
  945. package/src/components/DataTable/__tests__/ssr.strict-mode.test.tsx +0 -325
  946. package/src/components/DataTable/__tests__/styles.test.ts +0 -382
  947. package/src/components/DataTable/__tests__/test-utils/dataFactories.ts +0 -103
  948. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +0 -380
  949. package/src/components/DataTable/__tests__/test-utils.ts +0 -94
  950. package/src/components/DataTable/components/AccessDeniedPage.tsx +0 -159
  951. package/src/components/DataTable/components/ActionButtons.tsx +0 -190
  952. package/src/components/DataTable/components/BulkOperationsDropdown.tsx +0 -160
  953. package/src/components/DataTable/components/ColumnFilter.tsx +0 -118
  954. package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +0 -114
  955. package/src/components/DataTable/components/DataTableErrorBoundary.tsx +0 -225
  956. package/src/components/DataTable/components/DataTableLayout.tsx +0 -573
  957. package/src/components/DataTable/components/DataTableModals.tsx +0 -245
  958. package/src/components/DataTable/components/DataTableToolbar.tsx +0 -271
  959. package/src/components/DataTable/components/EditFields.tsx +0 -327
  960. package/src/components/DataTable/components/EditableRow.tsx +0 -462
  961. package/src/components/DataTable/components/EmptyState.tsx +0 -79
  962. package/src/components/DataTable/components/FilterRow.tsx +0 -141
  963. package/src/components/DataTable/components/LoadingState.tsx +0 -17
  964. package/src/components/DataTable/components/PaginationControls.tsx +0 -289
  965. package/src/components/DataTable/components/RowComponent.tsx +0 -403
  966. package/src/components/DataTable/components/SortIndicator.tsx +0 -50
  967. package/src/components/DataTable/components/UnifiedTableBody.tsx +0 -355
  968. package/src/components/DataTable/components/__tests__/AccessDeniedPage.test.tsx +0 -657
  969. package/src/components/DataTable/components/__tests__/ActionButtons.test.tsx +0 -913
  970. package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +0 -572
  971. package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +0 -612
  972. package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.test.tsx +0 -708
  973. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +0 -479
  974. package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +0 -475
  975. package/src/components/DataTable/components/__tests__/DataTableToolbar.test.tsx +0 -157
  976. package/src/components/DataTable/components/__tests__/EditableRow.test.tsx +0 -1061
  977. package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +0 -437
  978. package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +0 -474
  979. package/src/components/DataTable/components/__tests__/GroupingDropdown.test.tsx +0 -617
  980. package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +0 -1093
  981. package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +0 -139
  982. package/src/components/DataTable/components/__tests__/PaginationControls.test.tsx +0 -519
  983. package/src/components/DataTable/components/__tests__/UnifiedTableBody.test.tsx +0 -1004
  984. package/src/components/DataTable/components/cellValueUtils.ts +0 -40
  985. package/src/components/DataTable/components/hooks/useImportModalFocus.ts +0 -53
  986. package/src/components/DataTable/components/hooks/usePermissionTracking.ts +0 -122
  987. package/src/components/DataTable/components/index.ts +0 -16
  988. package/src/components/DataTable/context/__tests__/DataTableContext.test.tsx +0 -342
  989. package/src/components/DataTable/core/ActionManager.ts +0 -235
  990. package/src/components/DataTable/core/ColumnManager.ts +0 -205
  991. package/src/components/DataTable/core/DataManager.ts +0 -188
  992. package/src/components/DataTable/core/LocalDataAdapter.ts +0 -274
  993. package/src/components/DataTable/core/PluginRegistry.ts +0 -229
  994. package/src/components/DataTable/core/StateManager.ts +0 -312
  995. package/src/components/DataTable/core/__tests__/ActionManager.test.ts +0 -123
  996. package/src/components/DataTable/core/__tests__/ColumnFactory.test.ts +0 -305
  997. package/src/components/DataTable/core/__tests__/ColumnManager.test.ts +0 -84
  998. package/src/components/DataTable/core/__tests__/DataManager.test.ts +0 -115
  999. package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +0 -100
  1000. package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +0 -120
  1001. package/src/components/DataTable/core/__tests__/StateManager.test.ts +0 -104
  1002. package/src/components/DataTable/core/index.ts +0 -1
  1003. package/src/components/DataTable/core/interfaces.ts +0 -338
  1004. package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.test.ts +0 -521
  1005. package/src/components/DataTable/hooks/__tests__/useColumnVisibilityPersistence.test.ts +0 -167
  1006. package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +0 -124
  1007. package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +0 -117
  1008. package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +0 -102
  1009. package/src/components/DataTable/hooks/__tests__/useDataTableState.test.ts +0 -596
  1010. package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +0 -53
  1011. package/src/components/DataTable/hooks/__tests__/useHierarchicalState.test.ts +0 -214
  1012. package/src/components/DataTable/hooks/__tests__/useTableColumns.test.ts +0 -448
  1013. package/src/components/DataTable/hooks/index.ts +0 -13
  1014. package/src/components/DataTable/types.ts +0 -761
  1015. package/src/components/DataTable/utils/__tests__/a11yUtils.test.ts +0 -612
  1016. package/src/components/DataTable/utils/__tests__/columnUtils.test.ts +0 -94
  1017. package/src/components/DataTable/utils/__tests__/errorHandling.test.ts +0 -266
  1018. package/src/components/DataTable/utils/__tests__/exportUtils.test.ts +0 -954
  1019. package/src/components/DataTable/utils/__tests__/flexibleImport.test.ts +0 -573
  1020. package/src/components/DataTable/utils/__tests__/hierarchicalSorting.test.ts +0 -247
  1021. package/src/components/DataTable/utils/__tests__/hierarchicalUtils.test.ts +0 -570
  1022. package/src/components/DataTable/utils/__tests__/performanceUtils.test.ts +0 -470
  1023. package/src/components/DataTable/utils/__tests__/rowUtils.test.ts +0 -251
  1024. package/src/components/DataTable/utils/__tests__/selectFieldUtils.test.ts +0 -207
  1025. package/src/components/DataTable/utils/index.ts +0 -10
  1026. package/src/components/PublicLayout/index.ts +0 -32
  1027. package/src/components/Select/hooks/useSelectEvents.ts +0 -87
  1028. package/src/components/Select/hooks/useSelectSearch.ts +0 -91
  1029. package/src/components/Select/hooks/useSelectState.ts +0 -104
  1030. package/src/components/Select/utils/text.ts +0 -26
  1031. package/src/hooks/__tests__/ServiceHooks.test.tsx +0 -615
  1032. package/src/hooks/__tests__/hooks.integration.test.tsx +0 -607
  1033. package/src/hooks/__tests__/index.unit.test.ts +0 -220
  1034. package/src/hooks/__tests__/useApiFetch.unit.test.ts +0 -111
  1035. package/src/hooks/__tests__/useAppConfig.unit.test.ts +0 -347
  1036. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +0 -144
  1037. package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +0 -776
  1038. package/src/hooks/__tests__/useDataTableState.test.ts +0 -76
  1039. package/src/hooks/__tests__/useDebounce.unit.test.ts +0 -82
  1040. package/src/hooks/__tests__/useEvents.unit.test.ts +0 -252
  1041. package/src/hooks/__tests__/useFileDisplay.unit.test.ts +0 -1112
  1042. package/src/hooks/__tests__/useFileUrl.unit.test.ts +0 -916
  1043. package/src/hooks/__tests__/useFileUrlCache.test.ts +0 -129
  1044. package/src/hooks/__tests__/useFocusManagement.unit.test.ts +0 -230
  1045. package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +0 -828
  1046. package/src/hooks/__tests__/useFormDialog.test.ts +0 -478
  1047. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +0 -446
  1048. package/src/hooks/__tests__/useIsMobile.unit.test.ts +0 -317
  1049. package/src/hooks/__tests__/useKeyboardShortcuts.unit.test.ts +0 -910
  1050. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +0 -294
  1051. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +0 -961
  1052. package/src/hooks/__tests__/useOrganisations.unit.test.ts +0 -369
  1053. package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +0 -694
  1054. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +0 -192
  1055. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +0 -741
  1056. package/src/hooks/__tests__/usePreventTabReload.test.ts +0 -88
  1057. package/src/hooks/__tests__/usePublicEvent.simple.test.ts +0 -785
  1058. package/src/hooks/__tests__/usePublicEvent.test.ts +0 -678
  1059. package/src/hooks/__tests__/usePublicEvent.unit.test.ts +0 -630
  1060. package/src/hooks/__tests__/usePublicFileDisplay.test.ts +0 -951
  1061. package/src/hooks/__tests__/usePublicRouteParams.unit.test.ts +0 -443
  1062. package/src/hooks/__tests__/useQueryCache.test.ts +0 -144
  1063. package/src/hooks/__tests__/useRBAC.unit.test.ts +0 -236
  1064. package/src/hooks/__tests__/useSessionDraft.test.ts +0 -163
  1065. package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +0 -390
  1066. package/src/hooks/__tests__/useStorage.unit.test.ts +0 -751
  1067. package/src/hooks/__tests__/useToast.unit.test.tsx +0 -481
  1068. package/src/hooks/__tests__/useZodForm.unit.test.tsx +0 -37
  1069. package/src/hooks/public/index.ts +0 -36
  1070. package/src/hooks/public/usePublicFileDisplay.ts +0 -504
  1071. package/src/hooks/useFileDisplay.ts +0 -715
  1072. package/src/providers/OrganisationProvider.tsx +0 -92
  1073. package/src/providers/__tests__/AuthProvider.test.tsx +0 -287
  1074. package/src/providers/__tests__/EventProvider.test.tsx +0 -551
  1075. package/src/providers/__tests__/InactivityProvider.test-helper.tsx +0 -65
  1076. package/src/providers/__tests__/InactivityProvider.test.tsx +0 -572
  1077. package/src/providers/__tests__/OrganisationProvider.test.tsx +0 -617
  1078. package/src/providers/__tests__/ProviderLifecycle.test.tsx +0 -424
  1079. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +0 -596
  1080. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +0 -263
  1081. package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +0 -294
  1082. package/src/rbac/__tests__/adapters.comprehensive.test.tsx +0 -434
  1083. package/src/rbac/__tests__/auth-rbac-security.integration.test.tsx +0 -313
  1084. package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +0 -486
  1085. package/src/rbac/__tests__/cache-invalidation.test.ts +0 -399
  1086. package/src/rbac/__tests__/engine.comprehensive.test.ts +0 -813
  1087. package/src/rbac/__tests__/isSuperAdmin.real.test.ts +0 -82
  1088. package/src/rbac/__tests__/rbac-core.test.tsx +0 -276
  1089. package/src/rbac/__tests__/rbac-engine-core-logic.test.ts +0 -392
  1090. package/src/rbac/__tests__/rbac-engine-simplified.test.ts +0 -258
  1091. package/src/rbac/__tests__/rbac-functions.test.ts +0 -647
  1092. package/src/rbac/__tests__/rbac-integration.test.ts +0 -524
  1093. package/src/rbac/__tests__/rbac-role-isolation.test.ts +0 -456
  1094. package/src/rbac/__tests__/scenarios.user-role.test.tsx +0 -282
  1095. package/src/rbac/audit-enhanced.ts +0 -384
  1096. package/src/rbac/compliance/database-validator.ts +0 -165
  1097. package/src/rbac/compliance/index.ts +0 -48
  1098. package/src/rbac/compliance/pattern-detector.ts +0 -553
  1099. package/src/rbac/compliance/quick-fix-suggestions.ts +0 -209
  1100. package/src/rbac/compliance/runtime-compliance.ts +0 -99
  1101. package/src/rbac/compliance/setup-validator.ts +0 -131
  1102. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +0 -975
  1103. package/src/rbac/components/__tests__/PagePermissionGuard.performance.test.tsx +0 -248
  1104. package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +0 -242
  1105. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +0 -1107
  1106. package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +0 -184
  1107. package/src/rbac/components/index.ts +0 -26
  1108. package/src/rbac/hooks/__tests__/usePermissions.integration.test.ts +0 -432
  1109. package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +0 -579
  1110. package/src/rbac/hooks/index.ts +0 -34
  1111. package/src/rbac/hooks/permissions/index.ts +0 -4
  1112. package/src/rbac/hooks/useRBAC.simple.test.ts +0 -95
  1113. package/src/rbac/utils/__tests__/contextValidator.test.ts +0 -128
  1114. package/src/rbac/utils/__tests__/deep-equal.test.ts +0 -53
  1115. package/src/rbac/utils/__tests__/eventContext.test.ts +0 -433
  1116. package/src/rbac/utils/__tests__/eventContext.unit.test.ts +0 -490
  1117. package/src/services/__tests__/AuthService.restoreSession.test.ts +0 -39
  1118. package/src/services/__tests__/AuthService.test.ts +0 -1332
  1119. package/src/services/__tests__/BaseService.test.ts +0 -314
  1120. package/src/services/__tests__/EventService.eventColours.test.ts +0 -76
  1121. package/src/services/__tests__/EventService.test.ts +0 -1025
  1122. package/src/services/__tests__/InactivityService.lifecycle.test.ts +0 -411
  1123. package/src/services/__tests__/InactivityService.test.ts +0 -654
  1124. package/src/services/__tests__/OrganisationService.pagination.test.ts +0 -409
  1125. package/src/services/__tests__/OrganisationService.test.ts +0 -1176
  1126. package/src/theming/__tests__/parseEventColours.test.ts +0 -321
  1127. package/src/theming/__tests__/runtime.test.ts +0 -569
  1128. package/src/types/__tests__/file-reference.test.ts +0 -447
  1129. package/src/types/__tests__/guards.test.ts +0 -246
  1130. package/src/types/__tests__/organisation.roles.test.ts +0 -55
  1131. package/src/types/__tests__/organisation.test.ts +0 -1133
  1132. package/src/types/__tests__/theme.test.ts +0 -830
  1133. package/src/types/__tests__/type-validation.test.ts +0 -526
  1134. package/src/types/__tests__/validation.test.ts +0 -731
  1135. package/src/utils/__tests__/appConfig.unit.test.ts +0 -55
  1136. package/src/utils/__tests__/audit.unit.test.ts +0 -69
  1137. package/src/utils/__tests__/auth-utils.unit.test.ts +0 -70
  1138. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +0 -339
  1139. package/src/utils/__tests__/cn.unit.test.ts +0 -34
  1140. package/src/utils/__tests__/debugLogger.test.ts +0 -417
  1141. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +0 -818
  1142. package/src/utils/__tests__/dynamicUtils.unit.test.ts +0 -318
  1143. package/src/utils/__tests__/formatDate.unit.test.ts +0 -109
  1144. package/src/utils/__tests__/formatting.unit.test.ts +0 -99
  1145. package/src/utils/__tests__/index.unit.test.ts +0 -251
  1146. package/src/utils/__tests__/lazyLoad.unit.test.tsx +0 -321
  1147. package/src/utils/__tests__/logger.unit.test.ts +0 -398
  1148. package/src/utils/__tests__/organisationContext.unit.test.ts +0 -191
  1149. package/src/utils/__tests__/performanceBenchmark.test.ts +0 -175
  1150. package/src/utils/__tests__/performanceBudgets.unit.test.ts +0 -253
  1151. package/src/utils/__tests__/permissionTypes.unit.test.ts +0 -250
  1152. package/src/utils/__tests__/permissionUtils.unit.test.ts +0 -362
  1153. package/src/utils/__tests__/sanitization.unit.test.ts +0 -346
  1154. package/src/utils/__tests__/schemaUtils.unit.test.ts +0 -441
  1155. package/src/utils/__tests__/secureDataAccess.unit.test.ts +0 -335
  1156. package/src/utils/__tests__/secureErrors.unit.test.ts +0 -390
  1157. package/src/utils/__tests__/secureStorage.unit.test.ts +0 -289
  1158. package/src/utils/__tests__/security.unit.test.ts +0 -149
  1159. package/src/utils/__tests__/securityMonitor.unit.test.ts +0 -276
  1160. package/src/utils/__tests__/sessionTracking.unit.test.ts +0 -218
  1161. package/src/utils/__tests__/timezone.test.ts +0 -345
  1162. package/src/utils/__tests__/validation.unit.test.ts +0 -308
  1163. package/src/utils/__tests__/validationUtils.unit.test.ts +0 -555
  1164. package/src/utils/app/appNameResolver.simple.test.ts +0 -212
  1165. package/src/utils/file-reference/__tests__/file-reference.test.ts +0 -875
  1166. package/src/utils/google-places/index.ts +0 -26
  1167. package/src/utils/location/index.ts +0 -16
  1168. package/src/utils/persistence/__tests__/keyDerivation.test.ts +0 -135
  1169. package/src/utils/persistence/__tests__/sensitiveFieldDetection.test.ts +0 -123
  1170. package/src/utils/storage/__tests__/helpers.unit.test.ts +0 -332
  1171. package/src/utils/storage/__tests__/index.unit.test.ts +0 -16
  1172. package/src/utils/storage/index.ts +0 -67
  1173. package/src/utils/timezone/index.ts +0 -17
  1174. package/src/utils/validation/__tests__/csrf.test.ts +0 -105
  1175. package/src/utils/validation/__tests__/htmlSanitization.unit.test.ts +0 -598
  1176. package/src/utils/validation/__tests__/sqlInjectionProtection.test.ts +0 -92
  1177. package/src/utils/validation/__tests__/validationUtils.test.ts +0 -72
  1178. package/src/utils/validation/index.ts +0 -73
  1179. /package/src/components/DataTable/{components/__tests__ → ui}/COVERAGE_NOTE.md +0 -0
  1180. /package/src/components/DataTable/utils/{__tests__/COVERAGE_NOTE.md → COVERAGE_NOTE.md} +0 -0
  1181. /package/src/providers/{__tests__/README.md → README.md} +0 -0
  1182. /package/src/types/{__tests__/README.md → README.md} +0 -0
@@ -54,6 +54,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
54
54
 
55
55
  - [AddressFieldProps](undefined)
56
56
  - [AddressFieldRef](undefined)
57
+ - [AppSwitcherProps](undefined)
57
58
  - [AvatarProps](undefined)
58
59
  - [BadgeProps](undefined)
59
60
  - [ButtonProps](undefined)
@@ -61,27 +62,30 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
61
62
  - [CardProps](undefined)
62
63
  - [ContextSelectorProps](undefined)
63
64
  - [DataTableProps](undefined)
64
- - [DataRecord](undefined)
65
- - [DataTableColumn](undefined)
66
65
  - [DataTableAction](undefined)
67
66
  - [DataTableToolbarButton](undefined)
67
+ - [DataRecord](undefined)
68
68
  - [AggregateConfig](undefined)
69
- - [EmptyStateConfig](undefined)
69
+ - [DataTableColumn](undefined)
70
70
  - [ExportOptions](undefined)
71
+ - [EmptyStateConfig](undefined)
72
+ - [ImportSummary](undefined)
71
73
  - [ExportColumn](undefined)
74
+ - [DatePickerWithTimezoneProps](undefined)
72
75
  - [DialogProps](undefined)
73
76
  - [DialogTriggerProps](undefined)
74
77
  - [DialogContentProps](undefined)
75
78
  - [DialogPortalProps](undefined)
76
- - [DialogCloseProps](undefined)
77
79
  - [DialogHeaderProps](undefined)
78
80
  - [DialogFooterProps](undefined)
79
81
  - [DialogBodyProps](undefined)
82
+ - [DialogCloseProps](undefined)
80
83
  - [ErrorBoundaryState](undefined)
81
84
  - [ErrorBoundaryProps](undefined)
82
85
  - [ErrorBoundaryProviderProps](undefined)
83
86
  - [FileDisplayProps](undefined)
84
- - [FileUploadProps](undefined)
87
+ - [UsePublicFileDisplayReturn](undefined)
88
+ - [UsePublicFileDisplayOptions](undefined)
85
89
  - [FooterProps](undefined)
86
90
  - [FormProps](undefined)
87
91
  - [FormFieldProps](undefined)
@@ -91,7 +95,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
91
95
  - [LoginFormProps](undefined)
92
96
  - [NavigationItem](undefined)
93
97
  - [NavigationMenuProps](undefined)
94
- - [PaceAppLayoutProps](undefined)
98
+ - [PaceAppLayoutRouteConfigItem](undefined)
99
+ - [PaceAppLayoutPermissionConfig](undefined)
100
+ - [PaceAppLayoutRoutingConfig](undefined)
95
101
  - [PaceLoginPageProps](undefined)
96
102
  - [ProgressProps](undefined)
97
103
  - [ProtectedRouteProps](undefined)
@@ -112,36 +118,23 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
112
118
  - [UsePublicEventOptions](undefined)
113
119
  - [UsePublicEventLogoReturn](undefined)
114
120
  - [UsePublicEventLogoOptions](undefined)
115
- - [UsePublicFileDisplayReturn](undefined)
116
- - [UsePublicFileDisplayOptions](undefined)
117
121
  - [UsePublicRouteParamsReturn](undefined)
122
+ - [AccessibleApp](undefined)
123
+ - [UseAccessibleAppsReturn](undefined)
118
124
  - [UseFormDialogOptions](undefined)
119
125
  - [UseFormDialogReturn](undefined)
120
126
  - [UseInactivityTrackerOptions](undefined)
121
127
  - [UseInactivityTrackerReturn](undefined)
122
- - [OrganisationProviderProps](undefined)
123
128
  - [UserEventAccess](undefined)
124
- - [UnifiedAuthContextType](undefined)
125
129
  - [UnifiedAuthProviderProps](undefined)
126
- - [DatabaseIssue](undefined)
127
- - [DatabaseComplianceResult](undefined)
128
- - [QuickFix](undefined)
129
- - [RuntimeComplianceResult](undefined)
130
- - [SetupIssue](undefined)
131
- - [ComplianceResult](undefined)
132
130
  - [AccessDeniedProps](undefined)
133
131
  - [NavigationGuardProps](undefined)
134
132
  - [PagePermissionGuardProps](undefined)
135
- - [RBACConfig](undefined)
136
133
  - [RBACLogger](undefined)
137
134
  - [UseResolvedScopeOptions](undefined)
138
135
  - [UseResolvedScopeReturn](undefined)
139
136
  - [UseResourcePermissionsOptions](undefined)
140
137
  - [ResourcePermissions](undefined)
141
- - [EventAppRoleData](undefined)
142
- - [RevokeEventAppRoleParams](undefined)
143
- - [GrantEventAppRoleParams](undefined)
144
- - [RoleManagementResult](undefined)
145
138
  - [RBACPerformanceMetrics](undefined)
146
139
  - [RBACPermissionCheckParams](undefined)
147
140
  - [RBACPermissionCheckResult](undefined)
@@ -164,6 +157,11 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
164
157
  - [RBACAuditLogResult](undefined)
165
158
  - [RBACContext](undefined)
166
159
  - [RBACResult](undefined)
160
+ - [EventAppRoleData](undefined)
161
+ - [RevokeEventAppRoleParams](undefined)
162
+ - [GrantEventAppRoleParams](undefined)
163
+ - [RoleManagementResult](undefined)
164
+ - [AuthSessionData](undefined)
167
165
  - [StyleImport](undefined)
168
166
  - [ColorShade](undefined)
169
167
  - [ColorPalette](undefined)
@@ -175,13 +173,14 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
175
173
  - [OrganisationMembership](undefined)
176
174
  - [UserProfile](undefined)
177
175
  - [OrganisationSecurityError](undefined)
178
- - [OrganisationContextType](undefined)
176
+ - [BuildAppUrlOptions](undefined)
179
177
  - [LoggerConfig](undefined)
180
178
  - [ParsedAddress](undefined)
181
179
  - [AutocompleteOptions](undefined)
182
180
  - [StorageUploadOptions](undefined)
183
181
  - [StorageFileMetadata](undefined)
184
182
  - [StorageUploadResult](undefined)
183
+ - [StorageUploadSuccess](undefined)
185
184
  - [StorageUrlOptions](undefined)
186
185
  - [StorageListOptions](undefined)
187
186
  - [StorageFileInfo](undefined)
@@ -194,12 +193,17 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
194
193
  - [BadgeVariant](undefined)
195
194
  - [GetRowId](undefined)
196
195
  - [DataTableFeatureConfig](undefined)
196
+ - [ImportHandlerResult](undefined)
197
197
  - [DialogSize](undefined)
198
198
  - [GlobalErrorHandler](undefined)
199
+ - [FileUploadProps](undefined)
199
200
  - [NavigationMode](undefined)
201
+ - [PaceAppLayoutProps](undefined)
200
202
  - [UseFileReferenceOptions](undefined)
201
203
  - [UseFileReferenceReturn](undefined)
202
204
  - [UseFileReferenceForRecordReturn](undefined)
205
+ - [UnifiedAuthContextType](undefined)
206
+ - [RBACConfig](undefined)
203
207
  - [AllPermissions](undefined)
204
208
  - [UUID](undefined)
205
209
  - [Operation](undefined)
@@ -216,6 +220,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
216
220
  - [SessionType](undefined)
217
221
  - [AuditEventType](undefined)
218
222
  - [RBACFunctionResponse](undefined)
223
+ - [ApiError](undefined)
224
+ - [ApiResult](undefined)
225
+ - [OrganisationContextType](undefined)
219
226
 
220
227
  ### Variables
221
228
 
@@ -228,6 +235,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
228
235
  - [ALL\_PERMISSIONS](undefined)
229
236
  - [SECURE\_CLIENT\_SYMBOL](undefined)
230
237
  - [styleConfig](undefined)
238
+ - [DEFAULT\_APP\_PORT\_MAP](undefined)
231
239
  - [logger](undefined)
232
240
  - [FILE\_SIZE\_LIMITS](undefined)
233
241
  - [DEFAULT\_FILE\_SIZE\_LIMIT](undefined)
@@ -245,6 +253,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
245
253
  - [Alert](undefined)
246
254
  - [AlertTitle](undefined)
247
255
  - [AlertDescription](undefined)
256
+ - [AppSwitcher](undefined)
248
257
  - [Avatar](undefined)
249
258
  - [Badge](undefined)
250
259
  - [Button](undefined)
@@ -267,6 +276,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
267
276
  - [generateCSVContent](undefined)
268
277
  - [exportToCSVWithTableRows](undefined)
269
278
  - [exportToCSV](undefined)
279
+ - [DatePickerWithTimezone](undefined)
270
280
  - [Dialog](undefined)
271
281
  - [DialogTrigger](undefined)
272
282
  - [DialogPortal](undefined)
@@ -280,6 +290,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
280
290
  - [ErrorBoundaryProvider](undefined)
281
291
  - [ErrorBoundary](undefined)
282
292
  - [FileDisplay](undefined)
293
+ - [usePublicFileDisplay](undefined)
294
+ - [clearPublicFileDisplayCache](undefined)
295
+ - [getPublicFileDisplayCacheStats](undefined)
283
296
  - [FileUpload](undefined)
284
297
  - [Footer](undefined)
285
298
  - [Form](undefined)
@@ -345,9 +358,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
345
358
  - [usePublicEventLogo](undefined)
346
359
  - [clearPublicLogoCache](undefined)
347
360
  - [getPublicLogoCacheStats](undefined)
348
- - [usePublicFileDisplay](undefined)
349
- - [clearPublicFileDisplayCache](undefined)
350
- - [getPublicFileDisplayCacheStats](undefined)
351
361
  - [usePublicRouteParams](undefined)
352
362
  - [usePublicEventCode](undefined)
353
363
  - [generatePublicRoutePath](undefined)
@@ -356,8 +366,10 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
356
366
  - [useEventService](undefined)
357
367
  - [useInactivityService](undefined)
358
368
  - [useOrganisationService](undefined)
369
+ - [useAccessibleApps](undefined)
359
370
  - [useAppConfig](undefined)
360
371
  - [useEventTheme](undefined)
372
+ - [useOptionalEvents](undefined)
361
373
  - [useEvents](undefined)
362
374
  - [useFileReference](undefined)
363
375
  - [useFileReferenceForRecord](undefined)
@@ -371,18 +383,18 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
371
383
  - [useSessionRestoration](undefined)
372
384
  - [useToast](undefined)
373
385
  - [useZodForm](undefined)
374
- - [OrganisationProvider](undefined)
375
386
  - [EventServiceProvider](undefined)
376
387
  - [InactivityServiceProvider](undefined)
377
388
  - [OrganisationServiceProvider](undefined)
378
- - [useUnifiedAuth](undefined)
379
389
  - [UnifiedAuthProvider](undefined)
390
+ - [useUnifiedAuth](undefined)
380
391
  - [withPermissionGuard](undefined)
381
392
  - [withAccessLevelGuard](undefined)
382
393
  - [withRoleGuard](undefined)
383
394
  - [createRBACMiddleware](undefined)
384
395
  - [createRBACExpressMiddleware](undefined)
385
396
  - [setupRBAC](undefined)
397
+ - [isRBACInitialized](undefined)
386
398
  - [getAccessLevel](undefined)
387
399
  - [getPermissionMap](undefined)
388
400
  - [resolveAppContext](undefined)
@@ -395,17 +407,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
395
407
  - [setGlobalAuditManager](undefined)
396
408
  - [getGlobalAuditManager](undefined)
397
409
  - [emitAuditEvent](undefined)
398
- - [validateDatabaseConfiguration](undefined)
399
- - [getCustomAuthCodeFixes](undefined)
400
- - [getDuplicateConfigFixes](undefined)
401
- - [getUnprotectedPageFixes](undefined)
402
- - [getDirectSupabaseAuthFixes](undefined)
403
- - [getQuickFixes](undefined)
404
- - [checkRuntimeCompliance](undefined)
405
- - [validateAndWarn](undefined)
406
- - [isRBACInitialized](undefined)
407
- - [getSetupIssues](undefined)
408
- - [validateRBACSetup](undefined)
409
410
  - [AccessDenied](undefined)
410
411
  - [NavigationGuard](undefined)
411
412
  - [PagePermissionGuard](undefined)
@@ -444,10 +445,17 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
444
445
  - [parseAndNormalizeEventColours](undefined)
445
446
  - [applyPalette](undefined)
446
447
  - [clearPalette](undefined)
448
+ - [ok](undefined)
449
+ - [err](undefined)
450
+ - [isOk](undefined)
451
+ - [isErr](undefined)
447
452
  - [setAppConfig](undefined)
448
453
  - [getAppConfig](undefined)
449
454
  - [getCurrentAppName](undefined)
450
455
  - [getCurrentAppId](undefined)
456
+ - [getAppPort](undefined)
457
+ - [getAllAppPorts](undefined)
458
+ - [buildAppUrl](undefined)
451
459
  - [useSessionTracking](undefined)
452
460
  - [cn](undefined)
453
461
  - [createLogger](undefined)
@@ -515,7 +523,7 @@ ___
515
523
 
516
524
  #### Defined in
517
525
 
518
- [packages/core/src/types/file-reference.ts:33](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L33)
526
+ [packages/core/src/types/file-reference.ts:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L34)
519
527
 
520
528
  ___
521
529
 
@@ -533,13 +541,7 @@ Logger levels for different types of messages
533
541
 
534
542
  ### ColumnFactory
535
543
 
536
- • **ColumnFactory**: Class ColumnFactory\<TData\>
537
-
538
- #### Type parameters
539
-
540
- | Name | Type |
541
- | :------ | :------ |
542
- | `TData` | extends DataRecord = DataRecord |
544
+ • **ColumnFactory**: Class ColumnFactory
543
545
 
544
546
  #### Defined in
545
547
 
@@ -557,7 +559,7 @@ Handles emission of structured audit events for all RBAC operations.
557
559
 
558
560
  #### Defined in
559
561
 
560
- [packages/core/src/rbac/audit.ts:111](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L111)
562
+ [packages/core/src/rbac/audit.ts:112](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L112)
561
563
 
562
564
  ___
563
565
 
@@ -573,7 +575,7 @@ Provides two-tier caching:
573
575
 
574
576
  #### Defined in
575
577
 
576
- [packages/core/src/rbac/cache.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L20)
578
+ [packages/core/src/rbac/cache.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L19)
577
579
 
578
580
  ___
579
581
 
@@ -588,7 +590,7 @@ This reduces complexity, improves performance, and enhances security.
588
590
 
589
591
  #### Defined in
590
592
 
591
- [packages/core/src/rbac/engine.ts:50](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L50)
593
+ [packages/core/src/rbac/engine.ts:52](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L52)
592
594
 
593
595
  ___
594
596
 
@@ -608,7 +610,7 @@ if working with event-required apps.
608
610
 
609
611
  #### Defined in
610
612
 
611
- [packages/core/src/rbac/secureClient.ts:28](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L28)
613
+ [packages/core/src/rbac/secureClient.ts:27](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L27)
612
614
 
613
615
  ___
614
616
 
@@ -618,7 +620,7 @@ ___
618
620
 
619
621
  #### Defined in
620
622
 
621
- [packages/core/src/rbac/types.ts:302](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L302)
623
+ [packages/core/src/rbac/types.ts:304](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L304)
622
624
 
623
625
  ___
624
626
 
@@ -628,7 +630,7 @@ ___
628
630
 
629
631
  #### Defined in
630
632
 
631
- [packages/core/src/rbac/types.ts:313](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L313)
633
+ [packages/core/src/rbac/types.ts:315](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L315)
632
634
 
633
635
  ___
634
636
 
@@ -638,7 +640,7 @@ ___
638
640
 
639
641
  #### Defined in
640
642
 
641
- [packages/core/src/rbac/types.ts:324](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L324)
643
+ [packages/core/src/rbac/types.ts:326](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L326)
642
644
 
643
645
  ___
644
646
 
@@ -648,7 +650,7 @@ ___
648
650
 
649
651
  #### Defined in
650
652
 
651
- [packages/core/src/rbac/types.ts:344](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L344)
653
+ [packages/core/src/rbac/types.ts:346](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L346)
652
654
 
653
655
  ___
654
656
 
@@ -658,7 +660,7 @@ ___
658
660
 
659
661
  #### Defined in
660
662
 
661
- [packages/core/src/rbac/types.ts:354](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L354)
663
+ [packages/core/src/rbac/types.ts:356](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L356)
662
664
 
663
665
  ___
664
666
 
@@ -668,7 +670,7 @@ ___
668
670
 
669
671
  #### Defined in
670
672
 
671
- [packages/core/src/rbac/types.ts:365](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L365)
673
+ [packages/core/src/rbac/types.ts:367](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types.ts#L367)
672
674
 
673
675
  ___
674
676
 
@@ -693,7 +695,7 @@ StorageUtils class for convenient access to storage functions
693
695
 
694
696
  #### Defined in
695
697
 
696
- [packages/core/src/utils/storage/index.ts:56](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L56)
698
+ [packages/core/src/utils/storage/storageUtils.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/storageUtils.ts#L21)
697
699
 
698
700
  ## Interfaces
699
701
 
@@ -721,13 +723,25 @@ Ref type for AddressField component
721
723
 
722
724
  ___
723
725
 
726
+ ### AppSwitcherProps
727
+
728
+ • **AppSwitcherProps**: Interface AppSwitcherProps
729
+
730
+ Props for AppSwitcher component.
731
+
732
+ #### Defined in
733
+
734
+ [packages/core/src/components/AppSwitcher/AppSwitcher.tsx:24](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/AppSwitcher/AppSwitcher.tsx#L24)
735
+
736
+ ___
737
+
724
738
  ### AvatarProps
725
739
 
726
740
  • **AvatarProps**: Interface AvatarProps
727
741
 
728
742
  #### Defined in
729
743
 
730
- [packages/core/src/components/Avatar/Avatar.tsx:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Avatar/Avatar.tsx#L74)
744
+ [packages/core/src/components/Avatar/Avatar.tsx:75](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Avatar/Avatar.tsx#L75)
731
745
 
732
746
  ___
733
747
 
@@ -770,7 +784,7 @@ Extends DayPickerProps with pace-core specific customizations.
770
784
 
771
785
  #### Defined in
772
786
 
773
- [packages/core/src/components/Calendar/Calendar.tsx:101](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Calendar/Calendar.tsx#L101)
787
+ [packages/core/src/components/Calendar/Calendar.tsx:75](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Calendar/Calendar.tsx#L75)
774
788
 
775
789
  ___
776
790
 
@@ -783,7 +797,7 @@ Extends standard HTML attributes for semantic HTML elements.
783
797
 
784
798
  #### Defined in
785
799
 
786
- [packages/core/src/components/Card/Card.tsx:72](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L72)
800
+ [packages/core/src/components/Card/Card.tsx:73](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L73)
787
801
 
788
802
  ___
789
803
 
@@ -795,7 +809,7 @@ Props for the ContextSelector component.
795
809
 
796
810
  #### Defined in
797
811
 
798
- [packages/core/src/components/ContextSelector/ContextSelector.tsx:65](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ContextSelector/ContextSelector.tsx#L65)
812
+ [packages/core/src/components/ContextSelector/ContextSelector.types.ts:14](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ContextSelector/ContextSelector.types.ts#L14)
799
813
 
800
814
  ___
801
815
 
@@ -813,70 +827,51 @@ Enhanced DataTable props with performance features
813
827
 
814
828
  #### Defined in
815
829
 
816
- [packages/core/src/components/DataTable/DataTable.tsx:297](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/DataTable.tsx#L297)
817
-
818
- ___
819
-
820
- ### DataRecord
821
-
822
- • **DataRecord**: Interface DataRecord
823
-
824
- Base data record type - all DataTable data must extend this
825
- This is a marker type that allows any object to be used as a data record
826
- Individual implementations should define more specific types
827
-
828
- #### Defined in
829
-
830
- [packages/core/src/components/DataTable/types.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L49)
830
+ [packages/core/src/components/DataTable/DataTable.tsx:295](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/DataTable.tsx#L295)
831
831
 
832
832
  ___
833
833
 
834
- ### DataTableColumn
834
+ ### DataTableAction
835
835
 
836
- • **DataTableColumn**: Interface DataTableColumn\<TData\>
836
+ • **DataTableAction**: Interface DataTableAction\<TData\>
837
837
 
838
- Enhanced column definition that extends TanStack's ColumnDef
838
+ Action definition for DataTable rows.
839
+ Defines custom actions that can be performed on table rows.
839
840
 
840
841
  #### Type parameters
841
842
 
842
843
  | Name | Type |
843
844
  | :------ | :------ |
844
- | `TData` | extends DataRecord = DataRecord |
845
+ | `TData` | extends DataRecord |
845
846
 
846
847
  #### Defined in
847
848
 
848
- [packages/core/src/components/DataTable/types.ts:245](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L245)
849
+ [packages/core/src/components/DataTable/types/actions.ts:17](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/actions.ts#L17)
849
850
 
850
851
  ___
851
852
 
852
- ### DataTableAction
853
-
854
- • **DataTableAction**: Interface DataTableAction\<TData\>
855
-
856
- Action definition for DataTable rows.
857
- Defines custom actions that can be performed on table rows.
853
+ ### DataTableToolbarButton
858
854
 
859
- #### Type parameters
855
+ **DataTableToolbarButton**: Interface DataTableToolbarButton
860
856
 
861
- | Name | Type | Description |
862
- | :------ | :------ | :------ |
863
- | `TData` | extends DataRecord | The type of data records in the table |
857
+ Toolbar button definition
864
858
 
865
859
  #### Defined in
866
860
 
867
- [packages/core/src/components/DataTable/types.ts:379](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L379)
861
+ [packages/core/src/components/DataTable/types/actions.ts:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/actions.ts#L58)
868
862
 
869
863
  ___
870
864
 
871
- ### DataTableToolbarButton
865
+ ### DataRecord
872
866
 
873
- • **DataTableToolbarButton**: Interface DataTableToolbarButton
867
+ • **DataRecord**: Interface DataRecord
874
868
 
875
- Toolbar button definition
869
+ Base data record type - all DataTable data must extend this.
870
+ Individual implementations should define more specific types.
876
871
 
877
872
  #### Defined in
878
873
 
879
- [packages/core/src/components/DataTable/types.ts:419](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L419)
874
+ [packages/core/src/components/DataTable/types/base.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/base.ts#L31)
880
875
 
881
876
  ___
882
877
 
@@ -888,19 +883,25 @@ Aggregate configuration
888
883
 
889
884
  #### Defined in
890
885
 
891
- [packages/core/src/components/DataTable/types.ts:441](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L441)
886
+ [packages/core/src/components/DataTable/types/columns.ts:12](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/columns.ts#L12)
892
887
 
893
888
  ___
894
889
 
895
- ### EmptyStateConfig
890
+ ### DataTableColumn
896
891
 
897
- • **EmptyStateConfig**: Interface EmptyStateConfig
892
+ • **DataTableColumn**: Interface DataTableColumn\<TData\>
898
893
 
899
- Empty state configuration
894
+ Enhanced column definition that extends TanStack's ColumnDef
895
+
896
+ #### Type parameters
897
+
898
+ | Name | Type |
899
+ | :------ | :------ |
900
+ | `TData` | extends DataRecord = DataRecord |
900
901
 
901
902
  #### Defined in
902
903
 
903
- [packages/core/src/components/DataTable/types.ts:450](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L450)
904
+ [packages/core/src/components/DataTable/types/columns.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/columns.ts#L21)
904
905
 
905
906
  ___
906
907
 
@@ -910,25 +911,6 @@ ___
910
911
 
911
912
  Options provided to the onExport handler for custom export functionality
912
913
 
913
- **`Example`**
914
-
915
- ```tsx
916
- <DataTable
917
- onExport={async (options) => {
918
- // Export only specific columns
919
- const customColumns = options.allColumns.filter(col =>
920
- ['name', 'email', 'role'].includes(col.accessorKey || '')
921
- );
922
- await exportToCSVWithTableRows(
923
- options.tableRows,
924
- customColumns,
925
- options.columnIdToTableColumn,
926
- 'custom-export.csv'
927
- );
928
- }}
929
- />
930
- ```
931
-
932
914
  #### Type parameters
933
915
 
934
916
  | Name | Type |
@@ -937,7 +919,29 @@ Options provided to the onExport handler for custom export functionality
937
919
 
938
920
  #### Defined in
939
921
 
940
- [packages/core/src/components/DataTable/types.ts:628](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L628)
922
+ [packages/core/src/components/DataTable/types/export.ts:13](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/export.ts#L13)
923
+
924
+ ___
925
+
926
+ ### EmptyStateConfig
927
+
928
+ • **EmptyStateConfig**: Interface EmptyStateConfig
929
+
930
+ Empty state configuration
931
+
932
+ #### Defined in
933
+
934
+ [packages/core/src/components/DataTable/types/features.ts:73](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/features.ts#L73)
935
+
936
+ ___
937
+
938
+ ### ImportSummary
939
+
940
+ • **ImportSummary**: Interface ImportSummary
941
+
942
+ #### Defined in
943
+
944
+ [packages/core/src/components/DataTable/ui/modals/importModalPersistence.ts:15](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/ui/modals/importModalPersistence.ts#L15)
941
945
 
942
946
  ___
943
947
 
@@ -953,6 +957,18 @@ Column definition for export
953
957
 
954
958
  ___
955
959
 
960
+ ### DatePickerWithTimezoneProps
961
+
962
+ • **DatePickerWithTimezoneProps**: Interface DatePickerWithTimezoneProps
963
+
964
+ Props for the DatePickerWithTimezone component
965
+
966
+ #### Defined in
967
+
968
+ [packages/core/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx:55](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx#L55)
969
+
970
+ ___
971
+
956
972
  ### DialogProps
957
973
 
958
974
  • **DialogProps**: Interface DialogProps
@@ -961,7 +977,7 @@ Props for the Dialog root component
961
977
 
962
978
  #### Defined in
963
979
 
964
- [packages/core/src/components/Dialog/Dialog.tsx:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L167)
980
+ [packages/core/src/components/Dialog/Dialog.tsx:142](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L142)
965
981
 
966
982
  ___
967
983
 
@@ -973,7 +989,7 @@ Props for the DialogTrigger component
973
989
 
974
990
  #### Defined in
975
991
 
976
- [packages/core/src/components/Dialog/Dialog.tsx:178](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L178)
992
+ [packages/core/src/components/Dialog/Dialog.tsx:153](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L153)
977
993
 
978
994
  ___
979
995
 
@@ -986,7 +1002,7 @@ Uses semantic HTML dialog element
986
1002
 
987
1003
  #### Defined in
988
1004
 
989
- [packages/core/src/components/Dialog/Dialog.tsx:190](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L190)
1005
+ [packages/core/src/components/Dialog/Dialog.tsx:165](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L165)
990
1006
 
991
1007
  ___
992
1008
 
@@ -998,21 +1014,7 @@ Props for the DialogPortal component
998
1014
 
999
1015
  #### Defined in
1000
1016
 
1001
- [packages/core/src/components/Dialog/Dialog.tsx:231](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L231)
1002
-
1003
- ___
1004
-
1005
- ### DialogCloseProps
1006
-
1007
- • **DialogCloseProps**: Interface DialogCloseProps
1008
-
1009
- Props for the DialogClose component
1010
-
1011
- #### Defined in
1012
-
1013
- [packages/core/src/components/Dialog/Dialog.tsx:239](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L239)
1014
-
1015
- [packages/core/src/components/Dialog/Dialog.tsx:1365](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1365)
1017
+ [packages/core/src/components/Dialog/Dialog.tsx:200](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L200)
1016
1018
 
1017
1019
  ___
1018
1020
 
@@ -1024,7 +1026,7 @@ Props for the DialogHeader component (semantic header element)
1024
1026
 
1025
1027
  #### Defined in
1026
1028
 
1027
- [packages/core/src/components/Dialog/Dialog.tsx:245](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L245)
1029
+ [packages/core/src/components/Dialog/Dialog.tsx:208](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L208)
1028
1030
 
1029
1031
  ___
1030
1032
 
@@ -1036,7 +1038,7 @@ Props for the DialogFooter component (semantic footer element)
1036
1038
 
1037
1039
  #### Defined in
1038
1040
 
1039
- [packages/core/src/components/Dialog/Dialog.tsx:254](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L254)
1041
+ [packages/core/src/components/Dialog/Dialog.tsx:217](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L217)
1040
1042
 
1041
1043
  ___
1042
1044
 
@@ -1048,7 +1050,19 @@ Props for the DialogBody component (semantic main element)
1048
1050
 
1049
1051
  #### Defined in
1050
1052
 
1051
- [packages/core/src/components/Dialog/Dialog.tsx:263](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L263)
1053
+ [packages/core/src/components/Dialog/Dialog.tsx:226](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L226)
1054
+
1055
+ ___
1056
+
1057
+ ### DialogCloseProps
1058
+
1059
+ • **DialogCloseProps**: Interface DialogCloseProps
1060
+
1061
+ Props for the DialogClose component
1062
+
1063
+ #### Defined in
1064
+
1065
+ [packages/core/src/components/Dialog/Dialog.tsx:582](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L582)
1052
1066
 
1053
1067
  ___
1054
1068
 
@@ -1084,7 +1098,7 @@ Props for ErrorBoundaryProvider component
1084
1098
 
1085
1099
  #### Defined in
1086
1100
 
1087
- [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx:69](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx#L69)
1101
+ [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts#L36)
1088
1102
 
1089
1103
  ___
1090
1104
 
@@ -1094,20 +1108,30 @@ ___
1094
1108
 
1095
1109
  #### Defined in
1096
1110
 
1097
- [packages/core/src/components/FileDisplay/FileDisplay.tsx:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L57)
1111
+ [packages/core/src/components/FileDisplay/FileDisplay.tsx:15](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L15)
1098
1112
 
1099
1113
  ___
1100
1114
 
1101
- ### FileUploadProps
1115
+ ### UsePublicFileDisplayReturn
1116
+
1117
+ • **UsePublicFileDisplayReturn**: Interface UsePublicFileDisplayReturn
1118
+
1119
+ Return value of the usePublicFileDisplay hook.
1120
+ Provides file URLs, references, loading state, error, and refetch function.
1121
+
1122
+ #### Defined in
1123
+
1124
+ [packages/core/src/components/FileDisplay/usePublicFileDisplay.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/usePublicFileDisplay.ts#L63)
1125
+
1126
+ ___
1102
1127
 
1103
- **FileUploadProps**: Interface FileUploadProps
1128
+ ### UsePublicFileDisplayOptions
1104
1129
 
1105
- Props for the FileUpload component.
1106
- Configures file upload behavior including storage location, validation, and callbacks.
1130
+ **UsePublicFileDisplayOptions**: Interface UsePublicFileDisplayOptions
1107
1131
 
1108
1132
  #### Defined in
1109
1133
 
1110
- [packages/core/src/components/FileUpload/FileUpload.tsx:26](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L26)
1134
+ [packages/core/src/components/FileDisplay/usePublicFileDisplay.ts:82](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/usePublicFileDisplay.ts#L82)
1111
1135
 
1112
1136
  ___
1113
1137
 
@@ -1119,7 +1143,7 @@ Props for the Footer component.
1119
1143
 
1120
1144
  #### Defined in
1121
1145
 
1122
- [packages/core/src/components/Footer/Footer.tsx:93](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Footer/Footer.tsx#L93)
1146
+ [packages/core/src/components/Footer/Footer.tsx:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Footer/Footer.tsx#L42)
1123
1147
 
1124
1148
  ___
1125
1149
 
@@ -1137,7 +1161,7 @@ Props for the Form component
1137
1161
 
1138
1162
  #### Defined in
1139
1163
 
1140
- [packages/core/src/components/Form/Form.tsx:88](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L88)
1164
+ [packages/core/src/components/Form/Form.tsx:97](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L97)
1141
1165
 
1142
1166
  ___
1143
1167
 
@@ -1156,7 +1180,7 @@ Props for the FormField component
1156
1180
 
1157
1181
  #### Defined in
1158
1182
 
1159
- [packages/core/src/components/Form/Form.tsx:533](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L533)
1183
+ [packages/core/src/components/Form/Form.tsx:333](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L333)
1160
1184
 
1161
1185
  ___
1162
1186
 
@@ -1232,16 +1256,39 @@ Navigation menu component props
1232
1256
 
1233
1257
  ___
1234
1258
 
1235
- ### PaceAppLayoutProps
1259
+ ### PaceAppLayoutRouteConfigItem
1260
+
1261
+ • **PaceAppLayoutRouteConfigItem**: Interface PaceAppLayoutRouteConfigItem
1236
1262
 
1237
- **PaceAppLayoutProps**: Interface PaceAppLayoutProps
1263
+ Route config item for role-based routing.
1238
1264
 
1239
- Props for the PaceAppLayout component.
1240
- Configures the application layout including navigation, header, and footer.
1265
+ #### Defined in
1266
+
1267
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:126](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L126)
1268
+
1269
+ ___
1270
+
1271
+ ### PaceAppLayoutPermissionConfig
1272
+
1273
+ • **PaceAppLayoutPermissionConfig**: Interface PaceAppLayoutPermissionConfig
1274
+
1275
+ Optional grouped permission options. When provided, overrides flat permission props.
1276
+
1277
+ #### Defined in
1278
+
1279
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L143)
1280
+
1281
+ ___
1282
+
1283
+ ### PaceAppLayoutRoutingConfig
1284
+
1285
+ • **PaceAppLayoutRoutingConfig**: Interface PaceAppLayoutRoutingConfig
1286
+
1287
+ Optional grouped routing options. When provided, overrides flat routing props.
1241
1288
 
1242
1289
  #### Defined in
1243
1290
 
1244
- [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L132)
1291
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:158](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L158)
1245
1292
 
1246
1293
  ___
1247
1294
 
@@ -1253,7 +1300,7 @@ Props for the PaceLoginPage component.
1253
1300
 
1254
1301
  #### Defined in
1255
1302
 
1256
- [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:137](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L137)
1303
+ [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:136](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L136)
1257
1304
 
1258
1305
  ___
1259
1306
 
@@ -1277,7 +1324,7 @@ Props for the ProtectedRoute component.
1277
1324
 
1278
1325
  #### Defined in
1279
1326
 
1280
- [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L85)
1327
+ [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:81](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L81)
1281
1328
 
1282
1329
  ___
1283
1330
 
@@ -1287,7 +1334,7 @@ ___
1287
1334
 
1288
1335
  #### Defined in
1289
1336
 
1290
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L78)
1337
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L79)
1291
1338
 
1292
1339
  ___
1293
1340
 
@@ -1297,7 +1344,7 @@ ___
1297
1344
 
1298
1345
  #### Defined in
1299
1346
 
1300
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:109](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L109)
1347
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:113](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L113)
1301
1348
 
1302
1349
  ___
1303
1350
 
@@ -1307,7 +1354,7 @@ ___
1307
1354
 
1308
1355
  #### Defined in
1309
1356
 
1310
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:212](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L212)
1357
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:215](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L215)
1311
1358
 
1312
1359
  ___
1313
1360
 
@@ -1415,7 +1462,7 @@ Props for the UserMenu component.
1415
1462
 
1416
1463
  #### Defined in
1417
1464
 
1418
- [packages/core/src/components/UserMenu/UserMenu.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L130)
1465
+ [packages/core/src/components/UserMenu/UserMenu.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L129)
1419
1466
 
1420
1467
  ___
1421
1468
 
@@ -1465,54 +1512,49 @@ ___
1465
1512
 
1466
1513
  ___
1467
1514
 
1468
- ### UsePublicFileDisplayReturn
1515
+ ### UsePublicRouteParamsReturn
1469
1516
 
1470
- • **UsePublicFileDisplayReturn**: Interface UsePublicFileDisplayReturn
1517
+ • **UsePublicRouteParamsReturn**: Interface UsePublicRouteParamsReturn
1471
1518
 
1472
- Return value of the usePublicFileDisplay hook.
1473
- Provides file URLs, references, loading state, error, and refetch function.
1519
+ Return value of the usePublicRouteParams hook.
1520
+ Provides event code, event ID, event data, loading state, error, and refetch function.
1474
1521
 
1475
1522
  #### Defined in
1476
1523
 
1477
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L53)
1524
+ [packages/core/src/hooks/public/usePublicRouteParams.ts:68](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicRouteParams.ts#L68)
1478
1525
 
1479
1526
  ___
1480
1527
 
1481
- ### UsePublicFileDisplayOptions
1528
+ ### AccessibleApp
1482
1529
 
1483
- • **UsePublicFileDisplayOptions**: Interface UsePublicFileDisplayOptions
1530
+ • **AccessibleApp**: Interface AccessibleApp
1531
+
1532
+ App information returned by the hook.
1484
1533
 
1485
1534
  #### Defined in
1486
1535
 
1487
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:72](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L72)
1536
+ [packages/core/src/hooks/useAccessibleApps.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useAccessibleApps.ts#L21)
1488
1537
 
1489
1538
  ___
1490
1539
 
1491
- ### UsePublicRouteParamsReturn
1540
+ ### UseAccessibleAppsReturn
1492
1541
 
1493
- • **UsePublicRouteParamsReturn**: Interface UsePublicRouteParamsReturn
1542
+ • **UseAccessibleAppsReturn**: Interface UseAccessibleAppsReturn
1494
1543
 
1495
- Return value of the usePublicRouteParams hook.
1496
- Provides event code, event ID, event data, loading state, error, and refetch function.
1544
+ Return type for useAccessibleApps hook.
1497
1545
 
1498
1546
  #### Defined in
1499
1547
 
1500
- [packages/core/src/hooks/public/usePublicRouteParams.ts:68](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicRouteParams.ts#L68)
1548
+ [packages/core/src/hooks/useAccessibleApps.ts:33](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useAccessibleApps.ts#L33)
1501
1549
 
1502
1550
  ___
1503
1551
 
1504
1552
  ### UseFormDialogOptions
1505
1553
 
1506
- • **UseFormDialogOptions**: Interface UseFormDialogOptions\<T\>
1554
+ • **UseFormDialogOptions**: Interface UseFormDialogOptions
1507
1555
 
1508
1556
  Options for configuring the useFormDialog hook behavior
1509
1557
 
1510
- #### Type parameters
1511
-
1512
- | Name | Type |
1513
- | :------ | :------ |
1514
- | `T` | unknown |
1515
-
1516
1558
  #### Defined in
1517
1559
 
1518
1560
  [packages/core/src/hooks/useFormDialog.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFormDialog.ts#L31)
@@ -1559,16 +1601,6 @@ ___
1559
1601
 
1560
1602
  ___
1561
1603
 
1562
- ### OrganisationProviderProps
1563
-
1564
- • **OrganisationProviderProps**: Interface OrganisationProviderProps
1565
-
1566
- #### Defined in
1567
-
1568
- [packages/core/src/providers/OrganisationProvider.tsx:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/OrganisationProvider.tsx#L21)
1569
-
1570
- ___
1571
-
1572
1604
  ### UserEventAccess
1573
1605
 
1574
1606
  • **UserEventAccess**: Interface UserEventAccess
@@ -1578,236 +1610,113 @@ Represents a user's access to a specific event.
1578
1610
 
1579
1611
  #### Defined in
1580
1612
 
1581
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:35](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L35)
1613
+ [packages/core/src/providers/services/UnifiedAuthProvider.tsx:43](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L43)
1582
1614
 
1583
1615
  ___
1584
1616
 
1585
- ### UnifiedAuthContextType
1617
+ ### UnifiedAuthProviderProps
1586
1618
 
1587
- • **UnifiedAuthContextType**: Interface UnifiedAuthContextType
1619
+ • **UnifiedAuthProviderProps**: Interface UnifiedAuthProviderProps
1588
1620
 
1589
- Unified auth context type.
1590
- Provides combined authentication, organisation, event, and inactivity state and methods.
1621
+ Props for the UnifiedAuthProvider component.
1591
1622
 
1592
1623
  #### Defined in
1593
1624
 
1594
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L53)
1625
+ [packages/core/src/providers/services/UnifiedAuthProvider.tsx:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L60)
1595
1626
 
1596
1627
  ___
1597
1628
 
1598
- ### UnifiedAuthProviderProps
1599
-
1600
- • **UnifiedAuthProviderProps**: Interface UnifiedAuthProviderProps
1629
+ ### AccessDeniedProps
1601
1630
 
1602
- Props for the UnifiedAuthProvider component.
1631
+ **AccessDeniedProps**: Interface AccessDeniedProps
1603
1632
 
1604
1633
  #### Defined in
1605
1634
 
1606
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:154](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L154)
1635
+ [packages/core/src/rbac/components/AccessDenied.tsx:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L53)
1607
1636
 
1608
1637
  ___
1609
1638
 
1610
- ### DatabaseIssue
1639
+ ### NavigationGuardProps
1611
1640
 
1612
- • **DatabaseIssue**: Interface DatabaseIssue
1641
+ • **NavigationGuardProps**: Interface NavigationGuardProps
1613
1642
 
1614
1643
  #### Defined in
1615
1644
 
1616
- [packages/core/src/rbac/compliance/database-validator.ts:13](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/database-validator.ts#L13)
1645
+ [packages/core/src/rbac/components/NavigationGuard.tsx:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L78)
1617
1646
 
1618
1647
  ___
1619
1648
 
1620
- ### DatabaseComplianceResult
1649
+ ### PagePermissionGuardProps
1621
1650
 
1622
- • **DatabaseComplianceResult**: Interface DatabaseComplianceResult
1651
+ • **PagePermissionGuardProps**: Interface PagePermissionGuardProps
1623
1652
 
1624
1653
  #### Defined in
1625
1654
 
1626
- [packages/core/src/rbac/compliance/database-validator.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/database-validator.ts#L19)
1655
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L83)
1627
1656
 
1628
1657
  ___
1629
1658
 
1630
- ### QuickFix
1659
+ ### RBACLogger
1631
1660
 
1632
- • **QuickFix**: Interface QuickFix
1661
+ • **RBACLogger**: Interface RBACLogger
1633
1662
 
1634
1663
  #### Defined in
1635
1664
 
1636
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:10](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L10)
1665
+ [packages/core/src/rbac/config.ts:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L85)
1637
1666
 
1638
1667
  ___
1639
1668
 
1640
- ### RuntimeComplianceResult
1669
+ ### UseResolvedScopeOptions
1641
1670
 
1642
- • **RuntimeComplianceResult**: Interface RuntimeComplianceResult
1671
+ • **UseResolvedScopeOptions**: Interface UseResolvedScopeOptions
1643
1672
 
1644
1673
  #### Defined in
1645
1674
 
1646
- [packages/core/src/rbac/compliance/runtime-compliance.ts:14](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L14)
1675
+ [packages/core/src/rbac/hooks/useResolvedScope.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L31)
1647
1676
 
1648
1677
  ___
1649
1678
 
1650
- ### SetupIssue
1679
+ ### UseResolvedScopeReturn
1651
1680
 
1652
- • **SetupIssue**: Interface SetupIssue
1681
+ • **UseResolvedScopeReturn**: Interface UseResolvedScopeReturn
1653
1682
 
1654
1683
  #### Defined in
1655
1684
 
1656
- [packages/core/src/rbac/compliance/setup-validator.ts:13](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/setup-validator.ts#L13)
1685
+ [packages/core/src/rbac/hooks/useResolvedScope.ts:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L42)
1657
1686
 
1658
1687
  ___
1659
1688
 
1660
- ### ComplianceResult
1689
+ ### UseResourcePermissionsOptions
1661
1690
 
1662
- • **ComplianceResult**: Interface ComplianceResult
1691
+ • **UseResourcePermissionsOptions**: Interface UseResourcePermissionsOptions
1663
1692
 
1664
1693
  #### Defined in
1665
1694
 
1666
- [packages/core/src/rbac/compliance/setup-validator.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/setup-validator.ts#L19)
1695
+ [packages/core/src/rbac/hooks/useResourcePermissions.ts:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L53)
1667
1696
 
1668
1697
  ___
1669
1698
 
1670
- ### AccessDeniedProps
1699
+ ### ResourcePermissions
1671
1700
 
1672
- • **AccessDeniedProps**: Interface AccessDeniedProps
1701
+ • **ResourcePermissions**: Interface ResourcePermissions
1673
1702
 
1674
1703
  #### Defined in
1675
1704
 
1676
- [packages/core/src/rbac/components/AccessDenied.tsx:46](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L46)
1705
+ [packages/core/src/rbac/hooks/useResourcePermissions.ts:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L60)
1677
1706
 
1678
1707
  ___
1679
1708
 
1680
- ### NavigationGuardProps
1709
+ ### RBACPerformanceMetrics
1681
1710
 
1682
- • **NavigationGuardProps**: Interface NavigationGuardProps
1711
+ • **RBACPerformanceMetrics**: Interface RBACPerformanceMetrics
1683
1712
 
1684
1713
  #### Defined in
1685
1714
 
1686
- [packages/core/src/rbac/components/NavigationGuard.tsx:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L76)
1715
+ [packages/core/src/rbac/performance.ts:10](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/performance.ts#L10)
1687
1716
 
1688
1717
  ___
1689
1718
 
1690
- ### PagePermissionGuardProps
1691
-
1692
- • **PagePermissionGuardProps**: Interface PagePermissionGuardProps
1693
-
1694
- #### Defined in
1695
-
1696
- [packages/core/src/rbac/components/PagePermissionGuard.tsx:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L79)
1697
-
1698
- ___
1699
-
1700
- ### RBACConfig
1701
-
1702
- • **RBACConfig**: Interface RBACConfig
1703
-
1704
- #### Defined in
1705
-
1706
- [packages/core/src/rbac/config.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L16)
1707
-
1708
- ___
1709
-
1710
- ### RBACLogger
1711
-
1712
- • **RBACLogger**: Interface RBACLogger
1713
-
1714
- #### Defined in
1715
-
1716
- [packages/core/src/rbac/config.ts:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L42)
1717
-
1718
- ___
1719
-
1720
- ### UseResolvedScopeOptions
1721
-
1722
- • **UseResolvedScopeOptions**: Interface UseResolvedScopeOptions
1723
-
1724
- #### Defined in
1725
-
1726
- [packages/core/src/rbac/hooks/useResolvedScope.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L31)
1727
-
1728
- ___
1729
-
1730
- ### UseResolvedScopeReturn
1731
-
1732
- • **UseResolvedScopeReturn**: Interface UseResolvedScopeReturn
1733
-
1734
- #### Defined in
1735
-
1736
- [packages/core/src/rbac/hooks/useResolvedScope.ts:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L42)
1737
-
1738
- ___
1739
-
1740
- ### UseResourcePermissionsOptions
1741
-
1742
- • **UseResourcePermissionsOptions**: Interface UseResourcePermissionsOptions
1743
-
1744
- #### Defined in
1745
-
1746
- [packages/core/src/rbac/hooks/useResourcePermissions.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L54)
1747
-
1748
- ___
1749
-
1750
- ### ResourcePermissions
1751
-
1752
- • **ResourcePermissions**: Interface ResourcePermissions
1753
-
1754
- #### Defined in
1755
-
1756
- [packages/core/src/rbac/hooks/useResourcePermissions.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L61)
1757
-
1758
- ___
1759
-
1760
- ### EventAppRoleData
1761
-
1762
- • **EventAppRoleData**: Interface EventAppRoleData
1763
-
1764
- #### Defined in
1765
-
1766
- [packages/core/src/rbac/hooks/useRoleManagement.ts:64](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L64)
1767
-
1768
- ___
1769
-
1770
- ### RevokeEventAppRoleParams
1771
-
1772
- • **RevokeEventAppRoleParams**: Interface RevokeEventAppRoleParams
1773
-
1774
- #### Defined in
1775
-
1776
- [packages/core/src/rbac/hooks/useRoleManagement.ts:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L83)
1777
-
1778
- ___
1779
-
1780
- ### GrantEventAppRoleParams
1781
-
1782
- • **GrantEventAppRoleParams**: Interface GrantEventAppRoleParams
1783
-
1784
- #### Defined in
1785
-
1786
- [packages/core/src/rbac/hooks/useRoleManagement.ts:87](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L87)
1787
-
1788
- ___
1789
-
1790
- ### RoleManagementResult
1791
-
1792
- • **RoleManagementResult**: Interface RoleManagementResult
1793
-
1794
- #### Defined in
1795
-
1796
- [packages/core/src/rbac/hooks/useRoleManagement.ts:113](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L113)
1797
-
1798
- ___
1799
-
1800
- ### RBACPerformanceMetrics
1801
-
1802
- • **RBACPerformanceMetrics**: Interface RBACPerformanceMetrics
1803
-
1804
- #### Defined in
1805
-
1806
- [packages/core/src/rbac/performance.ts:10](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/performance.ts#L10)
1807
-
1808
- ___
1809
-
1810
- ### RBACPermissionCheckParams
1719
+ ### RBACPermissionCheckParams
1811
1720
 
1812
1721
  • **RBACPermissionCheckParams**: Interface RBACPermissionCheckParams
1813
1722
 
@@ -2023,6 +1932,58 @@ ___
2023
1932
 
2024
1933
  ___
2025
1934
 
1935
+ ### EventAppRoleData
1936
+
1937
+ • **EventAppRoleData**: Interface EventAppRoleData
1938
+
1939
+ #### Defined in
1940
+
1941
+ [packages/core/src/rbac/types/roleManagement.ts:12](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/roleManagement.ts#L12)
1942
+
1943
+ ___
1944
+
1945
+ ### RevokeEventAppRoleParams
1946
+
1947
+ • **RevokeEventAppRoleParams**: Interface RevokeEventAppRoleParams
1948
+
1949
+ #### Defined in
1950
+
1951
+ [packages/core/src/rbac/types/roleManagement.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/roleManagement.ts#L31)
1952
+
1953
+ ___
1954
+
1955
+ ### GrantEventAppRoleParams
1956
+
1957
+ • **GrantEventAppRoleParams**: Interface GrantEventAppRoleParams
1958
+
1959
+ #### Defined in
1960
+
1961
+ [packages/core/src/rbac/types/roleManagement.ts:35](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/roleManagement.ts#L35)
1962
+
1963
+ ___
1964
+
1965
+ ### RoleManagementResult
1966
+
1967
+ • **RoleManagementResult**: Interface RoleManagementResult
1968
+
1969
+ #### Defined in
1970
+
1971
+ [packages/core/src/rbac/types/roleManagement.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/roleManagement.ts#L61)
1972
+
1973
+ ___
1974
+
1975
+ ### AuthSessionData
1976
+
1977
+ • **AuthSessionData**: Interface AuthSessionData
1978
+
1979
+ Success payload for auth methods: user and session (both null when signed out).
1980
+
1981
+ #### Defined in
1982
+
1983
+ [packages/core/src/services/interfaces/IAuthService.ts:15](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/services/interfaces/IAuthService.ts#L15)
1984
+
1985
+ ___
1986
+
2026
1987
  ### StyleImport
2027
1988
 
2028
1989
  • **StyleImport**: Interface StyleImport
@@ -2094,7 +2055,7 @@ ___
2094
2055
 
2095
2056
  #### Defined in
2096
2057
 
2097
- [packages/core/src/types/file-reference.ts:6](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L6)
2058
+ [packages/core/src/types/file-reference.ts:7](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L7)
2098
2059
 
2099
2060
  ___
2100
2061
 
@@ -2104,7 +2065,7 @@ ___
2104
2065
 
2105
2066
  #### Defined in
2106
2067
 
2107
- [packages/core/src/types/file-reference.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L19)
2068
+ [packages/core/src/types/file-reference.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L20)
2108
2069
 
2109
2070
  ___
2110
2071
 
@@ -2116,7 +2077,7 @@ Options for uploading a file with a file reference
2116
2077
 
2117
2078
  #### Defined in
2118
2079
 
2119
- [packages/core/src/types/file-reference.ts:62](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L62)
2080
+ [packages/core/src/types/file-reference.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/file-reference.ts#L63)
2120
2081
 
2121
2082
  ___
2122
2083
 
@@ -2160,13 +2121,15 @@ ___
2160
2121
 
2161
2122
  ___
2162
2123
 
2163
- ### OrganisationContextType
2124
+ ### BuildAppUrlOptions
2125
+
2126
+ • **BuildAppUrlOptions**: Interface BuildAppUrlOptions
2164
2127
 
2165
- **OrganisationContextType**: Interface OrganisationContextType
2128
+ Options for building app URLs.
2166
2129
 
2167
2130
  #### Defined in
2168
2131
 
2169
- [packages/core/src/types/organisation.ts:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/organisation.ts#L108)
2132
+ [packages/core/src/utils/app/buildAppUrl.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/buildAppUrl.ts#L16)
2170
2133
 
2171
2134
  ___
2172
2135
 
@@ -2238,13 +2201,25 @@ ___
2238
2201
 
2239
2202
  ___
2240
2203
 
2204
+ ### StorageUploadSuccess
2205
+
2206
+ • **StorageUploadSuccess**: Interface StorageUploadSuccess
2207
+
2208
+ Success payload for uploadFile when using ApiResult.
2209
+
2210
+ #### Defined in
2211
+
2212
+ [packages/core/src/utils/storage/types.ts:47](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L47)
2213
+
2214
+ ___
2215
+
2241
2216
  ### StorageUrlOptions
2242
2217
 
2243
2218
  • **StorageUrlOptions**: Interface StorageUrlOptions
2244
2219
 
2245
2220
  #### Defined in
2246
2221
 
2247
- [packages/core/src/utils/storage/types.ts:46](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L46)
2222
+ [packages/core/src/utils/storage/types.ts:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L53)
2248
2223
 
2249
2224
  ___
2250
2225
 
@@ -2254,7 +2229,7 @@ ___
2254
2229
 
2255
2230
  #### Defined in
2256
2231
 
2257
- [packages/core/src/utils/storage/types.ts:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L57)
2232
+ [packages/core/src/utils/storage/types.ts:64](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L64)
2258
2233
 
2259
2234
  ___
2260
2235
 
@@ -2264,7 +2239,7 @@ ___
2264
2239
 
2265
2240
  #### Defined in
2266
2241
 
2267
- [packages/core/src/utils/storage/types.ts:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L74)
2242
+ [packages/core/src/utils/storage/types.ts:81](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L81)
2268
2243
 
2269
2244
  ___
2270
2245
 
@@ -2274,7 +2249,7 @@ ___
2274
2249
 
2275
2250
  #### Defined in
2276
2251
 
2277
- [packages/core/src/utils/storage/types.ts:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L83)
2252
+ [packages/core/src/utils/storage/types.ts:90](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L90)
2278
2253
 
2279
2254
  ___
2280
2255
 
@@ -2284,7 +2259,7 @@ ___
2284
2259
 
2285
2260
  #### Defined in
2286
2261
 
2287
- [packages/core/src/utils/storage/types.ts:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L89)
2262
+ [packages/core/src/utils/storage/types.ts:96](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L96)
2288
2263
 
2289
2264
  ___
2290
2265
 
@@ -2294,7 +2269,7 @@ ___
2294
2269
 
2295
2270
  #### Defined in
2296
2271
 
2297
- [packages/core/src/utils/storage/types.ts:93](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L93)
2272
+ [packages/core/src/utils/storage/types.ts:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/types.ts#L100)
2298
2273
 
2299
2274
  ## Type Aliases
2300
2275
 
@@ -2344,7 +2319,7 @@ RowId
2344
2319
 
2345
2320
  #### Defined in
2346
2321
 
2347
- [packages/core/src/components/DataTable/types.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L61)
2322
+ [packages/core/src/components/DataTable/types/base.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/base.ts#L39)
2348
2323
 
2349
2324
  ___
2350
2325
 
@@ -2353,12 +2328,23 @@ ___
2353
2328
  Ƭ **DataTableFeatureConfig**: Partial\<DataTableFeatureFlags\>
2354
2329
 
2355
2330
  Consumer-facing feature configuration. All properties are optional and will be
2356
- merged with defaultDataTableFeatures at runtime to keep the public API
2357
- ergonomic while maintaining strict internal guarantees.
2331
+ merged with defaultDataTableFeatures at runtime.
2332
+
2333
+ #### Defined in
2334
+
2335
+ [packages/core/src/components/DataTable/types/features.ts:35](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types/features.ts#L35)
2336
+
2337
+ ___
2338
+
2339
+ ### ImportHandlerResult
2340
+
2341
+ Ƭ **ImportHandlerResult**: void \| Promise\<void\> \| ImportSummary \| Promise\<ImportSummary\> \| Promise\<void \| ImportSummary\>
2342
+
2343
+ Return type for onImport: void/Promise<void> or ImportSummary/Promise<ImportSummary>. Async handlers may return Promise<void | ImportSummary>.
2358
2344
 
2359
2345
  #### Defined in
2360
2346
 
2361
- [packages/core/src/components/DataTable/types.ts:518](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L518)
2347
+ [packages/core/src/components/DataTable/ui/modals/importModalPersistence.ts:23](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/ui/modals/importModalPersistence.ts#L23)
2362
2348
 
2363
2349
  ___
2364
2350
 
@@ -2370,7 +2356,7 @@ Dialog size variants
2370
2356
 
2371
2357
  #### Defined in
2372
2358
 
2373
- [packages/core/src/components/Dialog/Dialog.tsx:135](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L135)
2359
+ [packages/core/src/components/Dialog/Dialog.tsx:111](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L111)
2374
2360
 
2375
2361
  ___
2376
2362
 
@@ -2389,7 +2375,7 @@ Type definition for the global error handler function
2389
2375
  | Name | Type |
2390
2376
  | :------ | :------ |
2391
2377
  | `error` | Error |
2392
- | `errorInfo` | React.ErrorInfo |
2378
+ | `errorInfo` | ErrorInfo |
2393
2379
  | `errorId` | string |
2394
2380
  | `componentName` | string |
2395
2381
 
@@ -2399,7 +2385,21 @@ void
2399
2385
 
2400
2386
  #### Defined in
2401
2387
 
2402
- [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx:43](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx#L43)
2388
+ [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts#L16)
2389
+
2390
+ ___
2391
+
2392
+ ### FileUploadProps
2393
+
2394
+ Ƭ **FileUploadProps**: FileUploadPropsStorage & FileUploadPropsValidation & FileUploadPropsUI & FileUploadPropsCallbacks & FileUploadPropsChildren
2395
+
2396
+ Props for the FileUpload component (ISP: composed from focused interfaces).
2397
+ Callers should pass the secure Supabase client (e.g. from useSecureSupabase()) when
2398
+ used in apps with RBAC. className is for instance-specific layout only (e.g. max-w-*).
2399
+
2400
+ #### Defined in
2401
+
2402
+ [packages/core/src/components/FileUpload/FileUpload.tsx:68](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L68)
2403
2403
 
2404
2404
  ___
2405
2405
 
@@ -2415,6 +2415,19 @@ Navigation mode type
2415
2415
 
2416
2416
  ___
2417
2417
 
2418
+ ### PaceAppLayoutProps
2419
+
2420
+ Ƭ **PaceAppLayoutProps**: PaceAppLayoutPropsLayout & PaceAppLayoutPropsPermission & PaceAppLayoutPropsRouting
2421
+
2422
+ Props for the PaceAppLayout component (ISP: composed from focused interfaces).
2423
+ Permission and routing options can be passed either as flat props or via permissionConfig / routingConfig.
2424
+
2425
+ #### Defined in
2426
+
2427
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:210](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L210)
2428
+
2429
+ ___
2430
+
2418
2431
  ### UseFileReferenceOptions
2419
2432
 
2420
2433
  Ƭ **UseFileReferenceOptions**: `Object`
@@ -2429,35 +2442,19 @@ ___
2429
2442
 
2430
2443
  #### Defined in
2431
2444
 
2432
- [packages/core/src/hooks/useFileReference.ts:487](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L487)
2445
+ [packages/core/src/hooks/useFileReference.ts:476](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L476)
2433
2446
 
2434
2447
  ___
2435
2448
 
2436
2449
  ### UseFileReferenceReturn
2437
2450
 
2438
- Ƭ **UseFileReferenceReturn**: `Object`
2439
-
2440
- Return value of the useFileReference hook.
2451
+ Ƭ **UseFileReferenceReturn**: UseFileReferenceReturnState & UseFileReferenceReturnUpload & UseFileReferenceReturnQueries & UseFileReferenceReturnMutations
2441
2452
 
2442
- #### Type declaration
2443
-
2444
- | Name | Type |
2445
- | :------ | :------ |
2446
- | `isLoading` | boolean |
2447
- | `error` | string \| null |
2448
- | `uploadFile` | Function |
2449
- | `getFileReference` | Function |
2450
- | `getFileUrl` | Function |
2451
- | `getSignedUrl` | Function |
2452
- | `updateFileReference` | Function |
2453
- | `deleteFileReference` | Function |
2454
- | `listFileReferences` | Function |
2455
- | `getFileCount` | Function |
2456
- | `clearError` | Function |
2453
+ Return value of the useFileReference hook (ISP: composed from focused interfaces).
2457
2454
 
2458
2455
  #### Defined in
2459
2456
 
2460
- [packages/core/src/hooks/useFileReference.ts:496](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L496)
2457
+ [packages/core/src/hooks/useFileReference.ts:510](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L510)
2461
2458
 
2462
2459
  ___
2463
2460
 
@@ -2487,7 +2484,31 @@ Return value of the useFileReferenceForRecord hook.
2487
2484
 
2488
2485
  #### Defined in
2489
2486
 
2490
- [packages/core/src/hooks/useFileReference.ts:513](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L513)
2487
+ [packages/core/src/hooks/useFileReference.ts:518](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L518)
2488
+
2489
+ ___
2490
+
2491
+ ### UnifiedAuthContextType
2492
+
2493
+ Ƭ **UnifiedAuthContextType**: UnifiedAuthContextAuth & UnifiedAuthContextOrganisation & UnifiedAuthContextEvent & UnifiedAuthContextInactivity & UnifiedAuthContextUnified
2494
+
2495
+ Unified auth context type (ISP: composed from focused interfaces).
2496
+
2497
+ #### Defined in
2498
+
2499
+ [packages/core/src/providers/services/UnifiedAuthContext.ts:92](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthContext.ts#L92)
2500
+
2501
+ ___
2502
+
2503
+ ### RBACConfig
2504
+
2505
+ Ƭ **RBACConfig**: RBACConfigCore & RBACConfigCache & RBACConfigAudit & RBACConfigSecurity & RBACConfigPerformance
2506
+
2507
+ RBAC config (ISP: composed from focused interfaces).
2508
+
2509
+ #### Defined in
2510
+
2511
+ [packages/core/src/rbac/config.ts:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L79)
2491
2512
 
2492
2513
  ___
2493
2514
 
@@ -2497,7 +2518,7 @@ ___
2497
2518
 
2498
2519
  #### Defined in
2499
2520
 
2500
- [packages/core/src/rbac/permissions.ts:181](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L181)
2521
+ [packages/core/src/rbac/permissions.ts:178](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L178)
2501
2522
 
2502
2523
  ___
2503
2524
 
@@ -2693,6 +2714,56 @@ ___
2693
2714
 
2694
2715
  [packages/core/src/rbac/types/functions.ts:284](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/functions.ts#L284)
2695
2716
 
2717
+ ___
2718
+
2719
+ ### ApiError
2720
+
2721
+ Ƭ **ApiError**: `Object`
2722
+
2723
+ Machine-readable error code and user-facing message for API failures.
2724
+
2725
+ #### Type declaration
2726
+
2727
+ | Name | Type |
2728
+ | :------ | :------ |
2729
+ | `code` | string |
2730
+ | `message` | string |
2731
+ | `details?` | object |
2732
+
2733
+ #### Defined in
2734
+
2735
+ [packages/core/src/types/api-result.ts:14](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L14)
2736
+
2737
+ ___
2738
+
2739
+ ### ApiResult
2740
+
2741
+ Ƭ **ApiResult**: Object \| Object
2742
+
2743
+ Type-safe result for async API functions: either success with data or failure with error.
2744
+
2745
+ #### Type parameters
2746
+
2747
+ | Name |
2748
+ | :------ |
2749
+ | `T` |
2750
+
2751
+ #### Defined in
2752
+
2753
+ [packages/core/src/types/api-result.ts:23](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L23)
2754
+
2755
+ ___
2756
+
2757
+ ### OrganisationContextType
2758
+
2759
+ Ƭ **OrganisationContextType**: OrganisationContextState & OrganisationContextMethods & OrganisationContextEnhanced
2760
+
2761
+ Organisation context type (ISP: composed from focused interfaces).
2762
+
2763
+ #### Defined in
2764
+
2765
+ [packages/core/src/types/organisation.ts:141](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/organisation.ts#L141)
2766
+
2696
2767
  ## Variables
2697
2768
 
2698
2769
  ### rbacCache
@@ -2706,7 +2777,7 @@ You can create additional instances if needed for different contexts.
2706
2777
 
2707
2778
  #### Defined in
2708
2779
 
2709
- [packages/core/src/rbac/cache.ts:303](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L303)
2780
+ [packages/core/src/rbac/cache.ts:302](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L302)
2710
2781
 
2711
2782
  ___
2712
2783
 
@@ -2728,7 +2799,7 @@ Cache key patterns for invalidation
2728
2799
 
2729
2800
  #### Defined in
2730
2801
 
2731
- [packages/core/src/rbac/cache.ts:308](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L308)
2802
+ [packages/core/src/rbac/cache.ts:307](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/cache.ts#L307)
2732
2803
 
2733
2804
  ___
2734
2805
 
@@ -2747,7 +2818,7 @@ ___
2747
2818
 
2748
2819
  #### Defined in
2749
2820
 
2750
- [packages/core/src/rbac/permissions.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L20)
2821
+ [packages/core/src/rbac/permissions.ts:17](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L17)
2751
2822
 
2752
2823
  ___
2753
2824
 
@@ -2781,7 +2852,7 @@ ___
2781
2852
 
2782
2853
  #### Defined in
2783
2854
 
2784
- [packages/core/src/rbac/permissions.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L31)
2855
+ [packages/core/src/rbac/permissions.ts:28](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L28)
2785
2856
 
2786
2857
  ___
2787
2858
 
@@ -2820,7 +2891,7 @@ ___
2820
2891
 
2821
2892
  #### Defined in
2822
2893
 
2823
- [packages/core/src/rbac/permissions.ts:66](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L66)
2894
+ [packages/core/src/rbac/permissions.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L63)
2824
2895
 
2825
2896
  ___
2826
2897
 
@@ -2855,7 +2926,7 @@ ___
2855
2926
 
2856
2927
  #### Defined in
2857
2928
 
2858
- [packages/core/src/rbac/permissions.ts:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L108)
2929
+ [packages/core/src/rbac/permissions.ts:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L105)
2859
2930
 
2860
2931
  ___
2861
2932
 
@@ -2937,7 +3008,7 @@ ___
2937
3008
 
2938
3009
  #### Defined in
2939
3010
 
2940
- [packages/core/src/rbac/permissions.ts:174](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L174)
3011
+ [packages/core/src/rbac/permissions.ts:171](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L171)
2941
3012
 
2942
3013
  ___
2943
3014
 
@@ -2950,7 +3021,7 @@ This is attached to clients created by SecureSupabaseClient
2950
3021
 
2951
3022
  #### Defined in
2952
3023
 
2953
- [packages/core/src/rbac/utils/clientSecurity.ts:17](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L17)
3024
+ [packages/core/src/rbac/utils/clientSecurity.ts:18](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L18)
2954
3025
 
2955
3026
  ___
2956
3027
 
@@ -2972,6 +3043,19 @@ ___
2972
3043
 
2973
3044
  ___
2974
3045
 
3046
+ ### DEFAULT\_APP\_PORT\_MAP
3047
+
3048
+ • **DEFAULT\_APP\_PORT\_MAP**: Record\<string, number\>
3049
+
3050
+ Default port mapping for pace apps in development.
3051
+ Maps app names (uppercase) to their development server ports.
3052
+
3053
+ #### Defined in
3054
+
3055
+ [packages/core/src/utils/app/appPortMap.ts:15](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appPortMap.ts#L15)
3056
+
3057
+ ___
3058
+
2975
3059
  ### logger
2976
3060
 
2977
3061
  • **logger**: `Object`
@@ -2991,7 +3075,7 @@ Default logger instance for convenience
2991
3075
 
2992
3076
  #### Defined in
2993
3077
 
2994
- [packages/core/src/utils/core/logger.ts:163](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/core/logger.ts#L163)
3078
+ [packages/core/src/utils/core/logger.ts:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/core/logger.ts#L167)
2995
3079
 
2996
3080
  ___
2997
3081
 
@@ -3122,7 +3206,7 @@ JSX.Element - The rendered address field
3122
3206
 
3123
3207
  #### Defined in
3124
3208
 
3125
- [packages/core/src/components/AddressField/AddressField.tsx:56](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/AddressField/AddressField.tsx#L56)
3209
+ [packages/core/src/components/AddressField/AddressField.tsx:266](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/AddressField/AddressField.tsx#L266)
3126
3210
 
3127
3211
  ___
3128
3212
 
@@ -3134,7 +3218,7 @@ ___
3134
3218
 
3135
3219
  | Name | Type |
3136
3220
  | :------ | :------ |
3137
- | `props` | HTMLAttributes\<HTMLParagraphElement\> & Object & RefAttributes\<HTMLParagraphElement\> |
3221
+ | `props` | HTMLAttributes\<HTMLDivElement\> & Object & RefAttributes\<HTMLDivElement\> |
3138
3222
 
3139
3223
  #### Returns
3140
3224
 
@@ -3186,6 +3270,26 @@ ReactNode
3186
3270
 
3187
3271
  ___
3188
3272
 
3273
+ ### AppSwitcher
3274
+
3275
+ ▸ **AppSwitcher**(`«destructured»`): null \| Element
3276
+
3277
+ #### Parameters
3278
+
3279
+ | Name | Type |
3280
+ | :------ | :------ |
3281
+ | `«destructured»` | AppSwitcherProps |
3282
+
3283
+ #### Returns
3284
+
3285
+ null \| Element
3286
+
3287
+ #### Defined in
3288
+
3289
+ [packages/core/src/components/AppSwitcher/AppSwitcher.tsx:155](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/AppSwitcher/AppSwitcher.tsx#L155)
3290
+
3291
+ ___
3292
+
3189
3293
  ### Avatar
3190
3294
 
3191
3295
  ▸ **Avatar**(`props`): ReactNode
@@ -3202,7 +3306,7 @@ ReactNode
3202
3306
 
3203
3307
  #### Defined in
3204
3308
 
3205
- [packages/core/src/components/Avatar/Avatar.tsx:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Avatar/Avatar.tsx#L99)
3309
+ [packages/core/src/components/Avatar/Avatar.tsx:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Avatar/Avatar.tsx#L100)
3206
3310
 
3207
3311
  ___
3208
3312
 
@@ -3285,7 +3389,7 @@ JSX.Element - The rendered calendar element
3285
3389
 
3286
3390
  #### Defined in
3287
3391
 
3288
- [packages/core/src/components/Calendar/Calendar.tsx:197](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Calendar/Calendar.tsx#L197)
3392
+ [packages/core/src/components/Calendar/Calendar.tsx:154](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Calendar/Calendar.tsx#L154)
3289
3393
 
3290
3394
  ___
3291
3395
 
@@ -3305,7 +3409,7 @@ ReactNode
3305
3409
 
3306
3410
  #### Defined in
3307
3411
 
3308
- [packages/core/src/components/Card/Card.tsx:179](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L179)
3412
+ [packages/core/src/components/Card/Card.tsx:180](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L180)
3309
3413
 
3310
3414
  ___
3311
3415
 
@@ -3325,7 +3429,7 @@ ReactNode
3325
3429
 
3326
3430
  #### Defined in
3327
3431
 
3328
- [packages/core/src/components/Card/Card.tsx:192](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L192)
3432
+ [packages/core/src/components/Card/Card.tsx:193](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L193)
3329
3433
 
3330
3434
  ___
3331
3435
 
@@ -3345,7 +3449,7 @@ ReactNode
3345
3449
 
3346
3450
  #### Defined in
3347
3451
 
3348
- [packages/core/src/components/Card/Card.tsx:204](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L204)
3452
+ [packages/core/src/components/Card/Card.tsx:205](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L205)
3349
3453
 
3350
3454
  ___
3351
3455
 
@@ -3365,7 +3469,7 @@ ReactNode
3365
3469
 
3366
3470
  #### Defined in
3367
3471
 
3368
- [packages/core/src/components/Card/Card.tsx:216](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L216)
3472
+ [packages/core/src/components/Card/Card.tsx:217](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L217)
3369
3473
 
3370
3474
  ___
3371
3475
 
@@ -3385,7 +3489,7 @@ ReactNode
3385
3489
 
3386
3490
  #### Defined in
3387
3491
 
3388
- [packages/core/src/components/Card/Card.tsx:228](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L228)
3492
+ [packages/core/src/components/Card/Card.tsx:229](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L229)
3389
3493
 
3390
3494
  ___
3391
3495
 
@@ -3405,7 +3509,7 @@ ReactNode
3405
3509
 
3406
3510
  #### Defined in
3407
3511
 
3408
- [packages/core/src/components/Card/Card.tsx:240](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L240)
3512
+ [packages/core/src/components/Card/Card.tsx:241](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L241)
3409
3513
 
3410
3514
  ___
3411
3515
 
@@ -3425,7 +3529,7 @@ ReactNode
3425
3529
 
3426
3530
  #### Defined in
3427
3531
 
3428
- [packages/core/src/components/Card/Card.tsx:252](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L252)
3532
+ [packages/core/src/components/Card/Card.tsx:253](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Card/Card.tsx#L253)
3429
3533
 
3430
3534
  ___
3431
3535
 
@@ -3487,7 +3591,7 @@ null \| Element
3487
3591
 
3488
3592
  #### Defined in
3489
3593
 
3490
- [packages/core/src/components/ContextSelector/ContextSelector.tsx:107](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ContextSelector/ContextSelector.tsx#L107)
3594
+ [packages/core/src/components/ContextSelector/ContextSelector.tsx:81](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ContextSelector/ContextSelector.tsx#L81)
3491
3595
 
3492
3596
  ___
3493
3597
 
@@ -3546,7 +3650,7 @@ Function
3546
3650
 
3547
3651
  An aggregation function that sums the specified field across all rows
3548
3652
 
3549
- ▸ \<`TRow`\>(`rows`, `column`): number
3653
+ ▸ \<`TRow`\>(`rows`, `_column`): number
3550
3654
 
3551
3655
  ##### Type parameters
3552
3656
 
@@ -3559,7 +3663,7 @@ An aggregation function that sums the specified field across all rows
3559
3663
  | Name | Type |
3560
3664
  | :------ | :------ |
3561
3665
  | `rows` | TRow[] |
3562
- | `column` | DataTableColumn\<TRow\> |
3666
+ | `_column` | DataTableColumn\<TRow\> |
3563
3667
 
3564
3668
  ##### Returns
3565
3669
 
@@ -3605,7 +3709,7 @@ Function
3605
3709
 
3606
3710
  An aggregation function that calculates the average of the specified field across all rows
3607
3711
 
3608
- ▸ \<`TRow`\>(`rows`, `column`): number
3712
+ ▸ \<`TRow`\>(`rows`, `_column`): number
3609
3713
 
3610
3714
  ##### Type parameters
3611
3715
 
@@ -3618,7 +3722,7 @@ An aggregation function that calculates the average of the specified field acros
3618
3722
  | Name | Type |
3619
3723
  | :------ | :------ |
3620
3724
  | `rows` | TRow[] |
3621
- | `column` | DataTableColumn\<TRow\> |
3725
+ | `_column` | DataTableColumn\<TRow\> |
3622
3726
 
3623
3727
  ##### Returns
3624
3728
 
@@ -3659,7 +3763,7 @@ Function
3659
3763
 
3660
3764
  An aggregation function that counts the number of rows
3661
3765
 
3662
- ▸ \<`TRow`\>(`rows`, `column`): number
3766
+ ▸ \<`TRow`\>(`rows`, `_column`): number
3663
3767
 
3664
3768
  ##### Type parameters
3665
3769
 
@@ -3672,7 +3776,7 @@ An aggregation function that counts the number of rows
3672
3776
  | Name | Type |
3673
3777
  | :------ | :------ |
3674
3778
  | `rows` | TRow[] |
3675
- | `column` | DataTableColumn\<TRow\> |
3779
+ | `_column` | DataTableColumn\<TRow\> |
3676
3780
 
3677
3781
  ##### Returns
3678
3782
 
@@ -3718,7 +3822,7 @@ Function
3718
3822
 
3719
3823
  An aggregation function that returns the minimum value of the specified field
3720
3824
 
3721
- ▸ \<`TRow`\>(`rows`, `column`): null \| number
3825
+ ▸ \<`TRow`\>(`rows`, `_column`): null \| number
3722
3826
 
3723
3827
  ##### Type parameters
3724
3828
 
@@ -3731,7 +3835,7 @@ An aggregation function that returns the minimum value of the specified field
3731
3835
  | Name | Type |
3732
3836
  | :------ | :------ |
3733
3837
  | `rows` | TRow[] |
3734
- | `column` | DataTableColumn\<TRow\> |
3838
+ | `_column` | DataTableColumn\<TRow\> |
3735
3839
 
3736
3840
  ##### Returns
3737
3841
 
@@ -3777,7 +3881,7 @@ Function
3777
3881
 
3778
3882
  An aggregation function that returns the maximum value of the specified field
3779
3883
 
3780
- ▸ \<`TRow`\>(`rows`, `column`): null \| number
3884
+ ▸ \<`TRow`\>(`rows`, `_column`): null \| number
3781
3885
 
3782
3886
  ##### Type parameters
3783
3887
 
@@ -3790,7 +3894,7 @@ An aggregation function that returns the maximum value of the specified field
3790
3894
  | Name | Type |
3791
3895
  | :------ | :------ |
3792
3896
  | `rows` | TRow[] |
3793
- | `column` | DataTableColumn\<TRow\> |
3897
+ | `_column` | DataTableColumn\<TRow\> |
3794
3898
 
3795
3899
  ##### Returns
3796
3900
 
@@ -3910,6 +4014,31 @@ Promise\<void\>
3910
4014
 
3911
4015
  ___
3912
4016
 
4017
+ ### DatePickerWithTimezone
4018
+
4019
+ ▸ **DatePickerWithTimezone**(`props`): Element
4020
+
4021
+ DatePickerWithTimezone component
4022
+ Date picker with timezone information display
4023
+
4024
+ #### Parameters
4025
+
4026
+ | Name | Type | Description |
4027
+ | :------ | :------ | :------ |
4028
+ | `props` | DatePickerWithTimezoneProps | DatePickerWithTimezone configuration |
4029
+
4030
+ #### Returns
4031
+
4032
+ Element
4033
+
4034
+ JSX.Element - The rendered date picker with timezone
4035
+
4036
+ #### Defined in
4037
+
4038
+ [packages/core/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx#L85)
4039
+
4040
+ ___
4041
+
3913
4042
  ### Dialog
3914
4043
 
3915
4044
  ▸ **Dialog**(`props`): ReactNode
@@ -3926,7 +4055,7 @@ ReactNode
3926
4055
 
3927
4056
  #### Defined in
3928
4057
 
3929
- [packages/core/src/components/Dialog/Dialog.tsx:312](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L312)
4058
+ [packages/core/src/components/Dialog/Dialog.tsx:263](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L263)
3930
4059
 
3931
4060
  ___
3932
4061
 
@@ -3938,7 +4067,7 @@ ___
3938
4067
 
3939
4068
  | Name | Type |
3940
4069
  | :------ | :------ |
3941
- | `props` | DialogTriggerProps & RefAttributes\<HTMLElement\> |
4070
+ | `props` | DialogTriggerProps & RefAttributes\<HTMLButtonElement\> |
3942
4071
 
3943
4072
  #### Returns
3944
4073
 
@@ -3946,7 +4075,7 @@ ReactNode
3946
4075
 
3947
4076
  #### Defined in
3948
4077
 
3949
- [packages/core/src/components/Dialog/Dialog.tsx:380](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L380)
4078
+ [packages/core/src/components/Dialog/Dialog.tsx:319](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L319)
3950
4079
 
3951
4080
  ___
3952
4081
 
@@ -3966,9 +4095,9 @@ ReactNode \| Promise\<ReactNode\>
3966
4095
 
3967
4096
  #### Defined in
3968
4097
 
3969
- [packages/core/src/components/Dialog/Dialog.tsx:417](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L417)
4098
+ [packages/core/src/components/Dialog/Dialog.tsx:357](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L357)
3970
4099
 
3971
- [packages/core/src/components/Dialog/Dialog.tsx:429](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L429)
4100
+ [packages/core/src/components/Dialog/Dialog.tsx:369](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L369)
3972
4101
 
3973
4102
  ___
3974
4103
 
@@ -3990,7 +4119,7 @@ JSX.Element - The semantic dialog content with overlay and optional close button
3990
4119
 
3991
4120
  #### Defined in
3992
4121
 
3993
- [packages/core/src/components/Dialog/Dialog.tsx:641](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L641)
4122
+ [packages/core/src/components/Dialog/Dialog.tsx:510](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L510)
3994
4123
 
3995
4124
  ___
3996
4125
 
@@ -4010,7 +4139,7 @@ ReactNode
4010
4139
 
4011
4140
  #### Defined in
4012
4141
 
4013
- [packages/core/src/components/Dialog/Dialog.tsx:1374](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1374)
4142
+ [packages/core/src/components/Dialog/Dialog.tsx:591](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L591)
4014
4143
 
4015
4144
  ___
4016
4145
 
@@ -4030,7 +4159,7 @@ Element
4030
4159
 
4031
4160
  #### Defined in
4032
4161
 
4033
- [packages/core/src/components/Dialog/Dialog.tsx:1426](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1426)
4162
+ [packages/core/src/components/Dialog/Dialog.tsx:634](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L634)
4034
4163
 
4035
4164
  ___
4036
4165
 
@@ -4050,7 +4179,7 @@ Element
4050
4179
 
4051
4180
  #### Defined in
4052
4181
 
4053
- [packages/core/src/components/Dialog/Dialog.tsx:1446](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1446)
4182
+ [packages/core/src/components/Dialog/Dialog.tsx:650](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L650)
4054
4183
 
4055
4184
  ___
4056
4185
 
@@ -4070,7 +4199,7 @@ Element
4070
4199
 
4071
4200
  #### Defined in
4072
4201
 
4073
- [packages/core/src/components/Dialog/Dialog.tsx:1548](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1548)
4202
+ [packages/core/src/components/Dialog/Dialog.tsx:751](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L751)
4074
4203
 
4075
4204
  ___
4076
4205
 
@@ -4090,7 +4219,7 @@ ReactNode
4090
4219
 
4091
4220
  #### Defined in
4092
4221
 
4093
- [packages/core/src/components/Dialog/Dialog.tsx:1568](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1568)
4222
+ [packages/core/src/components/Dialog/Dialog.tsx:767](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L767)
4094
4223
 
4095
4224
  ___
4096
4225
 
@@ -4110,7 +4239,7 @@ ReactNode
4110
4239
 
4111
4240
  #### Defined in
4112
4241
 
4113
- [packages/core/src/components/Dialog/Dialog.tsx:1607](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1607)
4242
+ [packages/core/src/components/Dialog/Dialog.tsx:805](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L805)
4114
4243
 
4115
4244
  ___
4116
4245
 
@@ -4135,7 +4264,7 @@ The error boundary provider
4135
4264
 
4136
4265
  #### Defined in
4137
4266
 
4138
- [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx:107](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx#L107)
4267
+ [packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx:71](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/ErrorBoundaryContext.tsx#L71)
4139
4268
 
4140
4269
  ___
4141
4270
 
@@ -4155,32 +4284,100 @@ ReactNode
4155
4284
 
4156
4285
  #### Defined in
4157
4286
 
4158
- [packages/core/src/components/ErrorBoundary/index.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/index.ts#L21)
4287
+ [packages/core/src/components/ErrorBoundary/index.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ErrorBoundary/index.ts#L20)
4159
4288
 
4160
4289
  ___
4161
4290
 
4162
4291
  ### FileDisplay
4163
4292
 
4164
- ▸ **FileDisplay**(`props`): Element
4293
+ ▸ **FileDisplay**(`«destructured»`): Element
4165
4294
 
4166
4295
  File display component.
4167
4296
  Renders files from the file reference system with support for previews, downloads, and public/private access.
4297
+ Context-aware: uses PublicPageProvider for public pages and UnifiedAuthProvider for authenticated pages.
4298
+
4299
+ #### Parameters
4300
+
4301
+ | Name | Type |
4302
+ | :------ | :------ |
4303
+ | `«destructured»` | FileDisplayProps |
4304
+
4305
+ #### Returns
4306
+
4307
+ Element
4308
+
4309
+ #### Defined in
4310
+
4311
+ [packages/core/src/components/FileDisplay/FileDisplay.tsx:335](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L335)
4312
+
4313
+ ___
4314
+
4315
+ ### usePublicFileDisplay
4316
+
4317
+ ▸ **usePublicFileDisplay**(`table_name`, `record_id`, `organisation_id`, `category`, `options`): UsePublicFileDisplayReturn
4318
+
4319
+ Hook for accessing public file references
4320
+
4321
+ This hook provides access to file references without requiring
4322
+ authentication. It only returns public files and generates public URLs.
4168
4323
 
4169
4324
  #### Parameters
4170
4325
 
4171
4326
  | Name | Type | Description |
4172
4327
  | :------ | :------ | :------ |
4173
- | `props` | FileDisplayProps | File display configuration |
4328
+ | `table_name` | undefined \| string | The table name containing the file reference |
4329
+ | `record_id` | undefined \| string | The record ID that owns the file(s) |
4330
+ | `organisation_id` | undefined \| string | The organisation ID for storage path |
4331
+ | `category` | undefined \| FileCategory | Optional file category to filter by (for single file mode) |
4332
+ | `options` | UsePublicFileDisplayOptions | Configuration options for caching and behavior |
4174
4333
 
4175
4334
  #### Returns
4176
4335
 
4177
- Element
4336
+ UsePublicFileDisplayReturn
4337
+
4338
+ Object containing file data, loading state, error, and refetch function
4339
+
4340
+ #### Defined in
4341
+
4342
+ [packages/core/src/components/FileDisplay/usePublicFileDisplay.ts:104](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/usePublicFileDisplay.ts#L104)
4343
+
4344
+ ___
4345
+
4346
+ ### clearPublicFileDisplayCache
4347
+
4348
+ ▸ **clearPublicFileDisplayCache**(): void
4349
+
4350
+ Clear all cached public file data
4351
+ Useful for testing or when you need to force refresh all data
4178
4352
 
4179
- The rendered file display
4353
+ #### Returns
4354
+
4355
+ void
4180
4356
 
4181
4357
  #### Defined in
4182
4358
 
4183
- [packages/core/src/components/FileDisplay/FileDisplay.tsx:961](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L961)
4359
+ [packages/core/src/components/FileDisplay/usePublicFileDisplay.ts:562](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/usePublicFileDisplay.ts#L562)
4360
+
4361
+ ___
4362
+
4363
+ ### getPublicFileDisplayCacheStats
4364
+
4365
+ ▸ **getPublicFileDisplayCacheStats**(): Object
4366
+
4367
+ Get cache statistics for debugging
4368
+
4369
+ #### Returns
4370
+
4371
+ Object
4372
+
4373
+ | Name | Type |
4374
+ | :------ | :------ |
4375
+ | `size` | number |
4376
+ | `keys` | string[] |
4377
+
4378
+ #### Defined in
4379
+
4380
+ [packages/core/src/components/FileDisplay/usePublicFileDisplay.ts:573](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/usePublicFileDisplay.ts#L573)
4184
4381
 
4185
4382
  ___
4186
4383
 
@@ -4200,7 +4397,7 @@ Element
4200
4397
 
4201
4398
  #### Defined in
4202
4399
 
4203
- [packages/core/src/components/FileUpload/FileUpload.tsx:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L58)
4400
+ [packages/core/src/components/FileUpload/FileUpload.tsx:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L74)
4204
4401
 
4205
4402
  ___
4206
4403
 
@@ -4220,7 +4417,7 @@ ReactNode
4220
4417
 
4221
4418
  #### Defined in
4222
4419
 
4223
- [packages/core/src/components/Footer/Footer.tsx:199](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Footer/Footer.tsx#L199)
4420
+ [packages/core/src/components/Footer/Footer.tsx:82](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Footer/Footer.tsx#L82)
4224
4421
 
4225
4422
  ___
4226
4423
 
@@ -4265,7 +4462,7 @@ JSX.Element - The rendered form with FormProvider context
4265
4462
 
4266
4463
  #### Defined in
4267
4464
 
4268
- [packages/core/src/components/Form/Form.tsx:147](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L147)
4465
+ [packages/core/src/components/Form/Form.tsx:156](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L156)
4269
4466
 
4270
4467
  ___
4271
4468
 
@@ -4357,32 +4554,27 @@ JSX.Element - The rendered form field with validation
4357
4554
 
4358
4555
  #### Defined in
4359
4556
 
4360
- [packages/core/src/components/Form/Form.tsx:668](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L668)
4557
+ [packages/core/src/components/Form/Form.tsx:468](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L468)
4361
4558
 
4362
4559
  ___
4363
4560
 
4364
4561
  ### Header
4365
4562
 
4366
- ▸ **Header**(`props`): Element
4367
-
4368
- Header component for application layouts.
4369
- Provides navigation, user menu, organisation/event selectors, and customizable branding.
4563
+ ▸ **Header**(`«destructured»`): Element
4370
4564
 
4371
4565
  #### Parameters
4372
4566
 
4373
- | Name | Type | Description |
4374
- | :------ | :------ | :------ |
4375
- | `props` | HeaderProps | Header configuration |
4567
+ | Name | Type |
4568
+ | :------ | :------ |
4569
+ | `«destructured»` | HeaderProps |
4376
4570
 
4377
4571
  #### Returns
4378
4572
 
4379
4573
  Element
4380
4574
 
4381
- The rendered header
4382
-
4383
4575
  #### Defined in
4384
4576
 
4385
- [packages/core/src/components/Header/Header.tsx:250](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Header/Header.tsx#L250)
4577
+ [packages/core/src/components/Header/Header.tsx:252](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Header/Header.tsx#L252)
4386
4578
 
4387
4579
  ___
4388
4580
 
@@ -4536,7 +4728,7 @@ React element with navigation menu functionality
4536
4728
 
4537
4729
  #### Defined in
4538
4730
 
4539
- [packages/core/src/components/NavigationMenu/NavigationMenu.tsx:393](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/NavigationMenu/NavigationMenu.tsx#L393)
4731
+ [packages/core/src/components/NavigationMenu/NavigationMenu.tsx:207](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/NavigationMenu/NavigationMenu.tsx#L207)
4540
4732
 
4541
4733
  ___
4542
4734
 
@@ -4706,7 +4898,7 @@ function AdminApp() {
4706
4898
 
4707
4899
  #### Defined in
4708
4900
 
4709
- [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:355](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L355)
4901
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:426](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L426)
4710
4902
 
4711
4903
  ___
4712
4904
 
@@ -4728,7 +4920,7 @@ JSX.Element - The rendered login page with enhanced functionality
4728
4920
 
4729
4921
  #### Defined in
4730
4922
 
4731
- [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:170](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L170)
4923
+ [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:169](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L169)
4732
4924
 
4733
4925
  ___
4734
4926
 
@@ -4776,7 +4968,7 @@ ___
4776
4968
 
4777
4969
  ### ProtectedRoute
4778
4970
 
4779
- ▸ **ProtectedRoute**(`props`): string \| number \| bigint \| true \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4971
+ ▸ **ProtectedRoute**(`props`): string \| number \| bigint \| boolean \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4780
4972
 
4781
4973
  ProtectedRoute component that handles authentication and optional event selection.
4782
4974
 
@@ -4798,13 +4990,13 @@ Strategy:
4798
4990
 
4799
4991
  #### Returns
4800
4992
 
4801
- string \| number \| bigint \| true \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4993
+ string \| number \| bigint \| boolean \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4802
4994
 
4803
4995
  React element with route protection logic
4804
4996
 
4805
4997
  #### Defined in
4806
4998
 
4807
- [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L129)
4999
+ [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:125](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L125)
4808
5000
 
4809
5001
  ___
4810
5002
 
@@ -4824,7 +5016,7 @@ Element
4824
5016
 
4825
5017
  #### Defined in
4826
5018
 
4827
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L130)
5019
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:134](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L134)
4828
5020
 
4829
5021
  ___
4830
5022
 
@@ -4844,7 +5036,7 @@ Element
4844
5036
 
4845
5037
  #### Defined in
4846
5038
 
4847
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:234](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L234)
5039
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:237](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L237)
4848
5040
 
4849
5041
  ___
4850
5042
 
@@ -4874,7 +5066,7 @@ React element with complete public page layout
4874
5066
 
4875
5067
  #### Defined in
4876
5068
 
4877
- [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:287](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L287)
5069
+ [packages/core/src/components/PublicLayout/PublicPageLayout.tsx:350](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageLayout.tsx#L350)
4878
5070
 
4879
5071
  ___
4880
5072
 
@@ -4903,7 +5095,7 @@ Element
4903
5095
 
4904
5096
  #### Defined in
4905
5097
 
4906
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:75](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L75)
5098
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L60)
4907
5099
 
4908
5100
  ___
4909
5101
 
@@ -4921,7 +5113,7 @@ Public page context with environment variables
4921
5113
 
4922
5114
  #### Defined in
4923
5115
 
4924
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:136](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L136)
5116
+ [packages/core/src/components/PublicLayout/usePublicPageContext.ts:18](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/usePublicPageContext.ts#L18)
4925
5117
 
4926
5118
  ___
4927
5119
 
@@ -4939,7 +5131,7 @@ True if we're in a public page context
4939
5131
 
4940
5132
  #### Defined in
4941
5133
 
4942
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:151](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L151)
5134
+ [packages/core/src/components/PublicLayout/usePublicPageContext.ts:33](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/usePublicPageContext.ts#L33)
4943
5135
 
4944
5136
  ___
4945
5137
 
@@ -4983,7 +5175,7 @@ The rendered select trigger
4983
5175
 
4984
5176
  #### Defined in
4985
5177
 
4986
- [packages/core/src/components/Select/Select.tsx:233](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L233)
5178
+ [packages/core/src/components/Select/Select.tsx:243](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L243)
4987
5179
 
4988
5180
  ___
4989
5181
 
@@ -5005,7 +5197,7 @@ The rendered select value display
5005
5197
 
5006
5198
  #### Defined in
5007
5199
 
5008
- [packages/core/src/components/Select/Select.tsx:409](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L409)
5200
+ [packages/core/src/components/Select/Select.tsx:426](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L426)
5009
5201
 
5010
5202
  ___
5011
5203
 
@@ -5027,7 +5219,7 @@ The rendered select content
5027
5219
 
5028
5220
  #### Defined in
5029
5221
 
5030
- [packages/core/src/components/Select/Select.tsx:439](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L439)
5222
+ [packages/core/src/components/Select/Select.tsx:456](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L456)
5031
5223
 
5032
5224
  ___
5033
5225
 
@@ -5049,7 +5241,7 @@ The rendered select item
5049
5241
 
5050
5242
  #### Defined in
5051
5243
 
5052
- [packages/core/src/components/Select/Select.tsx:553](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L553)
5244
+ [packages/core/src/components/Select/Select.tsx:570](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L570)
5053
5245
 
5054
5246
  ___
5055
5247
 
@@ -5071,7 +5263,7 @@ The rendered select group
5071
5263
 
5072
5264
  #### Defined in
5073
5265
 
5074
- [packages/core/src/components/Select/Select.tsx:663](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L663)
5266
+ [packages/core/src/components/Select/Select.tsx:680](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L680)
5075
5267
 
5076
5268
  ___
5077
5269
 
@@ -5093,7 +5285,7 @@ The rendered select label
5093
5285
 
5094
5286
  #### Defined in
5095
5287
 
5096
- [packages/core/src/components/Select/Select.tsx:688](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L688)
5288
+ [packages/core/src/components/Select/Select.tsx:705](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L705)
5097
5289
 
5098
5290
  ___
5099
5291
 
@@ -5115,7 +5307,7 @@ The rendered select separator
5115
5307
 
5116
5308
  #### Defined in
5117
5309
 
5118
- [packages/core/src/components/Select/Select.tsx:707](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L707)
5310
+ [packages/core/src/components/Select/Select.tsx:724](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L724)
5119
5311
 
5120
5312
  ___
5121
5313
 
@@ -5752,7 +5944,7 @@ ReactNode
5752
5944
 
5753
5945
  #### Defined in
5754
5946
 
5755
- [packages/core/src/components/UserMenu/UserMenu.tsx:138](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L138)
5947
+ [packages/core/src/components/UserMenu/UserMenu.tsx:137](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L137)
5756
5948
 
5757
5949
  ___
5758
5950
 
@@ -5890,75 +6082,6 @@ Object
5890
6082
 
5891
6083
  ___
5892
6084
 
5893
- ### usePublicFileDisplay
5894
-
5895
- ▸ **usePublicFileDisplay**(`table_name`, `record_id`, `organisation_id`, `category`, `options`): UsePublicFileDisplayReturn
5896
-
5897
- Hook for accessing public file references
5898
-
5899
- This hook provides access to file references without requiring
5900
- authentication. It only returns public files and generates public URLs.
5901
-
5902
- #### Parameters
5903
-
5904
- | Name | Type | Description |
5905
- | :------ | :------ | :------ |
5906
- | `table_name` | undefined \| string | The table name containing the file reference |
5907
- | `record_id` | undefined \| string | The record ID that owns the file(s) |
5908
- | `organisation_id` | undefined \| string | The organisation ID for storage path |
5909
- | `category` | undefined \| FileCategory | Optional file category to filter by (for single file mode) |
5910
- | `options` | UsePublicFileDisplayOptions | Configuration options for caching and behavior |
5911
-
5912
- #### Returns
5913
-
5914
- UsePublicFileDisplayReturn
5915
-
5916
- Object containing file data, loading state, error, and refetch function
5917
-
5918
- #### Defined in
5919
-
5920
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:94](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L94)
5921
-
5922
- ___
5923
-
5924
- ### clearPublicFileDisplayCache
5925
-
5926
- ▸ **clearPublicFileDisplayCache**(): void
5927
-
5928
- Clear all cached public file data
5929
- Useful for testing or when you need to force refresh all data
5930
-
5931
- #### Returns
5932
-
5933
- void
5934
-
5935
- #### Defined in
5936
-
5937
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:486](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L486)
5938
-
5939
- ___
5940
-
5941
- ### getPublicFileDisplayCacheStats
5942
-
5943
- ▸ **getPublicFileDisplayCacheStats**(): Object
5944
-
5945
- Get cache statistics for debugging
5946
-
5947
- #### Returns
5948
-
5949
- Object
5950
-
5951
- | Name | Type |
5952
- | :------ | :------ |
5953
- | `size` | number |
5954
- | `keys` | string[] |
5955
-
5956
- #### Defined in
5957
-
5958
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:497](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L497)
5959
-
5960
- ___
5961
-
5962
6085
  ### usePublicRouteParams
5963
6086
 
5964
6087
  ▸ **usePublicRouteParams**(`options?`): UsePublicRouteParamsReturn
@@ -6117,6 +6240,58 @@ OrganisationService
6117
6240
 
6118
6241
  ___
6119
6242
 
6243
+ ### useAccessibleApps
6244
+
6245
+ ▸ **useAccessibleApps**(`currentAppName?`): UseAccessibleAppsReturn
6246
+
6247
+ Hook to fetch all apps the current user has access to.
6248
+
6249
+ Queries rbac_event_app_roles to find all apps where the user has active roles,
6250
+ then joins with rbac_apps to get app details. Excludes the current app.
6251
+
6252
+ #### Parameters
6253
+
6254
+ | Name | Type | Description |
6255
+ | :------ | :------ | :------ |
6256
+ | `currentAppName?` | string | The name of the current app to exclude from results |
6257
+
6258
+ #### Returns
6259
+
6260
+ UseAccessibleAppsReturn
6261
+
6262
+ Object with apps array, loading state, error, and refetch function
6263
+
6264
+ **`Example`**
6265
+
6266
+ ```tsx
6267
+ import { useAccessibleApps } from '@jmruthers/pace-core';
6268
+ import { useUnifiedAuth } from '@jmruthers/pace-core/providers';
6269
+
6270
+ function AppSwitcher() {
6271
+ const { appName } = useUnifiedAuth();
6272
+ const { apps, loading, error } = useAccessibleApps(appName);
6273
+
6274
+ if (loading) return <div>Loading apps...</div>;
6275
+ if (error) return <div>Error: {error.message}</div>;
6276
+
6277
+ return (
6278
+ <select>
6279
+ {apps.map(app => (
6280
+ <option key={app.id} value={app.name}>
6281
+ {app.displayName}
6282
+ </option>
6283
+ ))}
6284
+ </select>
6285
+ );
6286
+ }
6287
+ ```
6288
+
6289
+ #### Defined in
6290
+
6291
+ [packages/core/src/hooks/useAccessibleApps.ts:77](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useAccessibleApps.ts#L77)
6292
+
6293
+ ___
6294
+
6120
6295
  ### useAppConfig
6121
6296
 
6122
6297
  ▸ **useAppConfig**(): UseAppConfigReturn
@@ -6132,30 +6307,60 @@ App configuration and loading state
6132
6307
 
6133
6308
  #### Defined in
6134
6309
 
6135
- [packages/core/src/hooks/useAppConfig.ts:38](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useAppConfig.ts#L38)
6310
+ [packages/core/src/hooks/useAppConfig.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useAppConfig.ts#L39)
6311
+
6312
+ ___
6313
+
6314
+ ### useEventTheme
6315
+
6316
+ ▸ **useEventTheme**(`event?`): void
6317
+
6318
+ Hook that automatically applies event-specific theming.
6319
+ Works in authenticated mode (via EventProvider) or public page mode (via event prop).
6320
+
6321
+ #### Parameters
6322
+
6323
+ | Name | Type | Description |
6324
+ | :------ | :------ | :------ |
6325
+ | `event?` | null \| Event | Optional event object for public page mode. If not provided, uses EventProvider context. |
6326
+
6327
+ #### Returns
6328
+
6329
+ void
6330
+
6331
+ #### Defined in
6332
+
6333
+ [packages/core/src/hooks/useEventTheme.ts:101](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEventTheme.ts#L101)
6334
+
6335
+ ___
6336
+
6337
+ ### useOptionalEvents
6136
6338
 
6137
- ___
6339
+ ▸ **useOptionalEvents**(): Object
6138
6340
 
6139
- ### useEventTheme
6341
+ Optional event context hook that never throws.
6342
+ Use when a component must work with or without EventServiceProvider (e.g. PaceAppLayout).
6140
6343
 
6141
- **useEventTheme**(`event?`): void
6344
+ #### Returns
6142
6345
 
6143
- Hook that automatically applies event-specific theming.
6144
- Works in authenticated mode (via EventProvider) or public page mode (via event prop).
6346
+ Object
6145
6347
 
6146
- #### Parameters
6348
+ `{ selectedEvent: Event | null }` — when provider is absent, `selectedEvent` is always null.
6147
6349
 
6148
- | Name | Type | Description |
6149
- | :------ | :------ | :------ |
6150
- | `event?` | null \| Event | Optional event object for public page mode. If not provided, uses EventProvider context. |
6350
+ | Name | Type |
6351
+ | :------ | :------ |
6352
+ | `selectedEvent` | Event \| null |
6151
6353
 
6152
- #### Returns
6354
+ **`Example`**
6153
6355
 
6154
- void
6356
+ ```ts
6357
+ const { selectedEvent } = useOptionalEvents();
6358
+ // selectedEvent is null when outside EventServiceProvider; otherwise the current selected event.
6359
+ ```
6155
6360
 
6156
6361
  #### Defined in
6157
6362
 
6158
- [packages/core/src/hooks/useEventTheme.ts:101](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEventTheme.ts#L101)
6363
+ [packages/core/src/hooks/useEvents.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L31)
6159
6364
 
6160
6365
  ___
6161
6366
 
@@ -6199,7 +6404,7 @@ function MyComponent() {
6199
6404
 
6200
6405
  #### Defined in
6201
6406
 
6202
- [packages/core/src/hooks/useEvents.ts:55](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L55)
6407
+ [packages/core/src/hooks/useEvents.ts:95](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L95)
6203
6408
 
6204
6409
  ___
6205
6410
 
@@ -6240,7 +6445,7 @@ File reference service with upload, get, and URL methods
6240
6445
 
6241
6446
  #### Defined in
6242
6447
 
6243
- [packages/core/src/hooks/useFileReference.ts:69](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L69)
6448
+ [packages/core/src/hooks/useFileReference.ts:91](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L91)
6244
6449
 
6245
6450
  ___
6246
6451
 
@@ -6279,7 +6484,7 @@ Object
6279
6484
 
6280
6485
  #### Defined in
6281
6486
 
6282
- [packages/core/src/hooks/useFileReference.ts:252](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L252)
6487
+ [packages/core/src/hooks/useFileReference.ts:243](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L243)
6283
6488
 
6284
6489
  ___
6285
6490
 
@@ -6312,7 +6517,7 @@ Object
6312
6517
 
6313
6518
  #### Defined in
6314
6519
 
6315
- [packages/core/src/hooks/useFileReference.ts:356](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L356)
6520
+ [packages/core/src/hooks/useFileReference.ts:347](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L347)
6316
6521
 
6317
6522
  ___
6318
6523
 
@@ -6356,7 +6561,7 @@ Object
6356
6561
 
6357
6562
  #### Defined in
6358
6563
 
6359
- [packages/core/src/hooks/useFileReference.ts:434](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L434)
6564
+ [packages/core/src/hooks/useFileReference.ts:424](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L424)
6360
6565
 
6361
6566
  ___
6362
6567
 
@@ -6382,7 +6587,7 @@ Provides state management for form dialogs including:
6382
6587
 
6383
6588
  | Name | Type | Description |
6384
6589
  | :------ | :------ | :------ |
6385
- | `options` | UseFormDialogOptions\<T\> | Configuration options for the hook |
6590
+ | `options` | UseFormDialogOptions | Configuration options for the hook |
6386
6591
 
6387
6592
  #### Returns
6388
6593
 
@@ -6435,7 +6640,7 @@ UseInactivityTrackerReturn
6435
6640
 
6436
6641
  #### Defined in
6437
6642
 
6438
- [packages/core/src/hooks/useInactivityTracker.ts:131](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useInactivityTracker.ts#L131)
6643
+ [packages/core/src/hooks/useInactivityTracker.ts:218](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useInactivityTracker.ts#L218)
6439
6644
 
6440
6645
  ___
6441
6646
 
@@ -6473,7 +6678,7 @@ OrganisationSecurityHook
6473
6678
 
6474
6679
  #### Defined in
6475
6680
 
6476
- [packages/core/src/hooks/useOrganisationSecurity.ts:44](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useOrganisationSecurity.ts#L44)
6681
+ [packages/core/src/hooks/useOrganisationSecurity.ts:182](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useOrganisationSecurity.ts#L182)
6477
6682
 
6478
6683
  ___
6479
6684
 
@@ -6588,40 +6793,6 @@ UseFormReturn\<TypeOf\<T\>, any, TypeOf\<T\>\>
6588
6793
 
6589
6794
  ___
6590
6795
 
6591
- ### OrganisationProvider
6592
-
6593
- ▸ **OrganisationProvider**(`«destructured»`): Element
6594
-
6595
- OrganisationProvider component
6596
-
6597
- Wraps OrganisationServiceProvider and automatically gets auth context.
6598
-
6599
- #### Parameters
6600
-
6601
- | Name | Type |
6602
- | :------ | :------ |
6603
- | `«destructured»` | OrganisationProviderProps |
6604
-
6605
- #### Returns
6606
-
6607
- Element
6608
-
6609
- **`Example`**
6610
-
6611
- ```tsx
6612
- <UnifiedAuthProvider supabaseClient={supabase} appName="my-app">
6613
- <OrganisationProvider>
6614
- <App />
6615
- </OrganisationProvider>
6616
- </UnifiedAuthProvider>
6617
- ```
6618
-
6619
- #### Defined in
6620
-
6621
- [packages/core/src/providers/OrganisationProvider.tsx:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/OrganisationProvider.tsx#L42)
6622
-
6623
- ___
6624
-
6625
6796
  ### EventServiceProvider
6626
6797
 
6627
6798
  ▸ **EventServiceProvider**(`props`): Element
@@ -6643,7 +6814,7 @@ The event service provider
6643
6814
 
6644
6815
  #### Defined in
6645
6816
 
6646
- [packages/core/src/providers/services/EventServiceProvider.tsx:52](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/EventServiceProvider.tsx#L52)
6817
+ [packages/core/src/providers/services/EventServiceProvider.tsx:38](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/EventServiceProvider.tsx#L38)
6647
6818
 
6648
6819
  ___
6649
6820
 
@@ -6668,7 +6839,7 @@ The inactivity service provider
6668
6839
 
6669
6840
  #### Defined in
6670
6841
 
6671
- [packages/core/src/providers/services/InactivityServiceProvider.tsx:51](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/InactivityServiceProvider.tsx#L51)
6842
+ [packages/core/src/providers/services/InactivityServiceProvider.tsx:37](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/InactivityServiceProvider.tsx#L37)
6672
6843
 
6673
6844
  ___
6674
6845
 
@@ -6693,23 +6864,7 @@ The organisation service provider
6693
6864
 
6694
6865
  #### Defined in
6695
6866
 
6696
- [packages/core/src/providers/services/OrganisationServiceProvider.tsx:48](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/OrganisationServiceProvider.tsx#L48)
6697
-
6698
- ___
6699
-
6700
- ### useUnifiedAuth
6701
-
6702
- ▸ **useUnifiedAuth**(): UnifiedAuthContextType
6703
-
6704
- #### Returns
6705
-
6706
- UnifiedAuthContextType
6707
-
6708
- Unified authentication context
6709
-
6710
- #### Defined in
6711
-
6712
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:141](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L141)
6867
+ [packages/core/src/providers/services/OrganisationServiceProvider.tsx:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/OrganisationServiceProvider.tsx#L34)
6713
6868
 
6714
6869
  ___
6715
6870
 
@@ -6734,13 +6889,36 @@ The unified auth provider
6734
6889
 
6735
6890
  #### Defined in
6736
6891
 
6737
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:756](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L756)
6892
+ [packages/core/src/providers/services/UnifiedAuthProvider.tsx:398](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L398)
6893
+
6894
+ ___
6895
+
6896
+ ### useUnifiedAuth
6897
+
6898
+ ▸ **useUnifiedAuth**(): UnifiedAuthContextType
6899
+
6900
+ Hook to access unified authentication context.
6901
+ Must be used within a UnifiedAuthProvider.
6902
+
6903
+ #### Returns
6904
+
6905
+ UnifiedAuthContextType
6906
+
6907
+ Unified authentication context
6908
+
6909
+ **`Throws`**
6910
+
6911
+ Error if used outside UnifiedAuthProvider
6912
+
6913
+ #### Defined in
6914
+
6915
+ [packages/core/src/providers/services/useUnifiedAuth.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/useUnifiedAuth.ts#L21)
6738
6916
 
6739
6917
  ___
6740
6918
 
6741
6919
  ### withPermissionGuard
6742
6920
 
6743
- ▸ **withPermissionGuard**\<`T`\>(`config`, `handler`): Function
6921
+ ▸ **withPermissionGuard**\<`T`, `R`\>(`config`, `handler`): Function
6744
6922
 
6745
6923
  Permission Guard for Server Handlers
6746
6924
 
@@ -6750,7 +6928,8 @@ Wraps a server handler with permission checking.
6750
6928
 
6751
6929
  | Name | Type |
6752
6930
  | :------ | :------ |
6753
- | `T` | extends any[] |
6931
+ | `T` | extends readonly [ServerRequest, unknown] |
6932
+ | `R` | `R` |
6754
6933
 
6755
6934
  #### Parameters
6756
6935
 
@@ -6767,7 +6946,7 @@ Function
6767
6946
 
6768
6947
  Wrapped handler function
6769
6948
 
6770
- ▸ (`...args`): Promise\<any\>
6949
+ ▸ (`...args`): Promise\<R\>
6771
6950
 
6772
6951
  ##### Parameters
6773
6952
 
@@ -6777,7 +6956,7 @@ Wrapped handler function
6777
6956
 
6778
6957
  ##### Returns
6779
6958
 
6780
- Promise\<any\>
6959
+ Promise\<R\>
6781
6960
 
6782
6961
  **`Example`**
6783
6962
 
@@ -6793,13 +6972,13 @@ const protectedHandler = withPermissionGuard(
6793
6972
 
6794
6973
  #### Defined in
6795
6974
 
6796
- [packages/core/src/rbac/adapters.tsx:43](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L43)
6975
+ [packages/core/src/rbac/adapters.tsx:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L58)
6797
6976
 
6798
6977
  ___
6799
6978
 
6800
6979
  ### withAccessLevelGuard
6801
6980
 
6802
- ▸ **withAccessLevelGuard**\<`T`\>(`minLevel`, `handler`): Function
6981
+ ▸ **withAccessLevelGuard**\<`T`, `R`\>(`minLevel`, `handler`): Function
6803
6982
 
6804
6983
  Access Level Guard for Server Handlers
6805
6984
 
@@ -6809,7 +6988,8 @@ Wraps a server handler with access level checking.
6809
6988
 
6810
6989
  | Name | Type |
6811
6990
  | :------ | :------ |
6812
- | `T` | extends any[] |
6991
+ | `T` | extends readonly [ServerRequest, unknown] |
6992
+ | `R` | `R` |
6813
6993
 
6814
6994
  #### Parameters
6815
6995
 
@@ -6824,7 +7004,7 @@ Function
6824
7004
 
6825
7005
  Wrapped handler function
6826
7006
 
6827
- ▸ (`...args`): Promise\<any\>
7007
+ ▸ (`...args`): Promise\<R\>
6828
7008
 
6829
7009
  ##### Parameters
6830
7010
 
@@ -6834,7 +7014,7 @@ Wrapped handler function
6834
7014
 
6835
7015
  ##### Returns
6836
7016
 
6837
- Promise\<any\>
7017
+ Promise\<R\>
6838
7018
 
6839
7019
  **`Example`**
6840
7020
 
@@ -6850,13 +7030,13 @@ const adminHandler = withAccessLevelGuard(
6850
7030
 
6851
7031
  #### Defined in
6852
7032
 
6853
- [packages/core/src/rbac/adapters.tsx:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L100)
7033
+ [packages/core/src/rbac/adapters.tsx:116](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L116)
6854
7034
 
6855
7035
  ___
6856
7036
 
6857
7037
  ### withRoleGuard
6858
7038
 
6859
- ▸ **withRoleGuard**\<`T`\>(`config`, `handler`): Function
7039
+ ▸ **withRoleGuard**\<`T`, `R`\>(`config`, `handler`): Function
6860
7040
 
6861
7041
  Role Guard for Server Handlers
6862
7042
 
@@ -6867,7 +7047,8 @@ This is the primary middleware for routing protection as specified in the contra
6867
7047
 
6868
7048
  | Name | Type |
6869
7049
  | :------ | :------ |
6870
- | `T` | extends any[] |
7050
+ | `T` | extends readonly [ServerRequest, unknown] |
7051
+ | `R` | `R` |
6871
7052
 
6872
7053
  #### Parameters
6873
7054
 
@@ -6886,7 +7067,7 @@ Function
6886
7067
 
6887
7068
  Wrapped handler function
6888
7069
 
6889
- ▸ (`...args`): Promise\<any\>
7070
+ ▸ (`...args`): Promise\<R\>
6890
7071
 
6891
7072
  ##### Parameters
6892
7073
 
@@ -6896,7 +7077,7 @@ Wrapped handler function
6896
7077
 
6897
7078
  ##### Returns
6898
7079
 
6899
- Promise\<any\>
7080
+ Promise\<R\>
6900
7081
 
6901
7082
  **`Example`**
6902
7083
 
@@ -6916,7 +7097,7 @@ const adminHandler = withRoleGuard(
6916
7097
 
6917
7098
  #### Defined in
6918
7099
 
6919
- [packages/core/src/rbac/adapters.tsx:161](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L161)
7100
+ [packages/core/src/rbac/adapters.tsx:180](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L180)
6920
7101
 
6921
7102
  ___
6922
7103
 
@@ -6979,7 +7160,7 @@ export default createRBACMiddleware({
6979
7160
 
6980
7161
  #### Defined in
6981
7162
 
6982
- [packages/core/src/rbac/adapters.tsx:284](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L284)
7163
+ [packages/core/src/rbac/adapters.tsx:303](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L303)
6983
7164
 
6984
7165
  ___
6985
7166
 
@@ -7038,7 +7219,7 @@ app.use(createRBACExpressMiddleware({
7038
7219
 
7039
7220
  #### Defined in
7040
7221
 
7041
- [packages/core/src/rbac/adapters.tsx:351](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L351)
7222
+ [packages/core/src/rbac/adapters.tsx:368](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L368)
7042
7223
 
7043
7224
  ___
7044
7225
 
@@ -7061,13 +7242,31 @@ void
7061
7242
 
7062
7243
  #### Defined in
7063
7244
 
7064
- [packages/core/src/rbac/api.ts:45](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L45)
7245
+ [packages/core/src/rbac/api.ts:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L57)
7246
+
7247
+ ___
7248
+
7249
+ ### isRBACInitialized
7250
+
7251
+ ▸ **isRBACInitialized**(): boolean
7252
+
7253
+ Check if RBAC system is initialized
7254
+
7255
+ #### Returns
7256
+
7257
+ boolean
7258
+
7259
+ True if RBAC is initialized
7260
+
7261
+ #### Defined in
7262
+
7263
+ [packages/core/src/rbac/api.ts:110](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L110)
7065
7264
 
7066
7265
  ___
7067
7266
 
7068
7267
  ### getAccessLevel
7069
7268
 
7070
- ▸ **getAccessLevel**(`input`, `appName?`): Promise\<AccessLevel\>
7269
+ ▸ **getAccessLevel**(`input`, `appName?`): Promise\<ApiResult\<AccessLevel\>\>
7071
7270
 
7072
7271
  Get user's access level in a scope
7073
7272
 
@@ -7082,7 +7281,7 @@ Get user's access level in a scope
7082
7281
 
7083
7282
  #### Returns
7084
7283
 
7085
- Promise\<AccessLevel\>
7284
+ Promise\<ApiResult\<AccessLevel\>\>
7086
7285
 
7087
7286
  Promise resolving to access level
7088
7287
 
@@ -7097,13 +7296,13 @@ const accessLevel = await getAccessLevel({
7097
7296
 
7098
7297
  #### Defined in
7099
7298
 
7100
- [packages/core/src/rbac/api.ts:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L132)
7299
+ [packages/core/src/rbac/api.ts:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L143)
7101
7300
 
7102
7301
  ___
7103
7302
 
7104
7303
  ### getPermissionMap
7105
7304
 
7106
- ▸ **getPermissionMap**(`input`, `appName?`): Promise\<PermissionMap\>
7305
+ ▸ **getPermissionMap**(`input`, `appName?`): Promise\<ApiResult\<PermissionMap\>\>
7107
7306
 
7108
7307
  Get user's permission map for a scope
7109
7308
 
@@ -7118,7 +7317,7 @@ Get user's permission map for a scope
7118
7317
 
7119
7318
  #### Returns
7120
7319
 
7121
- Promise\<PermissionMap\>
7320
+ Promise\<ApiResult\<PermissionMap\>\>
7122
7321
 
7123
7322
  Promise resolving to permission map
7124
7323
 
@@ -7137,13 +7336,13 @@ const permissions = await getPermissionMap({
7137
7336
 
7138
7337
  #### Defined in
7139
7338
 
7140
- [packages/core/src/rbac/api.ts:192](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L192)
7339
+ [packages/core/src/rbac/api.ts:203](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L203)
7141
7340
 
7142
7341
  ___
7143
7342
 
7144
7343
  ### resolveAppContext
7145
7344
 
7146
- ▸ **resolveAppContext**(`input`): Promise\<RBACAppContext \| null\>
7345
+ ▸ **resolveAppContext**(`input`): Promise\<ApiResult\<RBACAppContext \| null\>\>
7147
7346
 
7148
7347
  #### Parameters
7149
7348
 
@@ -7155,17 +7354,17 @@ ___
7155
7354
 
7156
7355
  #### Returns
7157
7356
 
7158
- Promise\<RBACAppContext \| null\>
7357
+ Promise\<ApiResult\<RBACAppContext \| null\>\>
7159
7358
 
7160
7359
  #### Defined in
7161
7360
 
7162
- [packages/core/src/rbac/api.ts:226](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L226)
7361
+ [packages/core/src/rbac/api.ts:237](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L237)
7163
7362
 
7164
7363
  ___
7165
7364
 
7166
7365
  ### getRoleContext
7167
7366
 
7168
- ▸ **getRoleContext**(`input`, `appName?`): Promise\<RBACRoleContext\>
7367
+ ▸ **getRoleContext**(`input`, `appName?`): Promise\<ApiResult\<RBACRoleContext\>\>
7169
7368
 
7170
7369
  #### Parameters
7171
7370
 
@@ -7178,17 +7377,17 @@ ___
7178
7377
 
7179
7378
  #### Returns
7180
7379
 
7181
- Promise\<RBACRoleContext\>
7380
+ Promise\<ApiResult\<RBACRoleContext\>\>
7182
7381
 
7183
7382
  #### Defined in
7184
7383
 
7185
- [packages/core/src/rbac/api.ts:239](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L239)
7384
+ [packages/core/src/rbac/api.ts:250](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L250)
7186
7385
 
7187
7386
  ___
7188
7387
 
7189
7388
  ### isPermitted
7190
7389
 
7191
- ▸ **isPermitted**(`input`, `appName?`, `precomputedSuperAdmin?`): Promise\<boolean\>
7390
+ ▸ **isPermitted**(`input`, `appName?`, `precomputedSuperAdmin?`): Promise\<ApiResult\<boolean\>\>
7192
7391
 
7193
7392
  Check if user has a specific permission
7194
7393
 
@@ -7202,7 +7401,7 @@ Check if user has a specific permission
7202
7401
 
7203
7402
  #### Returns
7204
7403
 
7205
- Promise\<boolean\>
7404
+ Promise\<ApiResult\<boolean\>\>
7206
7405
 
7207
7406
  Promise resolving to permission result
7208
7407
 
@@ -7219,13 +7418,13 @@ const canManage = await isPermitted({
7219
7418
 
7220
7419
  #### Defined in
7221
7420
 
7222
- [packages/core/src/rbac/api.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L285)
7421
+ [packages/core/src/rbac/api.ts:301](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L301)
7223
7422
 
7224
7423
  ___
7225
7424
 
7226
7425
  ### isPermittedCached
7227
7426
 
7228
- ▸ **isPermittedCached**(`input`, `appName?`): Promise\<boolean\>
7427
+ ▸ **isPermittedCached**(`input`, `appName?`): Promise\<ApiResult\<boolean\>\>
7229
7428
 
7230
7429
  Check if user has a specific permission (cached version)
7231
7430
 
@@ -7241,19 +7440,19 @@ and checks cache before making new requests. Uses session cache for page-level c
7241
7440
 
7242
7441
  #### Returns
7243
7442
 
7244
- Promise\<boolean\>
7443
+ Promise\<ApiResult\<boolean\>\>
7245
7444
 
7246
7445
  Promise resolving to permission result
7247
7446
 
7248
7447
  #### Defined in
7249
7448
 
7250
- [packages/core/src/rbac/api.ts:455](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L455)
7449
+ [packages/core/src/rbac/api.ts:465](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L465)
7251
7450
 
7252
7451
  ___
7253
7452
 
7254
7453
  ### hasAnyPermission
7255
7454
 
7256
- ▸ **hasAnyPermission**(`input`): Promise\<boolean\>
7455
+ ▸ **hasAnyPermission**(`input`): Promise\<ApiResult\<boolean\>\>
7257
7456
 
7258
7457
  Check if user has any of the specified permissions
7259
7458
 
@@ -7269,19 +7468,19 @@ Check if user has any of the specified permissions
7269
7468
 
7270
7469
  #### Returns
7271
7470
 
7272
- Promise\<boolean\>
7471
+ Promise\<ApiResult\<boolean\>\>
7273
7472
 
7274
7473
  Promise resolving to true if user has any permission
7275
7474
 
7276
7475
  #### Defined in
7277
7476
 
7278
- [packages/core/src/rbac/api.ts:499](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L499)
7477
+ [packages/core/src/rbac/api.ts:506](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L506)
7279
7478
 
7280
7479
  ___
7281
7480
 
7282
7481
  ### hasAllPermissions
7283
7482
 
7284
- ▸ **hasAllPermissions**(`input`): Promise\<boolean\>
7483
+ ▸ **hasAllPermissions**(`input`): Promise\<ApiResult\<boolean\>\>
7285
7484
 
7286
7485
  Check if user has all of the specified permissions
7287
7486
 
@@ -7297,13 +7496,13 @@ Check if user has all of the specified permissions
7297
7496
 
7298
7497
  #### Returns
7299
7498
 
7300
- Promise\<boolean\>
7499
+ Promise\<ApiResult\<boolean\>\>
7301
7500
 
7302
7501
  Promise resolving to true if user has all permissions
7303
7502
 
7304
7503
  #### Defined in
7305
7504
 
7306
- [packages/core/src/rbac/api.ts:527](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L527)
7505
+ [packages/core/src/rbac/api.ts:536](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L536)
7307
7506
 
7308
7507
  ___
7309
7508
 
@@ -7313,239 +7512,39 @@ ___
7313
7512
 
7314
7513
  Create an audit manager instance
7315
7514
 
7316
- #### Parameters
7317
-
7318
- | Name | Type | Default value | Description |
7319
- | :------ | :------ | :------ | :------ |
7320
- | `supabase` | SupabaseClient\<Database, "public", "public", Object, Object\> | `undefined` | Supabase client |
7321
- | `useBatching` | boolean | `true` | Whether to use batched audit logging (default: true) |
7322
- | `batchConfig?` | Object | `undefined` | Optional batch configuration |
7323
- | `batchConfig.batchWindow?` | number | `undefined` | - |
7324
- | `batchConfig.batchSize?` | number | `undefined` | - |
7325
-
7326
- #### Returns
7327
-
7328
- RBACAuditManager
7329
-
7330
- RBACAuditManager instance
7331
-
7332
- #### Defined in
7333
-
7334
- [packages/core/src/rbac/audit.ts:444](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L444)
7335
-
7336
- ___
7337
-
7338
- ### setGlobalAuditManager
7339
-
7340
- ▸ **setGlobalAuditManager**(`manager`): void
7341
-
7342
- Set the global audit manager
7343
-
7344
- #### Parameters
7345
-
7346
- | Name | Type | Description |
7347
- | :------ | :------ | :------ |
7348
- | `manager` | RBACAuditManager | Audit manager instance |
7349
-
7350
- #### Returns
7351
-
7352
- void
7353
-
7354
- #### Defined in
7355
-
7356
- [packages/core/src/rbac/audit.ts:464](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L464)
7357
-
7358
- ___
7359
-
7360
- ### getGlobalAuditManager
7361
-
7362
- ▸ **getGlobalAuditManager**(): RBACAuditManager \| null
7363
-
7364
- Get the global audit manager
7365
-
7366
- #### Returns
7367
-
7368
- RBACAuditManager \| null
7369
-
7370
- Global audit manager or null if not set
7371
-
7372
- #### Defined in
7373
-
7374
- [packages/core/src/rbac/audit.ts:473](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L473)
7375
-
7376
- ___
7377
-
7378
- ### emitAuditEvent
7379
-
7380
- ▸ **emitAuditEvent**(`event`): Promise\<void\>
7381
-
7382
- Emit an audit event using the global audit manager
7383
-
7384
- #### Parameters
7385
-
7386
- | Name | Type | Description |
7387
- | :------ | :------ | :------ |
7388
- | `event` | AuditEventPayload | Audit event payload |
7389
-
7390
- #### Returns
7391
-
7392
- Promise\<void\>
7393
-
7394
- #### Defined in
7395
-
7396
- [packages/core/src/rbac/audit.ts:482](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L482)
7397
-
7398
- ___
7399
-
7400
- ### validateDatabaseConfiguration
7401
-
7402
- ▸ **validateDatabaseConfiguration**(`supabase`, `appName`): Promise\<DatabaseComplianceResult\>
7403
-
7404
- Validate database configuration
7405
-
7406
- #### Parameters
7407
-
7408
- | Name | Type | Description |
7409
- | :------ | :------ | :------ |
7410
- | `supabase` | SupabaseClient\<Database, "public", "public", Object, Object\> | Supabase client |
7411
- | `appName` | string | Application name to validate |
7412
-
7413
- #### Returns
7414
-
7415
- Promise\<DatabaseComplianceResult\>
7416
-
7417
- Database compliance result
7418
-
7419
- #### Defined in
7420
-
7421
- [packages/core/src/rbac/compliance/database-validator.ts:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/database-validator.ts#L36)
7422
-
7423
- ___
7424
-
7425
- ### getCustomAuthCodeFixes
7426
-
7427
- ▸ **getCustomAuthCodeFixes**(`customCodeName`, `type`): QuickFix
7428
-
7429
- Get quick fix suggestions for custom auth code
7430
-
7431
- #### Parameters
7432
-
7433
- | Name | Type |
7434
- | :------ | :------ |
7435
- | `customCodeName` | string |
7436
- | `type` | "hook" \| "component" \| "util" |
7437
-
7438
- #### Returns
7439
-
7440
- QuickFix
7441
-
7442
- #### Defined in
7443
-
7444
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L20)
7445
-
7446
- ___
7447
-
7448
- ### getDuplicateConfigFixes
7449
-
7450
- ▸ **getDuplicateConfigFixes**(): QuickFix
7451
-
7452
- Get quick fix suggestions for duplicate Supabase config
7453
-
7454
- #### Returns
7455
-
7456
- QuickFix
7457
-
7458
- #### Defined in
7459
-
7460
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L99)
7461
-
7462
- ___
7463
-
7464
- ### getUnprotectedPageFixes
7465
-
7466
- ▸ **getUnprotectedPageFixes**(): QuickFix
7467
-
7468
- Get quick fix suggestions for unprotected pages
7469
-
7470
- #### Returns
7471
-
7472
- QuickFix
7473
-
7474
- #### Defined in
7475
-
7476
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L132)
7477
-
7478
- ___
7479
-
7480
- ### getDirectSupabaseAuthFixes
7481
-
7482
- ▸ **getDirectSupabaseAuthFixes**(): QuickFix
7483
-
7484
- Get quick fix suggestions for direct Supabase auth usage
7485
-
7486
- #### Returns
7487
-
7488
- QuickFix
7489
-
7490
- #### Defined in
7491
-
7492
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:161](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L161)
7493
-
7494
- ___
7495
-
7496
- ### getQuickFixes
7497
-
7498
- ▸ **getQuickFixes**(`issueType`, `details?`): QuickFix[]
7499
-
7500
- Get all quick fix suggestions for a compliance issue
7501
-
7502
- #### Parameters
7503
-
7504
- | Name | Type |
7505
- | :------ | :------ |
7506
- | `issueType` | string |
7507
- | `details?` | Record\<string, any\> |
7508
-
7509
- #### Returns
7510
-
7511
- QuickFix[]
7512
-
7513
- #### Defined in
7514
-
7515
- [packages/core/src/rbac/compliance/quick-fix-suggestions.ts:187](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/quick-fix-suggestions.ts#L187)
7516
-
7517
- ___
7518
-
7519
- ### checkRuntimeCompliance
7520
-
7521
- ▸ **checkRuntimeCompliance**(): RuntimeComplianceResult
7522
-
7523
- Check runtime compliance
7515
+ #### Parameters
7524
7516
 
7525
- This function checks if the RBAC system is properly set up and logs warnings
7526
- to the console if issues are found. This is intended for development-time
7527
- validation only.
7517
+ | Name | Type | Default value | Description |
7518
+ | :------ | :------ | :------ | :------ |
7519
+ | `supabase` | SupabaseClient\<Database, "public", "public", Object, Object\> | `undefined` | Supabase client |
7520
+ | `useBatching` | boolean | `true` | Whether to use batched audit logging (default: true) |
7521
+ | `batchConfig?` | Object | `undefined` | Optional batch configuration |
7522
+ | `batchConfig.batchWindow?` | number | `undefined` | - |
7523
+ | `batchConfig.batchSize?` | number | `undefined` | - |
7528
7524
 
7529
7525
  #### Returns
7530
7526
 
7531
- RuntimeComplianceResult
7527
+ RBACAuditManager
7532
7528
 
7533
- Runtime compliance result
7529
+ RBACAuditManager instance
7534
7530
 
7535
7531
  #### Defined in
7536
7532
 
7537
- [packages/core/src/rbac/compliance/runtime-compliance.ts:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L36)
7533
+ [packages/core/src/rbac/audit.ts:450](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L450)
7538
7534
 
7539
7535
  ___
7540
7536
 
7541
- ### validateAndWarn
7537
+ ### setGlobalAuditManager
7538
+
7539
+ ▸ **setGlobalAuditManager**(`manager`): void
7542
7540
 
7543
- **validateAndWarn**(): void
7541
+ Set the global audit manager
7544
7542
 
7545
- Validate and warn about RBAC setup issues
7543
+ #### Parameters
7546
7544
 
7547
- This is a convenience function that checks compliance and logs warnings.
7548
- Call this in development mode to get early warnings about setup issues.
7545
+ | Name | Type | Description |
7546
+ | :------ | :------ | :------ |
7547
+ | `manager` | RBACAuditManager | Audit manager instance |
7549
7548
 
7550
7549
  #### Returns
7551
7550
 
@@ -7553,61 +7552,49 @@ void
7553
7552
 
7554
7553
  #### Defined in
7555
7554
 
7556
- [packages/core/src/rbac/compliance/runtime-compliance.ts:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L74)
7555
+ [packages/core/src/rbac/audit.ts:470](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L470)
7557
7556
 
7558
7557
  ___
7559
7558
 
7560
- ### isRBACInitialized
7559
+ ### getGlobalAuditManager
7561
7560
 
7562
- ▸ **isRBACInitialized**(): boolean
7561
+ ▸ **getGlobalAuditManager**(): RBACAuditManager \| null
7563
7562
 
7564
- Check if RBAC system is initialized
7563
+ Get the global audit manager
7565
7564
 
7566
7565
  #### Returns
7567
7566
 
7568
- boolean
7567
+ RBACAuditManager \| null
7569
7568
 
7570
- true if RBAC is initialized, false otherwise
7569
+ Global audit manager or null if not set
7571
7570
 
7572
7571
  #### Defined in
7573
7572
 
7574
- [packages/core/src/rbac/compliance/setup-validator.ts:29](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/setup-validator.ts#L29)
7573
+ [packages/core/src/rbac/audit.ts:479](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L479)
7575
7574
 
7576
7575
  ___
7577
7576
 
7578
- ### getSetupIssues
7579
-
7580
- ▸ **getSetupIssues**(): SetupIssue[]
7581
-
7582
- Get setup issues
7583
-
7584
- #### Returns
7585
-
7586
- SetupIssue[]
7587
-
7588
- Array of setup issues
7589
-
7590
- #### Defined in
7591
-
7592
- [packages/core/src/rbac/compliance/setup-validator.ts:47](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/setup-validator.ts#L47)
7577
+ ### emitAuditEvent
7593
7578
 
7594
- ___
7579
+ ▸ **emitAuditEvent**(`event`): Promise\<ApiResult\<void\>\>
7595
7580
 
7596
- ### validateRBACSetup
7581
+ Emit an audit event using the global audit manager
7597
7582
 
7598
- **validateRBACSetup**(): ComplianceResult
7583
+ #### Parameters
7599
7584
 
7600
- Validate RBAC setup
7585
+ | Name | Type | Description |
7586
+ | :------ | :------ | :------ |
7587
+ | `event` | AuditEventPayload | Audit event payload |
7601
7588
 
7602
7589
  #### Returns
7603
7590
 
7604
- ComplianceResult
7591
+ Promise\<ApiResult\<void\>\>
7605
7592
 
7606
- Compliance result with issues and recommendations
7593
+ ApiResult for consistency with API error handling
7607
7594
 
7608
7595
  #### Defined in
7609
7596
 
7610
- [packages/core/src/rbac/compliance/setup-validator.ts:122](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/setup-validator.ts#L122)
7597
+ [packages/core/src/rbac/audit.ts:489](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L489)
7611
7598
 
7612
7599
  ___
7613
7600
 
@@ -7634,7 +7621,7 @@ JSX.Element - The rendered access denied page
7634
7621
 
7635
7622
  #### Defined in
7636
7623
 
7637
- [packages/core/src/rbac/components/AccessDenied.tsx:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L78)
7624
+ [packages/core/src/rbac/components/AccessDenied.tsx:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L85)
7638
7625
 
7639
7626
  ___
7640
7627
 
@@ -7662,7 +7649,7 @@ React element with navigation permission enforcement
7662
7649
 
7663
7650
  #### Defined in
7664
7651
 
7665
- [packages/core/src/rbac/components/NavigationGuard.tsx:115](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L115)
7652
+ [packages/core/src/rbac/components/NavigationGuard.tsx:117](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L117)
7666
7653
 
7667
7654
  ___
7668
7655
 
@@ -7682,7 +7669,7 @@ ReactNode
7682
7669
 
7683
7670
  #### Defined in
7684
7671
 
7685
- [packages/core/src/rbac/components/PagePermissionGuard.tsx:521](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L521)
7672
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:328](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L328)
7686
7673
 
7687
7674
  ___
7688
7675
 
@@ -7702,7 +7689,7 @@ RBACConfig
7702
7689
 
7703
7690
  #### Defined in
7704
7691
 
7705
- [packages/core/src/rbac/config.ts:121](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L121)
7692
+ [packages/core/src/rbac/config.ts:164](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L164)
7706
7693
 
7707
7694
  ___
7708
7695
 
@@ -7716,7 +7703,7 @@ RBACConfig \| null
7716
7703
 
7717
7704
  #### Defined in
7718
7705
 
7719
- [packages/core/src/rbac/config.ts:126](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L126)
7706
+ [packages/core/src/rbac/config.ts:169](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L169)
7720
7707
 
7721
7708
  ___
7722
7709
 
@@ -7730,7 +7717,7 @@ RBACLogger
7730
7717
 
7731
7718
  #### Defined in
7732
7719
 
7733
- [packages/core/src/rbac/config.ts:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L130)
7720
+ [packages/core/src/rbac/config.ts:173](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L173)
7734
7721
 
7735
7722
  ___
7736
7723
 
@@ -7744,7 +7731,7 @@ boolean
7744
7731
 
7745
7732
  #### Defined in
7746
7733
 
7747
- [packages/core/src/rbac/config.ts:134](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L134)
7734
+ [packages/core/src/rbac/config.ts:177](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L177)
7748
7735
 
7749
7736
  ___
7750
7737
 
@@ -7758,7 +7745,7 @@ boolean
7758
7745
 
7759
7746
  #### Defined in
7760
7747
 
7761
- [packages/core/src/rbac/config.ts:138](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L138)
7748
+ [packages/core/src/rbac/config.ts:181](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L181)
7762
7749
 
7763
7750
  ___
7764
7751
 
@@ -7783,7 +7770,7 @@ RBACEngine instance
7783
7770
 
7784
7771
  #### Defined in
7785
7772
 
7786
- [packages/core/src/rbac/engine.ts:640](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L640)
7773
+ [packages/core/src/rbac/engine.ts:680](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L680)
7787
7774
 
7788
7775
  ___
7789
7776
 
@@ -7819,21 +7806,21 @@ Access level state and methods
7819
7806
  function MyComponent() {
7820
7807
  const { accessLevel, isLoading, error } = useAccessLevel(userId, scope);
7821
7808
 
7822
- if (isLoading) return <div>Loading access level...</div>;
7823
- if (error) return <div>Error: {error.message}</div>;
7809
+ if (isLoading) return null; // or use a loading component
7810
+ if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
7824
7811
 
7825
7812
  return (
7826
- <div>
7827
- Access Level: {accessLevel}
7813
+ <>
7814
+ <p>Access Level: {accessLevel}</p>
7828
7815
  {accessLevel >= AccessLevel.ADMIN && <AdminPanel />}
7829
- </div>
7816
+ </>
7830
7817
  );
7831
7818
  }
7832
7819
  ```
7833
7820
 
7834
7821
  #### Defined in
7835
7822
 
7836
- [packages/core/src/rbac/hooks/permissions/useAccessLevel.ts:32](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useAccessLevel.ts#L32)
7823
+ [packages/core/src/rbac/hooks/permissions/useAccessLevel.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useAccessLevel.ts#L31)
7837
7824
 
7838
7825
  ___
7839
7826
 
@@ -7874,16 +7861,16 @@ Permission check state and methods
7874
7861
  function MyComponent() {
7875
7862
  const { can, isLoading, error } = useCan(userId, scope, 'read:users');
7876
7863
 
7877
- if (isLoading) return <div>Checking permission...</div>;
7878
- if (error) return <div>Error: {error.message}</div>;
7864
+ if (isLoading) return null; // or use a loading component
7865
+ if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
7879
7866
 
7880
- return can ? <UserList /> : <div>Access denied</div>;
7867
+ return can ? <UserList /> : <AccessDenied />;
7881
7868
  }
7882
7869
  ```
7883
7870
 
7884
7871
  #### Defined in
7885
7872
 
7886
- [packages/core/src/rbac/hooks/permissions/useCan.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useCan.ts#L31)
7873
+ [packages/core/src/rbac/hooks/permissions/useCan.ts:109](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useCan.ts#L109)
7887
7874
 
7888
7875
  ___
7889
7876
 
@@ -7925,15 +7912,15 @@ function MyComponent() {
7925
7912
  ['read:users', 'create:users', 'update:users']
7926
7913
  );
7927
7914
 
7928
- if (isLoading) return <div>Checking permissions...</div>;
7929
- if (error) return <div>Error: {error.message}</div>;
7915
+ if (isLoading) return null; // or use a loading component
7916
+ if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
7930
7917
 
7931
7918
  return (
7932
- <div>
7919
+ <>
7933
7920
  {results['read:users'] && <UserList />}
7934
7921
  {results['create:users'] && <CreateUserButton />}
7935
7922
  {results['update:users'] && <EditUserButton />}
7936
- </div>
7923
+ </>
7937
7924
  );
7938
7925
  }
7939
7926
  ```
@@ -7986,21 +7973,21 @@ function MyComponent() {
7986
7973
  appId
7987
7974
  );
7988
7975
 
7989
- if (isLoading) return <div>Loading...</div>;
7990
- if (error) return <div>Error: {error.message}</div>;
7976
+ if (isLoading) return null; // or use a loading component
7977
+ if (error) return <Alert variant="destructive"><AlertDescription>Error: {error.message}</AlertDescription></Alert>;
7991
7978
 
7992
7979
  return (
7993
- <div>
7980
+ <>
7994
7981
  {permissions['read:users'] && <UserList />}
7995
7982
  {permissions['create:users'] && <CreateUserButton />}
7996
- </div>
7983
+ </>
7997
7984
  );
7998
7985
  }
7999
7986
  ```
8000
7987
 
8001
7988
  #### Defined in
8002
7989
 
8003
- [packages/core/src/rbac/hooks/permissions/usePermissions.ts:38](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/usePermissions.ts#L38)
7990
+ [packages/core/src/rbac/hooks/permissions/usePermissions.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/usePermissions.ts#L39)
8004
7991
 
8005
7992
  ___
8006
7993
 
@@ -8020,7 +8007,7 @@ UserRBACContext
8020
8007
 
8021
8008
  #### Defined in
8022
8009
 
8023
- [packages/core/src/rbac/hooks/useRBAC.ts:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRBAC.ts#L53)
8010
+ [packages/core/src/rbac/hooks/useRBAC.ts:175](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRBAC.ts#L175)
8024
8011
 
8025
8012
  ___
8026
8013
 
@@ -8071,79 +8058,20 @@ ___
8071
8058
 
8072
8059
  ▸ **useResourcePermissions**(`resource`, `options?`): ResourcePermissions
8073
8060
 
8074
- Hook to check permissions for a specific resource
8075
-
8076
- This hook encapsulates the common pattern of checking create/update/delete/read
8077
- permissions for a resource type. It handles scope resolution, user context,
8078
- and provides a simple API for permission checking.
8079
-
8080
- **Page Permission Support:**
8081
- When an `appId` is available in the resolved scope, the hook automatically:
8082
- 1. Waits for scope resolution to complete (including `appId` being set)
8083
- 2. Constructs permission strings with the `page.` prefix (e.g., `create:page.planning`)
8084
- 3. Passes the resource name as `pageId` to enable page-based permission checks
8085
-
8086
- This ensures permission strings match the format returned by `rbac_permissions_get`
8087
- (e.g., `create:page.planning`) rather than resource-based format (e.g., `create:planning`).
8088
-
8089
- **Scope Resolution Timing:**
8090
- The hook waits for scope resolution to complete before constructing permission strings.
8091
- This prevents timing issues where permission checks use the wrong format (e.g., `delete:planning`
8092
- instead of `delete:page.planning`) when `appId` is not yet available in the scope.
8093
-
8094
- The RPC function `rbac_check_permission_simplified` will resolve the page name to a page ID
8095
- and check page permissions if the resource matches a registered page in `rbac_app_pages`.
8096
- If the resource is not a registered page, it will fall back to resource-based permission checking.
8097
-
8098
8061
  #### Parameters
8099
8062
 
8100
- | Name | Type | Description |
8101
- | :------ | :------ | :------ |
8102
- | `resource` | string | The resource name (e.g., 'contacts', 'risks', 'planning') Can be a resource name or a page name registered in rbac_app_pages |
8103
- | `options` | UseResourcePermissionsOptions | Optional configuration |
8063
+ | Name | Type |
8064
+ | :------ | :------ |
8065
+ | `resource` | string |
8066
+ | `options` | UseResourcePermissionsOptions |
8104
8067
 
8105
8068
  #### Returns
8106
8069
 
8107
8070
  ResourcePermissions
8108
8071
 
8109
- Object with permission check functions and scope
8110
-
8111
- **`Example`**
8112
-
8113
- ```tsx
8114
- function useContacts() {
8115
- const { canCreate, canUpdate, canDelete } = useResourcePermissions('contacts');
8116
-
8117
- const addContact = async (data: ContactData) => {
8118
- if (!canCreate('contacts')) {
8119
- throw new Error("Permission denied");
8120
- }
8121
- // ... perform mutation
8122
- };
8123
- }
8124
- ```
8125
-
8126
- **`Example`**
8127
-
8128
- ```tsx
8129
- // Works with page names when appId is available in scope
8130
- function usePlanning() {
8131
- const { canCreate, canUpdate, canDelete } = useResourcePermissions('planning');
8132
-
8133
- // Will check page permissions if 'planning' is registered in rbac_app_pages
8134
- // Falls back to resource permissions if not a registered page
8135
- const deleteItem = async (id: string) => {
8136
- if (!canDelete('planning')) {
8137
- throw new Error("Permission denied");
8138
- }
8139
- // ... perform deletion
8140
- };
8141
- }
8142
- ```
8143
-
8144
8072
  #### Defined in
8145
8073
 
8146
- [packages/core/src/rbac/hooks/useResourcePermissions.ts:141](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L141)
8074
+ [packages/core/src/rbac/hooks/useResourcePermissions.ts:177](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L177)
8147
8075
 
8148
8076
  ___
8149
8077
 
@@ -8169,7 +8097,7 @@ Object
8169
8097
 
8170
8098
  #### Defined in
8171
8099
 
8172
- [packages/core/src/rbac/hooks/useRoleManagement.ts:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L120)
8100
+ [packages/core/src/rbac/hooks/useRoleManagement.ts:101](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L101)
8173
8101
 
8174
8102
  ___
8175
8103
 
@@ -8207,7 +8135,7 @@ function MyComponent() {
8207
8135
  const supabase = useSecureSupabase();
8208
8136
 
8209
8137
  if (!supabase) {
8210
- return <div>Loading context...</div>;
8138
+ return null; // or use a loading component
8211
8139
  }
8212
8140
 
8213
8141
  // Use supabase client - organisation context is automatically injected
@@ -8217,7 +8145,7 @@ function MyComponent() {
8217
8145
 
8218
8146
  #### Defined in
8219
8147
 
8220
- [packages/core/src/rbac/hooks/useSecureSupabase.ts:208](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useSecureSupabase.ts#L208)
8148
+ [packages/core/src/rbac/hooks/useSecureSupabase.ts:209](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useSecureSupabase.ts#L209)
8221
8149
 
8222
8150
  ___
8223
8151
 
@@ -8383,7 +8311,7 @@ True if valid, false otherwise
8383
8311
 
8384
8312
  #### Defined in
8385
8313
 
8386
- [packages/core/src/rbac/permissions.ts:159](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L159)
8314
+ [packages/core/src/rbac/permissions.ts:156](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L156)
8387
8315
 
8388
8316
  ___
8389
8317
 
@@ -8399,7 +8327,7 @@ void
8399
8327
 
8400
8328
  #### Defined in
8401
8329
 
8402
- [packages/core/src/rbac/request-deduplication.ts:75](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/request-deduplication.ts#L75)
8330
+ [packages/core/src/rbac/request-deduplication.ts:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/request-deduplication.ts#L76)
8403
8331
 
8404
8332
  ___
8405
8333
 
@@ -8417,7 +8345,7 @@ Number of in-flight requests
8417
8345
 
8418
8346
  #### Defined in
8419
8347
 
8420
- [packages/core/src/rbac/request-deduplication.ts:84](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/request-deduplication.ts#L84)
8348
+ [packages/core/src/rbac/request-deduplication.ts:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/request-deduplication.ts#L85)
8421
8349
 
8422
8350
  ___
8423
8351
 
@@ -8469,7 +8397,7 @@ const superAdminClient = createSecureClient(
8469
8397
 
8470
8398
  #### Defined in
8471
8399
 
8472
- [packages/core/src/rbac/secureClient.ts:592](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L592)
8400
+ [packages/core/src/rbac/secureClient.ts:618](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L618)
8473
8401
 
8474
8402
  ___
8475
8403
 
@@ -8497,7 +8425,7 @@ SecureSupabaseClient instance
8497
8425
 
8498
8426
  #### Defined in
8499
8427
 
8500
- [packages/core/src/rbac/secureClient.ts:612](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L612)
8428
+ [packages/core/src/rbac/secureClient.ts:638](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L638)
8501
8429
 
8502
8430
  ___
8503
8431
 
@@ -8532,7 +8460,7 @@ if (isSecureClient(supabase)) {
8532
8460
 
8533
8461
  #### Defined in
8534
8462
 
8535
- [packages/core/src/rbac/utils/clientSecurity.ts:35](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L35)
8463
+ [packages/core/src/rbac/utils/clientSecurity.ts:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L36)
8536
8464
 
8537
8465
  ___
8538
8466
 
@@ -8564,7 +8492,7 @@ warnIfInsecureClient(supabase, 'MyComponent');
8564
8492
 
8565
8493
  #### Defined in
8566
8494
 
8567
- [packages/core/src/rbac/utils/clientSecurity.ts:56](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L56)
8495
+ [packages/core/src/rbac/utils/clientSecurity.ts:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/utils/clientSecurity.ts#L57)
8568
8496
 
8569
8497
  ___
8570
8498
 
@@ -8706,22 +8634,24 @@ const palette = parseAndNormalizeEventColours(colours);
8706
8634
 
8707
8635
  #### Defined in
8708
8636
 
8709
- [packages/core/src/theming/parseEventColours.ts:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/parseEventColours.ts#L99)
8637
+ [packages/core/src/theming/parseEventColours.ts:107](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/parseEventColours.ts#L107)
8710
8638
 
8711
8639
  ___
8712
8640
 
8713
8641
  ### applyPalette
8714
8642
 
8715
- ▸ **applyPalette**(`palette`): void
8643
+ ▸ **applyPalette**(`palette`, `eventName?`): void
8716
8644
 
8717
8645
  Applies a complete palette to the document by setting CSS variables on :root.
8718
8646
  Uses document.documentElement.style.setProperty() for runtime updates.
8647
+ When eventName is provided, also sets --print-event-name for print styles.
8719
8648
 
8720
8649
  #### Parameters
8721
8650
 
8722
8651
  | Name | Type | Description |
8723
8652
  | :------ | :------ | :------ |
8724
8653
  | `palette` | PaletteData | Complete palette data with main, sec, and acc palettes |
8654
+ | `eventName?` | string | Optional event name to set as --print-event-name (e.g. for print headers/footers) |
8725
8655
 
8726
8656
  #### Returns
8727
8657
 
@@ -8729,7 +8659,7 @@ void
8729
8659
 
8730
8660
  #### Defined in
8731
8661
 
8732
- [packages/core/src/theming/runtime.ts:70](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L70)
8662
+ [packages/core/src/theming/runtime.ts:133](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L133)
8733
8663
 
8734
8664
  ___
8735
8665
 
@@ -8746,7 +8676,113 @@ void
8746
8676
 
8747
8677
  #### Defined in
8748
8678
 
8749
- [packages/core/src/theming/runtime.ts:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L120)
8679
+ [packages/core/src/theming/runtime.ts:187](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L187)
8680
+
8681
+ ___
8682
+
8683
+ ### ok
8684
+
8685
+ ▸ **ok**\<`T`\>(`data`): ApiResult\<T\>
8686
+
8687
+ Creates a successful ApiResult.
8688
+
8689
+ #### Type parameters
8690
+
8691
+ | Name |
8692
+ | :------ |
8693
+ | `T` |
8694
+
8695
+ #### Parameters
8696
+
8697
+ | Name | Type |
8698
+ | :------ | :------ |
8699
+ | `data` | T |
8700
+
8701
+ #### Returns
8702
+
8703
+ ApiResult\<T\>
8704
+
8705
+ #### Defined in
8706
+
8707
+ [packages/core/src/types/api-result.ts:30](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L30)
8708
+
8709
+ ___
8710
+
8711
+ ### err
8712
+
8713
+ ▸ **err**(`error`): ApiResult\<never\>
8714
+
8715
+ Creates a failed ApiResult.
8716
+
8717
+ #### Parameters
8718
+
8719
+ | Name | Type |
8720
+ | :------ | :------ |
8721
+ | `error` | ApiError |
8722
+
8723
+ #### Returns
8724
+
8725
+ ApiResult\<never\>
8726
+
8727
+ #### Defined in
8728
+
8729
+ [packages/core/src/types/api-result.ts:37](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L37)
8730
+
8731
+ ___
8732
+
8733
+ ### isOk
8734
+
8735
+ ▸ **isOk**\<`T`\>(`result`): result is Object
8736
+
8737
+ Type guard: narrows ApiResult to success variant.
8738
+
8739
+ #### Type parameters
8740
+
8741
+ | Name |
8742
+ | :------ |
8743
+ | `T` |
8744
+
8745
+ #### Parameters
8746
+
8747
+ | Name | Type |
8748
+ | :------ | :------ |
8749
+ | `result` | ApiResult\<T\> |
8750
+
8751
+ #### Returns
8752
+
8753
+ result is Object
8754
+
8755
+ #### Defined in
8756
+
8757
+ [packages/core/src/types/api-result.ts:44](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L44)
8758
+
8759
+ ___
8760
+
8761
+ ### isErr
8762
+
8763
+ ▸ **isErr**\<`T`\>(`result`): result is Object
8764
+
8765
+ Type guard: narrows ApiResult to failure variant.
8766
+
8767
+ #### Type parameters
8768
+
8769
+ | Name |
8770
+ | :------ |
8771
+ | `T` |
8772
+
8773
+ #### Parameters
8774
+
8775
+ | Name | Type |
8776
+ | :------ | :------ |
8777
+ | `result` | ApiResult\<T\> |
8778
+
8779
+ #### Returns
8780
+
8781
+ result is Object
8782
+
8783
+ #### Defined in
8784
+
8785
+ [packages/core/src/types/api-result.ts:51](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/api-result.ts#L51)
8750
8786
 
8751
8787
  ___
8752
8788
 
@@ -8820,6 +8856,98 @@ string
8820
8856
 
8821
8857
  ___
8822
8858
 
8859
+ ### getAppPort
8860
+
8861
+ ▸ **getAppPort**(`appName`): number \| undefined
8862
+
8863
+ Get the port for an app in development.
8864
+
8865
+ #### Parameters
8866
+
8867
+ | Name | Type | Description |
8868
+ | :------ | :------ | :------ |
8869
+ | `appName` | string | The app name (case-insensitive) |
8870
+
8871
+ #### Returns
8872
+
8873
+ number \| undefined
8874
+
8875
+ The port number, or undefined if not found
8876
+
8877
+ **`Example`**
8878
+
8879
+ ```ts
8880
+ const port = getAppPort('CAKE'); // Returns 8091
8881
+ const port = getAppPort('cake'); // Returns 8091 (case-insensitive)
8882
+ ```
8883
+
8884
+ #### Defined in
8885
+
8886
+ [packages/core/src/utils/app/appPortMap.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appPortMap.ts#L39)
8887
+
8888
+ ___
8889
+
8890
+ ### getAllAppPorts
8891
+
8892
+ ▸ **getAllAppPorts**(): Record\<string, number\>
8893
+
8894
+ Get all registered app ports.
8895
+
8896
+ #### Returns
8897
+
8898
+ Record\<string, number\>
8899
+
8900
+ Record of app names to ports
8901
+
8902
+ #### Defined in
8903
+
8904
+ [packages/core/src/utils/app/appPortMap.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appPortMap.ts#L49)
8905
+
8906
+ ___
8907
+
8908
+ ### buildAppUrl
8909
+
8910
+ ▸ **buildAppUrl**(`options`): string
8911
+
8912
+ Builds a URL for switching to another pace app.
8913
+
8914
+ In development: Uses port-based URLs (e.g., `http://localhost:8091/`)
8915
+ In production: Uses subdomain pattern (e.g., `https://cake.example.com/`)
8916
+
8917
+ #### Parameters
8918
+
8919
+ | Name | Type | Description |
8920
+ | :------ | :------ | :------ |
8921
+ | `options` | BuildAppUrlOptions | URL building options |
8922
+
8923
+ #### Returns
8924
+
8925
+ string
8926
+
8927
+ The full URL to the app
8928
+
8929
+ **`Example`**
8930
+
8931
+ ```ts
8932
+ // Development
8933
+ buildAppUrl({ appName: 'CAKE' });
8934
+ // Returns: 'http://localhost:8091/'
8935
+
8936
+ // Production
8937
+ buildAppUrl({ appName: 'CAKE' });
8938
+ // Returns: 'https://cake.example.com/'
8939
+
8940
+ // With custom path
8941
+ buildAppUrl({ appName: 'TRAC', path: '/dashboard' });
8942
+ // Returns: 'http://localhost:8092/dashboard' (dev) or 'https://trac.example.com/dashboard' (prod)
8943
+ ```
8944
+
8945
+ #### Defined in
8946
+
8947
+ [packages/core/src/utils/app/buildAppUrl.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/buildAppUrl.ts#L49)
8948
+
8949
+ ___
8950
+
8823
8951
  ### useSessionTracking
8824
8952
 
8825
8953
  ▸ **useSessionTracking**(`supabaseClient`, `appName?`): Object
@@ -8898,7 +9026,7 @@ Object
8898
9026
 
8899
9027
  #### Defined in
8900
9028
 
8901
- [packages/core/src/utils/core/logger.ts:179](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/core/logger.ts#L179)
9029
+ [packages/core/src/utils/core/logger.ts:183](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/core/logger.ts#L183)
8902
9030
 
8903
9031
  ___
8904
9032
 
@@ -9124,7 +9252,7 @@ Secure data access utilities
9124
9252
 
9125
9253
  #### Defined in
9126
9254
 
9127
- [packages/core/src/utils/security/secureDataAccess.ts:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/security/secureDataAccess.ts#L76)
9255
+ [packages/core/src/utils/security/secureDataAccess.ts:279](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/security/secureDataAccess.ts#L279)
9128
9256
 
9129
9257
  ___
9130
9258
 
@@ -9222,7 +9350,7 @@ string
9222
9350
 
9223
9351
  #### Defined in
9224
9352
 
9225
- [packages/core/src/utils/storage/helpers.ts:25](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L25)
9353
+ [packages/core/src/utils/storage/helpers.ts:26](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L26)
9226
9354
 
9227
9355
  ___
9228
9356
 
@@ -9245,15 +9373,15 @@ string
9245
9373
 
9246
9374
  #### Defined in
9247
9375
 
9248
- [packages/core/src/utils/storage/helpers.ts:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L58)
9376
+ [packages/core/src/utils/storage/helpers.ts:59](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L59)
9249
9377
 
9250
9378
  ___
9251
9379
 
9252
9380
  ### extractFileMetadata
9253
9381
 
9254
- ▸ **extractFileMetadata**(`file`, `options`, `uploadedBy`): Promise\<StorageFileMetadata\>
9382
+ ▸ **extractFileMetadata**(`file`, `options`, `uploadedBy`): Promise\<ApiResult\<StorageFileMetadata\>\>
9255
9383
 
9256
- Extract file metadata from a File object
9384
+ Extract file metadata from a File object.
9257
9385
 
9258
9386
  #### Parameters
9259
9387
 
@@ -9265,19 +9393,22 @@ Extract file metadata from a File object
9265
9393
 
9266
9394
  #### Returns
9267
9395
 
9268
- Promise\<StorageFileMetadata\>
9396
+ Promise\<ApiResult\<StorageFileMetadata\>\>
9397
+
9398
+ ApiResult with metadata on success; optional dimensions/hash are best-effort.
9269
9399
 
9270
9400
  #### Defined in
9271
9401
 
9272
- [packages/core/src/utils/storage/helpers.ts:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L85)
9402
+ [packages/core/src/utils/storage/helpers.ts:87](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L87)
9273
9403
 
9274
9404
  ___
9275
9405
 
9276
9406
  ### uploadFile
9277
9407
 
9278
- ▸ **uploadFile**(`supabase`, `file`, `options`): Promise\<StorageUploadResult\>
9408
+ ▸ **uploadFile**(`supabase`, `file`, `options`): Promise\<ApiResult\<StorageUploadSuccess\>\>
9279
9409
 
9280
- Upload a file to Supabase storage with app segregation
9410
+ Upload a file to Supabase storage with app segregation.
9411
+ Returns ApiResult with path, optional publicUrl and metadata on success.
9281
9412
 
9282
9413
  #### Parameters
9283
9414
 
@@ -9289,11 +9420,11 @@ Upload a file to Supabase storage with app segregation
9289
9420
 
9290
9421
  #### Returns
9291
9422
 
9292
- Promise\<StorageUploadResult\>
9423
+ Promise\<ApiResult\<StorageUploadSuccess\>\>
9293
9424
 
9294
9425
  #### Defined in
9295
9426
 
9296
- [packages/core/src/utils/storage/helpers.ts:224](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L224)
9427
+ [packages/core/src/utils/storage/helpers.ts:230](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L230)
9297
9428
 
9298
9429
  ___
9299
9430
 
@@ -9319,166 +9450,167 @@ Public URL for the file
9319
9450
 
9320
9451
  #### Defined in
9321
9452
 
9322
- [packages/core/src/utils/storage/helpers.ts:304](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L304)
9453
+ [packages/core/src/utils/storage/helpers.ts:286](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L286)
9323
9454
 
9324
9455
  ___
9325
9456
 
9326
9457
  ### getSignedUrl
9327
9458
 
9328
- ▸ **getSignedUrl**(`supabase`, `path`, `options`): Promise\<Object \| null\>
9459
+ ▸ **getSignedUrl**(`supabase`, `path`, `options`): Promise\<ApiResult\<Object\>\>
9329
9460
 
9330
- Get a signed URL for a protected file
9331
- Private files are always in the 'files' bucket, so this always uses 'files' bucket
9461
+ Get a signed URL for a protected file.
9462
+ Private files are always in the 'files' bucket.
9332
9463
 
9333
9464
  #### Parameters
9334
9465
 
9335
- | Name | Type | Description |
9336
- | :------ | :------ | :------ |
9337
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9338
- | `path` | string | File path within the bucket |
9339
- | `options` | StorageUrlOptions | URL options including expiry time |
9466
+ | Name | Type |
9467
+ | :------ | :------ |
9468
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> |
9469
+ | `path` | string |
9470
+ | `options` | StorageUrlOptions |
9340
9471
 
9341
9472
  #### Returns
9342
9473
 
9343
- Promise\<Object \| null\>
9474
+ Promise\<ApiResult\<Object\>\>
9344
9475
 
9345
- Signed URL with expiration timestamp, or null if failed
9476
+ ApiResult with url and expiresAt on success.
9346
9477
 
9347
9478
  #### Defined in
9348
9479
 
9349
- [packages/core/src/utils/storage/helpers.ts:400](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L400)
9480
+ [packages/core/src/utils/storage/helpers.ts:379](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L379)
9350
9481
 
9351
9482
  ___
9352
9483
 
9353
9484
  ### generateFileUrlsBatch
9354
9485
 
9355
- ▸ **generateFileUrlsBatch**(`supabase`, `fileReferences`, `options`): Promise\<Map\<string, string\>\>
9486
+ ▸ **generateFileUrlsBatch**(`supabase`, `fileReferences`, `options`): Promise\<ApiResult\<Map\<string, string\>\>\>
9356
9487
 
9357
- Generate URLs for multiple file references in parallel
9358
- This batches URL generation to reduce sequential requests and uses caching
9488
+ Generate URLs for multiple file references in parallel (best-effort; partial success returns ok with map).
9359
9489
 
9360
9490
  #### Parameters
9361
9491
 
9362
- | Name | Type | Description |
9363
- | :------ | :------ | :------ |
9364
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9365
- | `fileReferences` | Object[] | Array of file references to generate URLs for |
9366
- | `options` | StorageUrlOptions & Object | URL options including expiry time and organisation ID |
9492
+ | Name | Type |
9493
+ | :------ | :------ |
9494
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> |
9495
+ | `fileReferences` | Object[] |
9496
+ | `options` | StorageUrlOptions & Object |
9367
9497
 
9368
9498
  #### Returns
9369
9499
 
9370
- Promise\<Map\<string, string\>\>
9500
+ Promise\<ApiResult\<Map\<string, string\>\>\>
9371
9501
 
9372
- Map of file ID to URL string (only includes successful URL generations)
9502
+ ApiResult with Map of file ID to URL string.
9373
9503
 
9374
9504
  #### Defined in
9375
9505
 
9376
- [packages/core/src/utils/storage/helpers.ts:467](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L467)
9506
+ [packages/core/src/utils/storage/helpers.ts:442](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L442)
9377
9507
 
9378
9508
  ___
9379
9509
 
9380
9510
  ### deleteFile
9381
9511
 
9382
- ▸ **deleteFile**(`supabase`, `path`, `isPublic?`): Promise\<Object\>
9512
+ ▸ **deleteFile**(`supabase`, `path`, `isPublic?`): Promise\<ApiResult\<void\>\>
9383
9513
 
9384
- Delete a file from storage
9514
+ Delete a file from storage.
9385
9515
 
9386
9516
  #### Parameters
9387
9517
 
9388
- | Name | Type | Default value | Description |
9389
- | :------ | :------ | :------ | :------ |
9390
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` | Supabase client instance |
9391
- | `path` | string | `undefined` | File path within the bucket |
9392
- | `isPublic` | boolean | `false` | Whether the file is in the public-files bucket (default: false) |
9518
+ | Name | Type | Default value |
9519
+ | :------ | :------ | :------ |
9520
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` |
9521
+ | `path` | string | `undefined` |
9522
+ | `isPublic` | boolean | `false` |
9393
9523
 
9394
9524
  #### Returns
9395
9525
 
9396
- Promise\<Object\>
9526
+ Promise\<ApiResult\<void\>\>
9397
9527
 
9398
- Success status and optional error message
9528
+ ApiResult<void> on success.
9399
9529
 
9400
9530
  #### Defined in
9401
9531
 
9402
- [packages/core/src/utils/storage/helpers.ts:574](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L574)
9532
+ [packages/core/src/utils/storage/helpers.ts:528](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L528)
9403
9533
 
9404
9534
  ___
9405
9535
 
9406
9536
  ### listFiles
9407
9537
 
9408
- ▸ **listFiles**(`supabase`, `options`): Promise\<StorageListResult\>
9538
+ ▸ **listFiles**(`supabase`, `options`): Promise\<ApiResult\<StorageListResult\>\>
9409
9539
 
9410
- List files in an organization scope
9540
+ List files in an organization scope.
9411
9541
 
9412
9542
  #### Parameters
9413
9543
 
9414
- | Name | Type | Description |
9415
- | :------ | :------ | :------ |
9416
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9417
- | `options` | StorageListOptions & Object | List options including bucket selection via isPublic |
9544
+ | Name | Type |
9545
+ | :------ | :------ |
9546
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> |
9547
+ | `options` | StorageListOptions & Object |
9418
9548
 
9419
9549
  #### Returns
9420
9550
 
9421
- Promise\<StorageListResult\>
9551
+ Promise\<ApiResult\<StorageListResult\>\>
9422
9552
 
9423
- List of files with metadata
9553
+ ApiResult with files, totalCount, hasMore on success.
9424
9554
 
9425
9555
  #### Defined in
9426
9556
 
9427
- [packages/core/src/utils/storage/helpers.ts:608](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L608)
9557
+ [packages/core/src/utils/storage/helpers.ts:552](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L552)
9428
9558
 
9429
9559
  ___
9430
9560
 
9431
9561
  ### downloadFile
9432
9562
 
9433
- ▸ **downloadFile**(`supabase`, `path`, `isPublic?`): Promise\<Object \| null\>
9563
+ ▸ **downloadFile**(`supabase`, `path`, `isPublic?`): Promise\<ApiResult\<Object\>\>
9434
9564
 
9435
- Download a file from storage
9565
+ Download a file from storage.
9436
9566
 
9437
9567
  #### Parameters
9438
9568
 
9439
- | Name | Type | Default value | Description |
9440
- | :------ | :------ | :------ | :------ |
9441
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` | Supabase client instance |
9442
- | `path` | string | `undefined` | File path within the bucket |
9443
- | `isPublic` | boolean | `false` | Whether the file is in the public-files bucket (default: false) |
9569
+ | Name | Type | Default value |
9570
+ | :------ | :------ | :------ |
9571
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` |
9572
+ | `path` | string | `undefined` |
9573
+ | `isPublic` | boolean | `false` |
9444
9574
 
9445
9575
  #### Returns
9446
9576
 
9447
- Promise\<Object \| null\>
9577
+ Promise\<ApiResult\<Object\>\>
9448
9578
 
9449
- File blob with metadata, or null if failed
9579
+ ApiResult with blob and metadata on success.
9450
9580
 
9451
9581
  #### Defined in
9452
9582
 
9453
- [packages/core/src/utils/storage/helpers.ts:675](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L675)
9583
+ [packages/core/src/utils/storage/helpers.ts:615](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L615)
9454
9584
 
9455
9585
  ___
9456
9586
 
9457
9587
  ### archiveFile
9458
9588
 
9459
- ▸ **archiveFile**(`supabase`, `path`, `options`): Promise\<Object\>
9589
+ ▸ **archiveFile**(`supabase`, `path`, `options`): Promise\<ApiResult\<void\>\>
9460
9590
 
9461
- Move a file to archived location (soft delete)
9591
+ Move a file to archived location (soft delete).
9462
9592
 
9463
9593
  #### Parameters
9464
9594
 
9465
- | Name | Type | Description |
9466
- | :------ | :------ | :------ |
9467
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9468
- | `path` | string | File path within the bucket |
9469
- | `options` | Object | Archive options including bucket selection via isPublic |
9470
- | `options.appName` | string | - |
9471
- | `options.orgId?` | string | - |
9472
- | `options.userId?` | string | - |
9473
- | `options.isPublic?` | boolean | - |
9595
+ | Name | Type |
9596
+ | :------ | :------ |
9597
+ | `supabase` | SupabaseClient\<any, "public", "public", any, any\> |
9598
+ | `path` | string |
9599
+ | `options` | Object |
9600
+ | `options.appName` | string |
9601
+ | `options.orgId?` | string |
9602
+ | `options.userId?` | string |
9603
+ | `options.isPublic?` | boolean |
9474
9604
 
9475
9605
  #### Returns
9476
9606
 
9477
- Promise\<Object\>
9607
+ Promise\<ApiResult\<void\>\>
9608
+
9609
+ ApiResult<void> on success.
9478
9610
 
9479
9611
  #### Defined in
9480
9612
 
9481
- [packages/core/src/utils/storage/helpers.ts:728](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L728)
9613
+ [packages/core/src/utils/storage/helpers.ts:660](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L660)
9482
9614
 
9483
9615
  ___
9484
9616
 
@@ -9545,7 +9677,7 @@ function App() {
9545
9677
 
9546
9678
  #### Defined in
9547
9679
 
9548
- [packages/core/src/utils/supabase/createBaseClient.ts:138](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/supabase/createBaseClient.ts#L138)
9680
+ [packages/core/src/utils/supabase/createBaseClient.ts:139](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/supabase/createBaseClient.ts#L139)
9549
9681
 
9550
9682
  ___
9551
9683
 
@@ -9834,7 +9966,7 @@ const dangerousHtml = sanitizeHtml('<script>alert("xss")</script><p>Safe content
9834
9966
 
9835
9967
  #### Defined in
9836
9968
 
9837
- [packages/core/src/utils/validation/htmlSanitization.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/validation/htmlSanitization.ts#L54)
9969
+ [packages/core/src/utils/validation/htmlSanitization.ts:52](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/validation/htmlSanitization.ts#L52)
9838
9970
 
9839
9971
  ___
9840
9972