@jmruthers/pace-core 0.6.10 → 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 (726) 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 +13 -3
  5. package/audit-tool/audits/03-architecture.cjs +78 -4
  6. package/audit-tool/audits/04-code-quality.cjs +9 -2
  7. package/audit-tool/audits/05-styling.cjs +19 -7
  8. package/audit-tool/audits/06-security-rbac.cjs +105 -14
  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 +1 -0
  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 +41 -7
  19. package/cursor-rules/06-security-rbac.mdc +2 -1
  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-SAXFG4XI.js → DataTable-EFYP2QLE.js} +10 -7
  24. package/dist/{InactivityServiceProvider-DHryoh6K.d.ts → InactivityServiceProvider-BbxwwDz1.d.ts} +10 -1
  25. package/dist/{UnifiedAuthProvider-CiBAl9-s.d.ts → UnifiedAuthProvider-Bkt_tzdS.d.ts} +56 -24
  26. package/dist/{api-F47QJ7FX.js → api-BZR2CYXL.js} +3 -2
  27. package/dist/api-result-USV1Czr-.d.ts +51 -0
  28. package/dist/{audit-Z6ZZBWLU.js → audit-HI2DHUVU.js} +2 -1
  29. package/dist/{auth-BZOJqrdd.d.ts → auth-JvdRVaud.d.ts} +1 -1
  30. package/dist/{chunk-KSNLMI7N.js → chunk-2DL2WSOE.js} +1 -155
  31. package/dist/{chunk-MPY44PWB.js → chunk-2OEVOGGR.js} +4648 -3560
  32. package/dist/chunk-44CNXN4P.js +15 -0
  33. package/dist/{chunk-Y4PF6HIM.js → chunk-4R3T5ENU.js} +867 -786
  34. package/dist/{chunk-LNHFAF4X.js → chunk-7A6IMHH2.js} +289 -247
  35. package/dist/chunk-CU2BU2MQ.js +2 -0
  36. package/dist/{chunk-JJEYZ3DX.js → chunk-D6BMFMQZ.js} +37 -2
  37. package/dist/{chunk-BCTXBU6U.js → chunk-ENLXB7GP.js} +88 -71
  38. package/dist/{chunk-FBZ7U3ID.js → chunk-J2KQK6DG.js} +937 -987
  39. package/dist/{chunk-TFIPNIPE.js → chunk-KJXRL3XE.js} +3300 -2245
  40. package/dist/{chunk-3GWSPISD.js → chunk-L5LFKKLJ.js} +1 -1
  41. package/dist/{chunk-X5EAU5G7.js → chunk-PCSHBLPB.js} +132 -114
  42. package/dist/{chunk-NIU6DPQV.js → chunk-QRYSEPHB.js} +2 -0
  43. package/dist/{chunk-KYURMOQM.js → chunk-V7FTM2LU.js} +423 -320
  44. package/dist/chunk-WY6Y7KC3.js +264 -0
  45. package/dist/{chunk-FN52B75D.js → chunk-XOJME5T7.js} +176 -15
  46. package/dist/{chunk-7YDC7LMU.js → chunk-XPFVT3GN.js} +71 -66
  47. package/dist/{chunk-66R6RLUZ.js → chunk-YFTFFJIV.js} +3 -3
  48. package/dist/{chunk-W46INAVW.js → chunk-YYTWKVHO.js} +688 -570
  49. package/dist/components.d.ts +8 -7
  50. package/dist/components.js +17 -15
  51. package/dist/{database.generated-DT8JTZiP.d.ts → database.generated-qkdoiVrJ.d.ts} +45 -10
  52. package/dist/eslint-rules/index.cjs +3 -0
  53. package/dist/eslint-rules/rules/03-architecture.cjs +74 -0
  54. package/dist/eslint-rules/rules/06-security-rbac.cjs +74 -0
  55. package/dist/{event-WTAQuGcq.d.ts → event-BfCox3N2.d.ts} +36 -10
  56. package/dist/{file-reference-BavO2eQj.d.ts → file-reference-DU1hcawx.d.ts} +29 -13
  57. package/dist/hooks.d.ts +22 -9
  58. package/dist/hooks.js +34 -25
  59. package/dist/icons/index.d.ts +1 -0
  60. package/dist/icons/index.js +1 -0
  61. package/dist/index.d.ts +66 -177
  62. package/dist/index.js +316 -340
  63. package/dist/pagination-BW1mqywp.d.ts +201 -0
  64. package/dist/providers.d.ts +6 -5
  65. package/dist/providers.js +5 -3
  66. package/dist/rbac/index.d.ts +123 -138
  67. package/dist/rbac/index.js +10 -8
  68. package/dist/theming/runtime.d.ts +19 -2
  69. package/dist/theming/runtime.js +1 -1
  70. package/dist/{timezone-K-ptz3HO.d.ts → timezone-BTWWXKVY.d.ts} +1 -1
  71. package/dist/types.d.ts +17 -10
  72. package/dist/types.js +1 -0
  73. package/dist/{usePublicPageContext-vxBlEHO9.d.ts → usePublicPageContext-B91dGYW1.d.ts} +433 -356
  74. package/dist/{usePublicRouteParams-G3Ks53mk.d.ts → usePublicRouteParams-BgV6VhMi.d.ts} +73 -4
  75. package/dist/utils.d.ts +163 -145
  76. package/dist/utils.js +42 -25
  77. package/docs/api/modules.md +782 -643
  78. package/docs/api-reference/rpc-functions.md +12 -3
  79. package/docs/core-concepts/rbac-system.md +8 -0
  80. package/docs/getting-started/cursor-rules.md +17 -20
  81. package/docs/getting-started/dependencies.md +1 -1
  82. package/docs/getting-started/setup.md +235 -0
  83. package/docs/implementation-guides/authentication.md +27 -0
  84. package/docs/implementation-guides/data-tables.md +176 -3
  85. package/docs/migration/ApiResult-migration.md +25 -0
  86. package/docs/rbac/api-reference.md +33 -31
  87. package/docs/standards/0-standards-overview.md +50 -15
  88. package/docs/standards/1-pace-core-compliance-standards.md +62 -57
  89. package/docs/standards/2-project-structure-standards.md +33 -16
  90. package/docs/standards/3-architecture-standards.md +41 -1
  91. package/docs/standards/4-code-quality-standards.md +26 -6
  92. package/docs/standards/5-styling-standards.md +35 -1
  93. package/docs/standards/6-security-rbac-standards.md +66 -0
  94. package/docs/standards/7-api-tech-stack-standards.md +25 -14
  95. package/docs/standards/8-testing-documentation-standards.md +31 -0
  96. package/docs/standards/9-operations-standards.md +19 -0
  97. package/docs/standards/README.md +20 -201
  98. package/docs/testing/test-setup-for-consumers.md +2 -0
  99. package/docs/troubleshooting/common-issues.md +17 -1
  100. package/docs/troubleshooting/organisation-context-setup.md +8 -0
  101. package/docs/troubleshooting/print-event-name-css-variable-analysis.md +217 -0
  102. package/eslint-config-pace-core.cjs +20 -0
  103. package/package.json +14 -20
  104. package/scripts/{build-docs-incremental.js → build-docs.js} +3 -2
  105. package/scripts/setup.cjs +536 -0
  106. package/scripts/validate.cjs +480 -0
  107. package/src/__tests__/helpers/{__tests__/component-test-utils.test.tsx → component-test-utils.test.tsx} +3 -3
  108. package/src/__tests__/helpers/{__tests__/optimized-test-setup.test.ts → optimized-test-setup.test.ts} +2 -2
  109. package/src/__tests__/helpers/{__tests__/supabaseMock.test.ts → supabaseMock.test.ts} +2 -2
  110. package/src/__tests__/helpers/{__tests__/test-providers.test.tsx → test-providers.test.tsx} +1 -1
  111. package/src/__tests__/helpers/test-providers.tsx +37 -39
  112. package/src/__tests__/helpers/{__tests__/test-utils.test.tsx → test-utils.test.tsx} +4 -3
  113. package/src/__tests__/helpers/{__tests__/timer-utils.test.ts → timer-utils.test.ts} +2 -2
  114. package/src/assets/app-icons/index.test.ts +304 -0
  115. package/src/components/AddressField/AddressField.test.tsx +1 -1
  116. package/src/components/AddressField/AddressField.tsx +238 -212
  117. package/src/components/Button/Button.tsx +1 -1
  118. package/src/components/Card/Card.test.tsx +172 -17
  119. package/src/components/Card/Card.tsx +19 -10
  120. package/src/components/ContextSelector/ContextSelector.internals.tsx +204 -0
  121. package/src/components/ContextSelector/{__tests__/ContextSelector.test.tsx → ContextSelector.test.tsx} +6 -6
  122. package/src/components/ContextSelector/ContextSelector.tsx +66 -280
  123. package/src/components/ContextSelector/ContextSelector.types.ts +35 -0
  124. package/src/components/ContextSelector/useContextSelectorState.tsx +195 -0
  125. package/src/components/DataTable/AUDIT_REPORT.md +59 -44
  126. package/src/components/DataTable/{__tests__/DataTable.comprehensive.test.tsx → DataTable.comprehensive.test.tsx} +6 -6
  127. package/src/components/DataTable/{__tests__/DataTable.default-state.test.tsx → DataTable.default-state.test.tsx} +5 -5
  128. package/src/components/DataTable/{__tests__/DataTable.export.test.tsx → DataTable.export.test.tsx} +10 -10
  129. package/src/components/DataTable/{__tests__/DataTable.grouping-aggregation.test.tsx → DataTable.grouping-aggregation.test.tsx} +6 -6
  130. package/src/components/DataTable/{__tests__/DataTable.hooks.test.tsx → DataTable.hooks.test.tsx} +6 -6
  131. package/src/components/DataTable/{__tests__/DataTable.select-label-display.test.tsx → DataTable.select-label-display.test.tsx} +6 -6
  132. package/src/components/DataTable/DataTable.test.tsx +787 -416
  133. package/src/components/DataTable/DataTable.tsx +12 -12
  134. package/src/components/DataTable/DataTableCore.integration.test.tsx +458 -0
  135. package/src/components/DataTable/{__tests__/DataTableCore.test-setup.ts → DataTableCore.test-setup.ts} +10 -9
  136. package/src/components/DataTable/{__tests__/DataTableCore.test.tsx → DataTableCore.test.tsx} +8 -8
  137. package/src/components/DataTable/{__tests__/README.md → README.md} +17 -7
  138. package/src/components/DataTable/TESTING.md +101 -0
  139. package/src/components/DataTable/{__tests__/a11y.basic.test.tsx → a11y.basic.test.tsx} +34 -34
  140. package/src/components/DataTable/components/DataTableCore.tsx +104 -864
  141. package/src/components/DataTable/components/{__tests__/GroupingDropdown.test.tsx → GroupingDropdown.test.tsx} +17 -8
  142. package/src/components/DataTable/components/GroupingDropdown.tsx +2 -2
  143. package/src/components/DataTable/components/ImportModal.tsx +61 -559
  144. package/src/components/DataTable/components/ImportModalFileSection.tsx +148 -0
  145. package/src/components/DataTable/context/{__tests__/DataTableContext.test.tsx → DataTableContext.test.tsx} +2 -2
  146. package/src/components/DataTable/context/DataTableContext.tsx +7 -6
  147. package/src/components/DataTable/core/{__tests__/ColumnFactory.test.ts → ColumnFactory.test.ts} +2 -2
  148. package/src/components/DataTable/hooks/{__tests__/useColumnOrderPersistence.test.ts → useColumnOrderPersistence.test.ts} +2 -2
  149. package/src/components/DataTable/hooks/{__tests__/useColumnVisibilityPersistence.test.ts → useColumnVisibilityPersistence.test.ts} +2 -2
  150. package/src/components/DataTable/hooks/{__tests__/useDataTableConfiguration.test.ts → useDataTableConfiguration.test.ts} +3 -3
  151. package/src/components/DataTable/hooks/useDataTableConfiguration.ts +14 -2
  152. package/src/components/DataTable/hooks/{__tests__/useDataTableDataPipeline.test.ts → useDataTableDataPipeline.test.ts} +6 -6
  153. package/src/components/DataTable/hooks/useDataTableDeletionBatching.test.ts +127 -0
  154. package/src/components/DataTable/hooks/useDataTableDeletionBatching.ts +106 -0
  155. package/src/components/DataTable/hooks/useDataTableEffectiveActions.test.ts +461 -0
  156. package/src/components/DataTable/hooks/useDataTableEffectiveActions.ts +238 -0
  157. package/src/components/DataTable/hooks/useDataTableLayoutHandlers.test.ts +296 -0
  158. package/src/components/DataTable/hooks/useDataTableLayoutHandlers.ts +175 -0
  159. package/src/components/DataTable/hooks/useDataTablePaginationSync.test.ts +203 -0
  160. package/src/components/DataTable/hooks/useDataTablePaginationSync.ts +109 -0
  161. package/src/components/DataTable/hooks/{__tests__/useDataTablePermissions.test.ts → useDataTablePermissions.test.ts} +11 -11
  162. package/src/components/DataTable/hooks/useDataTablePermissions.ts +79 -247
  163. package/src/components/DataTable/hooks/useDataTablePipeline.test.tsx +219 -0
  164. package/src/components/DataTable/hooks/useDataTablePipeline.tsx +239 -0
  165. package/src/components/DataTable/hooks/useDataTableRenderGuard.test.tsx +316 -0
  166. package/src/components/DataTable/hooks/useDataTableRenderGuard.tsx +195 -0
  167. package/src/components/DataTable/hooks/useDataTableScope.test.ts +110 -0
  168. package/src/components/DataTable/hooks/useDataTableScope.ts +123 -0
  169. package/src/components/DataTable/hooks/{__tests__/useDataTableState.test.ts → useDataTableState.test.ts} +47 -5
  170. package/src/components/DataTable/hooks/useDataTableState.ts +145 -94
  171. package/src/components/DataTable/hooks/useDataTableStateAndPersistence.test.ts +277 -0
  172. package/src/components/DataTable/hooks/useDataTableStateAndPersistence.ts +222 -0
  173. package/src/components/DataTable/hooks/useDataTableSuperAdmin.test.ts +93 -0
  174. package/src/components/DataTable/hooks/useDataTableSuperAdmin.ts +86 -0
  175. package/src/components/DataTable/hooks/useDataTableTableInstance.test.ts +185 -0
  176. package/src/components/DataTable/hooks/useDataTableTableInstance.ts +178 -0
  177. package/src/components/DataTable/hooks/{__tests__/useEffectiveColumnOrder.test.ts → useEffectiveColumnOrder.test.ts} +2 -2
  178. package/src/components/DataTable/hooks/{__tests__/useHierarchicalState.test.ts → useHierarchicalState.test.ts} +2 -2
  179. package/src/components/DataTable/{components/hooks → hooks}/useImportModalFocus.test.ts +3 -3
  180. package/src/components/DataTable/{components/hooks → hooks}/useImportModalFocus.ts +2 -2
  181. package/src/components/DataTable/hooks/useImportModalState.test.ts +390 -0
  182. package/src/components/DataTable/hooks/useImportModalState.ts +345 -0
  183. package/src/components/DataTable/hooks/{__tests__/useKeyboardNavigation.test.ts → useKeyboardNavigation.test.ts} +3 -3
  184. package/src/components/DataTable/hooks/useKeyboardNavigation.ts +309 -269
  185. package/src/components/DataTable/{components/hooks → hooks}/usePermissionTracking.test.ts +3 -3
  186. package/src/components/DataTable/{components/hooks → hooks}/usePermissionTracking.ts +3 -3
  187. package/src/components/DataTable/hooks/{__tests__/useServerSideDataEffect.test.ts → useServerSideDataEffect.test.ts} +2 -2
  188. package/src/components/DataTable/hooks/useServerSideDataEffect.ts +14 -3
  189. package/src/components/DataTable/hooks/{__tests__/useTableColumns.test.ts → useTableColumns.test.ts} +2 -2
  190. package/src/components/DataTable/hooks/{__tests__/useTableHandlers.test.ts → useTableHandlers.test.ts} +25 -4
  191. package/src/components/DataTable/hooks/useTableHandlers.ts +5 -2
  192. package/src/components/DataTable/index.ts +18 -17
  193. package/src/components/DataTable/{__tests__/keyboard.test.tsx → keyboard.test.tsx} +41 -63
  194. package/src/components/DataTable/{__tests__/mocks → mocks}/MockRBACProvider.tsx +1 -1
  195. package/src/components/DataTable/{__tests__/pagination.modes.test.tsx → pagination.modes.test.tsx} +6 -6
  196. package/src/components/DataTable/{__tests__/ssr.strict-mode.test.tsx → ssr.strict-mode.test.tsx} +2 -2
  197. package/src/components/DataTable/{__tests__/styles.test.ts → styles.test.ts} +1 -4
  198. package/src/components/DataTable/styles.ts +0 -1
  199. package/src/components/DataTable/test-utils/MockDataTableComponents.tsx +55 -0
  200. package/src/components/DataTable/{__tests__/test-utils → test-utils}/dataFactories.ts +2 -2
  201. package/src/components/DataTable/test-utils/featureConfig.ts +10 -0
  202. package/src/components/DataTable/{__tests__/test-utils/sharedTestUtils.tsx → test-utils/sharedTestUtils.ts} +97 -66
  203. package/src/components/DataTable/{__tests__/test-utils.ts → test-utils.ts} +1 -1
  204. package/src/components/DataTable/types/actions.ts +71 -0
  205. package/src/components/DataTable/types/base.ts +39 -0
  206. package/src/components/DataTable/types/columns.ts +125 -0
  207. package/src/components/DataTable/types/export.ts +32 -0
  208. package/src/components/DataTable/types/features.ts +81 -0
  209. package/src/components/DataTable/types/hierarchical.ts +44 -0
  210. package/src/components/DataTable/types/index.ts +43 -0
  211. package/src/components/DataTable/types/pagination.ts +85 -0
  212. package/src/components/DataTable/types/performance.ts +47 -0
  213. package/src/components/DataTable/types/props.ts +62 -0
  214. package/src/components/DataTable/types/rbac.ts +45 -0
  215. package/src/components/DataTable/{components/__tests__ → ui/layout}/DataTableCore.test.tsx +430 -28
  216. package/src/components/DataTable/ui/layout/DataTableCore.tsx +345 -0
  217. package/src/components/DataTable/{components/__tests__ → ui/layout}/DataTableErrorBoundary.test.tsx +4 -4
  218. package/src/components/DataTable/{components → ui/layout}/DataTableErrorBoundary.tsx +7 -7
  219. package/src/components/DataTable/ui/layout/DataTableLayout.test.tsx +1352 -0
  220. package/src/components/DataTable/ui/layout/DataTableLayout.tsx +661 -0
  221. package/src/components/DataTable/ui/modals/BulkDeleteConfirmDialog.test.tsx +91 -0
  222. package/src/components/DataTable/ui/modals/BulkDeleteConfirmDialog.tsx +43 -0
  223. package/src/components/DataTable/ui/modals/DataTableModals.test.tsx +749 -0
  224. package/src/components/DataTable/{components → ui/modals}/DataTableModals.tsx +36 -28
  225. package/src/components/DataTable/ui/modals/ImportModal.test.tsx +1834 -0
  226. package/src/components/DataTable/ui/modals/ImportModal.tsx +197 -0
  227. package/src/components/DataTable/ui/modals/ImportModalFailedRowsSection.tsx +60 -0
  228. package/src/components/DataTable/ui/modals/ImportModalFileSection.tsx +148 -0
  229. package/src/components/DataTable/ui/modals/ImportModalPreviewSection.tsx +60 -0
  230. package/src/components/DataTable/ui/modals/ImportModalSummarySection.tsx +59 -0
  231. package/src/components/DataTable/ui/modals/importModalPersistence.ts +73 -0
  232. package/src/components/DataTable/{components/__tests__ → ui/shared}/AccessDeniedPage.test.tsx +2 -2
  233. package/src/components/DataTable/{components → ui/shared}/AccessDeniedPage.tsx +2 -2
  234. package/src/components/DataTable/{components/__tests__ → ui/shared}/ActionButtons.test.tsx +6 -4
  235. package/src/components/DataTable/{components → ui/shared}/ActionButtons.tsx +4 -4
  236. package/src/components/DataTable/{components/__tests__ → ui/shared}/ColumnFilter.test.tsx +29 -16
  237. package/src/components/DataTable/{components → ui/shared}/ColumnFilter.tsx +4 -4
  238. package/src/components/DataTable/{components/__tests__ → ui/shared}/PaginationControls.test.tsx +38 -16
  239. package/src/components/DataTable/{components → ui/shared}/PaginationControls.tsx +21 -15
  240. package/src/components/DataTable/{components/__tests__ → ui/shared}/SortIndicator.test.tsx +2 -2
  241. package/src/components/DataTable/{components → ui/shared}/SortIndicator.tsx +1 -1
  242. package/src/components/DataTable/{components/__tests__ → ui/table}/EditFields.test.tsx +3 -3
  243. package/src/components/DataTable/{components → ui/table}/EditFields.tsx +138 -69
  244. package/src/components/DataTable/{components/__tests__ → ui/table}/EditableRow.test.tsx +36 -27
  245. package/src/components/DataTable/{components → ui/table}/EditableRow.tsx +86 -104
  246. package/src/components/DataTable/{components/__tests__ → ui/table}/EmptyState.test.tsx +2 -62
  247. package/src/components/DataTable/{components → ui/table}/EmptyState.tsx +7 -15
  248. package/src/components/DataTable/{components/__tests__ → ui/table}/FilterRow.test.tsx +5 -4
  249. package/src/components/DataTable/{components → ui/table}/FilterRow.tsx +3 -3
  250. package/src/components/DataTable/{components/__tests__ → ui/table}/LoadingState.test.tsx +6 -10
  251. package/src/components/DataTable/{components → ui/table}/LoadingState.tsx +4 -4
  252. package/src/components/DataTable/{components/__tests__ → ui/table}/RowComponent.test.tsx +412 -17
  253. package/src/components/DataTable/{components → ui/table}/RowComponent.tsx +183 -177
  254. package/src/components/DataTable/{components/__tests__ → ui/table}/UnifiedTableBody.test.tsx +425 -16
  255. package/src/components/DataTable/ui/table/UnifiedTableBody.tsx +440 -0
  256. package/src/components/DataTable/{components/__tests__ → ui/table}/cellValueUtils.test.ts +2 -2
  257. package/src/components/DataTable/{components → ui/table}/cellValueUtils.ts +1 -1
  258. package/src/components/DataTable/{components/__tests__ → ui/toolbar}/BulkOperationsDropdown.test.tsx +12 -5
  259. package/src/components/DataTable/{components → ui/toolbar}/BulkOperationsDropdown.tsx +3 -3
  260. package/src/components/DataTable/{components/__tests__ → ui/toolbar}/ColumnVisibilityDropdown.test.tsx +7 -4
  261. package/src/components/DataTable/{components → ui/toolbar}/ColumnVisibilityDropdown.tsx +7 -7
  262. package/src/components/DataTable/{components/__tests__ → ui/toolbar}/DataTableToolbar.test.tsx +4 -4
  263. package/src/components/DataTable/{components → ui/toolbar}/DataTableToolbar.tsx +4 -4
  264. package/src/components/DataTable/ui/toolbar/GroupingDropdown.test.tsx +621 -0
  265. package/src/components/DataTable/ui/toolbar/GroupingDropdown.tsx +107 -0
  266. package/src/components/DataTable/utils/{__tests__/a11yUtils.test.ts → a11yUtils.test.ts} +2 -2
  267. package/src/components/DataTable/utils/{__tests__/aggregationUtils.test.ts → aggregationUtils.test.ts} +3 -3
  268. package/src/components/DataTable/utils/{__tests__/columnUtils.test.ts → columnUtils.test.ts} +2 -2
  269. package/src/components/DataTable/utils/csvParse.test.ts +74 -0
  270. package/src/components/DataTable/utils/csvParse.ts +65 -0
  271. package/src/components/DataTable/utils/{__tests__/errorHandling.test.ts → errorHandling.test.ts} +2 -2
  272. package/src/components/DataTable/utils/{__tests__/exportUtils.test.ts → exportUtils.test.ts} +3 -3
  273. package/src/components/DataTable/utils/{__tests__/flexibleImport.test.ts → flexibleImport.test.ts} +2 -2
  274. package/src/components/DataTable/utils/flexibleImport.ts +3 -186
  275. package/src/components/DataTable/utils/{__tests__/hierarchicalSorting.test.ts → hierarchicalSorting.test.ts} +3 -3
  276. package/src/components/DataTable/utils/{__tests__/hierarchicalUtils.test.ts → hierarchicalUtils.test.ts} +3 -3
  277. package/src/components/DataTable/utils/importDateParser.test.ts +162 -0
  278. package/src/components/DataTable/utils/importDateParser.ts +114 -0
  279. package/src/components/DataTable/utils/importValueParser.test.ts +138 -0
  280. package/src/components/DataTable/utils/importValueParser.ts +91 -0
  281. package/src/components/DataTable/utils/{__tests__/paginationUtils.test.ts → paginationUtils.test.ts} +2 -2
  282. package/src/components/DataTable/utils/paginationUtils.ts +6 -3
  283. package/src/components/DataTable/utils/{__tests__/performanceUtils.test.ts → performanceUtils.test.ts} +3 -3
  284. package/src/components/DataTable/utils/{__tests__/rowUtils.test.ts → rowUtils.test.ts} +3 -3
  285. package/src/components/DataTable/utils/{__tests__/selectFieldUtils.test.ts → selectFieldUtils.test.ts} +66 -3
  286. package/src/components/DataTable/utils/selectFieldUtils.ts +97 -60
  287. package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +1 -1
  288. package/src/components/DateTimeField/DateTimeField.test.tsx +1 -1
  289. package/src/components/Dialog/Dialog.test-utils.ts +49 -0
  290. package/src/components/Dialog/Dialog.test.tsx +896 -89
  291. package/src/components/Dialog/Dialog.tsx +174 -882
  292. package/src/components/Dialog/dialogLock.test.ts +238 -0
  293. package/src/components/Dialog/dialogLock.ts +98 -0
  294. package/src/components/Dialog/index.ts +2 -0
  295. package/src/components/Dialog/useDialogDimensions.test.ts +163 -0
  296. package/src/components/Dialog/useDialogDimensions.ts +140 -0
  297. package/src/components/Dialog/useDialogLifecycle.test.ts +358 -0
  298. package/src/components/Dialog/useDialogLifecycle.ts +135 -0
  299. package/src/components/Dialog/useDialogPersistence.test.ts +381 -0
  300. package/src/components/Dialog/useDialogPersistence.ts +357 -0
  301. package/src/components/FileDisplay/FileDisplay.test.tsx +40 -40
  302. package/src/components/FileDisplay/FileDisplay.tsx +24 -656
  303. package/src/components/FileDisplay/FileDisplayContent.test.tsx +395 -0
  304. package/src/components/FileDisplay/FileDisplayContent.tsx +242 -0
  305. package/src/components/FileDisplay/FileDisplayDeleteConfirmDialog.test.tsx +74 -0
  306. package/src/components/FileDisplay/FileDisplayDeleteConfirmDialog.tsx +38 -0
  307. package/src/components/FileDisplay/FileDisplayEmptyView.test.tsx +33 -0
  308. package/src/components/FileDisplay/FileDisplayEmptyView.tsx +33 -0
  309. package/src/components/FileDisplay/FileDisplayErrorView.test.tsx +71 -0
  310. package/src/components/FileDisplay/FileDisplayErrorView.tsx +50 -0
  311. package/src/components/FileDisplay/FileDisplayLoadingFallbackView.test.tsx +22 -0
  312. package/src/components/FileDisplay/FileDisplayLoadingFallbackView.tsx +22 -0
  313. package/src/components/FileDisplay/FileDisplayLoadingView.test.tsx +21 -0
  314. package/src/components/FileDisplay/FileDisplayLoadingView.tsx +23 -0
  315. package/src/components/FileDisplay/FileDisplayMultipleFilesView.test.tsx +101 -0
  316. package/src/components/FileDisplay/FileDisplayMultipleFilesView.tsx +109 -0
  317. package/src/components/FileDisplay/FileDisplaySingleDocumentLinkView.test.tsx +58 -0
  318. package/src/components/FileDisplay/FileDisplaySingleDocumentLinkView.tsx +48 -0
  319. package/src/components/FileDisplay/FileDisplaySingleFileWithActionsView.test.tsx +111 -0
  320. package/src/components/FileDisplay/FileDisplaySingleFileWithActionsView.tsx +270 -0
  321. package/src/components/FileDisplay/FileDisplaySingleImageView.test.tsx +78 -0
  322. package/src/components/FileDisplay/FileDisplaySingleImageView.tsx +67 -0
  323. package/src/components/FileDisplay/fallbackUtils.test.ts +50 -0
  324. package/src/components/FileDisplay/fallbackUtils.ts +44 -0
  325. package/src/components/FileDisplay/fetchFileDisplayData.ts +24 -0
  326. package/src/components/FileDisplay/fetchFileDisplayData.unit.test.ts +183 -0
  327. package/src/components/FileDisplay/fileDisplayUtils.test.ts +58 -0
  328. package/src/components/FileDisplay/fileDisplayUtils.ts +24 -0
  329. package/src/{hooks/__tests__ → components/FileDisplay}/useFileDisplay.test.ts +40 -42
  330. package/src/components/FileDisplay/useFileDisplay.ts +515 -0
  331. package/src/{hooks/__tests__ → components/FileDisplay}/useFileDisplay.unit.test.ts +406 -77
  332. package/src/components/FileDisplay/useFileDisplayData.ts +126 -0
  333. package/src/{hooks/public → components/FileDisplay}/usePublicFileDisplay.test.ts +94 -88
  334. package/src/components/FileDisplay/usePublicFileDisplay.ts +579 -0
  335. package/src/components/FileUpload/FileUpload.test.tsx +16 -10
  336. package/src/components/FileUpload/FileUpload.tsx +107 -525
  337. package/src/components/FileUpload/FileUploadDropZone.tsx +112 -0
  338. package/src/components/FileUpload/FileUploadProgressItem.tsx +86 -0
  339. package/src/components/FileUpload/FileUploadProgressList.tsx +40 -0
  340. package/src/components/FileUpload/useFileUploadManager.test.ts +308 -0
  341. package/src/components/FileUpload/useFileUploadManager.ts +454 -0
  342. package/src/components/FileUpload/useResolvedAppId.test.ts +102 -0
  343. package/src/components/FileUpload/useResolvedAppId.ts +77 -0
  344. package/src/components/Footer/Footer.test.tsx +6 -292
  345. package/src/components/Footer/Footer.tsx +8 -125
  346. package/src/components/Form/Form.test.tsx +44 -27
  347. package/src/components/Form/Form.tsx +64 -287
  348. package/src/components/Form/useFormPersistence.ts +257 -0
  349. package/src/components/Header/Header.test.tsx +17 -18
  350. package/src/components/Header/Header.tsx +10 -1
  351. package/src/components/Input/Input.tsx +1 -1
  352. package/src/components/Label/Label.test.tsx +1 -1
  353. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +1 -1
  354. package/src/components/NavigationMenu/HierarchicalNavItem.tsx +104 -0
  355. package/src/components/NavigationMenu/NavigationMenu.test.tsx +1029 -26
  356. package/src/components/NavigationMenu/NavigationMenu.tsx +61 -361
  357. package/src/components/NavigationMenu/index.ts +6 -1
  358. package/src/components/NavigationMenu/navigationPermissionHelper.ts +188 -0
  359. package/src/components/NavigationMenu/{__tests__/useNavigationFiltering.test.ts → useNavigationFiltering.test.ts} +68 -53
  360. package/src/components/NavigationMenu/useNavigationFiltering.ts +197 -296
  361. package/src/components/NavigationMenu/useNavigationScope.ts +125 -0
  362. package/src/components/PaceAppLayout/PaceAppLayout.edge-cases.test.tsx +77 -62
  363. package/src/components/PaceAppLayout/PaceAppLayout.integration.test.tsx +3 -3
  364. package/src/components/PaceAppLayout/PaceAppLayout.security.test.tsx +16 -19
  365. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +529 -5
  366. package/src/components/PaceAppLayout/PaceAppLayout.tsx +280 -756
  367. package/src/components/PaceAppLayout/useFilteredNavItems.ts +304 -0
  368. package/src/components/PaceAppLayout/usePaceAppLayoutConfig.ts +142 -0
  369. package/src/components/PaceAppLayout/usePaceAppLayoutGate.tsx +150 -0
  370. package/src/components/PaceAppLayout/usePaceAppLayoutPermissions.ts +162 -0
  371. package/src/components/PaceAppLayout/usePaceAppLayoutScope.ts +79 -0
  372. package/src/components/PaceAppLayout/useRoleBasedRouteAccess.ts +157 -0
  373. package/src/components/PaceAppLayout/useSuperAdminFallback.ts +58 -0
  374. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +31 -25
  375. package/src/components/PaceLoginPage/PaceLoginPage.tsx +31 -122
  376. package/src/components/PaceLoginPage/useLoginAppAccess.ts +153 -0
  377. package/src/components/Progress/Progress.tsx +1 -2
  378. package/src/components/ProtectedRoute/ProtectedRoute.tsx +29 -235
  379. package/src/components/ProtectedRoute/useProtectedRouteState.ts +128 -0
  380. package/src/components/ProtectedRoute/useVisibilityRedirectGrace.ts +89 -0
  381. package/src/components/PublicLayout/PublicLayout.test.tsx +217 -36
  382. package/src/components/PublicLayout/PublicPageLayout.tsx +132 -73
  383. package/src/components/PublicLayout/PublicPageProvider.tsx +5 -1
  384. package/src/components/Select/Select.test.tsx +1 -1
  385. package/src/components/Select/Select.tsx +28 -18
  386. package/src/components/Select/{__tests__/context.test.tsx → context.test.tsx} +3 -3
  387. package/src/components/Select/{utils/__tests__/text.test.tsx → text.test.tsx} +2 -2
  388. package/src/components/Select/{utils/text.ts → text.ts} +1 -1
  389. package/src/components/Select/{hooks/__tests__/useSelectEvents.test.ts → useSelectEvents.test.ts} +5 -5
  390. package/src/components/Select/{hooks/useSelectEvents.ts → useSelectEvents.ts} +2 -2
  391. package/src/components/Select/{hooks/__tests__/useSelectSearch.test.tsx → useSelectSearch.test.tsx} +7 -7
  392. package/src/components/Select/{hooks/useSelectSearch.ts → useSelectSearch.ts} +2 -2
  393. package/src/components/Select/{hooks/__tests__/useSelectState.test.ts → useSelectState.test.ts} +16 -2
  394. package/src/components/Select/{hooks/useSelectState.ts → useSelectState.ts} +3 -3
  395. package/src/components/Table/Table.test.tsx +348 -0
  396. package/src/components/Tabs/Tabs.test.tsx +270 -0
  397. package/src/components/Tabs/Tabs.tsx +1 -1
  398. package/src/components/Toast/Toast.test.tsx +420 -0
  399. package/src/components/{__tests__/index.test.ts → index.test.ts} +2 -2
  400. package/src/constants/{__tests__/performance.test.ts → performance.test.ts} +2 -2
  401. package/src/hooks/{__tests__/ServiceHooks.test.tsx → ServiceHooks.test.tsx} +8 -8
  402. package/src/hooks/{__tests__/hooks.integration.test.tsx → hooks.integration.test.tsx} +11 -11
  403. package/src/hooks/index.ts +7 -4
  404. package/src/hooks/{__tests__/index.unit.test.ts → index.unit.test.ts} +2 -2
  405. package/src/hooks/public/usePublicEvent.test.ts +1 -1
  406. package/src/hooks/public/usePublicEventLogo.test.ts +1 -1
  407. package/src/hooks/public/usePublicRouteParams.test.ts +1 -1
  408. package/src/hooks/services/useAuth.ts +9 -7
  409. package/src/hooks/useAddressAutocomplete.test.ts +22 -22
  410. package/src/hooks/useAddressAutocomplete.ts +90 -75
  411. package/src/hooks/{__tests__/useAppConfig.unit.test.ts → useAppConfig.unit.test.ts} +328 -22
  412. package/src/hooks/{__tests__/useComponentPerformance.unit.test.tsx → useComponentPerformance.unit.test.tsx} +27 -41
  413. package/src/hooks/useDataTablePerformance.ts +100 -120
  414. package/src/hooks/{__tests__/useDataTablePerformance.unit.test.ts → useDataTablePerformance.unit.test.ts} +5 -5
  415. package/src/hooks/{__tests__/useDataTableState.test.ts → useDataTableState.test.ts} +2 -2
  416. package/src/hooks/{__tests__/useDebounce.unit.test.ts → useDebounce.unit.test.ts} +2 -2
  417. package/src/hooks/useEventTheme.test.ts +4 -1
  418. package/src/hooks/useEventTheme.ts +49 -21
  419. package/src/hooks/useEvents.ts +41 -1
  420. package/src/hooks/{__tests__/useEvents.unit.test.ts → useEvents.unit.test.ts} +5 -5
  421. package/src/hooks/useFileReference.test.ts +44 -41
  422. package/src/hooks/useFileReference.ts +182 -173
  423. package/src/hooks/useFileUrl.ts +1 -1
  424. package/src/hooks/{__tests__/useFileUrl.unit.test.ts → useFileUrl.unit.test.ts} +26 -36
  425. package/src/hooks/{__tests__/useFileUrlCache.test.ts → useFileUrlCache.test.ts} +8 -8
  426. package/src/hooks/useFileUrlCache.ts +1 -1
  427. package/src/hooks/{__tests__/useFocusManagement.unit.test.ts → useFocusManagement.unit.test.ts} +2 -2
  428. package/src/hooks/{__tests__/useFocusTrap.unit.test.tsx → useFocusTrap.unit.test.tsx} +2 -2
  429. package/src/hooks/{__tests__/useFormDialog.test.ts → useFormDialog.test.ts} +2 -2
  430. package/src/hooks/useInactivityTracker.ts +138 -131
  431. package/src/hooks/{__tests__/useInactivityTracker.unit.test.ts → useInactivityTracker.unit.test.ts} +3 -3
  432. package/src/hooks/{__tests__/useIsMobile.unit.test.ts → useIsMobile.unit.test.ts} +2 -2
  433. package/src/hooks/useIsPrint.ts +62 -0
  434. package/src/hooks/useIsPrint.unit.test.ts +545 -0
  435. package/src/hooks/{__tests__/useKeyboardShortcuts.unit.test.ts → useKeyboardShortcuts.unit.test.ts} +2 -2
  436. package/src/hooks/{__tests__/useOrganisationPermissions.unit.test.tsx → useOrganisationPermissions.unit.test.tsx} +4 -4
  437. package/src/hooks/useOrganisationSecurity.test.ts +3 -3
  438. package/src/hooks/useOrganisationSecurity.ts +190 -201
  439. package/src/hooks/{__tests__/useOrganisationSecurity.unit.test.tsx → useOrganisationSecurity.unit.test.tsx} +61 -63
  440. package/src/hooks/{__tests__/useOrganisations.unit.test.ts → useOrganisations.unit.test.ts} +5 -5
  441. package/src/hooks/{__tests__/usePerformanceMonitor.unit.test.ts → usePerformanceMonitor.unit.test.ts} +13 -14
  442. package/src/hooks/{__tests__/usePermissionCache.test.ts → usePermissionCache.test.ts} +26 -27
  443. package/src/hooks/usePermissionCache.ts +276 -271
  444. package/src/hooks/{__tests__/usePreventTabReload.test.ts → usePreventTabReload.test.ts} +2 -2
  445. package/src/hooks/{__tests__/usePublicEvent.simple.test.ts → usePublicEvent.simple.test.ts} +4 -4
  446. package/src/hooks/{__tests__/usePublicEvent.test.ts → usePublicEvent.test.ts} +4 -4
  447. package/src/hooks/{__tests__/usePublicEvent.unit.test.ts → usePublicEvent.unit.test.ts} +4 -4
  448. package/src/hooks/{__tests__/usePublicFileDisplay.test.ts → usePublicFileDisplay.test.ts} +12 -12
  449. package/src/hooks/{__tests__/usePublicRouteParams.unit.test.ts → usePublicRouteParams.unit.test.ts} +3 -3
  450. package/src/hooks/{__tests__/useQueryCache.test.ts → useQueryCache.test.ts} +2 -2
  451. package/src/hooks/useQueryCache.ts +0 -2
  452. package/src/hooks/{__tests__/useRBAC.unit.test.ts → useRBAC.unit.test.ts} +55 -38
  453. package/src/hooks/{__tests__/useSessionDraft.test.ts → useSessionDraft.test.ts} +2 -2
  454. package/src/hooks/{__tests__/useSessionRestoration.unit.test.tsx → useSessionRestoration.unit.test.tsx} +10 -19
  455. package/src/hooks/useStorage.ts +21 -16
  456. package/src/hooks/{__tests__/useStorage.unit.test.ts → useStorage.unit.test.ts} +38 -75
  457. package/src/hooks/{__tests__/useToast.test.ts → useToast.test.ts} +2 -2
  458. package/src/hooks/{__tests__/useToast.unit.test.tsx → useToast.unit.test.tsx} +2 -2
  459. package/src/hooks/{__tests__/useZodForm.unit.test.tsx → useZodForm.unit.test.tsx} +2 -2
  460. package/src/icons/{__tests__/index.test.ts → index.test.ts} +2 -2
  461. package/src/icons/index.ts +2 -0
  462. package/src/{__tests__/index.test.ts → index.test.ts} +3 -7
  463. package/src/index.ts +15 -7
  464. package/src/providers/{__tests__/AuthProvider.test.tsx → AuthProvider.test.tsx} +3 -3
  465. package/src/providers/{__tests__/EventProvider.test.tsx → EventProvider.test.tsx} +3 -3
  466. package/src/providers/InactivityProvider.test-helper.tsx +40 -0
  467. package/src/providers/{__tests__/InactivityProvider.test.tsx → InactivityProvider.test.tsx} +14 -21
  468. package/src/providers/{__tests__/ProviderLifecycle.test.tsx → ProviderLifecycle.test.tsx} +4 -4
  469. package/src/providers/{__tests__/UnifiedAuthProvider.test.tsx → UnifiedAuthProvider.test.tsx} +1 -1
  470. package/src/providers/{__tests__/index.test.ts → index.test.ts} +2 -2
  471. package/src/providers/services/{__tests__/AuthServiceProvider.integration.test.tsx → AuthServiceProvider.integration.test.tsx} +4 -4
  472. package/src/providers/services/{__tests__/AuthServiceProvider.test.tsx → AuthServiceProvider.test.tsx} +7 -7
  473. package/src/providers/services/{__tests__/EventServiceProvider.test.tsx → EventServiceProvider.test.tsx} +7 -7
  474. package/src/providers/services/{__tests__/InactivityServiceProvider.test.tsx → InactivityServiceProvider.test.tsx} +5 -5
  475. package/src/providers/services/{__tests__/OrganisationServiceProvider.test.tsx → OrganisationServiceProvider.test.tsx} +6 -6
  476. package/src/providers/services/UnifiedAuthContext.ts +30 -27
  477. package/src/providers/services/{__tests__/UnifiedAuthProvider.advanced.test.tsx → UnifiedAuthProvider.advanced.test.tsx} +8 -9
  478. package/src/providers/services/{__tests__/UnifiedAuthProvider.appId.test.tsx → UnifiedAuthProvider.appId.test.tsx} +25 -25
  479. package/src/providers/services/{__tests__/UnifiedAuthProvider.integration.test.tsx → UnifiedAuthProvider.integration.test.tsx} +14 -11
  480. package/src/providers/services/UnifiedAuthProvider.tsx +115 -360
  481. package/src/providers/services/{__tests__/contexts.test.tsx → contexts.test.tsx} +6 -6
  482. package/src/providers/services/{__tests__/useUnifiedAuth.test.tsx → useUnifiedAuth.test.tsx} +6 -6
  483. package/src/providers/services/useUnifiedAuthContextValue.ts +279 -0
  484. package/src/providers/useInactivity.test-helper.ts +27 -0
  485. package/src/rbac/{__tests__/adapters.comprehensive.test.tsx → adapters.comprehensive.test.tsx} +24 -24
  486. package/src/rbac/adapters.test.tsx +22 -22
  487. package/src/rbac/adapters.tsx +29 -29
  488. package/src/rbac/api.test.ts +973 -42
  489. package/src/rbac/api.ts +228 -253
  490. package/src/rbac/{__tests__/audit-batched.test.ts → audit-batched.test.ts} +6 -6
  491. package/src/rbac/audit.ts +4 -1
  492. package/src/rbac/{__tests__/auth-rbac-security.integration.test.tsx → auth-rbac-security.integration.test.tsx} +1 -1
  493. package/src/rbac/{__tests__/auth-rbac.e2e.test.tsx → auth-rbac.e2e.test.tsx} +27 -34
  494. package/src/rbac/cache-invalidation.test.ts +715 -0
  495. package/src/rbac/components/{__tests__/AccessDenied.test.tsx → AccessDenied.test.tsx} +3 -3
  496. package/src/rbac/components/{__tests__/NavigationGuard.test.tsx → NavigationGuard.test.tsx} +13 -11
  497. package/src/{__tests__/rbac/PagePermissionGuard.test.tsx → rbac/components/PagePermissionGuard.guard.test.tsx} +33 -19
  498. package/src/rbac/components/{__tests__/PagePermissionGuard.performance.test.tsx → PagePermissionGuard.performance.test.tsx} +30 -9
  499. package/src/rbac/components/{__tests__/PagePermissionGuard.race-condition.test.tsx → PagePermissionGuard.race-condition.test.tsx} +7 -7
  500. package/src/rbac/components/{__tests__/PagePermissionGuard.test.tsx → PagePermissionGuard.test.tsx} +10 -10
  501. package/src/rbac/components/PagePermissionGuard.tsx +177 -372
  502. package/src/rbac/components/{__tests__/PagePermissionGuard.verification.test.tsx → PagePermissionGuard.verification.test.tsx} +7 -7
  503. package/src/rbac/config.ts +58 -18
  504. package/src/rbac/{__tests__/engine.comprehensive.test.ts → engine.comprehensive.test.ts} +3 -3
  505. package/src/rbac/engine.test.ts +494 -0
  506. package/src/rbac/errors.ts +89 -55
  507. package/src/rbac/hooks/permissions/runPermissionCheck.ts +77 -0
  508. package/src/rbac/hooks/permissions/{__tests__/useAccessLevel.test.ts → useAccessLevel.test.ts} +40 -40
  509. package/src/rbac/hooks/permissions/useAccessLevel.ts +16 -6
  510. package/src/rbac/hooks/permissions/{__tests__/useCan.test.ts → useCan.test.ts} +41 -41
  511. package/src/rbac/hooks/permissions/useCan.ts +170 -252
  512. package/src/rbac/hooks/permissions/{__tests__/useMultiplePermissions.test.ts → useMultiplePermissions.test.ts} +49 -49
  513. package/src/rbac/hooks/permissions/useMultiplePermissions.ts +6 -2
  514. package/src/rbac/hooks/permissions/{__tests__/usePermissions.test.ts → usePermissions.test.ts} +10 -12
  515. package/src/rbac/hooks/permissions/usePermissions.ts +36 -65
  516. package/src/rbac/hooks/useCan.test.ts +42 -42
  517. package/src/rbac/hooks/usePageAccessLogging.ts +160 -0
  518. package/src/rbac/hooks/usePageGuardScope.ts +117 -0
  519. package/src/rbac/hooks/usePagePermissionCheck.ts +67 -0
  520. package/src/rbac/hooks/{__tests__/usePermissions.integration.test.ts → usePermissions.integration.test.ts} +9 -9
  521. package/src/{__tests__/hooks/usePermissions.test.ts → rbac/hooks/usePermissions.stability.test.ts} +18 -18
  522. package/src/rbac/hooks/usePermissions.test.ts +54 -54
  523. package/src/rbac/hooks/useRBAC.test.ts +313 -217
  524. package/src/rbac/hooks/useRBAC.ts +145 -81
  525. package/src/rbac/hooks/useResourcePermissions.test.ts +25 -25
  526. package/src/rbac/hooks/useResourcePermissions.ts +68 -134
  527. package/src/rbac/hooks/useResourcePermissionsSuperAdmin.ts +67 -0
  528. package/src/rbac/hooks/useRoleManagement.test.ts +27 -112
  529. package/src/rbac/hooks/useRoleManagement.ts +153 -585
  530. package/src/rbac/hooks/{__tests__/useSecureSupabase.test.ts → useSecureSupabase.test.ts} +17 -17
  531. package/src/rbac/hooks/useSecureSupabase.ts +10 -2
  532. package/src/rbac/hooks/useSuperAdminCheck.ts +80 -0
  533. package/src/rbac/{__tests__/performance.test.ts → performance.test.ts} +1 -1
  534. package/src/rbac/{__tests__/rbac-core.test.tsx → rbac-core.test.tsx} +3 -3
  535. package/src/rbac/{__tests__/rbac-engine-core-logic.test.ts → rbac-engine-core-logic.test.ts} +2 -2
  536. package/src/rbac/{__tests__/rbac-engine-simplified.test.ts → rbac-engine-simplified.test.ts} +3 -3
  537. package/src/rbac/{__tests__/rbac-functions.test.ts → rbac-functions.test.ts} +57 -0
  538. package/src/rbac/{__tests__/rbac-role-isolation.test.ts → rbac-role-isolation.test.ts} +2 -2
  539. package/src/rbac/request-deduplication.test.ts +14 -9
  540. package/src/rbac/request-deduplication.ts +5 -4
  541. package/src/rbac/{__tests__/scenarios.user-role.test.tsx → scenarios.user-role.test.tsx} +23 -23
  542. package/src/rbac/secureClient.test.ts +514 -83
  543. package/src/rbac/secureClient.ts +8 -2
  544. package/src/rbac/security.test.ts +323 -0
  545. package/src/rbac/types/roleManagement.ts +66 -0
  546. package/src/rbac/utils/{__tests__/clientSecurity.test.ts → clientSecurity.test.ts} +4 -4
  547. package/src/rbac/utils/{__tests__/contextValidator.test.ts → contextValidator.test.ts} +4 -4
  548. package/src/rbac/utils/contextValidator.ts +5 -1
  549. package/src/rbac/utils/{__tests__/deep-equal.test.ts → deep-equal.test.ts} +1 -1
  550. package/src/rbac/utils/{__tests__/eventContext.test.ts → eventContext.test.ts} +36 -21
  551. package/src/rbac/utils/eventContext.ts +37 -33
  552. package/src/rbac/utils/fetchPermissionMap.ts +13 -0
  553. package/src/rbac/utils/permissionMapHelpers.ts +34 -0
  554. package/src/rbac/utils/roleManagementRpc.ts +303 -0
  555. package/src/services/{__tests__/AuthService.edge-cases.test.ts → AuthService.edge-cases.test.ts} +19 -19
  556. package/src/services/{__tests__/AuthService.restoreSession.test.ts → AuthService.restoreSession.test.ts} +2 -2
  557. package/src/services/{__tests__/AuthService.test.ts → AuthService.test.ts} +89 -55
  558. package/src/services/AuthService.ts +184 -205
  559. package/src/services/{__tests__/BaseService.edge-cases.test.ts → BaseService.edge-cases.test.ts} +3 -3
  560. package/src/services/{__tests__/BaseService.test.ts → BaseService.test.ts} +2 -2
  561. package/src/services/{__tests__/EventService.edge-cases.test.ts → EventService.edge-cases.test.ts} +27 -24
  562. package/src/services/{__tests__/EventService.eventColours.test.ts → EventService.eventColours.test.ts} +1 -1
  563. package/src/services/{__tests__/EventService.test.ts → EventService.test.ts} +256 -24
  564. package/src/services/EventService.ts +242 -312
  565. package/src/services/{__tests__/InactivityService.edge-cases.test.ts → InactivityService.edge-cases.test.ts} +3 -3
  566. package/src/services/{__tests__/InactivityService.lifecycle.test.ts → InactivityService.lifecycle.test.ts} +2 -2
  567. package/src/services/{__tests__/InactivityService.test.ts → InactivityService.test.ts} +179 -4
  568. package/src/services/InactivityService.ts +172 -213
  569. package/src/services/{__tests__/OrganisationService.edge-cases.test.ts → OrganisationService.edge-cases.test.ts} +5 -5
  570. package/src/services/{__tests__/OrganisationService.pagination.test.ts → OrganisationService.pagination.test.ts} +4 -4
  571. package/src/services/{__tests__/OrganisationService.test.ts → OrganisationService.test.ts} +410 -7
  572. package/src/services/OrganisationService.ts +184 -238
  573. package/src/services/base/BaseService.test.ts +1 -1
  574. package/src/services/interfaces/{__tests__/IAuthService.test.ts → IAuthService.test.ts} +21 -27
  575. package/src/services/interfaces/IAuthService.ts +10 -9
  576. package/src/services/interfaces/{__tests__/IEventService.test.ts → IEventService.test.ts} +4 -4
  577. package/src/services/interfaces/{__tests__/IInactivityService.test.ts → IInactivityService.test.ts} +3 -3
  578. package/src/services/interfaces/{__tests__/IOrganisationService.test.ts → IOrganisationService.test.ts} +3 -3
  579. package/src/styles/core.css +243 -12
  580. package/src/theming/{__tests__/parseEventColours.test.ts → parseEventColours.test.ts} +1 -1
  581. package/src/theming/{__tests__/runtime.test.ts → runtime.test.ts} +8 -17
  582. package/src/theming/runtime.ts +71 -2
  583. package/src/types/api-result.ts +53 -0
  584. package/src/types/{__tests__/core.test.ts → core.test.ts} +2 -2
  585. package/src/types/{__tests__/database-generated.test.ts → database-generated.test.ts} +3 -3
  586. package/src/types/database.generated.ts +45 -10
  587. package/src/types/event.ts +38 -18
  588. package/src/types/{__tests__/file-reference.test.ts → file-reference.test.ts} +13 -13
  589. package/src/types/file-reference.ts +37 -12
  590. package/src/types/{__tests__/guards.test.ts → guards.test.ts} +2 -2
  591. package/src/types/{__tests__/index.test.ts → index.test.ts} +2 -2
  592. package/src/types/index.ts +3 -0
  593. package/src/types/{__tests__/organisation.roles.test.ts → organisation.roles.test.ts} +1 -1
  594. package/src/types/{__tests__/organisation.test.ts → organisation.test.ts} +3 -31
  595. package/src/types/organisation.ts +15 -15
  596. package/src/types/supabase.ts +13 -4
  597. package/src/types/{__tests__/theme.test.ts → theme.test.ts} +1 -1
  598. package/src/types/{__tests__/type-validation.test.ts → type-validation.test.ts} +1 -1
  599. package/src/types/{__tests__/validation.test.ts → validation.test.ts} +2 -2
  600. package/src/utils/app/appIdResolver.test.ts +98 -71
  601. package/src/utils/app/appIdResolver.ts +31 -20
  602. package/src/utils/{__tests__/appConfig.unit.test.ts → appConfig.unit.test.ts} +1 -1
  603. package/src/utils/{__tests__/audit.unit.test.ts → audit.unit.test.ts} +1 -1
  604. package/src/utils/{__tests__/auth-utils.unit.test.ts → auth-utils.unit.test.ts} +16 -17
  605. package/src/utils/{__tests__/bundleAnalysis.unit.test.ts → bundleAnalysis.unit.test.ts} +35 -35
  606. package/src/utils/{__tests__/cn.unit.test.ts → cn.unit.test.ts} +1 -1
  607. package/src/utils/context/organisationContext.test.ts +105 -91
  608. package/src/utils/context/organisationContext.ts +29 -40
  609. package/src/utils/core/{__tests__/cn.test.ts → cn.test.ts} +3 -3
  610. package/src/utils/core/{__tests__/debugLogger.test.ts → debugLogger.test.ts} +2 -2
  611. package/src/utils/core/{__tests__/logger.test.ts → logger.test.ts} +2 -2
  612. package/src/utils/core/mergeRefs.ts +24 -0
  613. package/src/utils/{__tests__/debugLogger.test.ts → debugLogger.test.ts} +1 -1
  614. package/src/utils/{__tests__/deviceFingerprint.unit.test.ts → deviceFingerprint.unit.test.ts} +1 -1
  615. package/src/utils/dynamic/createLazyComponent.tsx +9 -1
  616. package/src/utils/dynamic/{__tests__/dynamicUtils.test.ts → dynamicUtils.test.ts} +2 -2
  617. package/src/utils/dynamic/{__tests__/lazyLoad.test.tsx → lazyLoad.test.tsx} +2 -2
  618. package/src/utils/{__tests__/dynamicUtils.unit.test.ts → dynamicUtils.unit.test.ts} +1 -1
  619. package/src/utils/file-reference/{__tests__/file-reference.test.ts → file-reference.test.ts} +214 -289
  620. package/src/utils/file-reference/index.ts +330 -347
  621. package/src/utils/{__tests__/formatDate.unit.test.ts → formatDate.unit.test.ts} +2 -2
  622. package/src/utils/formatting/formatDateTimeTimezone.test.ts +1 -1
  623. package/src/utils/formatting/formatNumber.test.ts +1 -1
  624. package/src/utils/{__tests__/formatting.unit.test.ts → formatting.unit.test.ts} +1 -1
  625. package/src/utils/google-places/googlePlacesUtils.test.ts +70 -48
  626. package/src/utils/google-places/googlePlacesUtils.ts +67 -99
  627. package/src/utils/google-places/loadGoogleMapsScript.test.ts +25 -22
  628. package/src/utils/google-places/loadGoogleMapsScript.ts +138 -117
  629. package/src/utils/{__tests__/index.unit.test.ts → index.unit.test.ts} +1 -1
  630. package/src/utils/{__tests__/lazyLoad.unit.test.tsx → lazyLoad.unit.test.tsx} +13 -14
  631. package/src/utils/location/location.test.ts +1 -1
  632. package/src/utils/{__tests__/logger.unit.test.ts → logger.unit.test.ts} +1 -1
  633. package/src/utils/{__tests__/organisationContext.unit.test.ts → organisationContext.unit.test.ts} +37 -48
  634. package/src/utils/performance/{__tests__/bundleAnalysis.test.ts → bundleAnalysis.test.ts} +2 -2
  635. package/src/utils/performance/{__tests__/performanceBenchmark.test.ts → performanceBenchmark.test.ts} +2 -2
  636. package/src/utils/performance/{__tests__/performanceBudgets.test.ts → performanceBudgets.test.ts} +2 -2
  637. package/src/utils/{__tests__/performanceBenchmark.test.ts → performanceBenchmark.test.ts} +2 -2
  638. package/src/utils/{__tests__/performanceBudgets.unit.test.ts → performanceBudgets.unit.test.ts} +2 -2
  639. package/src/utils/{__tests__/permissionTypes.unit.test.ts → permissionTypes.unit.test.ts} +1 -1
  640. package/src/utils/{__tests__/permissionUtils.unit.test.ts → permissionUtils.unit.test.ts} +1 -1
  641. package/src/utils/permissions/{__tests__/permissionTypes.test.ts → permissionTypes.test.ts} +2 -2
  642. package/src/utils/persistence/{__tests__/keyDerivation.test.ts → keyDerivation.test.ts} +2 -2
  643. package/src/utils/persistence/{__tests__/sensitiveFieldDetection.test.ts → sensitiveFieldDetection.test.ts} +2 -2
  644. package/src/utils/{__tests__/request-deduplication.test.ts → request-deduplication.test.ts} +2 -2
  645. package/src/utils/{__tests__/sanitization.unit.test.ts → sanitization.unit.test.ts} +1 -1
  646. package/src/utils/{__tests__/schemaUtils.unit.test.ts → schemaUtils.unit.test.ts} +1 -1
  647. package/src/utils/{__tests__/secureDataAccess.unit.test.ts → secureDataAccess.unit.test.ts} +2 -2
  648. package/src/utils/{__tests__/secureErrors.unit.test.ts → secureErrors.unit.test.ts} +4 -4
  649. package/src/utils/{__tests__/secureStorage.unit.test.ts → secureStorage.unit.test.ts} +1 -1
  650. package/src/utils/security/auth-utils.ts +34 -23
  651. package/src/utils/security/secureDataAccess.ts +241 -281
  652. package/src/utils/security/secureErrors.test.ts +1 -1
  653. package/src/utils/security/secureStorage.test.ts +1 -1
  654. package/src/utils/security/security.test.ts +25 -17
  655. package/src/utils/security/security.ts +15 -18
  656. package/src/utils/security/securityMonitor.test.ts +1 -1
  657. package/src/utils/{__tests__/security.unit.test.ts → security.unit.test.ts} +21 -15
  658. package/src/utils/{__tests__/securityMonitor.unit.test.ts → securityMonitor.unit.test.ts} +1 -1
  659. package/src/utils/{__tests__/sessionTracking.unit.test.ts → sessionTracking.unit.test.ts} +12 -12
  660. package/src/utils/storage/{__tests__/config.unit.test.ts → config.unit.test.ts} +2 -2
  661. package/src/utils/storage/helpers.test.ts +88 -102
  662. package/src/utils/storage/helpers.ts +173 -251
  663. package/src/utils/storage/{__tests__/index.unit.test.ts → index.unit.test.ts} +3 -3
  664. package/src/utils/storage/types.ts +7 -0
  665. package/src/utils/supabase/createBaseClient.test.ts +1 -1
  666. package/src/utils/timezone/timezone.test.ts +1 -1
  667. package/src/utils/{__tests__/timezone.test.ts → timezone.test.ts} +2 -2
  668. package/src/utils/validation/{__tests__/common.test.ts → common.test.ts} +2 -2
  669. package/src/utils/validation/{__tests__/csrf.test.ts → csrf.test.ts} +56 -28
  670. package/src/utils/validation/csrf.ts +42 -41
  671. package/src/utils/validation/{__tests__/htmlSanitization.unit.test.ts → htmlSanitization.unit.test.ts} +2 -2
  672. package/src/utils/validation/{__tests__/passwordSchema.test.ts → passwordSchema.test.ts} +2 -2
  673. package/src/utils/validation/{__tests__/schema.test.ts → schema.test.ts} +2 -2
  674. package/src/utils/validation/{__tests__/sqlInjectionProtection.test.ts → sqlInjectionProtection.test.ts} +2 -2
  675. package/src/utils/validation/{__tests__/user.test.ts → user.test.ts} +2 -2
  676. package/src/utils/validation/{__tests__/validation.test.ts → validation.test.ts} +2 -2
  677. package/src/utils/validation/{__tests__/validationUtils.test.ts → validationUtils.test.ts} +2 -2
  678. package/src/utils/{__tests__/validation.unit.test.ts → validation.unit.test.ts} +1 -1
  679. package/src/utils/{__tests__/validationUtils.unit.test.ts → validationUtils.unit.test.ts} +5 -2
  680. package/dist/UnifiedAuthProvider-BBD2PS3Q.js +0 -7
  681. package/dist/chunk-KPYQWGFQ.js +0 -183
  682. package/dist/types-D05dCGma.d.ts +0 -521
  683. package/scripts/eslint-audit.cjs +0 -222
  684. package/scripts/generate-docs.js +0 -157
  685. package/scripts/install-cursor-rules.cjs +0 -255
  686. package/scripts/install-eslint-config.cjs +0 -349
  687. package/scripts/setup-build-cache.js +0 -73
  688. package/scripts/validate-pre-publish.js +0 -145
  689. package/src/__tests__/integration/UserProfile.test.tsx +0 -124
  690. package/src/__tests__/public-recipe-view.test.ts +0 -228
  691. package/src/__tests__/rls-policies.test.ts +0 -472
  692. package/src/components/DataTable/__tests__/DataTable.test.tsx +0 -876
  693. package/src/components/DataTable/components/DataTableLayout.tsx +0 -584
  694. package/src/components/DataTable/components/UnifiedTableBody.tsx +0 -395
  695. package/src/components/DataTable/components/__tests__/DataTableLayout.test.tsx +0 -467
  696. package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +0 -358
  697. package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +0 -957
  698. package/src/components/DataTable/core/ActionManager.ts +0 -235
  699. package/src/components/DataTable/core/ColumnManager.ts +0 -204
  700. package/src/components/DataTable/core/DataManager.ts +0 -190
  701. package/src/components/DataTable/core/LocalDataAdapter.ts +0 -274
  702. package/src/components/DataTable/core/PluginRegistry.ts +0 -229
  703. package/src/components/DataTable/core/StateManager.ts +0 -312
  704. package/src/components/DataTable/core/__tests__/ActionManager.test.ts +0 -235
  705. package/src/components/DataTable/core/__tests__/ColumnManager.test.ts +0 -141
  706. package/src/components/DataTable/core/__tests__/DataManager.test.ts +0 -178
  707. package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +0 -133
  708. package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +0 -142
  709. package/src/components/DataTable/core/__tests__/StateManager.test.ts +0 -158
  710. package/src/components/DataTable/core/interfaces.ts +0 -338
  711. package/src/components/DataTable/types.ts +0 -764
  712. package/src/hooks/public/usePublicFileDisplay.ts +0 -534
  713. package/src/hooks/useFileDisplay.ts +0 -748
  714. package/src/providers/OrganisationProvider.test.tsx +0 -40
  715. package/src/providers/OrganisationProvider.tsx +0 -92
  716. package/src/providers/__tests__/InactivityProvider.test-helper.tsx +0 -65
  717. package/src/providers/__tests__/OrganisationProvider.test.tsx +0 -616
  718. package/src/providers/__tests__/OrganisationProvider.wrapper.test.tsx +0 -591
  719. package/src/rbac/__tests__/cache-invalidation.test.ts +0 -393
  720. /package/src/components/DataTable/{components/__tests__ → ui}/COVERAGE_NOTE.md +0 -0
  721. /package/src/components/DataTable/utils/{__tests__/COVERAGE_NOTE.md → COVERAGE_NOTE.md} +0 -0
  722. /package/src/hooks/{__tests__/useApiFetch.unit.test.ts → useApiFetch.unit.test.ts} +0 -0
  723. /package/src/providers/{__tests__/README.md → README.md} +0 -0
  724. /package/src/rbac/{__tests__/index.test.ts → index.test.ts} +0 -0
  725. /package/src/rbac/{__tests__/rbac-integration.test.ts → rbac-integration.test.ts} +0 -0
  726. /package/src/types/{__tests__/README.md → README.md} +0 -0
