@jmruthers/pace-core 0.5.53 → 0.5.55

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 (398) hide show
  1. package/README.md +0 -4
  2. package/dist/{DataTable-7FMFXA7A.js → DataTable-4T627QFJ.js} +11 -11
  3. package/dist/{PublicLoadingSpinner-Bq_-BeK-.d.ts → PublicLoadingSpinner-SL8WaQN7.d.ts} +2 -21
  4. package/dist/{api-H5A3H4IR.js → api-LUNF5O6M.js} +3 -3
  5. package/dist/{appConfig-BVGyuvI7.d.ts → appConfig-DjpeG6P-.d.ts} +9 -1
  6. package/dist/{appNameResolver-7GHF5ED2.js → appNameResolver-UURKN7NF.js} +2 -2
  7. package/dist/{audit-BUW3LMJB.js → audit-6TOCAMKO.js} +2 -2
  8. package/dist/{chunk-MZBUOP4P.js → chunk-5BSLGBYI.js} +4 -3
  9. package/dist/chunk-5BSLGBYI.js.map +1 -0
  10. package/dist/{chunk-I5Z3QH5X.js → chunk-66C4BSAY.js} +2 -2
  11. package/dist/{chunk-I5Z3QH5X.js.map → chunk-66C4BSAY.js.map} +1 -1
  12. package/dist/{chunk-MYP2EGHX.js → chunk-AJ2KMES7.js} +21 -14
  13. package/dist/chunk-AJ2KMES7.js.map +1 -0
  14. package/dist/{chunk-EL2O4IUX.js → chunk-AQFRLC7K.js} +16 -24
  15. package/dist/{chunk-EL2O4IUX.js.map → chunk-AQFRLC7K.js.map} +1 -1
  16. package/dist/{chunk-7BNPOCLL.js → chunk-B2WTCLCV.js} +6 -2
  17. package/dist/chunk-B2WTCLCV.js.map +1 -0
  18. package/dist/{chunk-WJARTBCT.js → chunk-D7ARGIA3.js} +16 -7
  19. package/dist/chunk-D7ARGIA3.js.map +1 -0
  20. package/dist/{chunk-NRK4AIHQ.js → chunk-KBRACSJI.js} +3 -3
  21. package/dist/{chunk-NYUJ4FJR.js → chunk-KJDPSM64.js} +7 -7
  22. package/dist/chunk-KJDPSM64.js.map +1 -0
  23. package/dist/{chunk-GWSBHC4J.js → chunk-KLPVOPRI.js} +261 -38
  24. package/dist/chunk-KLPVOPRI.js.map +1 -0
  25. package/dist/{chunk-TRIZ7IB7.js → chunk-MPQDF75X.js} +148 -288
  26. package/dist/chunk-MPQDF75X.js.map +1 -0
  27. package/dist/{chunk-MSFACPQQ.js → chunk-PAEM3OWN.js} +11 -11
  28. package/dist/{chunk-MSFACPQQ.js.map → chunk-PAEM3OWN.js.map} +1 -1
  29. package/dist/{chunk-GIO7BFE7.js → chunk-RQD3D2CO.js} +66 -169
  30. package/dist/{chunk-GIO7BFE7.js.map → chunk-RQD3D2CO.js.map} +1 -1
  31. package/dist/{chunk-YDJW5XTN.js → chunk-STT7INZR.js} +25 -1
  32. package/dist/chunk-STT7INZR.js.map +1 -0
  33. package/dist/{chunk-6MTY77WU.js → chunk-TNMXZLDR.js} +3 -3
  34. package/dist/{chunk-BC3S53OZ.js → chunk-UQE2Y64H.js} +30 -14
  35. package/dist/chunk-UQE2Y64H.js.map +1 -0
  36. package/dist/{chunk-22KLBHPS.js → chunk-W66AZIOH.js} +2 -2
  37. package/dist/chunk-W66AZIOH.js.map +1 -0
  38. package/dist/{chunk-SS3E6QLB.js → chunk-YNUBMSMV.js} +2 -2
  39. package/dist/chunk-YNUBMSMV.js.map +1 -0
  40. package/dist/{chunk-NZ655MWE.js → chunk-ZOD2ZY6X.js} +5 -4
  41. package/dist/chunk-ZOD2ZY6X.js.map +1 -0
  42. package/dist/{chunk-74C6SNEC.js → chunk-ZPK5656W.js} +3 -3
  43. package/dist/{chunk-74C6SNEC.js.map → chunk-ZPK5656W.js.map} +1 -1
  44. package/dist/components.d.ts +22 -899
  45. package/dist/components.js +436 -3118
  46. package/dist/components.js.map +1 -1
  47. package/dist/file-reference-9xUOnwyt.d.ts +70 -0
  48. package/dist/hooks.d.ts +2 -2
  49. package/dist/hooks.js +10 -10
  50. package/dist/hooks.js.map +1 -1
  51. package/dist/index.d.ts +49 -9
  52. package/dist/index.js +190 -25
  53. package/dist/index.js.map +1 -1
  54. package/dist/{organisation-CO3Sh3_D.d.ts → organisation-t-vvQC3g.d.ts} +1 -8
  55. package/dist/providers.d.ts +2 -2
  56. package/dist/providers.js +5 -5
  57. package/dist/rbac/index.d.ts +65 -46
  58. package/dist/rbac/index.js +10 -12
  59. package/dist/styles/core.css +0 -125
  60. package/dist/types.d.ts +2 -1
  61. package/dist/types.js +3 -1
  62. package/dist/types.js.map +1 -1
  63. package/dist/{usePublicRouteParams-B2OcAsur.d.ts → usePublicRouteParams-CdoFxnJK.d.ts} +1 -1
  64. package/dist/utils.d.ts +3 -4
  65. package/dist/utils.js +44 -13
  66. package/dist/utils.js.map +1 -1
  67. package/docs/FILE_REFERENCE_SYSTEM.md +440 -0
  68. package/docs/INDEX.md +7 -5
  69. package/docs/README.md +0 -1
  70. package/docs/api/README.md +0 -4
  71. package/docs/api/classes/ErrorBoundary.md +1 -1
  72. package/docs/api/classes/InvalidScopeError.md +1 -1
  73. package/docs/api/classes/MissingUserContextError.md +1 -1
  74. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  75. package/docs/api/classes/PermissionDeniedError.md +2 -2
  76. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  77. package/docs/api/classes/RBACAuditManager.md +12 -12
  78. package/docs/api/classes/RBACCache.md +1 -1
  79. package/docs/api/classes/RBACEngine.md +6 -6
  80. package/docs/api/classes/RBACError.md +1 -1
  81. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  82. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  83. package/docs/api/classes/StorageUtils.md +281 -0
  84. package/docs/api/interfaces/AggregateConfig.md +1 -1
  85. package/docs/api/interfaces/ButtonProps.md +1 -1
  86. package/docs/api/interfaces/CardProps.md +1 -1
  87. package/docs/api/interfaces/ColorPalette.md +1 -1
  88. package/docs/api/interfaces/ColorShade.md +1 -1
  89. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  90. package/docs/api/interfaces/DataTableAction.md +1 -1
  91. package/docs/api/interfaces/DataTableColumn.md +1 -1
  92. package/docs/api/interfaces/DataTableProps.md +1 -1
  93. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  94. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  95. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  96. package/docs/api/interfaces/EventContextType.md +1 -1
  97. package/docs/api/interfaces/EventLogoProps.md +1 -1
  98. package/docs/api/interfaces/EventProviderProps.md +1 -1
  99. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  100. package/docs/api/interfaces/FileUploadProps.md +1 -1
  101. package/docs/api/interfaces/FooterProps.md +1 -1
  102. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  103. package/docs/api/interfaces/InputProps.md +1 -1
  104. package/docs/api/interfaces/LabelProps.md +1 -1
  105. package/docs/api/interfaces/LoginFormProps.md +1 -1
  106. package/docs/api/interfaces/NavigationAccessRecord.md +2 -2
  107. package/docs/api/interfaces/NavigationContextType.md +1 -1
  108. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  109. package/docs/api/interfaces/NavigationItem.md +1 -1
  110. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  111. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  112. package/docs/api/interfaces/Organisation.md +1 -1
  113. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  114. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  115. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  116. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  117. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  118. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  119. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  120. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  121. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  122. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  123. package/docs/api/interfaces/PaletteData.md +1 -1
  124. package/docs/api/interfaces/PermissionEnforcerProps.md +4 -4
  125. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  126. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  127. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  128. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  129. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  130. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  131. package/docs/api/interfaces/RBACConfig.md +1 -1
  132. package/docs/api/interfaces/RBACContextType.md +1 -1
  133. package/docs/api/interfaces/RBACLogger.md +1 -1
  134. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  135. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  136. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  137. package/docs/api/interfaces/RouteAccessRecord.md +2 -2
  138. package/docs/api/interfaces/RouteConfig.md +2 -2
  139. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  140. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  141. package/docs/api/interfaces/StorageConfig.md +1 -1
  142. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  143. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  144. package/docs/api/interfaces/StorageListOptions.md +1 -1
  145. package/docs/api/interfaces/StorageListResult.md +1 -1
  146. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  147. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  148. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  149. package/docs/api/interfaces/StyleImport.md +1 -1
  150. package/docs/api/interfaces/ToastActionElement.md +1 -1
  151. package/docs/api/interfaces/ToastProps.md +1 -1
  152. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  153. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  154. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  155. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  156. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  157. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  158. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  159. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  160. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  161. package/docs/api/interfaces/UserEventAccess.md +1 -1
  162. package/docs/api/interfaces/UserMenuProps.md +1 -1
  163. package/docs/api/interfaces/UserProfile.md +1 -1
  164. package/docs/api/modules.md +204 -200
  165. package/docs/api-reference/components.md +141 -163
  166. package/docs/api-reference/hooks.md +347 -0
  167. package/docs/core-concepts/rbac-system.md +69 -16
  168. package/docs/getting-started/examples/basic-auth-app.md +0 -1
  169. package/docs/implementation-guides/datatable-rbac-usage.md +12 -11
  170. package/docs/implementation-guides/file-upload-storage.md +733 -0
  171. package/docs/implementation-guides/inactivity-tracking.md +779 -0
  172. package/docs/implementation-guides/organisation-security.md +748 -0
  173. package/docs/implementation-guides/public-pages-advanced.md +1022 -0
  174. package/docs/migration/MIGRATION_GUIDE.md +684 -0
  175. package/docs/migration/README.md +13 -2
  176. package/docs/migration/rbac-migration.md +73 -0
  177. package/docs/rbac/examples/rbac-rls-integration-example.md +11 -13
  178. package/docs/style-guide.md +269 -1
  179. package/package.json +1 -1
  180. package/src/__tests__/TESTING_GUIDELINES.md +331 -18
  181. package/src/__tests__/helpers/supabaseMock.ts +99 -0
  182. package/src/__tests__/rbac/PagePermissionGuard.test.tsx +10 -7
  183. package/src/__tests__/shared.ts +6 -0
  184. package/src/components/DataTable/components/ActionButtons.tsx +2 -2
  185. package/src/components/DataTable/components/DataTableCore.tsx +2 -2
  186. package/src/components/DataTable/components/UnifiedTableBody.tsx +1 -1
  187. package/src/components/DataTable/utils/debugTools.ts +2 -2
  188. package/src/components/Dialog/Dialog.test.tsx +12 -2
  189. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +6 -6
  190. package/src/components/ErrorBoundary/ErrorBoundary.tsx +2 -2
  191. package/src/components/FileDisplay.tsx +233 -0
  192. package/src/components/FileUpload.tsx +176 -0
  193. package/src/components/Footer/Footer.test.tsx +7 -7
  194. package/src/components/NavigationMenu/NavigationMenu.test.tsx +13 -6
  195. package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +30 -3
  196. package/src/components/OrganisationSelector/OrganisationSelector.tsx +1 -1
  197. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.rbac.test.tsx +558 -0
  198. package/src/components/PublicLayout/PublicErrorBoundary.tsx +1 -1
  199. package/src/components/PublicLayout/PublicPageDebugger.tsx +2 -2
  200. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +2 -2
  201. package/src/components/PublicLayout/PublicPageProvider.tsx +2 -2
  202. package/src/components/Select/Select.test.tsx +50 -15
  203. package/src/components/SuperAdminGuard.tsx +2 -2
  204. package/src/components/__tests__/SuperAdminGuard.test.tsx +559 -0
  205. package/src/components/index.ts +0 -183
  206. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +2 -2
  207. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +1 -1
  208. package/src/hooks/__tests__/useRBAC.unit.test.ts +191 -138
  209. package/src/hooks/public/usePublicEvent.ts +2 -2
  210. package/src/hooks/useAppConfig.ts +3 -3
  211. package/src/hooks/useComponentPerformance.ts +1 -1
  212. package/src/hooks/useDataTablePerformance.ts +1 -1
  213. package/src/hooks/useFileReference.ts +232 -0
  214. package/src/hooks/useOrganisationPermissions.test.ts +254 -344
  215. package/src/hooks/useOrganisationPermissions.ts +15 -7
  216. package/src/hooks/useOrganisationSecurity.test.ts +390 -402
  217. package/src/hooks/usePerformanceMonitor.ts +1 -1
  218. package/src/hooks/usePermissionCache.test.ts +264 -395
  219. package/src/hooks/usePermissionCache.ts +34 -4
  220. package/src/hooks/useSecureDataAccess.test.ts +486 -0
  221. package/src/hooks/useSecureDataAccess.ts +4 -1
  222. package/src/providers/InactivityProvider.tsx +2 -2
  223. package/src/providers/OrganisationProvider.test.simple.tsx +168 -0
  224. package/src/providers/OrganisationProvider.test.tsx +168 -0
  225. package/src/providers/OrganisationProvider.tsx +18 -31
  226. package/src/providers/UnifiedAuthProvider.test.simple.tsx +205 -0
  227. package/src/providers/UnifiedAuthProvider.test.tsx +128 -0
  228. package/src/providers/__tests__/InactivityProvider.test.tsx +3 -4
  229. package/src/providers/__tests__/OrganisationProvider.test.tsx +19 -14
  230. package/src/rbac/__tests__/integration.authflow.test.tsx +123 -0
  231. package/src/rbac/__tests__/integration.navigation.test.tsx +72 -0
  232. package/src/rbac/__tests__/integration.securedata.test.tsx +92 -0
  233. package/src/rbac/__tests__/integration.smoke.test.tsx +73 -0
  234. package/src/rbac/__tests__/rbac-core.test.tsx +26 -22
  235. package/src/rbac/__tests__/rbac-engine-core-logic.test.ts +411 -0
  236. package/src/rbac/__tests__/rbac-engine-simplified.test.ts +285 -0
  237. package/src/rbac/__tests__/rbac-functions.test.ts +655 -0
  238. package/src/rbac/__tests__/rbac-integration.test.ts +532 -0
  239. package/src/rbac/__tests__/scenarios.user-role.test.tsx +196 -0
  240. package/src/rbac/api.test.ts +6 -6
  241. package/src/rbac/api.ts +2 -2
  242. package/src/rbac/audit.test.ts +485 -0
  243. package/src/rbac/audit.ts +7 -1
  244. package/src/rbac/cache-invalidation.ts +318 -0
  245. package/src/rbac/cache.test.ts +286 -0
  246. package/src/rbac/components/EnhancedNavigationMenu.test.tsx +559 -0
  247. package/src/rbac/components/EnhancedNavigationMenu.tsx +29 -23
  248. package/src/rbac/components/NavigationProvider.test.tsx +449 -0
  249. package/src/rbac/components/PagePermissionGuard.tsx +4 -4
  250. package/src/rbac/components/PagePermissionProvider.test.tsx +479 -0
  251. package/src/rbac/components/SecureDataProvider.test.tsx +511 -0
  252. package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +159 -430
  253. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +4 -5
  254. package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +112 -118
  255. package/src/rbac/config.test.ts +410 -0
  256. package/src/rbac/engine.test.simple.ts +237 -0
  257. package/src/rbac/engine.test.ts +233 -0
  258. package/src/rbac/engine.ts +37 -41
  259. package/src/rbac/examples/CompleteRBACExample.tsx +3 -3
  260. package/src/rbac/examples/EventBasedApp.tsx +4 -4
  261. package/src/rbac/hooks/useRBAC.simple.test.ts +16 -0
  262. package/src/rbac/hooks/useRBAC.test.ts +207 -455
  263. package/src/rbac/hooks/useRBAC.ts +30 -22
  264. package/src/rbac/permissions.test.ts +128 -0
  265. package/src/rbac/permissions.ts +56 -141
  266. package/src/rbac/providers/RBACProvider.tsx +1 -1
  267. package/src/rbac/secureClient.test.ts +444 -0
  268. package/src/rbac/security.test.ts +390 -0
  269. package/src/rbac/security.ts +1 -1
  270. package/src/rbac/types.test.ts +382 -0
  271. package/src/rbac/types.ts +2 -2
  272. package/src/styles/base.css +208 -0
  273. package/src/styles/core.css +0 -125
  274. package/src/styles/semantic.css +24 -0
  275. package/src/types/file-reference.ts +77 -0
  276. package/src/types/rbac-functions.ts +290 -0
  277. package/src/types/supabase.ts +10 -28
  278. package/src/types/unified.ts +4 -1
  279. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +81 -55
  280. package/src/utils/__tests__/lazyLoad.unit.test.tsx +21 -12
  281. package/src/utils/__tests__/organisationContext.unit.test.ts +13 -7
  282. package/src/utils/__tests__/performanceBudgets.unit.test.ts +3 -3
  283. package/src/utils/__tests__/sessionTracking.unit.test.ts +32 -12
  284. package/src/utils/appConfig.ts +1 -1
  285. package/src/utils/appIdResolver.test.ts +503 -0
  286. package/src/utils/appIdResolver.ts +1 -1
  287. package/src/utils/appNameResolver.test.ts +494 -0
  288. package/src/utils/appNameResolver.ts +3 -2
  289. package/src/utils/bundleAnalysis.ts +3 -3
  290. package/src/utils/debugLogger.ts +1 -1
  291. package/src/utils/file-reference.ts +263 -0
  292. package/src/utils/formatDate.test.ts +2 -2
  293. package/src/utils/organisationContext.test.ts +340 -0
  294. package/src/utils/organisationContext.ts +19 -6
  295. package/src/utils/performanceBudgets.ts +2 -2
  296. package/src/utils/permissionUtils.test.ts +393 -0
  297. package/src/utils/permissionUtils.ts +5 -2
  298. package/src/utils/secureDataAccess.test.ts +715 -0
  299. package/src/utils/secureDataAccess.ts +21 -5
  300. package/src/utils/sessionTracking.ts +34 -4
  301. package/src/utils/storage/__tests__/helpers.unit.test.ts +328 -0
  302. package/src/utils/storage/__tests__/index.unit.test.ts +16 -0
  303. package/src/utils/storage/helpers.ts +20 -25
  304. package/src/utils/storage/index.ts +29 -1
  305. package/src/vite-env.d.ts +17 -0
  306. package/dist/chunk-22KLBHPS.js.map +0 -1
  307. package/dist/chunk-7BNPOCLL.js.map +0 -1
  308. package/dist/chunk-BC3S53OZ.js.map +0 -1
  309. package/dist/chunk-GWSBHC4J.js.map +0 -1
  310. package/dist/chunk-MYP2EGHX.js.map +0 -1
  311. package/dist/chunk-MZBUOP4P.js.map +0 -1
  312. package/dist/chunk-NYUJ4FJR.js.map +0 -1
  313. package/dist/chunk-NZ655MWE.js.map +0 -1
  314. package/dist/chunk-SS3E6QLB.js.map +0 -1
  315. package/dist/chunk-TRIZ7IB7.js.map +0 -1
  316. package/dist/chunk-WJARTBCT.js.map +0 -1
  317. package/dist/chunk-YDJW5XTN.js.map +0 -1
  318. package/docs/print-components/README.md +0 -258
  319. package/docs/print-components/api-reference.md +0 -636
  320. package/docs/print-components/examples/README.md +0 -204
  321. package/docs/print-components/examples/basic-report.tsx +0 -92
  322. package/docs/print-components/examples/card-catalog.tsx +0 -149
  323. package/docs/print-components/examples/cover-page-report.tsx +0 -163
  324. package/docs/print-components/quick-start.md +0 -363
  325. package/src/components/PrintButton/PrintButton.tsx +0 -321
  326. package/src/components/PrintButton/PrintButtonGroup.tsx +0 -84
  327. package/src/components/PrintButton/PrintToolbar.tsx +0 -94
  328. package/src/components/PrintButton/__tests__/PrintButton.test.tsx +0 -271
  329. package/src/components/PrintButton/examples/PrintButtonShowcase.tsx +0 -438
  330. package/src/components/PrintButton/index.ts +0 -33
  331. package/src/components/PrintButton/types.ts +0 -173
  332. package/src/components/PrintCard/PrintCard.tsx +0 -154
  333. package/src/components/PrintCard/PrintCardContent.tsx +0 -57
  334. package/src/components/PrintCard/PrintCardFooter.tsx +0 -60
  335. package/src/components/PrintCard/PrintCardGrid.tsx +0 -91
  336. package/src/components/PrintCard/PrintCardHeader.tsx +0 -78
  337. package/src/components/PrintCard/PrintCardImage.tsx +0 -81
  338. package/src/components/PrintCard/examples/PrintCardShowcase.tsx +0 -239
  339. package/src/components/PrintCard/index.ts +0 -34
  340. package/src/components/PrintCard/types.ts +0 -171
  341. package/src/components/PrintDataTable/PrintDataTable.tsx +0 -215
  342. package/src/components/PrintDataTable/PrintTableGroup.tsx +0 -90
  343. package/src/components/PrintDataTable/PrintTableRow.tsx +0 -76
  344. package/src/components/PrintDataTable/index.ts +0 -25
  345. package/src/components/PrintDataTable/types.ts +0 -67
  346. package/src/components/PrintFooter/PrintFooter.tsx +0 -183
  347. package/src/components/PrintFooter/PrintFooterContent.tsx +0 -71
  348. package/src/components/PrintFooter/PrintFooterInfo.tsx +0 -86
  349. package/src/components/PrintFooter/PrintPageNumber.tsx +0 -90
  350. package/src/components/PrintFooter/examples/PrintFooterShowcase.tsx +0 -390
  351. package/src/components/PrintFooter/index.ts +0 -30
  352. package/src/components/PrintFooter/types.ts +0 -149
  353. package/src/components/PrintGrid/PrintGrid.tsx +0 -180
  354. package/src/components/PrintGrid/PrintGridBreakpoint.tsx +0 -109
  355. package/src/components/PrintGrid/PrintGridContainer.tsx +0 -128
  356. package/src/components/PrintGrid/PrintGridItem.tsx +0 -220
  357. package/src/components/PrintGrid/examples/PrintGridShowcase.tsx +0 -359
  358. package/src/components/PrintGrid/index.ts +0 -31
  359. package/src/components/PrintGrid/types.ts +0 -159
  360. package/src/components/PrintHeader/PrintCoverHeader.tsx +0 -230
  361. package/src/components/PrintHeader/PrintHeader.tsx +0 -150
  362. package/src/components/PrintHeader/index.ts +0 -17
  363. package/src/components/PrintHeader/types.ts +0 -42
  364. package/src/components/PrintLayout/PrintLayout.tsx +0 -122
  365. package/src/components/PrintLayout/PrintLayoutContext.tsx +0 -66
  366. package/src/components/PrintLayout/PrintPageBreak.tsx +0 -52
  367. package/src/components/PrintLayout/examples/PrintShowcase.tsx +0 -230
  368. package/src/components/PrintLayout/index.ts +0 -19
  369. package/src/components/PrintLayout/types.ts +0 -37
  370. package/src/components/PrintPageBreak/PrintPageBreak.tsx +0 -120
  371. package/src/components/PrintPageBreak/PrintPageBreakGroup.tsx +0 -90
  372. package/src/components/PrintPageBreak/PrintPageBreakIndicator.tsx +0 -112
  373. package/src/components/PrintPageBreak/examples/PrintPageBreakShowcase.tsx +0 -279
  374. package/src/components/PrintPageBreak/index.ts +0 -23
  375. package/src/components/PrintPageBreak/types.ts +0 -94
  376. package/src/components/PrintSection/PrintColumn.tsx +0 -104
  377. package/src/components/PrintSection/PrintDivider.tsx +0 -101
  378. package/src/components/PrintSection/PrintSection.tsx +0 -129
  379. package/src/components/PrintSection/PrintSectionContent.tsx +0 -75
  380. package/src/components/PrintSection/PrintSectionHeader.tsx +0 -97
  381. package/src/components/PrintSection/examples/PrintSectionShowcase.tsx +0 -258
  382. package/src/components/PrintSection/index.ts +0 -33
  383. package/src/components/PrintSection/types.ts +0 -155
  384. package/src/components/PrintText/PrintText.tsx +0 -116
  385. package/src/components/PrintText/index.ts +0 -16
  386. package/src/components/PrintText/types.ts +0 -24
  387. package/src/rbac/__tests__/integration.test.tsx +0 -218
  388. package/src/utils/print/PrintDataProcessor.ts +0 -390
  389. package/src/utils/print/examples/PrintUtilitiesShowcase.tsx +0 -397
  390. package/src/utils/print/index.ts +0 -29
  391. package/src/utils/print/types.ts +0 -196
  392. package/src/utils/print/usePrintOptimization.ts +0 -272
  393. /package/dist/{DataTable-7FMFXA7A.js.map → DataTable-4T627QFJ.js.map} +0 -0
  394. /package/dist/{api-H5A3H4IR.js.map → api-LUNF5O6M.js.map} +0 -0
  395. /package/dist/{appNameResolver-7GHF5ED2.js.map → appNameResolver-UURKN7NF.js.map} +0 -0
  396. /package/dist/{audit-BUW3LMJB.js.map → audit-6TOCAMKO.js.map} +0 -0
  397. /package/dist/{chunk-NRK4AIHQ.js.map → chunk-KBRACSJI.js.map} +0 -0
  398. /package/dist/{chunk-6MTY77WU.js.map → chunk-TNMXZLDR.js.map} +0 -0