@@ -62,13 +62,14 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
62
62
  - [CardProps](undefined)
63
63
  - [ContextSelectorProps](undefined)
64
64
  - [DataTableProps](undefined)
65
- - [DataRecord](undefined)
66
- - [DataTableColumn](undefined)
67
65
  - [DataTableAction](undefined)
68
66
  - [DataTableToolbarButton](undefined)
67
+ - [DataRecord](undefined)
69
68
  - [AggregateConfig](undefined)
70
- - [EmptyStateConfig](undefined)
69
+ - [DataTableColumn](undefined)
71
70
  - [ExportOptions](undefined)
71
+ - [EmptyStateConfig](undefined)
72
+ - [ImportSummary](undefined)
72
73
  - [ExportColumn](undefined)
73
74
  - [DatePickerWithTimezoneProps](undefined)
74
75
  - [DialogProps](undefined)
@@ -83,7 +84,8 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
83
84
  - [ErrorBoundaryProps](undefined)
84
85
  - [ErrorBoundaryProviderProps](undefined)
85
86
  - [FileDisplayProps](undefined)
86
- - [FileUploadProps](undefined)
87
+ - [UsePublicFileDisplayReturn](undefined)
88
+ - [UsePublicFileDisplayOptions](undefined)
87
89
  - [FooterProps](undefined)
88
90
  - [FormProps](undefined)
89
91
  - [FormFieldProps](undefined)
@@ -93,7 +95,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
93
95
  - [LoginFormProps](undefined)
94
96
  - [NavigationItem](undefined)
95
97
  - [NavigationMenuProps](undefined)
96
- - [PaceAppLayoutProps](undefined)
98
+ - [PaceAppLayoutRouteConfigItem](undefined)
99
+ - [PaceAppLayoutPermissionConfig](undefined)
100
+ - [PaceAppLayoutRoutingConfig](undefined)
97
101
  - [PaceLoginPageProps](undefined)
98
102
  - [ProgressProps](undefined)
99
103
  - [ProtectedRouteProps](undefined)
@@ -114,8 +118,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
114
118
  - [UsePublicEventOptions](undefined)
115
119
  - [UsePublicEventLogoReturn](undefined)
116
120
  - [UsePublicEventLogoOptions](undefined)
117
- - [UsePublicFileDisplayReturn](undefined)
118
- - [UsePublicFileDisplayOptions](undefined)
119
121
  - [UsePublicRouteParamsReturn](undefined)
120
122
  - [AccessibleApp](undefined)
121
123
  - [UseAccessibleAppsReturn](undefined)
@@ -123,23 +125,16 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
123
125
  - [UseFormDialogReturn](undefined)