@@ -16,7 +16,7 @@ import '../unified-CMPjE_fv.js';
16
16
  */
17
17
 
18
18
  type UUID = string;
19
- type Operation = 'read' | 'create' | 'update' | 'delete' | 'manage';
19
+ type Operation = 'read' | 'create' | 'update' | 'delete';
20
20
  type Permission = `${Operation}:${string}`;
21
21
  type AccessLevel = 'viewer' | 'participant' | 'planner' | 'admin' | 'super';
22
22
  type Scope = {
@@ -365,6 +365,8 @@ interface PermissionCheckAuditEvent {
365
365
  source: AuditEventSource;
366
366
  bypass?: boolean;
367
367
  duration_ms: number;
368
+ cache_hit?: boolean;
369
+ cache_source?: 'memory' | 'database' | 'rpc';
368
370
  metadata?: Record<string, any>;
369
371
  }
370
372
  /**
@@ -1819,82 +1821,79 @@ declare function hasAllPermissions(input: {
1819
1821
  */
1820
1822
 
1821
1823
  declare const GLOBAL_PERMISSIONS: {
1822
- readonly MANAGE_ALL: Permission;
1823
1824
  readonly READ_ALL: Permission;
1824
1825
  readonly CREATE_ALL: Permission;
1825
1826
  readonly UPDATE_ALL: Permission;
1826
1827
  readonly DELETE_ALL: Permission;
1827
1828
  };
1828
1829
  declare const ORGANISATION_PERMISSIONS: {
1829
- readonly MANAGE_ORGANISATION: Permission;
1830
1830
  readonly READ_ORGANISATION: Permission;
1831
1831
  readonly UPDATE_ORGANISATION: Permission;
1832
- readonly MANAGE_USERS: Permission;
1832
+ readonly DELETE_ORGANISATION: Permission;
1833
1833
  readonly READ_USERS: Permission;
1834
1834
  readonly CREATE_USERS: Permission;
1835
1835
  readonly UPDATE_USERS: Permission;
1836
1836
  readonly DELETE_USERS: Permission;
1837
- readonly MANAGE_ROLES: Permission;
1838
1837
  readonly READ_ROLES: Permission;
1839
1838
  readonly CREATE_ROLES: Permission;
1840
1839
  readonly UPDATE_ROLES: Permission;
1841
1840
  readonly DELETE_ROLES: Permission;
1842
- readonly MANAGE_EVENTS: Permission;
1843
1841
  readonly READ_EVENTS: Permission;
1844
1842
  readonly CREATE_EVENTS: Permission;
1845
1843
  readonly UPDATE_EVENTS: Permission;
1846
1844
  readonly DELETE_EVENTS: Permission;
1847
- readonly MANAGE_APPS: Permission;
1848
1845
  readonly READ_APPS: Permission;
1849
1846
  readonly CREATE_APPS: Permission;
1850
1847
  readonly UPDATE_APPS: Permission;
1851
1848
  readonly DELETE_APPS: Permission;
1852
1849
  };
1853
1850
  declare const EVENT_APP_PERMISSIONS: {
1854
- readonly MANAGE_EVENT: Permission;
1855
1851
  readonly READ_EVENT: Permission;
1852
+ readonly CREATE_EVENT: Permission;
1856
1853
  readonly UPDATE_EVENT: Permission;
1857
- readonly MANAGE_APP: Permission;
1854
+ readonly DELETE_EVENT: Permission;
1858
1855
  readonly READ_APP: Permission;
1856
+ readonly CREATE_APP: Permission;
1859
1857
  readonly UPDATE_APP: Permission;
1860
- readonly MANAGE_TEAM: Permission;
1858
+ readonly DELETE_APP: Permission;
1861
1859
  readonly READ_TEAM: Permission;
1862
1860
  readonly CREATE_TEAM: Permission;
1863
1861
  readonly UPDATE_TEAM: Permission;
1864
1862
  readonly DELETE_TEAM: Permission;
1865
- readonly MANAGE_TEAM_MEMBERS: Permission;
1866
1863
  readonly READ_TEAM_MEMBERS: Permission;
1867
1864
  readonly CREATE_TEAM_MEMBERS: Permission;
1868
1865
  readonly UPDATE_TEAM_MEMBERS: Permission;
1869
1866
  readonly DELETE_TEAM_MEMBERS: Permission;
1870
- readonly MANAGE_EVENT_CONTENT: Permission;
1871
1867
  readonly READ_EVENT_CONTENT: Permission;
1872
1868
  readonly CREATE_EVENT_CONTENT: Permission;
1873
1869
  readonly UPDATE_EVENT_CONTENT: Permission;
1874
1870
  readonly DELETE_EVENT_CONTENT: Permission;
1875
- readonly MANAGE_EVENT_SETTINGS: Permission;
1876
1871
  readonly READ_EVENT_SETTINGS: Permission;
1872
+ readonly CREATE_EVENT_SETTINGS: Permission;
1877
1873
  readonly UPDATE_EVENT_SETTINGS: Permission;
1874
+ readonly DELETE_EVENT_SETTINGS: Permission;
1878
1875
  };
1879
1876
  declare const PAGE_PERMISSIONS: {
1880
1877
  readonly READ_PAGE: Permission;
1881
- readonly MANAGE_PAGE: Permission;
1878
+ readonly CREATE_PAGE: Permission;
1879
+ readonly UPDATE_PAGE: Permission;
1880
+ readonly DELETE_PAGE: Permission;
1882
1881
  readonly READ_ADMIN: Permission;
1883
- readonly MANAGE_ADMIN: Permission;
1882
+ readonly CREATE_ADMIN: Permission;
1883
+ readonly UPDATE_ADMIN: Permission;
1884
+ readonly DELETE_ADMIN: Permission;
1884
1885
  readonly READ_DASHBOARD: Permission;
1885
- readonly MANAGE_DASHBOARD: Permission;
1886
+ readonly CREATE_DASHBOARD: Permission;
1887
+ readonly UPDATE_DASHBOARD: Permission;
1888
+ readonly DELETE_DASHBOARD: Permission;
1886
1889
  readonly READ_SETTINGS: Permission;
1887
- readonly MANAGE_SETTINGS: Permission;
1890
+ readonly CREATE_SETTINGS: Permission;
1891
+ readonly UPDATE_SETTINGS: Permission;
1892
+ readonly DELETE_SETTINGS: Permission;
1888
1893
  readonly READ_REPORTS: Permission;
1889
- readonly MANAGE_REPORTS: Permission;
1890
- };
1891
- declare const PERMISSION_GROUPS: {
1892
- readonly GLOBAL_ADMIN: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1893
- readonly ORG_ADMIN: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1894
- readonly EVENT_ADMIN: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1895
- readonly PLANNER: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1896
- readonly PARTICIPANT: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1897
- readonly VIEWER: readonly [`read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`, `read:${string}` | `create:${string}` | `update:${string}` | `delete:${string}` | `manage:${string}`];
1894
+ readonly CREATE_REPORTS: Permission;
1895
+ readonly UPDATE_REPORTS: Permission;
1896
+ readonly DELETE_REPORTS: Permission;
1898
1897
  };
1899
1898
  /**
1900
1899
  * Validate that a permission string is properly formatted
@@ -1904,71 +1903,91 @@ declare const PERMISSION_GROUPS: {
1904
1903
  */
1905
1904
  declare function isValidPermission(permission: string): permission is Permission;
1906
1905
  /**
1907
- * Get all permissions for a role
1906
+ * Get all permissions for a role - REMOVED
1907
+ *
1908
+ * @deprecated This function has been removed to ensure RBAC compliance.
1909
+ * Permissions must be queried from the rbac_page_permissions database table,
1910
+ * not hardcoded in application code. This allows organizations to customize
1911
+ * their own page-level permissions as required by the RBAC specification.
1912
+ *
1913
+ * To get permissions for a role, query the database:
1914
+ * ```typescript
1915
+ * const { data } = await supabase
1916
+ * .from('rbac_page_permissions')
1917
+ * .select('operation, allowed')
1918
+ * .eq('role_name', roleName)
1919
+ * .eq('organisation_id', organisationId)
1920
+ * .eq('allowed', true);
1921
+ * ```
1908
1922
  *
1909
1923
  * @param role - Role name
1910
- * @returns Array of permissions for the role
1924
+ * @returns Empty array (function deprecated)
1911
1925
  */
1912
1926
  declare function getPermissionsForRole(role: string): Permission[];
1913
1927
  declare const ALL_PERMISSIONS: {
1914
1928
  readonly READ_PAGE: Permission;
1915
- readonly MANAGE_PAGE: Permission;
1929
+ readonly CREATE_PAGE: Permission;
1930
+ readonly UPDATE_PAGE: Permission;
1931
+ readonly DELETE_PAGE: Permission;
1916
1932
  readonly READ_ADMIN: Permission;
1917
- readonly MANAGE_ADMIN: Permission;
1933
+ readonly CREATE_ADMIN: Permission;
1934
+ readonly UPDATE_ADMIN: Permission;
1935
+ readonly DELETE_ADMIN: Permission;
1918
1936
  readonly READ_DASHBOARD: Permission;
1919
- readonly MANAGE_DASHBOARD: Permission;
1937
+ readonly CREATE_DASHBOARD: Permission;
1938
+ readonly UPDATE_DASHBOARD: Permission;
1939
+ readonly DELETE_DASHBOARD: Permission;
1920
1940
  readonly READ_SETTINGS: Permission;
1921
- readonly MANAGE_SETTINGS: Permission;
1941
+ readonly CREATE_SETTINGS: Permission;
1942
+ readonly UPDATE_SETTINGS: Permission;
1943
+ readonly DELETE_SETTINGS: Permission;
1922
1944
  readonly READ_REPORTS: Permission;
1923
- readonly MANAGE_REPORTS: Permission;
1924
- readonly MANAGE_EVENT: Permission;
1945
+ readonly CREATE_REPORTS: Permission;
1946
+ readonly UPDATE_REPORTS: Permission;
1947
+ readonly DELETE_REPORTS: Permission;
1925
1948
  readonly READ_EVENT: Permission;
1949
+ readonly CREATE_EVENT: Permission;
1926
1950
  readonly UPDATE_EVENT: Permission;
1927
- readonly MANAGE_APP: Permission;
1951
+ readonly DELETE_EVENT: Permission;
1928
1952
  readonly READ_APP: Permission;
1953
+ readonly CREATE_APP: Permission;
1929
1954
  readonly UPDATE_APP: Permission;
1930
- readonly MANAGE_TEAM: Permission;
1955
+ readonly DELETE_APP: Permission;
1931
1956
  readonly READ_TEAM: Permission;
1932
1957
  readonly CREATE_TEAM: Permission;
1933
1958
  readonly UPDATE_TEAM: Permission;
1934
1959
  readonly DELETE_TEAM: Permission;
1935
- readonly MANAGE_TEAM_MEMBERS: Permission;
1936
1960
  readonly READ_TEAM_MEMBERS: Permission;
1937
1961
  readonly CREATE_TEAM_MEMBERS: Permission;
1938
1962
  readonly UPDATE_TEAM_MEMBERS: Permission;
1939
1963
  readonly DELETE_TEAM_MEMBERS: Permission;
1940
- readonly MANAGE_EVENT_CONTENT: Permission;
1941
1964
  readonly READ_EVENT_CONTENT: Permission;
1942
1965
  readonly CREATE_EVENT_CONTENT: Permission;
1943
1966
  readonly UPDATE_EVENT_CONTENT: Permission;
1944
1967
  readonly DELETE_EVENT_CONTENT: Permission;
1945
- readonly MANAGE_EVENT_SETTINGS: Permission;
1946
1968
  readonly READ_EVENT_SETTINGS: Permission;
1969
+ readonly CREATE_EVENT_SETTINGS: Permission;
1947
1970
  readonly UPDATE_EVENT_SETTINGS: Permission;
1948
- readonly MANAGE_ORGANISATION: Permission;
1971
+ readonly DELETE_EVENT_SETTINGS: Permission;
1949
1972
  readonly READ_ORGANISATION: Permission;
1950
1973
  readonly UPDATE_ORGANISATION: Permission;
1951
- readonly MANAGE_USERS: Permission;
1974
+ readonly DELETE_ORGANISATION: Permission;
1952
1975
  readonly READ_USERS: Permission;
1953
1976
  readonly CREATE_USERS: Permission;
1954
1977
  readonly UPDATE_USERS: Permission;
1955
1978
  readonly DELETE_USERS: Permission;
1956
- readonly MANAGE_ROLES: Permission;
1957
1979
  readonly READ_ROLES: Permission;
1958
1980
  readonly CREATE_ROLES: Permission;
1959
1981
  readonly UPDATE_ROLES: Permission;
1960
1982
  readonly DELETE_ROLES: Permission;
1961
- readonly MANAGE_EVENTS: Permission;
1962
1983
  readonly READ_EVENTS: Permission;
1963
1984
  readonly CREATE_EVENTS: Permission;
1964
1985
  readonly UPDATE_EVENTS: Permission;
1965
1986
  readonly DELETE_EVENTS: Permission;
1966
- readonly MANAGE_APPS: Permission;
1967
1987
  readonly READ_APPS: Permission;
1968
1988
  readonly CREATE_APPS: Permission;
1969
1989
  readonly UPDATE_APPS: Permission;
1970
1990
  readonly DELETE_APPS: Permission;
1971
- readonly MANAGE_ALL: Permission;
1972
1991
  readonly READ_ALL: Permission;
1973
1992
  readonly CREATE_ALL: Permission;
1974
1993
  readonly UPDATE_ALL: Permission;
@@ -1976,4 +1995,4 @@ declare const ALL_PERMISSIONS: {
1976
1995
  };
1977
1996
  type AllPermissions = typeof ALL_PERMISSIONS;
1978
1997
 
1979
- export { ALL_PERMISSIONS, type AccessLevel, AccessLevelGuard, type AllPermissions, CACHE_PATTERNS, type DataAccessRecord, EVENT_APP_PERMISSIONS, EnhancedNavigationMenu, type EnhancedNavigationMenuProps, type EventAppRole, GLOBAL_PERMISSIONS, type GlobalRole, InvalidScopeError, type LogLevel, MissingUserContextError, type NavigationAccessRecord, type NavigationContextType, NavigationGuard, type NavigationGuardProps, type NavigationItem, NavigationProvider, type NavigationProviderProps, ORGANISATION_PERMISSIONS, type Operation, OrganisationContextRequiredError, type OrganisationRole, PAGE_PERMISSIONS, PERMISSION_GROUPS, type PageAccessRecord, type PagePermissionContextType, PagePermissionGuard, type PagePermissionGuardProps, PagePermissionProvider, type PagePermissionProviderProps, type Permission, type PermissionCheck, PermissionDeniedError, PermissionEnforcer, type PermissionEnforcerProps, PermissionGuard, type PermissionMap, RBACAuditManager, RBACCache, type RBACConfig, RBACEngine, RBACError, type RBACLogger, RBACNotInitializedError, RoleBasedRouter, type RoleBasedRouterContextType, type RoleBasedRouterProps, type RouteAccessRecord, type RouteConfig, type Scope, type SecureDataContextType, SecureDataProvider, type SecureDataProviderProps, SecureSupabaseClient, type UUID, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, emitAuditEvent, fromSupabaseClient, getAccessLevel, getGlobalAuditManager, getPermissionMap, getPermissionsForRole, getRBACConfig, getRBACLogger, hasAllPermissions, hasAnyPermission, hasAnyPermissionCached, hasPermission, hasPermissionCached, isDebugMode, isDevelopmentMode, isPermitted, isPermittedCached, isValidPermission, rbacCache, setGlobalAuditManager, setupRBAC, useAccessLevel, useCachedPermissions, useCan, useHasAllPermissions, useHasAnyPermission, useMultiplePermissions, useNavigationPermissions, usePagePermissions, usePermissions, useRBAC, useRoleBasedRouter, useSecureData, withAccessLevelGuard, withPermissionGuard, withRoleGuard };
1998
+ export { ALL_PERMISSIONS, type AccessLevel, AccessLevelGuard, type AllPermissions, CACHE_PATTERNS, type DataAccessRecord, EVENT_APP_PERMISSIONS, EnhancedNavigationMenu, type EnhancedNavigationMenuProps, type EventAppRole, GLOBAL_PERMISSIONS, type GlobalRole, InvalidScopeError, type LogLevel, MissingUserContextError, type NavigationAccessRecord, type NavigationContextType, NavigationGuard, type NavigationGuardProps, type NavigationItem, NavigationProvider, type NavigationProviderProps, ORGANISATION_PERMISSIONS, type Operation, OrganisationContextRequiredError, type OrganisationRole, PAGE_PERMISSIONS, type PageAccessRecord, type PagePermissionContextType, PagePermissionGuard, type PagePermissionGuardProps, PagePermissionProvider, type PagePermissionProviderProps, type Permission, type PermissionCheck, PermissionDeniedError, PermissionEnforcer, type PermissionEnforcerProps, PermissionGuard, type PermissionMap, RBACAuditManager, RBACCache, type RBACConfig, RBACEngine, RBACError, type RBACLogger, RBACNotInitializedError, RoleBasedRouter, type RoleBasedRouterContextType, type RoleBasedRouterProps, type RouteAccessRecord, type RouteConfig, type Scope, type SecureDataContextType, SecureDataProvider, type SecureDataProviderProps, SecureSupabaseClient, type UUID, createAuditManager, createRBACConfig, createRBACEngine, createRBACExpressMiddleware, createRBACMiddleware, createSecureClient, emitAuditEvent, fromSupabaseClient, getAccessLevel, getGlobalAuditManager, getPermissionMap, getPermissionsForRole, getRBACConfig, getRBACLogger, hasAllPermissions, hasAnyPermission, hasAnyPermissionCached, hasPermission, hasPermissionCached, isDebugMode, isDevelopmentMode, isPermitted, isPermittedCached, isValidPermission, rbacCache, setGlobalAuditManager, setupRBAC, useAccessLevel, useCachedPermissions, useCan, useHasAllPermissions, useHasAnyPermission, useMultiplePermissions, useNavigationPermissions, usePagePermissions, usePermissions, useRBAC, useRoleBasedRouter, useSecureData, withAccessLevelGuard, withPermissionGuard, withRoleGuard };
@@ -8,7 +8,6 @@ import {
8
8
  NavigationProvider,
9
9
  ORGANISATION_PERMISSIONS,
10
10
  PAGE_PERMISSIONS,
11
- PERMISSION_GROUPS,
12
11
  PagePermissionGuard,
13
12
  PagePermissionProvider,
14
13
  PermissionEnforcer,
@@ -31,7 +30,7 @@ import {
31
30
  withAccessLevelGuard,
32
31
  withPermissionGuard,
33
32
  withRoleGuard
34
- } from "../chunk-GIO7BFE7.js";
33
+ } from "../chunk-RQD3D2CO.js";
35
34
  import "../chunk-TYHR5X4W.js";
36
35
  import {
37
36
  useAccessLevel,
@@ -42,7 +41,7 @@ import {
42
41
  useMultiplePermissions,
43
42
  usePermissions,
44
43
  useRBAC as useRBAC2
45
- } from "../chunk-BC3S53OZ.js";
44
+ } from "../chunk-UQE2Y64H.js";
46
45
  import {
47
46
  CACHE_PATTERNS,
48
47
  RBACCache,
@@ -62,23 +61,23 @@ import {
62
61
  isPermittedCached,
63
62
  rbacCache,
64
63
  setupRBAC
65
- } from "../chunk-GWSBHC4J.js";
64
+ } from "../chunk-KLPVOPRI.js";
66
65
  import {
67
66
  RBACAuditManager,
68
67
  createAuditManager,
69
68
  emitAuditEvent,
70
69
  getGlobalAuditManager,
71
70
  setGlobalAuditManager
72
- } from "../chunk-7BNPOCLL.js";
73
- import "../chunk-NRK4AIHQ.js";
74
- import "../chunk-NZ655MWE.js";
71
+ } from "../chunk-B2WTCLCV.js";
72
+ import "../chunk-KBRACSJI.js";
73
+ import "../chunk-ZOD2ZY6X.js";
75
74
  import {
76
75
  RBACProvider,
77
76
  useRBAC
78
- } from "../chunk-EL2O4IUX.js";
79
- import "../chunk-YDJW5XTN.js";
80
- import "../chunk-MZBUOP4P.js";
81
- import "../chunk-WJARTBCT.js";
77
+ } from "../chunk-AQFRLC7K.js";
78
+ import "../chunk-STT7INZR.js";
79
+ import "../chunk-5BSLGBYI.js";
80
+ import "../chunk-D7ARGIA3.js";
82
81
  import "../chunk-PLDDJCW6.js";