124
126
  - [UseInactivityTrackerOptions](undefined)
125
127
  - [UseInactivityTrackerReturn](undefined)
126
- - [OrganisationProviderProps](undefined)
127
- - [UnifiedAuthContextType](undefined)
128
128
  - [UserEventAccess](undefined)
129
129
  - [UnifiedAuthProviderProps](undefined)
130
130
  - [AccessDeniedProps](undefined)
131
131
  - [NavigationGuardProps](undefined)
132
132
  - [PagePermissionGuardProps](undefined)
133
- - [RBACConfig](undefined)
134
133
  - [RBACLogger](undefined)
135
134
  - [UseResolvedScopeOptions](undefined)
136
135
  - [UseResolvedScopeReturn](undefined)
137
136
  - [UseResourcePermissionsOptions](undefined)
138
137
  - [ResourcePermissions](undefined)
139
- - [EventAppRoleData](undefined)
140
- - [RevokeEventAppRoleParams](undefined)
141
- - [GrantEventAppRoleParams](undefined)
142
- - [RoleManagementResult](undefined)
143
138
  - [RBACPerformanceMetrics](undefined)
144
139
  - [RBACPermissionCheckParams](undefined)
145
140
  - [RBACPermissionCheckResult](undefined)
@@ -162,6 +157,11 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
162
157
  - [RBACAuditLogResult](undefined)
163
158
  - [RBACContext](undefined)
164
159
  - [RBACResult](undefined)
160
+ - [EventAppRoleData](undefined)
161
+ - [RevokeEventAppRoleParams](undefined)
162
+ - [GrantEventAppRoleParams](undefined)
163
+ - [RoleManagementResult](undefined)
164
+ - [AuthSessionData](undefined)
165
165
  - [StyleImport](undefined)
166
166
  - [ColorShade](undefined)
167
167
  - [ColorPalette](undefined)
@@ -173,7 +173,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
173
173
  - [OrganisationMembership](undefined)
174
174
  - [UserProfile](undefined)
175
175
  - [OrganisationSecurityError](undefined)
176
- - [OrganisationContextType](undefined)
177
176
  - [BuildAppUrlOptions](undefined)
178
177
  - [LoggerConfig](undefined)
179
178
  - [ParsedAddress](undefined)
@@ -181,6 +180,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
181
180
  - [StorageUploadOptions](undefined)
182
181
  - [StorageFileMetadata](undefined)
183
182
  - [StorageUploadResult](undefined)
183
+ - [StorageUploadSuccess](undefined)
184
184
  - [StorageUrlOptions](undefined)
185
185
  - [StorageListOptions](undefined)
186
186
  - [StorageFileInfo](undefined)
@@ -193,12 +193,17 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
193
193
  - [BadgeVariant](undefined)
194
194
  - [GetRowId](undefined)
195
195
  - [DataTableFeatureConfig](undefined)
196
+ - [ImportHandlerResult](undefined)
196
197
  - [DialogSize](undefined)
197
198
  - [GlobalErrorHandler](undefined)
199
+ - [FileUploadProps](undefined)
198
200
  - [NavigationMode](undefined)
201
+ - [PaceAppLayoutProps](undefined)
199
202
  - [UseFileReferenceOptions](undefined)
200
203
  - [UseFileReferenceReturn](undefined)
201
204
  - [UseFileReferenceForRecordReturn](undefined)
205
+ - [UnifiedAuthContextType](undefined)
206
+ - [RBACConfig](undefined)
202
207
  - [AllPermissions](undefined)
203
208
  - [UUID](undefined)
204
209
  - [Operation](undefined)
@@ -215,6 +220,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
215
220
  - [SessionType](undefined)
216
221
  - [AuditEventType](undefined)
217
222
  - [RBACFunctionResponse](undefined)
223
+ - [ApiError](undefined)
224
+ - [ApiResult](undefined)
225
+ - [OrganisationContextType](undefined)
218
226
 
219
227
  ### Variables
220
228
 
@@ -282,6 +290,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
282
290
  - [ErrorBoundaryProvider](undefined)
283
291
  - [ErrorBoundary](undefined)
284
292
  - [FileDisplay](undefined)
293
+ - [usePublicFileDisplay](undefined)
294
+ - [clearPublicFileDisplayCache](undefined)
295
+ - [getPublicFileDisplayCacheStats](undefined)
285
296
  - [FileUpload](undefined)
286
297
  - [Footer](undefined)
287
298
  - [Form](undefined)
@@ -347,9 +358,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
347
358
  - [usePublicEventLogo](undefined)
348
359
  - [clearPublicLogoCache](undefined)
349
360
  - [getPublicLogoCacheStats](undefined)
350
- - [usePublicFileDisplay](undefined)
351
- - [clearPublicFileDisplayCache](undefined)
352
- - [getPublicFileDisplayCacheStats](undefined)
353
361
  - [usePublicRouteParams](undefined)
354
362
  - [usePublicEventCode](undefined)
355
363
  - [generatePublicRoutePath](undefined)
@@ -361,6 +369,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
361
369
  - [useAccessibleApps](undefined)
362
370
  - [useAppConfig](undefined)
363
371
  - [useEventTheme](undefined)
372
+ - [useOptionalEvents](undefined)
364
373
  - [useEvents](undefined)
365
374
  - [useFileReference](undefined)
366
375
  - [useFileReferenceForRecord](undefined)
@@ -374,7 +383,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
374
383
  - [useSessionRestoration](undefined)
375
384
  - [useToast](undefined)
376
385
  - [useZodForm](undefined)
377
- - [OrganisationProvider](undefined)
378
386
  - [EventServiceProvider](undefined)
379
387
  - [InactivityServiceProvider](undefined)
380
388
  - [OrganisationServiceProvider](undefined)
@@ -437,6 +445,10 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
437
445
  - [parseAndNormalizeEventColours](undefined)
438
446
  - [applyPalette](undefined)
439
447
  - [clearPalette](undefined)
448
+ - [ok](undefined)
449
+ - [err](undefined)
450
+ - [isOk](undefined)
451
+ - [isErr](undefined)
440
452
  - [setAppConfig](undefined)
441
453
  - [getAppConfig](undefined)
442
454
  - [getCurrentAppName](undefined)
@@ -511,7 +523,7 @@ ___
511
523
 
512
524
  #### Defined in
513
525
 
514
- [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)
515
527
 
516
528
  ___
517
529
 
@@ -547,7 +559,7 @@ Handles emission of structured audit events for all RBAC operations.
547
559
 
548
560
  #### Defined in
549
561
 
550
- [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)
551
563
 
552
564
  ___
553
565
 
@@ -785,7 +797,7 @@ Extends standard HTML attributes for semantic HTML elements.
785
797
 
786
798
  #### Defined in
787
799
 
788
- [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)
789
801
 
790
802
  ___
791
803
 
@@ -797,7 +809,7 @@ Props for the ContextSelector component.
797
809
 
798
810
  #### Defined in
799
811
 
800
- [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)
801
813
 
802
814
  ___
803
815
 
@@ -815,70 +827,51 @@ Enhanced DataTable props with performance features
815
827
 
816
828
  #### Defined in
817
829
 
818
- [packages/core/src/components/DataTable/DataTable.tsx:297](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/DataTable.tsx#L297)
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)
819
831
 
820
832
  ___
821
833
 
822
- ### DataRecord
823
-
824
- • **DataRecord**: Interface DataRecord
825
-
826
- Base data record type - all DataTable data must extend this
827
- This is a marker type that allows any object to be used as a data record
828
- Individual implementations should define more specific types
829
-
830
- #### Defined in
831
-
832
- [packages/core/src/components/DataTable/types.ts:48](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L48)
833
-
834
- ___
835
-
836
- ### DataTableColumn
834
+ ### DataTableAction
837
835
 
838
- • **DataTableColumn**: Interface DataTableColumn\<TData\>
836
+ • **DataTableAction**: Interface DataTableAction\<TData\>
839
837
 
840
- 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.
841
840
 
842
841
  #### Type parameters
843
842
 
844
843
  | Name | Type |
845
844
  | :------ | :------ |
846
- | `TData` | extends DataRecord = DataRecord |
845
+ | `TData` | extends DataRecord |
847
846
 
848
847
  #### Defined in
849
848
 
850
- [packages/core/src/components/DataTable/types.ts:244](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L244)
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)
851
850
 
852
851
  ___
853
852
 
854
- ### DataTableAction
855
-
856
- • **DataTableAction**: Interface DataTableAction\<TData\>
857
-
858
- Action definition for DataTable rows.
859
- Defines custom actions that can be performed on table rows.
853
+ ### DataTableToolbarButton
860
854
 
861
- #### Type parameters
855
+ **DataTableToolbarButton**: Interface DataTableToolbarButton
862
856
 
863
- | Name | Type | Description |
864
- | :------ | :------ | :------ |
865
- | `TData` | extends DataRecord | The type of data records in the table |
857
+ Toolbar button definition
866
858
 
867
859
  #### Defined in
868
860
 
869
- [packages/core/src/components/DataTable/types.ts:380](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L380)
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)
870
862
 
871
863
  ___
872
864
 
873
- ### DataTableToolbarButton
865
+ ### DataRecord
874
866
 
875
- • **DataTableToolbarButton**: Interface DataTableToolbarButton
867
+ • **DataRecord**: Interface DataRecord
876
868
 
877
- Toolbar button definition
869
+ Base data record type - all DataTable data must extend this.
870
+ Individual implementations should define more specific types.
878
871
 
879
872
  #### Defined in
880
873
 
881
- [packages/core/src/components/DataTable/types.ts:420](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L420)
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)
882
875
 
883
876
  ___
884
877
 
@@ -890,19 +883,25 @@ Aggregate configuration
890
883
 
891
884
  #### Defined in
892
885
 
893
- [packages/core/src/components/DataTable/types.ts:442](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L442)
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)
894
887
 
895
888
  ___
896
889
 
897
- ### EmptyStateConfig
890
+ ### DataTableColumn
898
891
 
899
- • **EmptyStateConfig**: Interface EmptyStateConfig
892
+ • **DataTableColumn**: Interface DataTableColumn\<TData\>
900
893
 
901
- 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 |
902
901
 
903
902
  #### Defined in
904
903
 
905
- [packages/core/src/components/DataTable/types.ts:451](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L451)
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)
906
905
 
907
906
  ___
908
907
 
@@ -912,25 +911,6 @@ ___
912
911
 
913
912
  Options provided to the onExport handler for custom export functionality
914
913
 
915
- **`Example`**
916
-
917
- ```tsx
918
- <DataTable
919
- onExport={async (options) => {
920
- // Export only specific columns
921
- const customColumns = options.allColumns.filter(col =>
922
- ['name', 'email', 'role'].includes(col.accessorKey || '')
923
- );
924
- await exportToCSVWithTableRows(
925
- options.tableRows,
926
- customColumns,
927
- options.columnIdToTableColumn,
928
- 'custom-export.csv'
929
- );
930
- }}
931
- />
932
- ```
933
-
934
914
  #### Type parameters
935
915
 
936
916
  | Name | Type |
@@ -939,7 +919,29 @@ Options provided to the onExport handler for custom export functionality
939
919
 
940
920
  #### Defined in
941
921
 
942
- [packages/core/src/components/DataTable/types.ts:629](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L629)
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)
943
945
 
944
946
  ___
945
947
 
@@ -975,7 +977,7 @@ Props for the Dialog root component
975
977
 
976
978
  #### Defined in
977
979
 
978
- [packages/core/src/components/Dialog/Dialog.tsx:139](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L139)
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)
979
981
 
980
982
  ___
981
983
 
@@ -987,7 +989,7 @@ Props for the DialogTrigger component
987
989
 
988
990
  #### Defined in
989
991
 
990
- [packages/core/src/components/Dialog/Dialog.tsx:150](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L150)
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)
991
993
 
992
994
  ___
993
995
 
@@ -1000,7 +1002,7 @@ Uses semantic HTML dialog element
1000
1002
 
1001
1003
  #### Defined in
1002
1004
 
1003
- [packages/core/src/components/Dialog/Dialog.tsx:162](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L162)
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)
1004
1006
 
1005
1007
  ___
1006
1008
 
@@ -1012,7 +1014,7 @@ Props for the DialogPortal component
1012
1014
 
1013
1015
  #### Defined in
1014
1016
 
1015
- [packages/core/src/components/Dialog/Dialog.tsx:203](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L203)
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:211](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L211)
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:220](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L220)
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,7 @@ Props for the DialogBody component (semantic main element)
1048
1050
 
1049
1051
  #### Defined in
1050
1052
 
1051
- [packages/core/src/components/Dialog/Dialog.tsx:229](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L229)
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)
1052
1054
 
1053
1055
  ___
1054
1056
 
@@ -1060,7 +1062,7 @@ Props for the DialogClose component
1060
1062
 
1061
1063
  #### Defined in
1062
1064
 
1063
- [packages/core/src/components/Dialog/Dialog.tsx:1272](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1272)
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)
1064
1066
 
1065
1067
  ___
1066
1068
 
@@ -1106,20 +1108,30 @@ ___
1106
1108
 
1107
1109
  #### Defined in
1108
1110
 
1109
- [packages/core/src/components/FileDisplay/FileDisplay.tsx:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L60)
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)
1110
1112
 
1111
1113
  ___
1112
1114
 
1113
- ### FileUploadProps
1115
+ ### UsePublicFileDisplayReturn
1114
1116
 
1115
- • **FileUploadProps**: Interface FileUploadProps
1117
+ • **UsePublicFileDisplayReturn**: Interface UsePublicFileDisplayReturn
1116
1118
 
1117
- Props for the FileUpload component.
1118
- Configures file upload behavior including storage location, validation, and callbacks.
1119
+ Return value of the usePublicFileDisplay hook.
1120
+ Provides file URLs, references, loading state, error, and refetch function.
1119
1121
 
1120
1122
  #### Defined in
1121
1123
 
1122
- [packages/core/src/components/FileUpload/FileUpload.tsx:27](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L27)
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
+ ___
1127
+
1128
+ ### UsePublicFileDisplayOptions
1129
+
1130
+ • **UsePublicFileDisplayOptions**: Interface UsePublicFileDisplayOptions
1131
+
1132
+ #### Defined in
1133
+
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)
1123
1135
 
1124
1136
  ___
1125
1137
 
@@ -1131,7 +1143,7 @@ Props for the Footer component.
1131
1143
 
1132
1144
  #### Defined in
1133
1145
 
1134
- [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)
1135
1147
 
1136
1148
  ___
1137
1149
 
@@ -1149,7 +1161,7 @@ Props for the Form component
1149
1161
 
1150
1162
  #### Defined in
1151
1163
 
1152
- [packages/core/src/components/Form/Form.tsx:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L89)
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)
1153
1165
 
1154
1166
  ___
1155
1167
 
@@ -1168,7 +1180,7 @@ Props for the FormField component
1168
1180
 
1169
1181
  #### Defined in
1170
1182
 
1171
- [packages/core/src/components/Form/Form.tsx:548](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L548)
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)
1172
1184
 
1173
1185
  ___
1174
1186
 
@@ -1244,16 +1256,39 @@ Navigation menu component props
1244
1256
 
1245
1257
  ___
1246
1258
 
1247
- ### PaceAppLayoutProps
1259
+ ### PaceAppLayoutRouteConfigItem
1260
+
1261
+ • **PaceAppLayoutRouteConfigItem**: Interface PaceAppLayoutRouteConfigItem
1262
+
1263
+ Route config item for role-based routing.
1264
+
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
1248
1284
 
1249
- • **PaceAppLayoutProps**: Interface PaceAppLayoutProps
1285
+ • **PaceAppLayoutRoutingConfig**: Interface PaceAppLayoutRoutingConfig
1250
1286
 
1251
- Props for the PaceAppLayout component.
1252
- Configures the application layout including navigation, header, and footer.
1287
+ Optional grouped routing options. When provided, overrides flat routing props.
1253
1288
 
1254
1289
  #### Defined in
1255
1290
 
1256
- [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L130)
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)
1257
1292
 
1258
1293
  ___
1259
1294
 
@@ -1289,7 +1324,7 @@ Props for the ProtectedRoute component.
1289
1324
 
1290
1325
  #### Defined in
1291
1326
 
1292
- [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)
1293
1328
 
1294
1329
  ___
1295
1330
 
@@ -1299,7 +1334,7 @@ ___
1299
1334
 
1300
1335
  #### Defined in
1301
1336
 
1302
- [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)
1303
1338
 
1304
1339
  ___
1305
1340
 
@@ -1309,7 +1344,7 @@ ___
1309
1344
 
1310
1345
  #### Defined in
1311
1346
 
1312
- [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)
1313
1348
 
1314
1349
  ___
1315
1350
 
@@ -1319,7 +1354,7 @@ ___
1319
1354
 
1320
1355
  #### Defined in
1321
1356
 
1322
- [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)
1323
1358
 
1324
1359
  ___
1325
1360
 
@@ -1477,29 +1512,6 @@ ___
1477
1512
 
1478
1513
  ___
1479
1514
 
1480
- ### UsePublicFileDisplayReturn
1481
-
1482
- • **UsePublicFileDisplayReturn**: Interface UsePublicFileDisplayReturn
1483
-
1484
- Return value of the usePublicFileDisplay hook.
1485
- Provides file URLs, references, loading state, error, and refetch function.
1486
-
1487
- #### Defined in
1488
-
1489
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L63)
1490
-
1491
- ___
1492
-
1493
- ### UsePublicFileDisplayOptions
1494
-
1495
- • **UsePublicFileDisplayOptions**: Interface UsePublicFileDisplayOptions
1496
-
1497
- #### Defined in
1498
-
1499
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:82](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L82)
1500
-
1501
- ___
1502
-
1503
1515
  ### UsePublicRouteParamsReturn
1504
1516
 
1505
1517
  • **UsePublicRouteParamsReturn**: Interface UsePublicRouteParamsReturn
@@ -1589,29 +1601,6 @@ ___
1589
1601
 
1590
1602
  ___
1591
1603
 
1592
- ### OrganisationProviderProps
1593
-
1594
- • **OrganisationProviderProps**: Interface OrganisationProviderProps
1595
-
1596
- #### Defined in
1597
-
1598
- [packages/core/src/providers/OrganisationProvider.tsx:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/OrganisationProvider.tsx#L21)
1599
-
1600
- ___
1601
-
1602
- ### UnifiedAuthContextType
1603
-
1604
- • **UnifiedAuthContextType**: Interface UnifiedAuthContextType
1605
-
1606
- Unified auth context type.
1607
- Provides combined authentication, organisation, event, and inactivity state and methods.
1608
-
1609
- #### Defined in
1610
-
1611
- [packages/core/src/providers/services/UnifiedAuthContext.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthContext.ts#L20)
1612
-
1613
- ___
1614
-
1615
1604
  ### UserEventAccess
1616
1605
 
1617
1606
  • **UserEventAccess**: Interface UserEventAccess
@@ -1621,7 +1610,7 @@ Represents a user's access to a specific event.
1621
1610
 
1622
1611
  #### Defined in
1623
1612
 
1624
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L34)
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)
1625
1614
 
1626
1615
  ___
1627
1616
 
@@ -1633,7 +1622,7 @@ Props for the UnifiedAuthProvider component.
1633
1622
 
1634
1623
  #### Defined in
1635
1624
 
1636
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:51](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L51)
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)
1637
1626
 
1638
1627
  ___
1639
1628
 
@@ -1667,23 +1656,13 @@ ___
1667
1656
 
1668
1657
  ___
1669
1658
 
1670
- ### RBACConfig
1671
-
1672
- • **RBACConfig**: Interface RBACConfig
1673
-
1674
- #### Defined in
1675
-
1676
- [packages/core/src/rbac/config.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L19)
1677
-
1678
- ___
1679
-
1680
1659
  ### RBACLogger
1681
1660
 
1682
1661
  • **RBACLogger**: Interface RBACLogger
1683
1662
 
1684
1663
  #### Defined in
1685
1664
 
1686
- [packages/core/src/rbac/config.ts:45](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L45)
1665
+ [packages/core/src/rbac/config.ts:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L85)
1687
1666
 
1688
1667
  ___
1689
1668
 
@@ -1713,7 +1692,7 @@ ___
1713
1692
 
1714
1693
  #### Defined in
1715
1694
 
1716
- [packages/core/src/rbac/hooks/useResourcePermissions.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L54)
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)
1717
1696
 
1718
1697
  ___
1719
1698
 
@@ -1723,47 +1702,7 @@ ___
1723
1702
 
1724
1703
  #### Defined in
1725
1704
 
1726
- [packages/core/src/rbac/hooks/useResourcePermissions.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L61)
1727
-
1728
- ___
1729
-
1730
- ### EventAppRoleData
1731
-
1732
- • **EventAppRoleData**: Interface EventAppRoleData
1733
-
1734
- #### Defined in
1735
-
1736
- [packages/core/src/rbac/hooks/useRoleManagement.ts:68](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L68)
1737
-
1738
- ___
1739
-
1740
- ### RevokeEventAppRoleParams
1741
-
1742
- • **RevokeEventAppRoleParams**: Interface RevokeEventAppRoleParams
1743
-
1744
- #### Defined in
1745
-
1746
- [packages/core/src/rbac/hooks/useRoleManagement.ts:87](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L87)
1747
-
1748
- ___
1749
-
1750
- ### GrantEventAppRoleParams
1751
-
1752
- • **GrantEventAppRoleParams**: Interface GrantEventAppRoleParams
1753
-
1754
- #### Defined in
1755
-
1756
- [packages/core/src/rbac/hooks/useRoleManagement.ts:91](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L91)
1757
-
1758
- ___
1759
-
1760
- ### RoleManagementResult
1761
-
1762
- • **RoleManagementResult**: Interface RoleManagementResult
1763
-
1764
- #### Defined in
1765
-
1766
- [packages/core/src/rbac/hooks/useRoleManagement.ts:117](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L117)
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)
1767
1706
 
1768
1707
  ___
1769
1708
 
@@ -1983,13 +1922,65 @@ ___
1983
1922
 
1984
1923
  #### Type parameters
1985
1924
 
1986
- | Name | Type |
1987
- | :------ | :------ |
1988
- | `T` | unknown |
1925
+ | Name | Type |
1926
+ | :------ | :------ |
1927
+ | `T` | unknown |
1928
+
1929
+ #### Defined in
1930
+
1931
+ [packages/core/src/rbac/types/functions.ts:273](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/functions.ts#L273)
1932
+
1933
+ ___
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).
1989
1980
 
1990
1981
  #### Defined in
1991
1982
 
1992
- [packages/core/src/rbac/types/functions.ts:273](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/types/functions.ts#L273)
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)
1993
1984
 
1994
1985
  ___
1995
1986
 
@@ -2064,7 +2055,7 @@ ___
2064
2055
 
2065
2056
  #### Defined in
2066
2057
 
2067
- [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)
2068
2059
 
2069
2060
  ___
2070
2061
 
@@ -2074,7 +2065,7 @@ ___
2074
2065
 
2075
2066
  #### Defined in
2076
2067
 
2077
- [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)
2078
2069
 
2079
2070
  ___
2080
2071
 
@@ -2086,7 +2077,7 @@ Options for uploading a file with a file reference
2086
2077
 
2087
2078
  #### Defined in
2088
2079
 
2089
- [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)
2090
2081
 
2091
2082
  ___
2092
2083
 
@@ -2130,16 +2121,6 @@ ___
2130
2121
 
2131
2122
  ___
2132
2123
 
2133
- ### OrganisationContextType
2134
-
2135
- • **OrganisationContextType**: Interface OrganisationContextType
2136
-
2137
- #### Defined in
2138
-
2139
- [packages/core/src/types/organisation.ts:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/types/organisation.ts#L108)
2140
-
2141
- ___
2142
-
2143
2124
  ### BuildAppUrlOptions
2144
2125
 
2145
2126
  • **BuildAppUrlOptions**: Interface BuildAppUrlOptions
@@ -2220,13 +2201,25 @@ ___
2220
2201
 
2221
2202
  ___
2222
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
+
2223
2216
  ### StorageUrlOptions
2224
2217
 
2225
2218
  • **StorageUrlOptions**: Interface StorageUrlOptions
2226
2219
 
2227
2220
  #### Defined in
2228
2221
 
2229
- [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)
2230
2223
 
2231
2224
  ___
2232
2225
 
@@ -2236,7 +2229,7 @@ ___
2236
2229
 
2237
2230
  #### Defined in
2238
2231
 
2239
- [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)
2240
2233
 
2241
2234
  ___
2242
2235
 
@@ -2246,7 +2239,7 @@ ___
2246
2239
 
2247
2240
  #### Defined in
2248
2241
 
2249
- [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)
2250
2243
 
2251
2244
  ___
2252
2245
 
@@ -2256,7 +2249,7 @@ ___
2256
2249
 
2257
2250
  #### Defined in
2258
2251
 
2259
- [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)
2260
2253
 
2261
2254
  ___
2262
2255
 
@@ -2266,7 +2259,7 @@ ___
2266
2259
 
2267
2260
  #### Defined in
2268
2261
 
2269
- [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)
2270
2263
 
2271
2264
  ___
2272
2265
 
@@ -2276,7 +2269,7 @@ ___
2276
2269
 
2277
2270
  #### Defined in
2278
2271
 
2279
- [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)
2280
2273
 
2281
2274
  ## Type Aliases
2282
2275
 
@@ -2326,7 +2319,7 @@ RowId
2326
2319
 
2327
2320
  #### Defined in
2328
2321
 
2329
- [packages/core/src/components/DataTable/types.ts:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L60)
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)
2330
2323
 
2331
2324
  ___
2332
2325
 
@@ -2335,12 +2328,23 @@ ___
2335
2328
  Ƭ **DataTableFeatureConfig**: Partial\<DataTableFeatureFlags\>
2336
2329
 
2337
2330
  Consumer-facing feature configuration. All properties are optional and will be
2338
- merged with defaultDataTableFeatures at runtime to keep the public API
2339
- 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>.
2340
2344
 
2341
2345
  #### Defined in
2342
2346
 
2343
- [packages/core/src/components/DataTable/types.ts:519](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L519)
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)
2344
2348
 
2345
2349
  ___
2346
2350
 
@@ -2352,7 +2356,7 @@ Dialog size variants
2352
2356
 
2353
2357
  #### Defined in
2354
2358
 
2355
- [packages/core/src/components/Dialog/Dialog.tsx:107](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L107)
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)
2356
2360
 
2357
2361
  ___
2358
2362
 
@@ -2385,6 +2389,20 @@ void
2385
2389
 
2386
2390
  ___
2387
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
+
2404
+ ___
2405
+
2388
2406
  ### NavigationMode
2389
2407
 
2390
2408
  Ƭ **NavigationMode**: "dropdown" \| "hierarchical"
@@ -2397,6 +2415,19 @@ Navigation mode type
2397
2415
 