83
82
  export {
84
83
  ALL_PERMISSIONS,
@@ -91,7 +90,6 @@ export {
91
90
  NavigationProvider,
92
91
  ORGANISATION_PERMISSIONS,
93
92
  PAGE_PERMISSIONS,
94
- PERMISSION_GROUPS,
95
93
  PagePermissionGuard,
96
94
  PagePermissionProvider,
97
95
  PermissionEnforcer,
@@ -33,23 +33,6 @@
33
33
  --color-card: var(--color-main-50);
34
34
  --color-card-foreground: var(--color-main-950);
35
35
 
36
- /* Print-specific variables */
37
- --print-margin: 0.5in;
38
- --print-font-size: 12pt;
39
- --print-line-height: 1.4;
40
- --print-color: #000;
41
- --print-bg: #fff;
42
- --print-first-page-margin: 1in;
43
- --print-cover-logo-size: 120px;
44
- --print-cover-title-size: 2.5rem;
45
- --print-page-width: 8.27in;
46
- /* A4 width */
47
- --print-page-height: 11.69in;
48
- /* A4 height */
49
- --print-landscape-width: 11.69in;
50
- /* A4 landscape width */
51
- --print-landscape-height: 8.27in;
52
- /* A4 landscape height */
53
36
  }
54
37
 
55
38
  @layer base {
@@ -256,112 +239,4 @@
256
239
 
257
240
  @layer utilities {
258
241
 
259
- /* Print-specific utilities */
260
- .print-break-avoid {
261
- page-break-inside: avoid;
262
- }
263
-
264
- .print-break-before {
265
- page-break-before: always;
266
- }
267
-
268
- .print-break-after {
269
- page-break-after: always;
270
- }
271
-
272
- /* Print page size controls */
273
- .print-a4-portrait {
274
- @media print {
275
- @page {
276
- size: A4 portrait;
277
- margin: var(--print-margin);
278
- }
279
- }
280
- }
281
-
282
- .print-a4-landscape {
283
- @media print {
284
- @page {
285
- size: A4 landscape;
286
- margin: var(--print-margin);
287
- }
288
- }
289
- }
290
-
291
- /* First page header styles */
292
- .print-first-page-header {
293
- @media print {
294
- @page :first {
295
- margin-top: var(--print-first-page-margin);
296
- }
297
- }
298
- }
299
-
300
- .print-cover-header {
301
- @media print {
302
- @page :first {
303
- margin-top: var(--print-first-page-margin);
304
- }
305
- }
306
- }
307
-
308
- .print-subsequent-header {
309
- @media print {
310
- @page :not(:first) {
311
- margin-top: var(--print-margin);
312
- }
313
- }
314
- }
315
-
316
- /* Print-specific layouts */
317
- @media print {
318
- .print-hidden {
319
- display: none !important;
320
- }
321
-
322
- .print-visible {
323
- display: block !important;
324
- }
325
-
326
- .print-first-page-only {
327
- display: block;
328
- }
329
-
330
- .print-subsequent-pages-only {
331
- display: none;
332
- }
333
- }
334
-
335
- @media print {
336
- @page :not(:first) {
337
- .print-first-page-only {
338
- display: none !important;
339
- }
340
-
341
- .print-subsequent-pages-only {
342
- display: block !important;
343
- }
344
- }
345
- }
346
-
347
- /* Print typography */
348
- .print-text {
349
- @media print {
350
- font-size: var(--print-font-size);
351
- line-height: var(--print-line-height);
352
- color: var(--print-color);
353
- }
354
- }
355
-
356
- /* Print layout container */
357
- .print-layout {
358
- @media print {
359
- width: 100%;
360
- max-width: none;
361
- margin: 0;
362
- padding: 0;
363
- background: var(--print-bg);
364
- color: var(--print-color);
365
- }
366
- }
367
242
  }
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ export { D as DataRecord, t as DataTableAction, u as DataTableColumn, r as Event
3
3
  import { SupabaseClient } from '@supabase/supabase-js';
4
4
  export { D as Database } from './database-C3Szpi5J.js';
5
5
  export { C as ChangePasswordFormValues, t as ContactFormData, F as FormData, m as LoginFormData, L as LoginFormValues, P as PasswordResetFormValues, q as ProfileFormData, o as RegistrationFormData, R as RegistrationFormValues, S as SecureLoginFormValues, k as SecurePasswordResetFormValues, j as SecureRegistrationFormValues, U as UserProfileFormValues, V as ValidationError, a as ValidationResult, g as changePasswordSchema, w as combineSchemas, i as contactFormSchema, d as dateSchema, e as emailSchema, l as loginSchema, n as nameSchema, f as passwordResetSchema, b as passwordSchema, p as phoneSchema, v as pickSchema, r as registrationSchema, c as secureLoginSchema, s as securePasswordSchema, u as urlSchema, h as userProfileSchema } from './validation-PM_iOaTI.js';
6
+ export { b as FileCategory, a as FileMetadata, F as FileReference, d as FileReferenceService, c as FileUploadOptions, e as FileUploadResult, S as StorageUploadOptions } from './file-reference-9xUOnwyt.js';
6
7
  import 'zod';
7
8
 
8
9
  /**
@@ -102,7 +103,7 @@ type TableName = 'users' | 'rbac_global_roles' | 'rbac_organisation_roles' | 'rb
102
103
  /**
103
104
  * Supabase RPC function names
104
105
  */
105
- type RPCFunction = 'get_rbac_permissions' | 'get_user_app_permissions' | 'get_user_current_roles' | 'get_user_event_access' | 'get_user_events' | 'get_user_organisations' | 'get_user_organisation_ids' | 'get_user_effective_organisations' | 'get_app_config' | 'get_organisation_apps' | 'get_organisation_hierarchy' | 'grant_user_role' | 'revoke_user_role' | 'grant_direct_app_access' | 'revoke_direct_app_access' | 'check_page_permission' | 'has_organisation_permission' | 'has_organisation_role' | 'user_has_role_in_org' | 'user_has_min_role_in_org' | 'can_access_event' | 'can_access_organisation' | 'is_super_admin' | 'is_admin' | 'track_user_session' | 'record_user_login' | 'log_organisation_access' | 'log_medi_access' | 'get_pace_user_events';
106
+ type RPCFunction = 'rbac_permission_check' | 'rbac_permissions_get' | 'rbac_access_validate' | 'rbac_page_access_check' | 'rbac_role_grant' | 'rbac_role_revoke' | 'rbac_roles_list' | 'rbac_role_validate' | 'rbac_session_track' | 'rbac_audit_log' | 'get_pace_user_events';
106
107
  /**
107
108
  * Helper type for Supabase filter operations
108
109
  */
package/dist/types.js CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  import {
20
20
  AccessLevel,
21
21
  AuthErrorCode,
22
+ FileCategory,
22
23
  PermissionErrorCode,
23
24
  createPermissionString,
24
25
  createRequestId,
@@ -29,7 +30,7 @@ import {
29
30
  isRequestId,
30
31
  isSessionToken,
31
32
  isUserId
32
- } from "./chunk-YDJW5XTN.js";
33
+ } from "./chunk-STT7INZR.js";
33
34
  import "./chunk-PLDDJCW6.js";
34
35
 
35
36
  // src/types/index.ts
@@ -51,6 +52,7 @@ function isSession(obj) {
51
52
  export {
52
53
  AccessLevel,
53
54
  AuthErrorCode,
55
+ FileCategory,
54
56
  PermissionErrorCode,
55
57
  changePasswordSchema,
56
58
  combineSchemas,
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/index.ts","../src/types/guards.ts"],"sourcesContent":["/**\n * @file Types Module Exports\n * @package @jmruthers/pace-core\n * @module Types\n * @since 0.1.0\n * \n * Complete collection of type definitions for the PACE Core library.\n * Use this import path when you need access to types not included in the main export.\n * \n * @example\n * // Specialized type imports\n * import { User, Event, AccessLevel } from '@jmruthers/pace-core/types';\n * \n * // For common types, prefer the main export:\n * import { ButtonProps, CardProps } from '@jmruthers/pace-core';\n */\n\n// Core type exports\nexport * from './unified';\nexport * from './supabase';\nexport * from './database';\nexport * from './guards';\nexport * from './validation';\nexport * from './theme';\nexport * from './security';\n","\n/**\n * @file Type Guards\n */\n\nimport { AuthErrorCode, User, Session } from './unified';\n\nexport function isAuthErrorCode(code: string): code is AuthErrorCode {\n return Object.values(AuthErrorCode).includes(code as AuthErrorCode);\n}\n\nexport function isUser(obj: unknown): obj is User {\n const candidate = obj as Partial<User> | null | undefined;\n return (\n candidate != null &&\n typeof candidate === 'object' &&\n typeof candidate.id === 'string' &&\n typeof candidate.created_at === 'string'\n );\n}\n\nexport function isSession(obj: unknown): obj is Session {\n const candidate = obj as Partial<Session> | null | undefined;\n return (\n candidate != null &&\n typeof candidate === 'object' &&\n typeof candidate.access_token === 'string' &&\n typeof candidate.user === 'object'\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA;;;ACbA;AAEO,SAAS,gBAAgB,MAAqC;AACnE,SAAO,OAAO,OAAO,aAAa,EAAE,SAAS,IAAqB;AACpE;AAEO,SAAS,OAAO,KAA2B;AAChD,QAAM,YAAY;AAClB,SACE,aAAa,QACb,OAAO,cAAc,YACrB,OAAO,UAAU,OAAO,YACxB,OAAO,UAAU,eAAe;AAEpC;AAEO,SAAS,UAAU,KAA8B;AACtD,QAAM,YAAY;AAClB,SACE,aAAa,QACb,OAAO,cAAc,YACrB,OAAO,UAAU,iBAAiB,YAClC,OAAO,UAAU,SAAS;AAE9B;","names":[]}
1
+ {"version":3,"sources":["../src/types/index.ts","../src/types/guards.ts"],"sourcesContent":["/**\n * @file Types Module Exports\n * @package @jmruthers/pace-core\n * @module Types\n * @since 0.1.0\n * \n * Complete collection of type definitions for the PACE Core library.\n * Use this import path when you need access to types not included in the main export.\n * \n * @example\n * // Specialized type imports\n * import { User, Event, AccessLevel } from '@jmruthers/pace-core/types';\n * \n * // For common types, prefer the main export:\n * import { ButtonProps, CardProps } from '@jmruthers/pace-core';\n */\n\n// Core type exports\nexport * from './unified';\nexport * from './supabase';\nexport * from './database';\nexport * from './guards';\nexport * from './validation';\nexport * from './theme';\nexport * from './security';\n","\n/**\n * @file Type Guards\n */\n\nimport { AuthErrorCode, User, Session } from './unified';\n\nexport function isAuthErrorCode(code: string): code is AuthErrorCode {\n return Object.values(AuthErrorCode).includes(code as AuthErrorCode);\n}\n\nexport function isUser(obj: unknown): obj is User {\n const candidate = obj as Partial<User> | null | undefined;\n return (\n candidate != null &&\n typeof candidate === 'object' &&\n typeof candidate.id === 'string' &&\n typeof candidate.created_at === 'string'\n );\n}\n\nexport function isSession(obj: unknown): obj is Session {\n const candidate = obj as Partial<Session> | null | undefined;\n return (\n candidate != null &&\n typeof candidate === 'object' &&\n typeof candidate.access_token === 'string' &&\n typeof candidate.user === 'object'\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA;;;ACbA;AAEO,SAAS,gBAAgB,MAAqC;AACnE,SAAO,OAAO,OAAO,aAAa,EAAE,SAAS,IAAqB;AACpE;AAEO,SAAS,OAAO,KAA2B;AAChD,QAAM,YAAY;AAClB,SACE,aAAa,QACb,OAAO,cAAc,YACrB,OAAO,UAAU,OAAO,YACxB,OAAO,UAAU,eAAe;AAEpC;AAEO,SAAS,UAAU,KAA8B;AACtD,QAAM,YAAY;AAClB,SACE,aAAa,QACb,OAAO,cAAc,YACrB,OAAO,UAAU,iBAAiB,YAClC,OAAO,UAAU,SAAS;AAE9B;","names":[]}
@@ -1,4 +1,4 @@
1
- import { e as OrganisationRole, f as OrganisationPermission, g as SuperAdminContext } from './organisation-CO3Sh3_D.js';
1
+ import { O as OrganisationRole, a as OrganisationPermission, S as SuperAdminContext } from './organisation-t-vvQC3g.js';
2
2
  import { r as Event } from './unified-CMPjE_fv.js';
3
3
  import { SupabaseClient } from '@supabase/supabase-js';
4
4
  import { D as Database } from './database-C3Szpi5J.js';
package/dist/utils.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- export { A as AppConfig, S as SecureDataAccess, a as cn, g as getAppConfig, d as getCurrentAppId, b as getCurrentAppName, s as setAppConfig } from './appConfig-BVGyuvI7.js';
1
+ export { A as AppConfig, S as SecureDataAccess, a as cn, g as getAppConfig, d as getCurrentAppId, b as getCurrentAppName, s as setAppConfig } from './appConfig-DjpeG6P-.js';
2
2
  import { z } from 'zod';
3
3
  export { u as useComponentPerformance } from './useComponentPerformance-DE9l5RkL.js';
4
4
  import * as date_fns from 'date-fns';
5
5
  import { D as DataTable } from './DataTable-DqDDvBfI.js';
6
6
  import React__default, { ComponentType } from 'react';
7
7
  import { SupabaseClient } from '@supabase/supabase-js';
8
- import './organisation-CO3Sh3_D.js';
9
8
  import 'clsx';
10
9
  import 'react/jsx-runtime';
11
10
  import './types-E5WSpEtz.js';
@@ -419,8 +418,8 @@ declare const LazyDataTable: typeof DataTable;
419
418
  */
420
419
  declare function transformPermissionMapToBoolean(permissions: Record<string, unknown>): Record<string, boolean>;
421
420
  declare function hasPermission(permissions: Record<string, boolean>, permission: string): boolean;
422
- declare function hasAnyPermission(permissions: Record<string, boolean>, permissionList: string[]): boolean;
423
- declare function hasAllPermissions(permissions: Record<string, boolean>, permissionList: string[]): boolean;
421
+ declare function hasAnyPermission(permissions: Record<string, boolean>, permissionList: string[] | null | undefined): boolean;
422
+ declare function hasAllPermissions(permissions: Record<string, boolean>, permissionList: string[] | null | undefined): boolean;
424
423
 
425
424
  /**
426
425
  * @file Permission type definitions and utilities