2398
2416
  ___
2399
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
+
2400
2431
  ### UseFileReferenceOptions
2401
2432
 
2402
2433
  Ƭ **UseFileReferenceOptions**: `Object`
@@ -2411,35 +2442,19 @@ ___
2411
2442
 
2412
2443
  #### Defined in
2413
2444
 
2414
- [packages/core/src/hooks/useFileReference.ts:483](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L483)
2445
+ [packages/core/src/hooks/useFileReference.ts:476](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L476)
2415
2446
 
2416
2447
  ___
2417
2448
 
2418
2449
  ### UseFileReferenceReturn
2419
2450
 
2420
- Ƭ **UseFileReferenceReturn**: `Object`
2421
-
2422
- Return value of the useFileReference hook.
2423
-
2424
- #### Type declaration
2451
+ Ƭ **UseFileReferenceReturn**: UseFileReferenceReturnState & UseFileReferenceReturnUpload & UseFileReferenceReturnQueries & UseFileReferenceReturnMutations
2425
2452
 
2426
- | Name | Type |
2427
- | :------ | :------ |
2428
- | `isLoading` | boolean |
2429
- | `error` | string \| null |
2430
- | `uploadFile` | Function |
2431
- | `getFileReference` | Function |
2432
- | `getFileUrl` | Function |
2433
- | `getSignedUrl` | Function |
2434
- | `updateFileReference` | Function |
2435
- | `deleteFileReference` | Function |
2436
- | `listFileReferences` | Function |
2437
- | `getFileCount` | Function |
2438
- | `clearError` | Function |
2453
+ Return value of the useFileReference hook (ISP: composed from focused interfaces).
2439
2454
 
2440
2455
  #### Defined in
2441
2456
 
2442
- [packages/core/src/hooks/useFileReference.ts:492](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L492)
2457
+ [packages/core/src/hooks/useFileReference.ts:510](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L510)
2443
2458
 
2444
2459
  ___
2445
2460
 
@@ -2469,7 +2484,31 @@ Return value of the useFileReferenceForRecord hook.
2469
2484
 
2470
2485
  #### Defined in
2471
2486
 
2472
- [packages/core/src/hooks/useFileReference.ts:509](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L509)
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)
2473
2512
 
2474
2513
  ___
2475
2514
 
@@ -2675,6 +2714,56 @@ ___
2675
2714
 
2676
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)
2677
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
+
2678
2767
  ## Variables
2679
2768
 
2680
2769
  ### rbacCache
@@ -3117,7 +3206,7 @@ JSX.Element - The rendered address field
3117
3206
 
3118
3207
  #### Defined in
3119
3208
 
3120
- [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)
3121
3210
 
3122
3211
  ___
3123
3212
 
@@ -3320,7 +3409,7 @@ ReactNode
3320
3409
 
3321
3410
  #### Defined in
3322
3411
 
3323
- [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)
3324
3413
 
3325
3414
  ___
3326
3415
 
@@ -3340,7 +3429,7 @@ ReactNode
3340
3429
 
3341
3430
  #### Defined in
3342
3431
 
3343
- [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)
3344
3433
 
3345
3434
  ___
3346
3435
 
@@ -3360,7 +3449,7 @@ ReactNode
3360
3449
 
3361
3450
  #### Defined in
3362
3451
 
3363
- [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)
3364
3453
 
3365
3454
  ___
3366
3455
 
@@ -3380,7 +3469,7 @@ ReactNode
3380
3469
 
3381
3470
  #### Defined in
3382
3471
 
3383
- [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)
3384
3473
 
3385
3474
  ___
3386
3475
 
@@ -3400,7 +3489,7 @@ ReactNode
3400
3489
 
3401
3490
  #### Defined in
3402
3491
 
3403
- [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)
3404
3493
 
3405
3494
  ___
3406
3495
 
@@ -3420,7 +3509,7 @@ ReactNode
3420
3509
 
3421
3510
  #### Defined in
3422
3511
 
3423
- [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)
3424
3513
 
3425
3514
  ___
3426
3515
 
@@ -3440,7 +3529,7 @@ ReactNode
3440
3529
 
3441
3530
  #### Defined in
3442
3531
 
3443
- [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)
3444
3533
 
3445
3534
  ___
3446
3535
 
@@ -3502,7 +3591,7 @@ null \| Element
3502
3591
 
3503
3592
  #### Defined in
3504
3593
 
3505
- [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)
3506
3595
 
3507
3596
  ___
3508
3597
 
@@ -3966,7 +4055,7 @@ ReactNode
3966
4055
 
3967
4056
  #### Defined in
3968
4057
 
3969
- [packages/core/src/components/Dialog/Dialog.tsx:276](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L276)
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)
3970
4059
 
3971
4060
  ___
3972
4061
 
@@ -3978,7 +4067,7 @@ ___
3978
4067
 
3979
4068
  | Name | Type |
3980
4069
  | :------ | :------ |
3981
- | `props` | DialogTriggerProps & RefAttributes\<HTMLElement\> |
4070
+ | `props` | DialogTriggerProps & RefAttributes\<HTMLButtonElement\> |
3982
4071
 
3983
4072
  #### Returns
3984
4073
 
@@ -3986,7 +4075,7 @@ ReactNode
3986
4075
 
3987
4076
  #### Defined in
3988
4077
 
3989
- [packages/core/src/components/Dialog/Dialog.tsx:344](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L344)
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)
3990
4079
 
3991
4080
  ___
3992
4081
 
@@ -4006,9 +4095,9 @@ ReactNode \| Promise\<ReactNode\>
4006
4095
 
4007
4096
  #### Defined in
4008
4097
 
4009
- [packages/core/src/components/Dialog/Dialog.tsx:382](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L382)
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)
4010
4099
 
4011
- [packages/core/src/components/Dialog/Dialog.tsx:394](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L394)
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)
4012
4101
 
4013
4102
  ___
4014
4103
 
@@ -4030,7 +4119,7 @@ JSX.Element - The semantic dialog content with overlay and optional close button
4030
4119
 
4031
4120
  #### Defined in
4032
4121
 
4033
- [packages/core/src/components/Dialog/Dialog.tsx:556](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L556)
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)
4034
4123
 
4035
4124
  ___
4036
4125
 
@@ -4050,7 +4139,7 @@ ReactNode
4050
4139
 
4051
4140
  #### Defined in
4052
4141
 
4053
- [packages/core/src/components/Dialog/Dialog.tsx:1281](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1281)
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)
4054
4143
 
4055
4144
  ___
4056
4145
 
@@ -4070,7 +4159,7 @@ Element
4070
4159
 
4071
4160
  #### Defined in
4072
4161
 
4073
- [packages/core/src/components/Dialog/Dialog.tsx:1334](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1334)
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)
4074
4163
 
4075
4164
  ___
4076
4165
 
@@ -4090,7 +4179,7 @@ Element
4090
4179
 
4091
4180
  #### Defined in
4092
4181
 
4093
- [packages/core/src/components/Dialog/Dialog.tsx:1354](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1354)
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)
4094
4183
 
4095
4184
  ___
4096
4185
 
@@ -4110,7 +4199,7 @@ Element
4110
4199
 
4111
4200
  #### Defined in
4112
4201
 
4113
- [packages/core/src/components/Dialog/Dialog.tsx:1454](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1454)
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)
4114
4203
 
4115
4204
  ___
4116
4205
 
@@ -4130,7 +4219,7 @@ ReactNode
4130
4219
 
4131
4220
  #### Defined in
4132
4221
 
4133
- [packages/core/src/components/Dialog/Dialog.tsx:1475](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1475)
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)
4134
4223
 
4135
4224
  ___
4136
4225
 
@@ -4150,7 +4239,7 @@ ReactNode
4150
4239
 
4151
4240
  #### Defined in
4152
4241
 
4153
- [packages/core/src/components/Dialog/Dialog.tsx:1513](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1513)
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)
4154
4243
 
4155
4244
  ___
4156
4245
 
@@ -4201,26 +4290,94 @@ ___
4201
4290
 
4202
4291
  ### FileDisplay
4203
4292
 
4204
- ▸ **FileDisplay**(`props`): Element
4293
+ ▸ **FileDisplay**(`«destructured»`): Element
4205
4294
 
4206
4295
  File display component.
4207
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.
4208
4323
 
4209
4324
  #### Parameters
4210
4325
 
4211
4326
  | Name | Type | Description |
4212
4327
  | :------ | :------ | :------ |
4213
- | `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 |
4214
4333
 
4215
4334
  #### Returns
4216
4335
 
4217
- 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
4218
4352
 
4219
- The rendered file display
4353
+ #### Returns
4354
+
4355
+ void
4356
+
4357
+ #### Defined in
4358
+
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[] |
4220
4377
 
4221
4378
  #### Defined in
4222
4379
 
4223
- [packages/core/src/components/FileDisplay/FileDisplay.tsx:963](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L963)
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)
4224
4381
 
4225
4382
  ___
4226
4383
 
@@ -4240,7 +4397,7 @@ Element
4240
4397
 
4241
4398
  #### Defined in
4242
4399
 
4243
- [packages/core/src/components/FileUpload/FileUpload.tsx:59](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileUpload/FileUpload.tsx#L59)
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)
4244
4401
 
4245
4402
  ___
4246
4403
 
@@ -4260,7 +4417,7 @@ ReactNode
4260
4417
 
4261
4418
  #### Defined in
4262
4419
 
4263
- [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)
4264
4421
 
4265
4422
  ___
4266
4423
 
@@ -4305,7 +4462,7 @@ JSX.Element - The rendered form with FormProvider context
4305
4462
 
4306
4463
  #### Defined in
4307
4464
 
4308
- [packages/core/src/components/Form/Form.tsx:148](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L148)
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)
4309
4466
 
4310
4467
  ___
4311
4468
 
@@ -4397,7 +4554,7 @@ JSX.Element - The rendered form field with validation
4397
4554
 
4398
4555
  #### Defined in
4399
4556
 
4400
- [packages/core/src/components/Form/Form.tsx:683](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L683)
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)
4401
4558
 
4402
4559
  ___
4403
4560
 
@@ -4417,7 +4574,7 @@ Element
4417
4574
 
4418
4575
  #### Defined in
4419
4576
 
4420
- [packages/core/src/components/Header/Header.tsx:251](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Header/Header.tsx#L251)
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)
4421
4578
 
4422
4579
  ___
4423
4580
 
@@ -4571,7 +4728,7 @@ React element with navigation menu functionality
4571
4728
 
4572
4729
  #### Defined in
4573
4730
 
4574
- [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)
4575
4732
 
4576
4733
  ___
4577
4734
 
@@ -4741,7 +4898,7 @@ function AdminApp() {
4741
4898
 
4742
4899
  #### Defined in
4743
4900
 
4744
- [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:351](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L351)
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)
4745
4902
 
4746
4903
  ___
4747
4904
 
@@ -4811,7 +4968,7 @@ ___
4811
4968
 
4812
4969
  ### ProtectedRoute
4813
4970
 
4814
- ▸ **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
4815
4972
 
4816
4973
  ProtectedRoute component that handles authentication and optional event selection.
4817
4974
 
@@ -4833,13 +4990,13 @@ Strategy:
4833
4990
 
4834
4991
  #### Returns
4835
4992
 
4836
- string \| number \| bigint \| true \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4993
+ string \| number \| bigint \| boolean \| Iterable\<ReactNode, any, any\> \| Promise\<AwaitedReactNode\> \| Element
4837
4994
 
4838
4995
  React element with route protection logic
4839
4996
 
4840
4997
  #### Defined in
4841
4998
 
4842
- [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)
4843
5000
 
4844
5001
  ___
4845
5002
 
@@ -4859,7 +5016,7 @@ Element
4859
5016
 
4860
5017
  #### Defined in
4861
5018
 
4862
- [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)
4863
5020
 
4864
5021
  ___
4865
5022
 
@@ -4879,7 +5036,7 @@ Element
4879
5036
 
4880
5037
  #### Defined in
4881
5038
 
4882
- [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)
4883
5040
 
4884
5041
  ___
4885
5042
 
@@ -4909,7 +5066,7 @@ React element with complete public page layout
4909
5066
 
4910
5067
  #### Defined in
4911
5068
 
4912
- [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)
4913
5070
 
4914
5071
  ___
4915
5072
 
@@ -5018,7 +5175,7 @@ The rendered select trigger
5018
5175
 
5019
5176
  #### Defined in
5020
5177
 
5021
- [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)
5022
5179
 
5023
5180
  ___
5024
5181
 
@@ -5040,7 +5197,7 @@ The rendered select value display
5040
5197
 
5041
5198
  #### Defined in
5042
5199
 
5043
- [packages/core/src/components/Select/Select.tsx:416](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L416)
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)
5044
5201
 
5045
5202
  ___
5046
5203
 
@@ -5062,7 +5219,7 @@ The rendered select content
5062
5219
 
5063
5220
  #### Defined in
5064
5221
 
5065
- [packages/core/src/components/Select/Select.tsx:446](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L446)
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)
5066
5223
 
5067
5224
  ___
5068
5225
 
@@ -5084,7 +5241,7 @@ The rendered select item
5084
5241
 
5085
5242
  #### Defined in
5086
5243
 
5087
- [packages/core/src/components/Select/Select.tsx:560](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L560)
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)
5088
5245
 
5089
5246
  ___
5090
5247
 
@@ -5106,7 +5263,7 @@ The rendered select group
5106
5263
 
5107
5264
  #### Defined in
5108
5265
 
5109
- [packages/core/src/components/Select/Select.tsx:670](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L670)
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)
5110
5267
 
5111
5268
  ___
5112
5269
 
@@ -5128,7 +5285,7 @@ The rendered select label
5128
5285
 
5129
5286
  #### Defined in
5130
5287
 
5131
- [packages/core/src/components/Select/Select.tsx:695](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L695)
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)
5132
5289
 
5133
5290
  ___
5134
5291
 
@@ -5150,7 +5307,7 @@ The rendered select separator
5150
5307
 
5151
5308
  #### Defined in
5152
5309
 
5153
- [packages/core/src/components/Select/Select.tsx:714](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L714)
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)
5154
5311
 
5155
5312
  ___
5156
5313
 
@@ -5802,96 +5959,28 @@ authentication. It includes caching, error handling, and loading states.
5802
5959
 
5803
5960
  #### Parameters
5804
5961
 
5805
- | Name | Type | Description |
5806
- | :------ | :------ | :------ |
5807
- | `eventCode` | string | The event code to look up |
5808
- | `options` | UsePublicEventOptions | Configuration options for caching and behavior |
5809
-
5810
- #### Returns
5811
-
5812
- UsePublicEventReturn
5813
-
5814
- Object containing event data, loading state, error, and refetch function
5815
-
5816
- #### Defined in
5817
-
5818
- [packages/core/src/hooks/public/usePublicEvent.ts:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L105)
5819
-
5820
- ___
5821
-
5822
- ### clearPublicEventCache
5823
-
5824
- ▸ **clearPublicEventCache**(): void
5825
-
5826
- Clear all cached public event data
5827
- Useful for testing or when you need to force refresh all data
5828
-
5829
- #### Returns
5830
-
5831
- void
5832
-
5833
- #### Defined in
5834
-
5835
- [packages/core/src/hooks/public/usePublicEvent.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L285)
5836
-
5837
- ___
5838
-
5839
- ### getPublicEventCacheStats
5840
-
5841
- ▸ **getPublicEventCacheStats**(): Object
5842
-
5843
- Get cache statistics for debugging
5844
-
5845
- #### Returns
5846
-
5847
- Object
5848
-
5849
- | Name | Type |
5850
- | :------ | :------ |
5851
- | `size` | number |
5852
- | `keys` | string[] |
5853
-
5854
- #### Defined in
5855
-
5856
- [packages/core/src/hooks/public/usePublicEvent.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L296)
5857
-
5858
- ___
5859
-
5860
- ### usePublicEventLogo
5861
-
5862
- ▸ **usePublicEventLogo**(`eventId`, `eventName`, `organisationId`, `options`): UsePublicEventLogoReturn
5863
-
5864
- Hook for accessing public event logo URLs
5865
-
5866
- This hook provides access to event logo URLs without requiring
5867
- authentication. It includes fallback handling and image validation.
5868
-
5869
- #### Parameters
5870
-
5871
- | Name | Type | Description |
5872
- | :------ | :------ | :------ |
5873
- | `eventId` | undefined \| string | The event ID to fetch logo for |
5874
- | `eventName` | undefined \| string | The event name for fallback text generation |
5875
- | `organisationId` | undefined \| string | The organisation ID for storage path |
5876
- | `options` | UsePublicEventLogoOptions | Configuration options for caching and behavior |
5877
-
5962
+ | Name | Type | Description |
5963
+ | :------ | :------ | :------ |
5964
+ | `eventCode` | string | The event code to look up |
5965
+ | `options` | UsePublicEventOptions | Configuration options for caching and behavior |
5966
+
5878
5967
  #### Returns
5879
5968
 
5880
- UsePublicEventLogoReturn
5969
+ UsePublicEventReturn
5881
5970
 
5882
- Object containing logo URL, fallback text, loading state, error, and refetch function
5971
+ Object containing event data, loading state, error, and refetch function
5883
5972
 
5884
5973
  #### Defined in
5885
5974
 
5886
- [packages/core/src/hooks/public/usePublicEventLogo.ts:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L132)
5975
+ [packages/core/src/hooks/public/usePublicEvent.ts:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L105)
5887
5976
 
5888
5977
  ___
5889
5978
 
5890
- ### clearPublicLogoCache
5979
+ ### clearPublicEventCache
5891
5980
 
5892
- ▸ **clearPublicLogoCache**(): void
5981
+ ▸ **clearPublicEventCache**(): void
5893
5982
 
5894
- Clear all cached public logo data
5983
+ Clear all cached public event data
5895
5984
  Useful for testing or when you need to force refresh all data
5896
5985
 
5897
5986
  #### Returns
@@ -5900,13 +5989,13 @@ void
5900
5989
 
5901
5990
  #### Defined in
5902
5991
 
5903
- [packages/core/src/hooks/public/usePublicEventLogo.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L285)
5992
+ [packages/core/src/hooks/public/usePublicEvent.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L285)
5904
5993
 
5905
5994
  ___
5906
5995
 
5907
- ### getPublicLogoCacheStats
5996
+ ### getPublicEventCacheStats
5908
5997
 
5909
- ▸ **getPublicLogoCacheStats**(): Object
5998
+ ▸ **getPublicEventCacheStats**(): Object
5910
5999
 
5911
6000
  Get cache statistics for debugging
5912
6001
 
@@ -5921,46 +6010,45 @@ Object
5921
6010
 
5922
6011
  #### Defined in
5923
6012
 
5924
- [packages/core/src/hooks/public/usePublicEventLogo.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L296)
6013
+ [packages/core/src/hooks/public/usePublicEvent.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L296)
5925
6014
 
5926
6015
  ___
5927
6016
 
5928
- ### usePublicFileDisplay
6017
+ ### usePublicEventLogo
5929
6018
 
5930
- ▸ **usePublicFileDisplay**(`table_name`, `record_id`, `organisation_id`, `category`, `options`): UsePublicFileDisplayReturn
6019
+ ▸ **usePublicEventLogo**(`eventId`, `eventName`, `organisationId`, `options`): UsePublicEventLogoReturn
5931
6020
 
5932
- Hook for accessing public file references
6021
+ Hook for accessing public event logo URLs
5933
6022
 
5934
- This hook provides access to file references without requiring
5935
- authentication. It only returns public files and generates public URLs.
6023
+ This hook provides access to event logo URLs without requiring
6024
+ authentication. It includes fallback handling and image validation.
5936
6025
 
5937
6026
  #### Parameters
5938
6027
 
5939
6028
  | Name | Type | Description |
5940
6029
  | :------ | :------ | :------ |
5941
- | `table_name` | undefined \| string | The table name containing the file reference |
5942
- | `record_id` | undefined \| string | The record ID that owns the file(s) |
5943
- | `organisation_id` | undefined \| string | The organisation ID for storage path |
5944
- | `category` | undefined \| FileCategory | Optional file category to filter by (for single file mode) |
5945
- | `options` | UsePublicFileDisplayOptions | Configuration options for caching and behavior |
6030
+ | `eventId` | undefined \| string | The event ID to fetch logo for |
6031
+ | `eventName` | undefined \| string | The event name for fallback text generation |
6032
+ | `organisationId` | undefined \| string | The organisation ID for storage path |
6033
+ | `options` | UsePublicEventLogoOptions | Configuration options for caching and behavior |
5946
6034
 
5947
6035
  #### Returns
5948
6036
 
5949
- UsePublicFileDisplayReturn
6037
+ UsePublicEventLogoReturn
5950
6038
 
5951
- Object containing file data, loading state, error, and refetch function
6039
+ Object containing logo URL, fallback text, loading state, error, and refetch function
5952
6040
 
5953
6041
  #### Defined in
5954
6042
 
5955
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:104](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L104)
6043
+ [packages/core/src/hooks/public/usePublicEventLogo.ts:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L132)
5956
6044
 
5957
6045
  ___
5958
6046
 
5959
- ### clearPublicFileDisplayCache
6047
+ ### clearPublicLogoCache
5960
6048
 
5961
- ▸ **clearPublicFileDisplayCache**(): void
6049
+ ▸ **clearPublicLogoCache**(): void
5962
6050
 
5963
- Clear all cached public file data
6051
+ Clear all cached public logo data
5964
6052
  Useful for testing or when you need to force refresh all data
5965
6053
 
5966
6054
  #### Returns
@@ -5969,13 +6057,13 @@ void
5969
6057
 
5970
6058
  #### Defined in
5971
6059
 
5972
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:516](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L516)
6060
+ [packages/core/src/hooks/public/usePublicEventLogo.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L285)
5973
6061
 
5974
6062
  ___
5975
6063
 
5976
- ### getPublicFileDisplayCacheStats
6064
+ ### getPublicLogoCacheStats
5977
6065
 
5978
- ▸ **getPublicFileDisplayCacheStats**(): Object
6066
+ ▸ **getPublicLogoCacheStats**(): Object
5979
6067
 
5980
6068
  Get cache statistics for debugging
5981
6069
 
@@ -5990,7 +6078,7 @@ Object
5990
6078
 
5991
6079
  #### Defined in
5992
6080
 
5993
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:527](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L527)
6081
+ [packages/core/src/hooks/public/usePublicEventLogo.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L296)
5994
6082
 
5995
6083
  ___
5996
6084
 
@@ -6246,6 +6334,36 @@ void
6246
6334
 
6247
6335
  ___
6248
6336
 
6337
+ ### useOptionalEvents
6338
+
6339
+ ▸ **useOptionalEvents**(): Object
6340
+
6341
+ Optional event context hook that never throws.
6342
+ Use when a component must work with or without EventServiceProvider (e.g. PaceAppLayout).
6343
+
6344
+ #### Returns
6345
+
6346
+ Object
6347
+
6348
+ `{ selectedEvent: Event | null }` — when provider is absent, `selectedEvent` is always null.
6349
+
6350
+ | Name | Type |
6351
+ | :------ | :------ |
6352
+ | `selectedEvent` | Event \| null |
6353
+
6354
+ **`Example`**
6355
+
6356
+ ```ts
6357
+ const { selectedEvent } = useOptionalEvents();
6358
+ // selectedEvent is null when outside EventServiceProvider; otherwise the current selected event.
6359
+ ```
6360
+
6361
+ #### Defined in
6362
+
6363
+ [packages/core/src/hooks/useEvents.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L31)
6364
+
6365
+ ___
6366
+
6249
6367
  ### useEvents
6250
6368
 
6251
6369
  ▸ **useEvents**(): EventContextType
@@ -6286,7 +6404,7 @@ function MyComponent() {
6286
6404
 
6287
6405
  #### Defined in
6288
6406
 
6289
- [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)
6290
6408
 
6291
6409
  ___
6292
6410
 
@@ -6327,7 +6445,7 @@ File reference service with upload, get, and URL methods
6327
6445
 
6328
6446
  #### Defined in
6329
6447
 
6330
- [packages/core/src/hooks/useFileReference.ts:65](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L65)
6448
+ [packages/core/src/hooks/useFileReference.ts:91](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L91)
6331
6449
 
6332
6450
  ___
6333
6451
 
@@ -6366,7 +6484,7 @@ Object
6366
6484
 
6367
6485
  #### Defined in
6368
6486
 
6369
- [packages/core/src/hooks/useFileReference.ts:248](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L248)
6487
+ [packages/core/src/hooks/useFileReference.ts:243](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L243)
6370
6488
 
6371
6489
  ___
6372
6490
 
@@ -6399,7 +6517,7 @@ Object
6399
6517
 
6400
6518
  #### Defined in
6401
6519
 
6402
- [packages/core/src/hooks/useFileReference.ts:352](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L352)
6520
+ [packages/core/src/hooks/useFileReference.ts:347](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L347)
6403
6521
 
6404
6522
  ___
6405
6523
 
@@ -6443,7 +6561,7 @@ Object
6443
6561
 
6444
6562
  #### Defined in
6445
6563
 
6446
- [packages/core/src/hooks/useFileReference.ts:430](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L430)
6564
+ [packages/core/src/hooks/useFileReference.ts:424](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L424)
6447
6565
 
6448
6566
  ___
6449
6567
 
@@ -6522,7 +6640,7 @@ UseInactivityTrackerReturn
6522
6640
 
6523
6641
  #### Defined in
6524
6642
 
6525
- [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)
6526
6644
 
6527
6645
  ___
6528
6646
 
@@ -6560,7 +6678,7 @@ OrganisationSecurityHook
6560
6678
 
6561
6679
  #### Defined in
6562
6680
 
6563
- [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)
6564
6682
 
6565
6683
  ___
6566
6684
 
@@ -6675,40 +6793,6 @@ UseFormReturn\<TypeOf\<T\>, any, TypeOf\<T\>\>
6675
6793
 
6676
6794
  ___
6677
6795
 
6678
- ### OrganisationProvider
6679
-
6680
- ▸ **OrganisationProvider**(`«destructured»`): Element
6681
-
6682
- OrganisationProvider component
6683
-
6684
- Wraps OrganisationServiceProvider and automatically gets auth context.
6685
-
6686
- #### Parameters
6687
-
6688
- | Name | Type |
6689
- | :------ | :------ |
6690
- | `«destructured»` | OrganisationProviderProps |
6691
-
6692
- #### Returns
6693
-
6694
- Element
6695
-
6696
- **`Example`**
6697
-
6698
- ```tsx
6699
- <UnifiedAuthProvider supabaseClient={supabase} appName="my-app">
6700
- <OrganisationProvider>
6701
- <App />
6702
- </OrganisationProvider>
6703
- </UnifiedAuthProvider>
6704
- ```
6705
-
6706
- #### Defined in
6707
-
6708
- [packages/core/src/providers/OrganisationProvider.tsx:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/OrganisationProvider.tsx#L42)
6709
-
6710
- ___
6711
-
6712
6796
  ### EventServiceProvider
6713
6797
 
6714
6798
  ▸ **EventServiceProvider**(`props`): Element
@@ -6805,7 +6889,7 @@ The unified auth provider
6805
6889
 
6806
6890
  #### Defined in
6807
6891
 
6808
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:643](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L643)
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)
6809
6893
 
6810
6894
  ___
6811
6895
 
@@ -6946,7 +7030,7 @@ const adminHandler = withAccessLevelGuard(
6946
7030
 
6947
7031
  #### Defined in
6948
7032
 
6949
- [packages/core/src/rbac/adapters.tsx:115](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L115)
7033
+ [packages/core/src/rbac/adapters.tsx:116](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L116)
6950
7034
 
6951
7035
  ___
6952
7036
 
@@ -7013,7 +7097,7 @@ const adminHandler = withRoleGuard(
7013
7097
 
7014
7098
  #### Defined in
7015
7099
 
7016
- [packages/core/src/rbac/adapters.tsx:176](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L176)
7100
+ [packages/core/src/rbac/adapters.tsx:180](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L180)
7017
7101
 
7018
7102
  ___
7019
7103
 
@@ -7076,7 +7160,7 @@ export default createRBACMiddleware({
7076
7160
 
7077
7161
  #### Defined in
7078
7162
 
7079
- [packages/core/src/rbac/adapters.tsx:299](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L299)
7163
+ [packages/core/src/rbac/adapters.tsx:303](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L303)
7080
7164
 
7081
7165
  ___
7082
7166
 
@@ -7135,7 +7219,7 @@ app.use(createRBACExpressMiddleware({
7135
7219
 
7136
7220
  #### Defined in
7137
7221
 
7138
- [packages/core/src/rbac/adapters.tsx:366](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L366)
7222
+ [packages/core/src/rbac/adapters.tsx:368](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L368)
7139
7223
 
7140
7224
  ___
7141
7225
 
@@ -7158,7 +7242,7 @@ void
7158
7242
 
7159
7243
  #### Defined in
7160
7244
 
7161
- [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)
7162
7246
 
7163
7247
  ___
7164
7248
 
@@ -7176,13 +7260,13 @@ True if RBAC is initialized
7176
7260
 
7177
7261
  #### Defined in
7178
7262
 
7179
- [packages/core/src/rbac/api.ts:98](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L98)
7263
+ [packages/core/src/rbac/api.ts:110](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L110)
7180
7264
 
7181
7265
  ___
7182
7266
 
7183
7267
  ### getAccessLevel
7184
7268
 
7185
- ▸ **getAccessLevel**(`input`, `appName?`): Promise\<AccessLevel\>
7269
+ ▸ **getAccessLevel**(`input`, `appName?`): Promise\<ApiResult\<AccessLevel\>\>
7186
7270
 
7187
7271
  Get user's access level in a scope
7188
7272
 
@@ -7197,7 +7281,7 @@ Get user's access level in a scope
7197
7281
 
7198
7282
  #### Returns
7199
7283
 
7200
- Promise\<AccessLevel\>
7284
+ Promise\<ApiResult\<AccessLevel\>\>
7201
7285
 
7202
7286
  Promise resolving to access level
7203
7287
 
@@ -7212,13 +7296,13 @@ const accessLevel = await getAccessLevel({
7212
7296
 
7213
7297
  #### Defined in
7214
7298
 
7215
- [packages/core/src/rbac/api.ts:131](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L131)
7299
+ [packages/core/src/rbac/api.ts:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L143)
7216
7300
 
7217
7301
  ___
7218
7302
 
7219
7303
  ### getPermissionMap
7220
7304
 
7221
- ▸ **getPermissionMap**(`input`, `appName?`): Promise\<PermissionMap\>
7305
+ ▸ **getPermissionMap**(`input`, `appName?`): Promise\<ApiResult\<PermissionMap\>\>
7222
7306
 
7223
7307
  Get user's permission map for a scope
7224
7308
 
@@ -7233,7 +7317,7 @@ Get user's permission map for a scope
7233
7317
 
7234
7318
  #### Returns
7235
7319
 
7236
- Promise\<PermissionMap\>
7320
+ Promise\<ApiResult\<PermissionMap\>\>
7237
7321
 
7238
7322
  Promise resolving to permission map
7239
7323
 
@@ -7252,13 +7336,13 @@ const permissions = await getPermissionMap({
7252
7336
 
7253
7337
  #### Defined in
7254
7338
 
7255
- [packages/core/src/rbac/api.ts:191](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L191)
7339
+ [packages/core/src/rbac/api.ts:203](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L203)
7256
7340
 
7257
7341
  ___
7258
7342
 
7259
7343
  ### resolveAppContext
7260
7344
 
7261
- ▸ **resolveAppContext**(`input`): Promise\<RBACAppContext \| null\>
7345
+ ▸ **resolveAppContext**(`input`): Promise\<ApiResult\<RBACAppContext \| null\>\>
7262
7346
 
7263
7347
  #### Parameters
7264
7348
 
@@ -7270,17 +7354,17 @@ ___
7270
7354
 
7271
7355
  #### Returns
7272
7356
 
7273
- Promise\<RBACAppContext \| null\>
7357
+ Promise\<ApiResult\<RBACAppContext \| null\>\>
7274
7358
 
7275
7359
  #### Defined in
7276
7360
 
7277
- [packages/core/src/rbac/api.ts:225](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L225)
7361
+ [packages/core/src/rbac/api.ts:237](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L237)
7278
7362
 
7279
7363
  ___
7280
7364
 
7281
7365
  ### getRoleContext
7282
7366
 
7283
- ▸ **getRoleContext**(`input`, `appName?`): Promise\<RBACRoleContext\>
7367
+ ▸ **getRoleContext**(`input`, `appName?`): Promise\<ApiResult\<RBACRoleContext\>\>
7284
7368
 
7285
7369
  #### Parameters
7286
7370
 
@@ -7293,17 +7377,17 @@ ___
7293
7377
 
7294
7378
  #### Returns
7295
7379
 
7296
- Promise\<RBACRoleContext\>
7380
+ Promise\<ApiResult\<RBACRoleContext\>\>
7297
7381
 
7298
7382
  #### Defined in
7299
7383
 
7300
- [packages/core/src/rbac/api.ts:238](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L238)
7384
+ [packages/core/src/rbac/api.ts:250](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L250)
7301
7385
 
7302
7386
  ___
7303
7387
 
7304
7388
  ### isPermitted
7305
7389
 
7306
- ▸ **isPermitted**(`input`, `appName?`, `precomputedSuperAdmin?`): Promise\<boolean\>
7390
+ ▸ **isPermitted**(`input`, `appName?`, `precomputedSuperAdmin?`): Promise\<ApiResult\<boolean\>\>
7307
7391
 
7308
7392
  Check if user has a specific permission
7309
7393
 
@@ -7317,7 +7401,7 @@ Check if user has a specific permission
7317
7401
 
7318
7402
  #### Returns
7319
7403
 
7320
- Promise\<boolean\>
7404
+ Promise\<ApiResult\<boolean\>\>
7321
7405
 
7322
7406
  Promise resolving to permission result
7323
7407
 
@@ -7334,13 +7418,13 @@ const canManage = await isPermitted({
7334
7418
 
7335
7419
  #### Defined in
7336
7420
 
7337
- [packages/core/src/rbac/api.ts:284](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L284)
7421
+ [packages/core/src/rbac/api.ts:301](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L301)
7338
7422
 
7339
7423
  ___
7340
7424
 
7341
7425
  ### isPermittedCached
7342
7426
 
7343
- ▸ **isPermittedCached**(`input`, `appName?`): Promise\<boolean\>
7427
+ ▸ **isPermittedCached**(`input`, `appName?`): Promise\<ApiResult\<boolean\>\>
7344
7428
 
7345
7429
  Check if user has a specific permission (cached version)
7346
7430
 
@@ -7356,19 +7440,19 @@ and checks cache before making new requests. Uses session cache for page-level c
7356
7440
 
7357
7441
  #### Returns
7358
7442
 
7359
- Promise\<boolean\>
7443
+ Promise\<ApiResult\<boolean\>\>
7360
7444
 
7361
7445
  Promise resolving to permission result
7362
7446
 
7363
7447
  #### Defined in
7364
7448
 
7365
- [packages/core/src/rbac/api.ts:454](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L454)
7449
+ [packages/core/src/rbac/api.ts:465](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L465)
7366
7450
 
7367
7451
  ___
7368
7452
 
7369
7453
  ### hasAnyPermission
7370
7454
 
7371
- ▸ **hasAnyPermission**(`input`): Promise\<boolean\>
7455
+ ▸ **hasAnyPermission**(`input`): Promise\<ApiResult\<boolean\>\>
7372
7456
 
7373
7457
  Check if user has any of the specified permissions
7374
7458
 
@@ -7384,19 +7468,19 @@ Check if user has any of the specified permissions
7384
7468
 
7385
7469
  #### Returns
7386
7470
 
7387
- Promise\<boolean\>
7471
+ Promise\<ApiResult\<boolean\>\>
7388
7472
 
7389
7473
  Promise resolving to true if user has any permission
7390
7474
 
7391
7475
  #### Defined in
7392
7476
 
7393
- [packages/core/src/rbac/api.ts:498](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L498)
7477
+ [packages/core/src/rbac/api.ts:506](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L506)
7394
7478
 
7395
7479
  ___
7396
7480
 
7397
7481
  ### hasAllPermissions
7398
7482
 
7399
- ▸ **hasAllPermissions**(`input`): Promise\<boolean\>
7483
+ ▸ **hasAllPermissions**(`input`): Promise\<ApiResult\<boolean\>\>
7400
7484
 
7401
7485
  Check if user has all of the specified permissions
7402
7486
 
@@ -7412,13 +7496,13 @@ Check if user has all of the specified permissions
7412
7496
 
7413
7497
  #### Returns
7414
7498
 
7415
- Promise\<boolean\>
7499
+ Promise\<ApiResult\<boolean\>\>
7416
7500
 
7417
7501
  Promise resolving to true if user has all permissions
7418
7502
 
7419
7503
  #### Defined in
7420
7504
 
7421
- [packages/core/src/rbac/api.ts:526](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L526)
7505
+ [packages/core/src/rbac/api.ts:536](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L536)
7422
7506
 
7423
7507
  ___
7424
7508
 
@@ -7446,7 +7530,7 @@ RBACAuditManager instance
7446
7530
 
7447
7531
  #### Defined in
7448
7532
 
7449
- [packages/core/src/rbac/audit.ts:449](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L449)
7533
+ [packages/core/src/rbac/audit.ts:450](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L450)
7450
7534
 
7451
7535
  ___
7452
7536
 
@@ -7468,7 +7552,7 @@ void
7468
7552
 
7469
7553
  #### Defined in
7470
7554
 
7471
- [packages/core/src/rbac/audit.ts:469](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L469)
7555
+ [packages/core/src/rbac/audit.ts:470](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L470)
7472
7556
 
7473
7557
  ___
7474
7558
 
@@ -7486,13 +7570,13 @@ Global audit manager or null if not set
7486
7570
 
7487
7571
  #### Defined in
7488
7572
 
7489
- [packages/core/src/rbac/audit.ts:478](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L478)
7573
+ [packages/core/src/rbac/audit.ts:479](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L479)
7490
7574
 
7491
7575
  ___
7492
7576
 
7493
7577
  ### emitAuditEvent
7494
7578
 
7495
- ▸ **emitAuditEvent**(`event`): Promise\<void\>
7579
+ ▸ **emitAuditEvent**(`event`): Promise\<ApiResult\<void\>\>
7496
7580
 
7497
7581
  Emit an audit event using the global audit manager
7498
7582
 
@@ -7504,11 +7588,13 @@ Emit an audit event using the global audit manager
7504
7588
 
7505
7589
  #### Returns
7506
7590
 
7507
- Promise\<void\>
7591
+ Promise\<ApiResult\<void\>\>
7592
+
7593
+ ApiResult for consistency with API error handling
7508
7594
 
7509
7595
  #### Defined in
7510
7596
 
7511
- [packages/core/src/rbac/audit.ts:487](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L487)
7597
+ [packages/core/src/rbac/audit.ts:489](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/audit.ts#L489)
7512
7598
 
7513
7599
  ___
7514
7600
 
@@ -7583,7 +7669,7 @@ ReactNode
7583
7669
 
7584
7670
  #### Defined in
7585
7671
 
7586
- [packages/core/src/rbac/components/PagePermissionGuard.tsx:523](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L523)
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)
7587
7673
 
7588
7674
  ___
7589
7675
 
@@ -7603,7 +7689,7 @@ RBACConfig
7603
7689
 
7604
7690
  #### Defined in
7605
7691
 
7606
- [packages/core/src/rbac/config.ts:124](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L124)
7692
+ [packages/core/src/rbac/config.ts:164](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L164)
7607
7693
 
7608
7694
  ___
7609
7695
 
@@ -7617,7 +7703,7 @@ RBACConfig \| null
7617
7703
 
7618
7704
  #### Defined in
7619
7705
 
7620
- [packages/core/src/rbac/config.ts:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L129)
7706
+ [packages/core/src/rbac/config.ts:169](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L169)
7621
7707
 
7622
7708
  ___
7623
7709
 
@@ -7631,7 +7717,7 @@ RBACLogger
7631
7717
 
7632
7718
  #### Defined in
7633
7719
 
7634
- [packages/core/src/rbac/config.ts:133](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L133)
7720
+ [packages/core/src/rbac/config.ts:173](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L173)
7635
7721
 
7636
7722
  ___
7637
7723
 
@@ -7645,7 +7731,7 @@ boolean
7645
7731
 
7646
7732
  #### Defined in
7647
7733
 
7648
- [packages/core/src/rbac/config.ts:137](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L137)
7734
+ [packages/core/src/rbac/config.ts:177](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L177)
7649
7735
 
7650
7736
  ___
7651
7737
 
@@ -7659,7 +7745,7 @@ boolean
7659
7745
 
7660
7746
  #### Defined in
7661
7747
 
7662
- [packages/core/src/rbac/config.ts:141](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L141)
7748
+ [packages/core/src/rbac/config.ts:181](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L181)
7663
7749
 
7664
7750
  ___
7665
7751
 
@@ -7784,7 +7870,7 @@ function MyComponent() {
7784
7870
 
7785
7871
  #### Defined in
7786
7872
 
7787
- [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)
7788
7874
 
7789
7875
  ___
7790
7876
 
@@ -7901,7 +7987,7 @@ function MyComponent() {
7901
7987
 
7902
7988
  #### Defined in
7903
7989
 
7904
- [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)
7905
7991
 
7906
7992
  ___
7907
7993
 
@@ -7921,7 +8007,7 @@ UserRBACContext
7921
8007
 
7922
8008
  #### Defined in
7923
8009
 
7924
- [packages/core/src/rbac/hooks/useRBAC.ts:51](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRBAC.ts#L51)
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)
7925
8011
 
7926
8012
  ___
7927
8013
 
@@ -7972,79 +8058,20 @@ ___
7972
8058
 
7973
8059
  ▸ **useResourcePermissions**(`resource`, `options?`): ResourcePermissions
7974
8060
 
7975
- Hook to check permissions for a specific resource
7976
-
7977
- This hook encapsulates the common pattern of checking create/update/delete/read
7978
- permissions for a resource type. It handles scope resolution, user context,
7979
- and provides a simple API for permission checking.
7980
-
7981
- **Page Permission Support:**
7982
- When an `appId` is available in the resolved scope, the hook automatically:
7983
- 1. Waits for scope resolution to complete (including `appId` being set)
7984
- 2. Constructs permission strings with the `page.` prefix (e.g., `create:page.planning`)
7985
- 3. Passes the resource name as `pageId` to enable page-based permission checks
7986
-
7987
- This ensures permission strings match the format returned by `rbac_permissions_get`
7988
- (e.g., `create:page.planning`) rather than resource-based format (e.g., `create:planning`).
7989
-
7990
- **Scope Resolution Timing:**
7991
- The hook waits for scope resolution to complete before constructing permission strings.
7992
- This prevents timing issues where permission checks use the wrong format (e.g., `delete:planning`
7993
- instead of `delete:page.planning`) when `appId` is not yet available in the scope.
7994
-
7995
- The RPC function `rbac_check_permission_simplified` will resolve the page name to a page ID
7996
- and check page permissions if the resource matches a registered page in `rbac_app_pages`.
7997
- If the resource is not a registered page, it will fall back to resource-based permission checking.
7998
-
7999
8061
  #### Parameters
8000
8062
 
8001
- | Name | Type | Description |
8002
- | :------ | :------ | :------ |
8003
- | `resource` | string | The resource name (e.g., 'contacts', 'risks', 'planning') Can be a resource name or a page name registered in rbac_app_pages |
8004
- | `options` | UseResourcePermissionsOptions | Optional configuration |
8063
+ | Name | Type |
8064
+ | :------ | :------ |
8065
+ | `resource` | string |
8066
+ | `options` | UseResourcePermissionsOptions |
8005
8067
 
8006
8068
  #### Returns
8007
8069
 
8008
8070
  ResourcePermissions
8009
8071
 
8010
- Object with permission check functions and scope
8011
-
8012
- **`Example`**
8013
-
8014
- ```tsx
8015
- function useContacts() {
8016
- const { canCreate, canUpdate, canDelete } = useResourcePermissions('contacts');
8017
-
8018
- const addContact = async (data: ContactData) => {
8019
- if (!canCreate('contacts')) {
8020
- throw new Error("Permission denied");
8021
- }
8022
- // ... perform mutation
8023
- };
8024
- }
8025
- ```
8026
-
8027
- **`Example`**
8028
-
8029
- ```tsx
8030
- // Works with page names when appId is available in scope
8031
- function usePlanning() {
8032
- const { canCreate, canUpdate, canDelete } = useResourcePermissions('planning');
8033
-
8034
- // Will check page permissions if 'planning' is registered in rbac_app_pages
8035
- // Falls back to resource permissions if not a registered page
8036
- const deleteItem = async (id: string) => {
8037
- if (!canDelete('planning')) {
8038
- throw new Error("Permission denied");
8039
- }
8040
- // ... perform deletion
8041
- };
8042
- }
8043
- ```
8044
-
8045
8072
  #### Defined in
8046
8073
 
8047
- [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)
8048
8075
 
8049
8076
  ___
8050
8077
 
@@ -8070,7 +8097,7 @@ Object
8070
8097
 
8071
8098
  #### Defined in
8072
8099
 
8073
- [packages/core/src/rbac/hooks/useRoleManagement.ts:124](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useRoleManagement.ts#L124)
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)
8074
8101
 
8075
8102
  ___
8076
8103
 
@@ -8300,7 +8327,7 @@ void
8300
8327
 
8301
8328
  #### Defined in
8302
8329
 
8303
- [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)
8304
8331
 
8305
8332
  ___
8306
8333
 
@@ -8318,7 +8345,7 @@ Number of in-flight requests
8318
8345
 
8319
8346
  #### Defined in
8320
8347
 
8321
- [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)
8322
8349
 
8323
8350
  ___
8324
8351
 
@@ -8370,7 +8397,7 @@ const superAdminClient = createSecureClient(
8370
8397
 
8371
8398
  #### Defined in
8372
8399
 
8373
- [packages/core/src/rbac/secureClient.ts:612](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L612)
8400
+ [packages/core/src/rbac/secureClient.ts:618](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L618)
8374
8401
 
8375
8402
  ___
8376
8403
 
@@ -8398,7 +8425,7 @@ SecureSupabaseClient instance
8398
8425
 
8399
8426
  #### Defined in
8400
8427
 
8401
- [packages/core/src/rbac/secureClient.ts:632](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L632)
8428
+ [packages/core/src/rbac/secureClient.ts:638](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/secureClient.ts#L638)
8402
8429
 
8403
8430
  ___
8404
8431
 
@@ -8613,16 +8640,18 @@ ___
8613
8640
 
8614
8641
  ### applyPalette
8615
8642
 
8616
- ▸ **applyPalette**(`palette`): void
8643
+ ▸ **applyPalette**(`palette`, `eventName?`): void
8617
8644
 
8618
8645
  Applies a complete palette to the document by setting CSS variables on :root.
8619
8646
  Uses document.documentElement.style.setProperty() for runtime updates.
8647
+ When eventName is provided, also sets --print-event-name for print styles.
8620
8648
 
8621
8649
  #### Parameters
8622
8650
 
8623
8651
  | Name | Type | Description |
8624
8652
  | :------ | :------ | :------ |
8625
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) |
8626
8655
 
8627
8656
  #### Returns
8628
8657
 
@@ -8630,7 +8659,7 @@ void
8630
8659
 
8631
8660
  #### Defined in
8632
8661
 
8633
- [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)
8634
8663
 
8635
8664
  ___
8636
8665
 
@@ -8647,7 +8676,113 @@ void
8647
8676
 
8648
8677
  #### Defined in
8649
8678
 
8650
- [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)
8651
8786
 
8652
8787
  ___
8653
8788
 
@@ -9117,7 +9252,7 @@ Secure data access utilities
9117
9252
 
9118
9253
  #### Defined in
9119
9254
 
9120
- [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)
9121
9256
 
9122
9257
  ___
9123
9258
 
@@ -9215,7 +9350,7 @@ string
9215
9350
 
9216
9351
  #### Defined in
9217
9352
 
9218
- [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)
9219
9354
 
9220
9355
  ___
9221
9356
 
@@ -9238,15 +9373,15 @@ string
9238
9373
 
9239
9374
  #### Defined in
9240
9375
 
9241
- [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)
9242
9377
 
9243
9378
  ___
9244
9379
 
9245
9380
  ### extractFileMetadata
9246
9381
 
9247
- ▸ **extractFileMetadata**(`file`, `options`, `uploadedBy`): Promise\<StorageFileMetadata\>
9382
+ ▸ **extractFileMetadata**(`file`, `options`, `uploadedBy`): Promise\<ApiResult\<StorageFileMetadata\>\>
9248
9383
 
9249
- Extract file metadata from a File object
9384
+ Extract file metadata from a File object.
9250
9385
 
9251
9386
  #### Parameters
9252
9387
 
@@ -9258,19 +9393,22 @@ Extract file metadata from a File object
9258
9393
 
9259
9394
  #### Returns
9260
9395
 
9261
- Promise\<StorageFileMetadata\>
9396
+ Promise\<ApiResult\<StorageFileMetadata\>\>
9397
+
9398
+ ApiResult with metadata on success; optional dimensions/hash are best-effort.
9262
9399
 
9263
9400
  #### Defined in
9264
9401
 
9265
- [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)
9266
9403
 
9267
9404
  ___
9268
9405
 
9269
9406
  ### uploadFile
9270
9407
 
9271
- ▸ **uploadFile**(`supabase`, `file`, `options`): Promise\<StorageUploadResult\>
9408
+ ▸ **uploadFile**(`supabase`, `file`, `options`): Promise\<ApiResult\<StorageUploadSuccess\>\>
9272
9409
 
9273
- 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.
9274
9412
 
9275
9413
  #### Parameters
9276
9414
 
@@ -9282,11 +9420,11 @@ Upload a file to Supabase storage with app segregation
9282
9420
 
9283
9421
  #### Returns
9284
9422
 
9285
- Promise\<StorageUploadResult\>
9423
+ Promise\<ApiResult\<StorageUploadSuccess\>\>
9286
9424
 
9287
9425
  #### Defined in
9288
9426
 
9289
- [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)
9290
9428
 
9291
9429
  ___
9292
9430
 
@@ -9312,166 +9450,167 @@ Public URL for the file
9312
9450
 
9313
9451
  #### Defined in
9314
9452
 
9315
- [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)
9316
9454
 
9317
9455
  ___
9318
9456
 
9319
9457
  ### getSignedUrl
9320
9458
 
9321
- ▸ **getSignedUrl**(`supabase`, `path`, `options`): Promise\<Object \| null\>
9459
+ ▸ **getSignedUrl**(`supabase`, `path`, `options`): Promise\<ApiResult\<Object\>\>
9322
9460
 
9323
- Get a signed URL for a protected file
9324
- 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.
9325
9463
 
9326
9464
  #### Parameters
9327
9465
 
9328
- | Name | Type | Description |
9329
- | :------ | :------ | :------ |
9330
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9331
- | `path` | string | File path within the bucket |
9332
- | `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 |
9333
9471
 
9334
9472
  #### Returns
9335
9473
 
9336
- Promise\<Object \| null\>
9474
+ Promise\<ApiResult\<Object\>\>
9337
9475
 
9338
- Signed URL with expiration timestamp, or null if failed
9476
+ ApiResult with url and expiresAt on success.
9339
9477
 
9340
9478
  #### Defined in
9341
9479
 
9342
- [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)
9343
9481
 
9344
9482
  ___
9345
9483
 
9346
9484
  ### generateFileUrlsBatch
9347
9485
 
9348
- ▸ **generateFileUrlsBatch**(`supabase`, `fileReferences`, `options`): Promise\<Map\<string, string\>\>
9486
+ ▸ **generateFileUrlsBatch**(`supabase`, `fileReferences`, `options`): Promise\<ApiResult\<Map\<string, string\>\>\>
9349
9487
 
9350
- Generate URLs for multiple file references in parallel
9351
- 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).
9352
9489
 
9353
9490
  #### Parameters
9354
9491
 
9355
- | Name | Type | Description |
9356
- | :------ | :------ | :------ |
9357
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9358
- | `fileReferences` | Object[] | Array of file references to generate URLs for |
9359
- | `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 |
9360
9497
 
9361
9498
  #### Returns
9362
9499
 
9363
- Promise\<Map\<string, string\>\>
9500
+ Promise\<ApiResult\<Map\<string, string\>\>\>
9364
9501
 
9365
- Map of file ID to URL string (only includes successful URL generations)
9502
+ ApiResult with Map of file ID to URL string.
9366
9503
 
9367
9504
  #### Defined in
9368
9505
 
9369
- [packages/core/src/utils/storage/helpers.ts:466](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L466)
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)
9370
9507
 
9371
9508
  ___
9372
9509
 
9373
9510
  ### deleteFile
9374
9511
 
9375
- ▸ **deleteFile**(`supabase`, `path`, `isPublic?`): Promise\<Object\>
9512
+ ▸ **deleteFile**(`supabase`, `path`, `isPublic?`): Promise\<ApiResult\<void\>\>
9376
9513
 
9377
- Delete a file from storage
9514
+ Delete a file from storage.
9378
9515
 
9379
9516
  #### Parameters
9380
9517
 
9381
- | Name | Type | Default value | Description |
9382
- | :------ | :------ | :------ | :------ |
9383
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` | Supabase client instance |
9384
- | `path` | string | `undefined` | File path within the bucket |
9385
- | `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` |
9386
9523
 
9387
9524
  #### Returns
9388
9525
 
9389
- Promise\<Object\>
9526
+ Promise\<ApiResult\<void\>\>
9390
9527
 
9391
- Success status and optional error message
9528
+ ApiResult<void> on success.
9392
9529
 
9393
9530
  #### Defined in
9394
9531
 
9395
- [packages/core/src/utils/storage/helpers.ts:573](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L573)
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)
9396
9533
 
9397
9534
  ___
9398
9535
 
9399
9536
  ### listFiles
9400
9537
 
9401
- ▸ **listFiles**(`supabase`, `options`): Promise\<StorageListResult\>
9538
+ ▸ **listFiles**(`supabase`, `options`): Promise\<ApiResult\<StorageListResult\>\>
9402
9539
 
9403
- List files in an organization scope
9540
+ List files in an organization scope.
9404
9541
 
9405
9542
  #### Parameters
9406
9543
 
9407
- | Name | Type | Description |
9408
- | :------ | :------ | :------ |
9409
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9410
- | `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 |
9411
9548
 
9412
9549
  #### Returns
9413
9550
 
9414
- Promise\<StorageListResult\>
9551
+ Promise\<ApiResult\<StorageListResult\>\>
9415
9552
 
9416
- List of files with metadata
9553
+ ApiResult with files, totalCount, hasMore on success.
9417
9554
 
9418
9555
  #### Defined in
9419
9556
 
9420
- [packages/core/src/utils/storage/helpers.ts:607](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L607)
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)
9421
9558
 
9422
9559
  ___
9423
9560
 
9424
9561
  ### downloadFile
9425
9562
 
9426
- ▸ **downloadFile**(`supabase`, `path`, `isPublic?`): Promise\<Object \| null\>
9563
+ ▸ **downloadFile**(`supabase`, `path`, `isPublic?`): Promise\<ApiResult\<Object\>\>
9427
9564
 
9428
- Download a file from storage
9565
+ Download a file from storage.
9429
9566
 
9430
9567
  #### Parameters
9431
9568
 
9432
- | Name | Type | Default value | Description |
9433
- | :------ | :------ | :------ | :------ |
9434
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | `undefined` | Supabase client instance |
9435
- | `path` | string | `undefined` | File path within the bucket |
9436
- | `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` |
9437
9574
 
9438
9575
  #### Returns
9439
9576
 
9440
- Promise\<Object \| null\>
9577
+ Promise\<ApiResult\<Object\>\>
9441
9578
 
9442
- File blob with metadata, or null if failed
9579
+ ApiResult with blob and metadata on success.
9443
9580
 
9444
9581
  #### Defined in
9445
9582
 
9446
- [packages/core/src/utils/storage/helpers.ts:674](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L674)
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)
9447
9584
 
9448
9585
  ___
9449
9586
 
9450
9587
  ### archiveFile
9451
9588
 
9452
- ▸ **archiveFile**(`supabase`, `path`, `options`): Promise\<Object\>
9589
+ ▸ **archiveFile**(`supabase`, `path`, `options`): Promise\<ApiResult\<void\>\>
9453
9590
 
9454
- Move a file to archived location (soft delete)
9591
+ Move a file to archived location (soft delete).
9455
9592
 
9456
9593
  #### Parameters
9457
9594
 
9458
- | Name | Type | Description |
9459
- | :------ | :------ | :------ |
9460
- | `supabase` | SupabaseClient\<any, "public", "public", any, any\> | Supabase client instance |
9461
- | `path` | string | File path within the bucket |
9462
- | `options` | Object | Archive options including bucket selection via isPublic |
9463
- | `options.appName` | string | - |
9464
- | `options.orgId?` | string | - |
9465
- | `options.userId?` | string | - |
9466
- | `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 |
9467
9604
 
9468
9605
  #### Returns
9469
9606
 
9470
- Promise\<Object\>
9607
+ Promise\<ApiResult\<void\>\>
9608
+
9609
+ ApiResult<void> on success.
9471
9610
 
9472
9611
  #### Defined in
9473
9612
 
9474
- [packages/core/src/utils/storage/helpers.ts:727](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L727)
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)
9475
9614
 
9476
9615
  ___
9477
9616