@jmruthers/pace-core 0.5.181 → 0.5.182

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 (750) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +16 -2
  3. package/dist/{AuthService-DYuQPJj6.d.ts → AuthService-B-cd2MA4.d.ts} +9 -11
  4. package/dist/{DataTable-CWAZZcXC.d.ts → DataTable-Bz8ffqyA.d.ts} +1 -1
  5. package/dist/{DataTable-UA6CL4JI.js → DataTable-QAB34V6K.js} +14 -15
  6. package/dist/UnifiedAuthProvider-7F6T4B6K.js +13 -0
  7. package/dist/{UnifiedAuthProvider-DJxGTftH.d.ts → UnifiedAuthProvider-F86d7dSi.d.ts} +5 -6
  8. package/dist/{api-45XYYO2A.js → api-ROMBCNKU.js} +5 -5
  9. package/dist/{audit-64X3VJXB.js → audit-WRS3KJKI.js} +4 -4
  10. package/dist/auth-BZOJqrdd.d.ts +49 -0
  11. package/dist/{chunk-CX5M4ZAG.js → chunk-5DRSZLL2.js} +1 -1
  12. package/dist/chunk-5DRSZLL2.js.map +1 -0
  13. package/dist/{chunk-BESYRHQM.js → chunk-6C4YBBJM.js} +10 -7
  14. package/dist/chunk-6C4YBBJM.js.map +1 -0
  15. package/dist/{chunk-PLDDJCW6.js → chunk-7D4SUZUM.js} +2 -13
  16. package/dist/{chunk-HRO5HWN2.js → chunk-CSOFYHAG.js} +55 -162
  17. package/dist/chunk-CSOFYHAG.js.map +1 -0
  18. package/dist/{chunk-ANBQRTPX.js → chunk-E66EQZE6.js} +3 -5
  19. package/dist/{chunk-ANBQRTPX.js.map → chunk-E66EQZE6.js.map} +1 -1
  20. package/dist/{chunk-Q5QRDWKI.js → chunk-F2IMUDXZ.js} +4 -6
  21. package/dist/chunk-F2IMUDXZ.js.map +1 -0
  22. package/dist/{chunk-SBVILCCA.js → chunk-FSFQFJCU.js} +28 -6
  23. package/dist/chunk-FSFQFJCU.js.map +1 -0
  24. package/dist/chunk-FUEYYMX5.js +2296 -0
  25. package/dist/chunk-FUEYYMX5.js.map +1 -0
  26. package/dist/{chunk-FFKNH6U5.js → chunk-HKIT6O7W.js} +3 -5
  27. package/dist/{chunk-FFKNH6U5.js.map → chunk-HKIT6O7W.js.map} +1 -1
  28. package/dist/chunk-KQCRWDSA.js +1 -0
  29. package/dist/{chunk-S5OFRT4M.js → chunk-KUEN3HFB.js} +6 -6
  30. package/dist/chunk-KUEN3HFB.js.map +1 -0
  31. package/dist/chunk-LMC26NLJ.js +84 -0
  32. package/dist/chunk-LMC26NLJ.js.map +1 -0
  33. package/dist/{chunk-BVYWGZVV.js → chunk-M7W4CP3M.js} +52 -19
  34. package/dist/chunk-M7W4CP3M.js.map +1 -0
  35. package/dist/{chunk-HZLDFOE4.js → chunk-MI7HBHN3.js} +164 -243
  36. package/dist/chunk-MI7HBHN3.js.map +1 -0
  37. package/dist/{chunk-PPMP5J6T.js → chunk-PWAHJW4G.js} +180 -29
  38. package/dist/chunk-PWAHJW4G.js.map +1 -0
  39. package/dist/chunk-PWLANIRT.js +127 -0
  40. package/dist/{chunk-XDNLUEXI.js.map → chunk-PWLANIRT.js.map} +1 -1
  41. package/dist/chunk-QCDXODCA.js +75 -0
  42. package/dist/chunk-QCDXODCA.js.map +1 -0
  43. package/dist/{chunk-D7LCGMVS.js → chunk-QETLRQI6.js} +526 -887
  44. package/dist/chunk-QETLRQI6.js.map +1 -0
  45. package/dist/{chunk-5MT24GKJ.js → chunk-QUVSNGIP.js} +264 -262
  46. package/dist/chunk-QUVSNGIP.js.map +1 -0
  47. package/dist/chunk-QXHPKYJV.js +113 -0
  48. package/dist/chunk-QXHPKYJV.js.map +1 -0
  49. package/dist/{chunk-OWAG3GSU.js → chunk-R77UEZ4E.js} +11 -1
  50. package/dist/chunk-R77UEZ4E.js.map +1 -0
  51. package/dist/{chunk-ZYTYSTO5.js → chunk-RA3JUFMW.js} +314 -161
  52. package/dist/chunk-RA3JUFMW.js.map +1 -0
  53. package/dist/{chunk-ERISIBYU.js → chunk-SQGMNID3.js} +3 -8
  54. package/dist/chunk-SQGMNID3.js.map +1 -0
  55. package/dist/{chunk-XJ2HZOBU.js → chunk-UHNYIBXL.js} +1 -1
  56. package/dist/chunk-UHNYIBXL.js.map +1 -0
  57. package/{src/utils/secureStorage.ts → dist/chunk-VBXEHIUJ.js} +113 -88
  58. package/dist/{chunk-7QCC6MCP.js.map → chunk-VBXEHIUJ.js.map} +1 -1
  59. package/dist/{chunk-VZ4VDGTB.js → chunk-W22JP75J.js} +5 -13
  60. package/dist/{chunk-VZ4VDGTB.js.map → chunk-W22JP75J.js.map} +1 -1
  61. package/dist/components.d.ts +12 -93
  62. package/dist/components.js +23 -106
  63. package/dist/components.js.map +1 -1
  64. package/dist/core-CUElvH_C.d.ts +164 -0
  65. package/dist/database.generated-CBmg2950.d.ts +8284 -0
  66. package/dist/event-CW5YB_2p.d.ts +239 -0
  67. package/dist/{file-reference-C6Gkn77H.d.ts → file-reference-D06mEEWW.d.ts} +7 -5
  68. package/dist/functions-D_kgHktt.d.ts +208 -0
  69. package/dist/hooks.d.ts +54 -7
  70. package/dist/hooks.js +204 -17
  71. package/dist/hooks.js.map +1 -1
  72. package/dist/{EventLogo-B3V3otev.d.ts → index-Bl--n7-T.d.ts} +387 -397
  73. package/dist/index.d.ts +94 -261
  74. package/dist/index.js +314 -126
  75. package/dist/index.js.map +1 -1
  76. package/dist/providers.d.ts +7 -8
  77. package/dist/providers.js +6 -13
  78. package/dist/rbac/index.d.ts +171 -101
  79. package/dist/rbac/index.js +23 -17
  80. package/dist/styles/index.d.ts +1 -3
  81. package/dist/styles/index.js +2 -17
  82. package/dist/theming/runtime.js +3 -3
  83. package/dist/types-UU913iLA.d.ts +102 -0
  84. package/dist/{types-Dfz9dmVH.d.ts → types-_x1f4QBF.d.ts} +6 -6
  85. package/dist/types.d.ts +88 -227
  86. package/dist/types.js +64 -112
  87. package/dist/types.js.map +1 -1
  88. package/dist/{usePublicRouteParams-B7PabvuH.d.ts → usePublicRouteParams-JJczomYq.d.ts} +203 -6
  89. package/dist/utils.d.ts +299 -13
  90. package/dist/utils.js +481 -55
  91. package/dist/utils.js.map +1 -1
  92. package/dist/validation-643vUDZW.d.ts +177 -0
  93. package/docs/DOCUMENTATION_REVIEW_TRACKER.md +511 -0
  94. package/docs/README.md +9 -8
  95. package/docs/api/README.md +16 -2
  96. package/docs/api/classes/ColumnFactory.md +1 -1
  97. package/docs/api/classes/ErrorBoundary.md +1 -1
  98. package/docs/api/classes/InvalidScopeError.md +4 -4
  99. package/docs/api/classes/MissingUserContextError.md +4 -4
  100. package/docs/api/classes/OrganisationContextRequiredError.md +4 -4
  101. package/docs/api/classes/PermissionDeniedError.md +4 -4
  102. package/docs/api/classes/RBACAuditManager.md +14 -14
  103. package/docs/api/classes/RBACCache.md +1 -1
  104. package/docs/api/classes/RBACEngine.md +2 -2
  105. package/docs/api/classes/RBACError.md +4 -4
  106. package/docs/api/classes/RBACNotInitializedError.md +4 -4
  107. package/docs/api/classes/SecureSupabaseClient.md +29 -9
  108. package/docs/api/classes/StorageUtils.md +1 -1
  109. package/docs/api/enums/FileCategory.md +17 -17
  110. package/docs/api/enums/RBACErrorCode.md +228 -0
  111. package/docs/api/enums/RPCFunction.md +118 -0
  112. package/docs/api/interfaces/AggregateConfig.md +1 -1
  113. package/docs/api/interfaces/BadgeProps.md +1 -1
  114. package/docs/api/interfaces/ButtonProps.md +2 -2
  115. package/docs/api/interfaces/CalendarProps.md +1 -1
  116. package/docs/api/interfaces/CardProps.md +29 -3
  117. package/docs/api/interfaces/ColorPalette.md +1 -1
  118. package/docs/api/interfaces/ColorShade.md +1 -1
  119. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  120. package/docs/api/interfaces/DataRecord.md +1 -1
  121. package/docs/api/interfaces/DataTableAction.md +2 -2
  122. package/docs/api/interfaces/DataTableColumn.md +6 -6
  123. package/docs/api/interfaces/DataTableProps.md +1 -1
  124. package/docs/api/interfaces/DataTableToolbarButton.md +2 -2
  125. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  126. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  127. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  128. package/docs/api/interfaces/ExportColumn.md +5 -5
  129. package/docs/api/interfaces/ExportOptions.md +4 -4
  130. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  131. package/docs/api/interfaces/FileMetadata.md +13 -13
  132. package/docs/api/interfaces/FileReference.md +12 -12
  133. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  134. package/docs/api/interfaces/FileUploadOptions.md +10 -10
  135. package/docs/api/interfaces/FileUploadProps.md +19 -19
  136. package/docs/api/interfaces/FooterProps.md +1 -1
  137. package/docs/api/interfaces/FormFieldProps.md +166 -0
  138. package/docs/api/interfaces/FormProps.md +113 -0
  139. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  140. package/docs/api/interfaces/InactivityWarningModalProps.md +8 -8
  141. package/docs/api/interfaces/InputProps.md +2 -2
  142. package/docs/api/interfaces/LabelProps.md +8 -8
  143. package/docs/api/interfaces/LoginFormProps.md +1 -1
  144. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  145. package/docs/api/interfaces/NavigationContextType.md +1 -1
  146. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  147. package/docs/api/interfaces/NavigationItem.md +17 -73
  148. package/docs/api/interfaces/NavigationMenuProps.md +38 -53
  149. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  150. package/docs/api/interfaces/Organisation.md +13 -13
  151. package/docs/api/interfaces/OrganisationContextType.md +21 -21
  152. package/docs/api/interfaces/OrganisationMembership.md +15 -15
  153. package/docs/api/interfaces/OrganisationProviderProps.md +59 -2
  154. package/docs/api/interfaces/OrganisationSecurityError.md +5 -5
  155. package/docs/api/interfaces/PaceAppLayoutProps.md +26 -39
  156. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  157. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  158. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  159. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  160. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  161. package/docs/api/interfaces/PaletteData.md +1 -1
  162. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  163. package/docs/api/interfaces/ProgressProps.md +50 -0
  164. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  165. package/docs/api/interfaces/PublicPageFooterProps.md +9 -9
  166. package/docs/api/interfaces/PublicPageHeaderProps.md +10 -10
  167. package/docs/api/interfaces/PublicPageLayoutProps.md +15 -15
  168. package/docs/api/interfaces/RBACAccessValidateParams.md +52 -0
  169. package/docs/api/interfaces/RBACAccessValidateResult.md +41 -0
  170. package/docs/api/interfaces/RBACAuditLogParams.md +85 -0
  171. package/docs/api/interfaces/RBACAuditLogResult.md +52 -0
  172. package/docs/api/interfaces/RBACConfig.md +2 -2
  173. package/docs/api/interfaces/RBACContext.md +52 -0
  174. package/docs/api/interfaces/RBACLogger.md +1 -1
  175. package/docs/api/interfaces/RBACPageAccessCheckParams.md +74 -0
  176. package/docs/api/interfaces/RBACPermissionCheckParams.md +74 -0
  177. package/docs/api/interfaces/RBACPermissionCheckResult.md +52 -0
  178. package/docs/api/interfaces/RBACPermissionsGetParams.md +63 -0
  179. package/docs/api/interfaces/RBACPermissionsGetResult.md +63 -0
  180. package/docs/api/interfaces/RBACResult.md +58 -0
  181. package/docs/api/interfaces/RBACRoleGrantParams.md +63 -0
  182. package/docs/api/interfaces/RBACRoleGrantResult.md +52 -0
  183. package/docs/api/interfaces/RBACRoleRevokeParams.md +63 -0
  184. package/docs/api/interfaces/RBACRoleRevokeResult.md +52 -0
  185. package/docs/api/interfaces/RBACRoleValidateParams.md +52 -0
  186. package/docs/api/interfaces/RBACRoleValidateResult.md +63 -0
  187. package/docs/api/interfaces/RBACRolesListParams.md +52 -0
  188. package/docs/api/interfaces/RBACRolesListResult.md +74 -0
  189. package/docs/api/interfaces/RBACSessionTrackParams.md +74 -0
  190. package/docs/api/interfaces/RBACSessionTrackResult.md +52 -0
  191. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  192. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  193. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  194. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  195. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  196. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  197. package/docs/api/interfaces/RouteConfig.md +1 -1
  198. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  199. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  200. package/docs/api/interfaces/SessionRestorationLoaderProps.md +15 -2
  201. package/docs/api/interfaces/StorageConfig.md +1 -1
  202. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  203. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  204. package/docs/api/interfaces/StorageListOptions.md +1 -1
  205. package/docs/api/interfaces/StorageListResult.md +1 -1
  206. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  207. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  208. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  209. package/docs/api/interfaces/StyleImport.md +1 -1
  210. package/docs/api/interfaces/SwitchProps.md +1 -1
  211. package/docs/api/interfaces/TabsContentProps.md +1 -1
  212. package/docs/api/interfaces/TabsListProps.md +1 -1
  213. package/docs/api/interfaces/TabsProps.md +1 -1
  214. package/docs/api/interfaces/TabsTriggerProps.md +43 -2
  215. package/docs/api/interfaces/TextareaProps.md +2 -2
  216. package/docs/api/interfaces/ToastActionElement.md +1 -1
  217. package/docs/api/interfaces/ToastProps.md +1 -1
  218. package/docs/api/interfaces/UnifiedAuthContextType.md +61 -61
  219. package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
  220. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  221. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  222. package/docs/api/interfaces/UsePublicEventLogoOptions.md +87 -0
  223. package/docs/api/interfaces/UsePublicEventLogoReturn.md +81 -0
  224. package/docs/api/interfaces/UsePublicEventOptions.md +3 -3
  225. package/docs/api/interfaces/UsePublicEventReturn.md +5 -5
  226. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +2 -2
  227. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  228. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  229. package/docs/api/interfaces/UseResolvedScopeOptions.md +2 -2
  230. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  231. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  232. package/docs/api/interfaces/UserEventAccess.md +1 -1
  233. package/docs/api/interfaces/UserMenuProps.md +4 -4
  234. package/docs/api/interfaces/UserProfile.md +7 -7
  235. package/docs/api/modules.md +484 -462
  236. package/docs/api-reference/components.md +186 -15
  237. package/docs/api-reference/deprecated.md +376 -0
  238. package/docs/api-reference/hooks.md +149 -19
  239. package/docs/api-reference/providers.md +61 -6
  240. package/docs/api-reference/rpc-functions.md +397 -0
  241. package/docs/api-reference/types.md +135 -78
  242. package/docs/api-reference/utilities.md +51 -380
  243. package/docs/architecture/README.md +49 -3
  244. package/docs/architecture/database-schema-requirements.md +40 -3
  245. package/docs/architecture/rbac-security-architecture.md +41 -4
  246. package/docs/architecture/services.md +127 -42
  247. package/docs/best-practices/README.md +51 -5
  248. package/docs/best-practices/accessibility.md +32 -3
  249. package/docs/best-practices/common-patterns.md +50 -3
  250. package/docs/best-practices/deployment.md +50 -4
  251. package/docs/best-practices/performance.md +50 -3
  252. package/docs/best-practices/security.md +94 -41
  253. package/docs/best-practices/testing.md +33 -4
  254. package/docs/core-concepts/authentication.md +5 -5
  255. package/docs/core-concepts/events.md +3 -3
  256. package/docs/core-concepts/organisations.md +3 -3
  257. package/docs/core-concepts/permissions.md +3 -3
  258. package/docs/core-concepts/rbac-system.md +5 -5
  259. package/docs/documentation-index.md +30 -8
  260. package/docs/getting-started/documentation-index.md +1 -1
  261. package/docs/getting-started/examples/README.md +7 -5
  262. package/docs/getting-started/examples/basic-auth-app.md +3 -0
  263. package/docs/getting-started/examples/full-featured-app.md +5 -3
  264. package/docs/getting-started/faq.md +6 -6
  265. package/docs/getting-started/installation-guide.md +192 -13
  266. package/docs/getting-started/local-development.md +303 -0
  267. package/docs/getting-started/quick-reference.md +3 -3
  268. package/docs/getting-started/quick-start.md +517 -0
  269. package/docs/implementation-guides/app-layout.md +45 -3
  270. package/docs/implementation-guides/authentication.md +66 -7
  271. package/docs/implementation-guides/component-styling.md +53 -3
  272. package/docs/implementation-guides/data-tables.md +76 -7
  273. package/docs/implementation-guides/datatable-filtering.md +1 -2
  274. package/docs/implementation-guides/datatable-rbac-usage.md +0 -1
  275. package/docs/implementation-guides/dynamic-colors.md +155 -4
  276. package/docs/implementation-guides/file-reference-system.md +72 -3
  277. package/docs/implementation-guides/file-upload-storage.md +72 -3
  278. package/docs/implementation-guides/forms.md +53 -3
  279. package/docs/implementation-guides/inactivity-tracking.md +53 -3
  280. package/docs/implementation-guides/large-datasets.md +1 -1
  281. package/docs/implementation-guides/navigation.md +55 -5
  282. package/docs/implementation-guides/organisation-security.md +72 -3
  283. package/docs/implementation-guides/performance.md +57 -1
  284. package/docs/implementation-guides/permission-enforcement.md +81 -8
  285. package/docs/implementation-guides/public-pages.md +560 -14
  286. package/docs/migration/MIGRATION_GUIDE.md +409 -50
  287. package/docs/migration/README.md +37 -3
  288. package/docs/migration/organisation-context-timing-fix.md +39 -4
  289. package/docs/migration/quick-migration-guide.md +41 -5
  290. package/docs/migration/rbac-migration.md +59 -3
  291. package/docs/migration/service-architecture.md +77 -14
  292. package/docs/rbac/README.md +79 -3
  293. package/docs/rbac/advanced-patterns.md +47 -3
  294. package/docs/rbac/api-reference.md +77 -8
  295. package/docs/rbac/event-based-apps.md +50 -5
  296. package/docs/rbac/examples/rbac-rls-integration-example.md +3 -3
  297. package/docs/rbac/examples.md +39 -3
  298. package/docs/rbac/getting-started.md +63 -4
  299. package/docs/rbac/quick-start.md +57 -5
  300. package/docs/rbac/rbac-rls-integration.md +68 -6
  301. package/docs/rbac/super-admin-guide.md +47 -3
  302. package/docs/rbac/troubleshooting.md +3 -3
  303. package/docs/security/README.md +68 -3
  304. package/docs/security/checklist.md +50 -3
  305. package/docs/standards/01-architecture-standard.md +39 -0
  306. package/docs/standards/02-api-and-rpc-standard.md +39 -0
  307. package/docs/standards/03-component-standard.md +32 -0
  308. package/docs/standards/04-code-style-standard.md +32 -0
  309. package/docs/standards/05-security-standard.md +30 -0
  310. package/docs/standards/06-testing-and-docs-standard.md +29 -0
  311. package/docs/standards/README.md +35 -0
  312. package/docs/styles/README.md +89 -8
  313. package/docs/testing/README.md +175 -24
  314. package/docs/troubleshooting/README.md +50 -3
  315. package/docs/troubleshooting/common-issues.md +271 -5
  316. package/docs/troubleshooting/debugging.md +54 -1
  317. package/docs/troubleshooting/migration.md +54 -1
  318. package/docs/troubleshooting/organisation-context-setup.md +29 -3
  319. package/docs/troubleshooting/styling-issues.md +246 -4
  320. package/{src/components/DataTable/examples → examples/DataTable}/GroupingAggregationExample.tsx +1 -1
  321. package/examples/{components 2/DataTable/HierarchicalActionsExample.tsx → DataTable/HierarchicalActionsExample.tsx} +7 -6
  322. package/{src/components/DataTable/examples → examples/DataTable}/HierarchicalExample.tsx +8 -6
  323. package/examples/{components 2/DataTable/PerformanceExample.tsx → DataTable/PerformanceExample.tsx} +2 -2
  324. package/examples/{components 2/DataTable/index.ts → DataTable/index.ts} +1 -0
  325. package/{src/components/Dialog/examples → examples/Dialog}/HtmlDialogExample.tsx +3 -3
  326. package/examples/{components 2/Dialog/ScrollableDialogExample.tsx → Dialog/ScrollableDialogExample.tsx} +1 -1
  327. package/{src/components/Dialog/examples → examples/Dialog}/SmartDialogExample.tsx +1 -1
  328. package/examples/{components 2/Dialog/index.ts → Dialog/index.ts} +0 -3
  329. package/examples/{features/public-pages → PublicPages}/CorrectPublicPageImplementation.tsx +52 -17
  330. package/examples/{features/public-pages → PublicPages}/PublicEventPage.tsx +65 -35
  331. package/examples/{features/public-pages → PublicPages}/PublicPageApp.tsx +52 -18
  332. package/examples/{features/public-pages → PublicPages}/PublicPageUsageExample.tsx +28 -15
  333. package/examples/README.md +81 -33
  334. package/examples/index.ts +14 -12
  335. package/examples/{RBAC → rbac}/CompleteRBACExample.tsx +1 -1
  336. package/examples/{features/rbac → rbac}/EventBasedApp.tsx +4 -4
  337. package/examples/{features/rbac → rbac}/PermissionExample.tsx +5 -3
  338. package/package.json +21 -27
  339. package/src/__tests__/helpers/test-utils.tsx +29 -3
  340. package/src/__tests__/rbac/PagePermissionGuard.test.tsx +7 -5
  341. package/src/components/Alert/Alert.test.tsx +2 -2
  342. package/src/components/Alert/Alert.tsx +4 -4
  343. package/src/components/Avatar/Avatar.test.tsx +17 -6
  344. package/src/components/Badge/Badge.test.tsx +1 -1
  345. package/src/components/Badge/Badge.tsx +2 -2
  346. package/src/components/Button/Button.test.tsx +2 -2
  347. package/src/components/Button/Button.tsx +11 -7
  348. package/src/components/Calendar/Calendar.test.tsx +41 -8
  349. package/src/components/Calendar/Calendar.tsx +39 -36
  350. package/src/components/Card/Card.tsx +51 -13
  351. package/src/components/Checkbox/Checkbox.test.tsx +36 -12
  352. package/src/components/DataTable/DataTable.test.tsx +1 -1
  353. package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +13 -7
  354. package/src/components/DataTable/__tests__/DataTable.default-state.test.tsx +14 -42
  355. package/src/components/DataTable/__tests__/DataTable.export.test.tsx +13 -10
  356. package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +14 -11
  357. package/src/components/DataTable/__tests__/DataTable.hooks.test.tsx +4 -2
  358. package/src/components/DataTable/__tests__/DataTable.test.tsx +13 -7
  359. package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +13 -10
  360. package/src/components/DataTable/__tests__/DataTableCore.test.tsx +15 -11
  361. package/src/components/DataTable/__tests__/a11y.basic.test.tsx +12 -6
  362. package/src/components/DataTable/__tests__/keyboard.test.tsx +12 -6
  363. package/src/components/DataTable/__tests__/pagination.modes.test.tsx +10 -6
  364. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +1 -1
  365. package/src/components/DataTable/components/DataTableBody.tsx +10 -25
  366. package/src/components/DataTable/components/DataTableCore.tsx +1 -1
  367. package/src/components/DataTable/components/FilterRow.tsx +3 -1
  368. package/src/components/DataTable/components/ImportModal.tsx +1 -1
  369. package/src/components/DataTable/components/VirtualizedDataTable.tsx +9 -9
  370. package/src/components/DataTable/core/ColumnFactory.ts +6 -6
  371. package/src/components/DataTable/core/DataTableContext.tsx +14 -10
  372. package/src/components/DataTable/core/LocalDataAdapter.ts +2 -1
  373. package/src/components/DataTable/core/PluginRegistry.ts +3 -3
  374. package/src/components/DataTable/core/StateManager.ts +12 -11
  375. package/src/components/DataTable/core/__tests__/ActionManager.test.ts +104 -0
  376. package/src/components/DataTable/core/__tests__/DataManager.test.ts +101 -0
  377. package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +84 -0
  378. package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +102 -0
  379. package/src/components/DataTable/core/__tests__/StateManager.test.ts +104 -0
  380. package/src/components/DataTable/core/interfaces.ts +17 -17
  381. package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +124 -0
  382. package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +117 -0
  383. package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +102 -0
  384. package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +53 -0
  385. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +0 -2
  386. package/src/components/DataTable/hooks/useDataTablePermissions.ts +9 -8
  387. package/src/components/DataTable/types.ts +5 -5
  388. package/src/components/DataTable/utils/aggregationUtils.ts +4 -4
  389. package/src/components/DataTable/utils/columnUtils.ts +3 -2
  390. package/src/components/DataTable/utils/debugTools.ts +1 -1
  391. package/src/components/DataTable/utils/exportUtils.ts +6 -6
  392. package/src/components/DataTable/utils/hierarchicalSorting.ts +6 -6
  393. package/src/components/DataTable/utils/hierarchicalUtils.ts +0 -8
  394. package/src/components/DataTable/utils/index.ts +0 -1
  395. package/src/components/DataTable/utils/performanceUtils.ts +9 -4
  396. package/src/components/Dialog/Dialog.test.tsx +49 -27
  397. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +13 -8
  398. package/src/components/EventSelector/EventSelector.test.tsx +60 -12
  399. package/src/components/EventSelector/EventSelector.tsx +38 -15
  400. package/src/components/EventSelector/index.ts +2 -2
  401. package/src/components/FileDisplay/FileDisplay.test.tsx +143 -85
  402. package/src/components/FileDisplay/FileDisplay.tsx +1 -0
  403. package/src/components/FileUpload/FileUpload.test.tsx +532 -152
  404. package/src/components/FileUpload/FileUpload.tsx +43 -8
  405. package/src/components/Footer/Footer.test.tsx +19 -14
  406. package/src/components/Form/Form.test.tsx +96 -14
  407. package/src/components/Form/Form.tsx +210 -1
  408. package/src/components/Form/index.ts +3 -7
  409. package/src/components/Header/Header.test.tsx +24 -17
  410. package/src/components/Header/Header.tsx +3 -1
  411. package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +2 -4
  412. package/src/components/Input/Input.test.tsx +61 -36
  413. package/src/components/Label/{__tests__/Label.test.tsx → Label.test.tsx} +2 -2
  414. package/src/components/Label/Label.tsx +2 -3
  415. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +6 -5
  416. package/src/components/LoadingSpinner/LoadingSpinner.tsx +6 -2
  417. package/src/components/LoginForm/LoginForm.test.tsx +14 -13
  418. package/src/components/LoginForm/LoginForm.tsx +1 -1
  419. package/src/components/LoginForm/index.ts +7 -0
  420. package/src/components/NavigationMenu/NavigationMenu.test.tsx +233 -20
  421. package/src/components/NavigationMenu/NavigationMenu.tsx +191 -55
  422. package/src/components/NavigationMenu/index.ts +1 -1
  423. package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +20 -11
  424. package/src/components/OrganisationSelector/OrganisationSelector.tsx +1 -1
  425. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.integration.test.tsx → PaceAppLayout.integration.test.tsx} +272 -79
  426. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.performance.test.tsx → PaceAppLayout.performance.test.tsx} +155 -32
  427. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.security.test.tsx → PaceAppLayout.security.test.tsx} +211 -65
  428. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +498 -210
  429. package/src/components/PaceAppLayout/PaceAppLayout.tsx +63 -64
  430. package/src/components/PaceAppLayout/test-setup.tsx +192 -0
  431. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +193 -39
  432. package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.test.tsx +2 -2
  433. package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.tsx +10 -4
  434. package/src/components/PasswordChange/index.ts +2 -0
  435. package/src/components/Progress/Progress.test.tsx +11 -0
  436. package/src/components/Progress/Progress.tsx +1 -1
  437. package/src/components/Progress/index.ts +10 -0
  438. package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +2 -1
  439. package/src/components/PublicLayout/PublicLayout.test.tsx +1210 -0
  440. package/src/components/PublicLayout/PublicPageLayout.tsx +190 -36
  441. package/src/components/PublicLayout/PublicPageProvider.tsx +8 -7
  442. package/src/components/PublicLayout/index.ts +10 -28
  443. package/src/components/Select/Select.test.tsx +7 -7
  444. package/src/components/Select/Select.tsx +277 -11
  445. package/src/components/Select/index.ts +1 -2
  446. package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +232 -0
  447. package/src/components/SessionRestorationLoader/SessionRestorationLoader.tsx +40 -19
  448. package/src/components/Table/{__tests__/Table.test.tsx → Table.test.tsx} +94 -41
  449. package/src/components/Tabs/Tabs.test.tsx +10 -9
  450. package/src/components/Tabs/Tabs.tsx +61 -33
  451. package/src/components/Textarea/Textarea.test.tsx +31 -18
  452. package/src/components/Toast/Toast.tsx +2 -2
  453. package/src/components/Tooltip/Tooltip.test.tsx +1 -1
  454. package/src/components/UserMenu/UserMenu.test.tsx +7 -6
  455. package/src/components/UserMenu/UserMenu.tsx +2 -2
  456. package/src/components/index.ts +5 -4
  457. package/src/constants/performance.ts +19 -8
  458. package/src/hooks/__tests__/useAppConfig.unit.test.ts +21 -22
  459. package/src/hooks/__tests__/useEvents.unit.test.ts +5 -4
  460. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +2 -2
  461. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +17 -0
  462. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +16 -11
  463. package/src/hooks/__tests__/usePublicEvent.simple.test.ts +1 -3
  464. package/src/hooks/__tests__/usePublicEvent.unit.test.ts +1 -3
  465. package/src/hooks/__tests__/useRBAC.unit.test.ts +24 -2
  466. package/src/hooks/index.ts +4 -0
  467. package/src/hooks/public/index.ts +2 -0
  468. package/src/hooks/public/usePublicEvent.ts +4 -6
  469. package/src/hooks/public/usePublicRouteParams.ts +1 -1
  470. package/src/hooks/services/useAuth.ts +2 -4
  471. package/src/hooks/services/useCurrentEvent.ts +1 -1
  472. package/src/hooks/useAppConfig.ts +1 -1
  473. package/src/hooks/useDataTablePerformance.ts +2 -2
  474. package/src/hooks/useEventTheme.ts +1 -1
  475. package/src/hooks/useEvents.ts +51 -10
  476. package/src/hooks/useOrganisationPermissions.test.ts +3 -3
  477. package/src/hooks/useOrganisationPermissions.ts +1 -1
  478. package/src/hooks/useOrganisationSecurity.ts +2 -2
  479. package/src/hooks/usePermissionCache.test.ts +9 -9
  480. package/src/hooks/usePermissionCache.ts +2 -2
  481. package/src/index.ts +19 -12
  482. package/src/providers/OrganisationProvider.tsx +73 -9
  483. package/src/providers/UnifiedAuthProvider.smoke.test.tsx +113 -13
  484. package/src/providers/__tests__/AuthProvider.test.tsx +2 -1
  485. package/src/providers/__tests__/EventProvider.test.tsx +24 -15
  486. package/src/providers/__tests__/OrganisationProvider.test.tsx +87 -36
  487. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +80 -24
  488. package/src/providers/index.ts +0 -3
  489. package/src/providers/services/AuthServiceProvider.tsx +2 -17
  490. package/src/providers/services/EventServiceProvider.tsx +11 -16
  491. package/src/providers/services/InactivityServiceProvider.tsx +9 -12
  492. package/src/providers/services/OrganisationServiceProvider.tsx +9 -12
  493. package/src/providers/services/UnifiedAuthProvider.tsx +85 -18
  494. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +11 -4
  495. package/src/rbac/__tests__/scenarios.user-role.test.tsx +105 -21
  496. package/src/rbac/adapters.tsx +1 -1
  497. package/src/rbac/api.ts +20 -4
  498. package/src/rbac/audit-enhanced.ts +47 -2
  499. package/src/rbac/audit.ts +47 -2
  500. package/src/rbac/components/NavigationGuard.tsx +1 -1
  501. package/src/rbac/components/NavigationProvider.test.tsx +7 -6
  502. package/src/rbac/components/NavigationProvider.tsx +1 -1
  503. package/src/rbac/components/PagePermissionGuard.tsx +1 -1
  504. package/src/rbac/components/PagePermissionProvider.test.tsx +7 -6
  505. package/src/rbac/components/PagePermissionProvider.tsx +1 -1
  506. package/src/rbac/components/PermissionEnforcer.tsx +1 -1
  507. package/src/rbac/components/RoleBasedRouter.tsx +1 -1
  508. package/src/rbac/components/SecureDataProvider.test.tsx +7 -6
  509. package/src/rbac/components/SecureDataProvider.tsx +1 -1
  510. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +6 -6
  511. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +11 -10
  512. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +10 -11
  513. package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +19 -15
  514. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +13 -12
  515. package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +19 -15
  516. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +18 -18
  517. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +11 -10
  518. package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +8 -7
  519. package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +10 -11
  520. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +48 -19
  521. package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +476 -0
  522. package/src/rbac/hooks/index.ts +3 -0
  523. package/src/rbac/hooks/usePermissions.ts +31 -85
  524. package/src/rbac/hooks/useRBAC.test.ts +13 -1
  525. package/src/rbac/hooks/useRBAC.ts +13 -67
  526. package/src/rbac/hooks/useResolvedScope.ts +11 -0
  527. package/src/rbac/hooks/useSecureSupabase.ts +308 -0
  528. package/src/rbac/index.ts +3 -0
  529. package/src/rbac/secureClient.ts +53 -6
  530. package/src/rbac/security.ts +37 -1
  531. package/src/{types/rbac-functions.ts → rbac/types/functions.ts} +30 -30
  532. package/src/rbac/types.ts +3 -2
  533. package/src/services/AuthService.ts +33 -25
  534. package/src/services/EventService.ts +56 -44
  535. package/src/services/InactivityService.ts +33 -53
  536. package/src/services/OrganisationService.ts +36 -40
  537. package/src/services/__tests__/AuthService.restoreSession.test.ts +6 -2
  538. package/src/services/__tests__/EventService.test.ts +67 -33
  539. package/src/services/interfaces/IEventService.ts +1 -1
  540. package/src/styles/core.css +2 -2
  541. package/src/styles/index.ts +1 -5
  542. package/src/types/__tests__/guards.test.ts +1 -1
  543. package/src/types/__tests__/type-validation.test.ts +0 -1
  544. package/src/types/auth.ts +42 -2
  545. package/src/types/core.ts +251 -0
  546. package/src/types/database.ts +11 -496
  547. package/src/types/event.ts +102 -0
  548. package/src/types/file-reference.ts +6 -4
  549. package/src/types/guards.ts +2 -1
  550. package/src/types/index.ts +48 -14
  551. package/src/types/lodash.debounce.d.ts +15 -0
  552. package/src/types/organisation.ts +14 -10
  553. package/src/types/supabase.ts +15 -17
  554. package/src/utils/__tests__/secureErrors.unit.test.ts +1 -1
  555. package/src/utils/__tests__/validationUtils.unit.test.ts +0 -29
  556. package/src/utils/app/appNameResolver.ts +1 -1
  557. package/src/utils/dynamic/dynamicUtils.ts +3 -2
  558. package/src/utils/file-reference/index.ts +25 -6
  559. package/src/utils/security/secureErrors.ts +1 -1
  560. package/src/utils/validation/index.ts +6 -12
  561. package/src/utils/validation/validationUtils.ts +0 -13
  562. package/dist/UnifiedAuthProvider-B37ATQHE.js +0 -16
  563. package/dist/auth-DReDSLq9.d.ts +0 -16
  564. package/dist/chunk-3JI76CYK.js +0 -2444
  565. package/dist/chunk-3JI76CYK.js.map +0 -1
  566. package/dist/chunk-56XJ3TU6.js +0 -11
  567. package/dist/chunk-56XJ3TU6.js.map +0 -1
  568. package/dist/chunk-5MT24GKJ.js.map +0 -1
  569. package/dist/chunk-7QCC6MCP.js +0 -288
  570. package/dist/chunk-BESYRHQM.js.map +0 -1
  571. package/dist/chunk-BJPBT3CU.js +0 -21
  572. package/dist/chunk-BJPBT3CU.js.map +0 -1
  573. package/dist/chunk-BVYWGZVV.js.map +0 -1
  574. package/dist/chunk-CX5M4ZAG.js.map +0 -1
  575. package/dist/chunk-D7LCGMVS.js.map +0 -1
  576. package/dist/chunk-EGI6MUL6.js +0 -27
  577. package/dist/chunk-EGI6MUL6.js.map +0 -1
  578. package/dist/chunk-ERISIBYU.js.map +0 -1
  579. package/dist/chunk-HRO5HWN2.js.map +0 -1
  580. package/dist/chunk-HZLDFOE4.js.map +0 -1
  581. package/dist/chunk-JISYG63F.js +0 -70
  582. package/dist/chunk-JISYG63F.js.map +0 -1
  583. package/dist/chunk-LIMSTKYD.js +0 -61
  584. package/dist/chunk-LIMSTKYD.js.map +0 -1
  585. package/dist/chunk-OWAG3GSU.js.map +0 -1
  586. package/dist/chunk-PPMP5J6T.js.map +0 -1
  587. package/dist/chunk-Q5QRDWKI.js.map +0 -1
  588. package/dist/chunk-S5OFRT4M.js.map +0 -1
  589. package/dist/chunk-SBVILCCA.js.map +0 -1
  590. package/dist/chunk-TUMEWN34.js +0 -15
  591. package/dist/chunk-TUMEWN34.js.map +0 -1
  592. package/dist/chunk-XDNLUEXI.js +0 -138
  593. package/dist/chunk-XJ2HZOBU.js.map +0 -1
  594. package/dist/chunk-ZYTYSTO5.js.map +0 -1
  595. package/dist/chunk-ZZ2SS7NI.js +0 -237
  596. package/dist/chunk-ZZ2SS7NI.js.map +0 -1
  597. package/dist/database-C6jy7EOu.d.ts +0 -500
  598. package/dist/organisation-D6qRDtbF.d.ts +0 -93
  599. package/dist/schema-DTDZQe2u.d.ts +0 -28
  600. package/dist/unified-DQ4VcT7H.d.ts +0 -198
  601. package/dist/useInactivityTracker-TO6ZOF35.js +0 -11
  602. package/dist/validation.d.ts +0 -47
  603. package/dist/validation.js +0 -24
  604. package/dist/validation.js.map +0 -1
  605. package/docs/DOCUMENTATION_AUDIT.md +0 -172
  606. package/docs/DOCUMENTATION_STANDARD.md +0 -137
  607. package/docs/api/classes/PublicErrorBoundary.md +0 -132
  608. package/docs/api/interfaces/EventLogoProps.md +0 -152
  609. package/docs/api/interfaces/PublicErrorBoundaryProps.md +0 -94
  610. package/docs/api/interfaces/PublicErrorBoundaryState.md +0 -68
  611. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +0 -86
  612. package/docs/architecture/rpc-function-standards.md +0 -1106
  613. package/docs/getting-started/consuming-app-vite-config.md +0 -239
  614. package/docs/implementation-guides/event-theming-summary.md +0 -226
  615. package/docs/implementation-guides/public-pages-advanced.md +0 -1038
  616. package/docs/migration/v0.4.15-tailwind-scanning.md +0 -278
  617. package/docs/migration/v0.4.16-css-first-approach.md +0 -312
  618. package/docs/migration/v0.4.17-source-path-fix.md +0 -235
  619. package/docs/rbac/RBAC_EVENT_CONTEXT_LOADING.md +0 -222
  620. package/docs/rbac/RBAC_LOGIN_SAFETY_FIX.md +0 -95
  621. package/docs/rbac/RBAC_V0.5.147_FIX.md +0 -117
  622. package/docs/rbac/README-rbac-rls-integration.md +0 -374
  623. package/docs/styles/usage.md +0 -227
  624. package/docs/testing/visual-testing.md +0 -120
  625. package/docs/troubleshooting/DEBUG_NETWORK_ERROR.md +0 -152
  626. package/docs/troubleshooting/FIX_SUPABASE_CORS.md +0 -184
  627. package/docs/troubleshooting/cake-page-permission-guard-issue-summary.md +0 -193
  628. package/docs/troubleshooting/database-view-compatibility.md +0 -125
  629. package/docs/troubleshooting/react-hooks-issue-analysis.md +0 -172
  630. package/docs/troubleshooting/tailwind-content-scanning.md +0 -219
  631. package/examples/RBAC/EventBasedApp.tsx +0 -239
  632. package/examples/RBAC/PermissionExample.tsx +0 -151
  633. package/examples/STRUCTURE.md +0 -125
  634. package/examples/components 2/DataTable/HierarchicalExample.tsx +0 -475
  635. package/examples/components 2/Dialog/BasicHtmlTest.tsx +0 -55
  636. package/examples/components 2/Dialog/DebugHtmlExample.tsx +0 -68
  637. package/examples/components 2/Dialog/HtmlDialogExample.tsx +0 -202
  638. package/examples/components 2/Dialog/SimpleHtmlTest.tsx +0 -61
  639. package/examples/components 2/Dialog/SmartDialogExample.tsx +0 -322
  640. package/examples/components 2/index.ts +0 -11
  641. package/examples/features/index.ts +0 -12
  642. package/examples/features/rbac/CompleteRBACExample.tsx +0 -324
  643. package/examples/features/rbac/index.ts +0 -13
  644. package/examples/public-pages/CorrectPublicPageImplementation.tsx +0 -301
  645. package/examples/public-pages/PublicEventPage.tsx +0 -274
  646. package/examples/public-pages/PublicPageApp.tsx +0 -308
  647. package/examples/public-pages/PublicPageUsageExample.tsx +0 -216
  648. package/examples/public-pages/index.ts +0 -14
  649. package/src/__tests__/TEST_STANDARD.md +0 -1008
  650. package/src/components/Checkbox/__mocks__/Checkbox.tsx +0 -2
  651. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +0 -421
  652. package/src/components/DataTable/examples/InitialPageSizeExample.tsx +0 -177
  653. package/src/components/DataTable/examples/PerformanceExample.tsx +0 -506
  654. package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +0 -316
  655. package/src/components/DataTable/examples/__tests__/HierarchicalExample.test.tsx +0 -45
  656. package/src/components/DataTable/examples/__tests__/InitialPageSizeExample.test.tsx +0 -211
  657. package/src/components/DataTable/examples/__tests__/PerformanceExample.test.tsx +0 -126
  658. package/src/components/Dialog/README.md +0 -804
  659. package/src/components/Dialog/examples/BasicHtmlTest.tsx +0 -55
  660. package/src/components/Dialog/examples/DebugHtmlExample.tsx +0 -68
  661. package/src/components/Dialog/examples/ScrollableDialogExample.tsx +0 -290
  662. package/src/components/Dialog/examples/SimpleHtmlTest.tsx +0 -61
  663. package/src/components/Dialog/examples/__tests__/HtmlDialogExample.test.tsx +0 -71
  664. package/src/components/Dialog/examples/__tests__/SimpleHtmlTest.test.tsx +0 -122
  665. package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -147
  666. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
  667. package/src/components/Dialog/utils/safeHtml.ts +0 -185
  668. package/src/components/EventSelector/types.ts +0 -79
  669. package/src/components/Form/FormErrorSummary.tsx +0 -113
  670. package/src/components/Form/FormField.tsx +0 -249
  671. package/src/components/Form/FormFieldset.tsx +0 -127
  672. package/src/components/Form/FormLiveRegion.tsx +0 -198
  673. package/src/components/Input/__mocks__/Input.tsx +0 -2
  674. package/src/components/NavigationMenu/types.ts +0 -85
  675. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -326
  676. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -1078
  677. package/src/components/PasswordReset/PasswordResetForm.test.tsx +0 -597
  678. package/src/components/PasswordReset/PasswordResetForm.tsx +0 -201
  679. package/src/components/PasswordReset/index.ts +0 -2
  680. package/src/components/ProtectedRoute/README.md +0 -164
  681. package/src/components/PublicLayout/EventLogo.tsx +0 -175
  682. package/src/components/PublicLayout/PublicErrorBoundary.tsx +0 -282
  683. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +0 -216
  684. package/src/components/PublicLayout/PublicPageContextChecker.tsx +0 -131
  685. package/src/components/PublicLayout/PublicPageDebugger.tsx +0 -104
  686. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +0 -162
  687. package/src/components/PublicLayout/PublicPageFooter.tsx +0 -124
  688. package/src/components/PublicLayout/PublicPageHeader.tsx +0 -209
  689. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -449
  690. package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -393
  691. package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +0 -192
  692. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -351
  693. package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -402
  694. package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -460
  695. package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -313
  696. package/src/components/Select/hooks.ts +0 -289
  697. package/src/hooks/useCounter.test.ts +0 -131
  698. package/src/hooks/useDebounce.test.ts +0 -375
  699. package/src/providers/AuthProvider.tsx +0 -15
  700. package/src/providers/EventProvider.tsx +0 -16
  701. package/src/providers/InactivityProvider.tsx +0 -15
  702. package/src/providers/OrganisationProvider.context.test.tsx +0 -169
  703. package/src/providers/UnifiedAuthProvider.tsx +0 -15
  704. package/src/types/theme.ts +0 -6
  705. package/src/types/unified.ts +0 -265
  706. package/src/utils/appConfig.ts +0 -47
  707. package/src/utils/appIdResolver.test.ts +0 -499
  708. package/src/utils/appIdResolver.ts +0 -130
  709. package/src/utils/appNameResolver.simple.test.ts +0 -212
  710. package/src/utils/appNameResolver.test.ts +0 -121
  711. package/src/utils/appNameResolver.ts +0 -191
  712. package/src/utils/audit.ts +0 -127
  713. package/src/utils/auth-utils.ts +0 -96
  714. package/src/utils/bundleAnalysis.ts +0 -129
  715. package/src/utils/debugLogger.ts +0 -67
  716. package/src/utils/deviceFingerprint.ts +0 -215
  717. package/src/utils/dynamicUtils.ts +0 -105
  718. package/src/utils/file-reference.test.ts +0 -788
  719. package/src/utils/file-reference.ts +0 -519
  720. package/src/utils/formatDate.test.ts +0 -237
  721. package/src/utils/formatting.ts +0 -170
  722. package/src/utils/lazyLoad.tsx +0 -44
  723. package/src/utils/logger.ts +0 -179
  724. package/src/utils/organisationContext.test.ts +0 -322
  725. package/src/utils/organisationContext.ts +0 -153
  726. package/src/utils/performanceBenchmark.ts +0 -64
  727. package/src/utils/performanceBudgets.ts +0 -110
  728. package/src/utils/permissionTypes.ts +0 -37
  729. package/src/utils/permissionUtils.test.ts +0 -393
  730. package/src/utils/permissionUtils.ts +0 -34
  731. package/src/utils/sanitization.ts +0 -264
  732. package/src/utils/schemaUtils.ts +0 -37
  733. package/src/utils/secureDataAccess.test.ts +0 -711
  734. package/src/utils/secureDataAccess.ts +0 -377
  735. package/src/utils/secureErrors.ts +0 -79
  736. package/src/utils/security.ts +0 -156
  737. package/src/utils/securityMonitor.ts +0 -45
  738. package/src/utils/sessionTracking.ts +0 -126
  739. package/src/utils/validation.ts +0 -111
  740. package/src/utils/validationUtils.ts +0 -120
  741. package/src/validation/index.ts +0 -12
  742. /package/dist/{DataTable-UA6CL4JI.js.map → DataTable-QAB34V6K.js.map} +0 -0
  743. /package/dist/{UnifiedAuthProvider-B37ATQHE.js.map → UnifiedAuthProvider-7F6T4B6K.js.map} +0 -0
  744. /package/dist/{api-45XYYO2A.js.map → api-ROMBCNKU.js.map} +0 -0
  745. /package/dist/{audit-64X3VJXB.js.map → audit-WRS3KJKI.js.map} +0 -0
  746. /package/dist/{chunk-PLDDJCW6.js.map → chunk-7D4SUZUM.js.map} +0 -0
  747. /package/dist/{useInactivityTracker-TO6ZOF35.js.map → chunk-KQCRWDSA.js.map} +0 -0
  748. /package/examples/{components 2/DataTable → DataTable}/InitialPageSizeExample.tsx +0 -0
  749. /package/examples/{features/public-pages → PublicPages}/index.ts +0 -0
  750. /package/examples/{RBAC → rbac}/index.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
- lastUpdated: 2025-10-29T22:43:00+11:00
3
- version: 0.5.76
4
- reviewedBy: content-audit
2
+ lastUpdated: 2025-11-18T12:00:00+11:00
3
+ version: 0.5.181
4
+ reviewedBy: documentation-standards-audit
5
5
  ---
6
6
 
7
7
  # Components API Reference
@@ -29,6 +29,8 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
29
29
 
30
30
  ```tsx
31
31
  import { Button } from '@jmruthers/pace-core';
32
+ import { Link } from 'react-router-dom'; // or your routing library
33
+ import { Settings } from 'lucide-react'; // for icon example
32
34
 
33
35
  // Default button
34
36
  <Button onClick={handleClick}>
@@ -67,6 +69,102 @@ import { Button } from '@jmruthers/pace-core';
67
69
  - **lg**: Large button (h-10 px-8)
68
70
  - **icon**: Square icon button (h-8 w-8)
69
71
 
72
+ ### Accessibility
73
+
74
+ - **Keyboard Navigation**: Fully keyboard accessible. Use `Enter` or `Space` to activate.
75
+ - **ARIA Attributes**: Supports all standard ARIA attributes via `React.ButtonHTMLAttributes`.
76
+ - **Disabled State**: When disabled, button is not focusable and has `aria-disabled="true"`.
77
+ - **Icon Buttons**: Always provide `aria-label` for icon-only buttons for screen readers.
78
+ - **Focus Management**: Visible focus indicators via `focus-visible` styles.
79
+ - **Screen Readers**: Button text is automatically announced. Use descriptive labels.
80
+
81
+ ### Edge Cases
82
+
83
+ - **asChild Prop**: When using `asChild`, the button renders as the child element (e.g., `<Link>`). The `type` attribute is not applied in this case.
84
+ - **Disabled State**: Disabled buttons cannot be clicked and are excluded from keyboard navigation.
85
+ - **Loading States**: For loading states, combine with `disabled` prop and show loading indicator as children.
86
+ - **Form Submission**: Use `type="submit"` for form submission buttons. Default is `type="button"`.
87
+ - **Composition**: When composing with other components via `asChild`, ensure child element supports button-like behavior.
88
+
89
+ ### ButtonGroup
90
+
91
+ A component that groups multiple buttons together with consistent styling and spacing.
92
+
93
+ #### Props
94
+
95
+ ```typescript
96
+ interface ButtonGroupProps {
97
+ children: React.ReactNode;
98
+ orientation?: 'horizontal' | 'vertical';
99
+ variant?: 'default' | 'outline' | 'ghost';
100
+ size?: 'sm' | 'default' | 'lg';
101
+ className?: string;
102
+ spacing?: 'none' | 'sm' | 'md' | 'lg';
103
+ }
104
+ ```
105
+
106
+ #### Usage
107
+
108
+ ```tsx
109
+ import { Button } from '@jmruthers/pace-core';
110
+ import { ButtonGroup } from '@jmruthers/pace-core/components';
111
+
112
+ // Horizontal button group
113
+ <ButtonGroup variant="outline" spacing="md">
114
+ <Button>Cancel</Button>
115
+ <Button variant="default">Save</Button>
116
+ </ButtonGroup>
117
+
118
+ // Vertical button group
119
+ <ButtonGroup orientation="vertical" spacing="lg">
120
+ <Button>Option 1</Button>
121
+ <Button>Option 2</Button>
122
+ <Button>Option 3</Button>
123
+ </ButtonGroup>
124
+ ```
125
+
126
+ #### Features
127
+
128
+ - Automatically applies variant and size to child Button components
129
+ - Configurable spacing between buttons
130
+ - Supports horizontal and vertical orientations
131
+ - Uses `role="group"` for accessibility
132
+
133
+ ### IconButton
134
+
135
+ A button component specifically designed for icon-only interactions with built-in tooltip support.
136
+
137
+ #### Props
138
+
139
+ ```typescript
140
+ interface IconButtonProps extends Omit<ButtonProps, 'children'> {
141
+ icon: React.ReactNode;
142
+ 'aria-label': string; // Required for accessibility
143
+ tooltip?: string;
144
+ }
145
+ ```
146
+
147
+ #### Usage
148
+
149
+ ```tsx
150
+ import { IconButton } from '@jmruthers/pace-core/components';
151
+ import { Settings } from 'lucide-react';
152
+
153
+ <IconButton
154
+ icon={<Settings />}
155
+ aria-label="Settings"
156
+ tooltip="Open settings"
157
+ onClick={handleClick}
158
+ />
159
+ ```
160
+
161
+ #### Accessibility
162
+
163
+ - **Required aria-label**: IconButton requires an `aria-label` prop for screen readers
164
+ - **Tooltip Support**: Optional tooltip provides additional context on hover
165
+ - **Keyboard Accessible**: Fully keyboard accessible like standard Button
166
+ - **Focus Indicators**: Visible focus indicators for keyboard navigation
167
+
70
168
  ## DataTable
71
169
 
72
170
  A comprehensive, enterprise-grade data table with advanced features and performance optimizations.
@@ -106,6 +204,9 @@ interface DataTableProps<TData extends DataRecord> {
106
204
  data: TData[];
107
205
  columns: (DataTableColumn<TData> | SimpleColumn<TData>)[];
108
206
 
207
+ // MANDATORY RBAC - REQUIRED for all DataTables
208
+ rbac: DataTableRBACConfig;
209
+
109
210
  // Display
110
211
  title?: string;
111
212
  description?: string;
@@ -115,8 +216,8 @@ interface DataTableProps<TData extends DataRecord> {
115
216
  // Column ordering
116
217
  columnOrder?: string[];
117
218
 
118
- // Feature configuration (required)
119
- features: DataTableFeatureConfig;
219
+ // Feature configuration (optional - all features disabled by default)
220
+ features?: DataTableFeatureConfig;
120
221
 
121
222
  // Event handlers
122
223
  onEditRow?: (row: TData, data: Partial<TData>) => void;
@@ -130,18 +231,44 @@ interface DataTableProps<TData extends DataRecord> {
130
231
  */
131
232
  onExport?: (options: ExportOptions<TData>) => void | Promise<void>;
132
233
  onDeleteSelected?: (selectedRows: Record<string, boolean>) => void;
234
+ onRowSelectionChange?: (selection: Record<string, boolean>) => void;
235
+ selection?: Record<string, boolean>;
133
236
 
134
237
  // Performance
135
238
  performance?: PerformanceConfig;
136
239
  serverSide?: ServerSideConfig<TData>;
240
+ paginationMode?: PaginationMode;
241
+ chunking?: ChunkingConfig;
242
+ searchIndex?: SearchIndexConfig;
243
+ initialPageSize?: number;
137
244
  isLoading?: boolean;
138
245
 
139
246
  // Utilities
140
247
  getRowId?: GetRowId<TData>;
141
- emptyState?: EmptyStateConfig;
248
+ emptyState?: EmptyStateConfig | React.ReactElement;
249
+ aggregates?: AggregateConfig[];
250
+ importModalConfig?: ImportModalConfig;
142
251
 
143
252
  // Hierarchical configuration
144
253
  hierarchical?: HierarchicalConfig;
254
+
255
+ // Default state configuration
256
+ defaultGrouping?: string[];
257
+ defaultSorting?: Array<{ id: string; desc: boolean }>;
258
+
259
+ // Persistence configuration
260
+ storageKey?: string;
261
+ onLayoutChange?: (layout: { columnOrder: string[]; columnVisibility: Record<string, boolean> }) => void;
262
+
263
+ // Enhanced pagination
264
+ enhancedPagination?: boolean;
265
+
266
+ // Custom components
267
+ loadingComponent?: React.ComponentType;
268
+ errorComponent?: React.ComponentType<{ error: Error; retry: () => void }>;
269
+
270
+ // Virtual scrolling
271
+ virtualHeight?: number;
145
272
  }
146
273
  ```
147
274
 
@@ -819,6 +946,8 @@ A flexible card component suite for displaying content with consistent styling a
819
946
 
820
947
  ```typescript
821
948
  interface CardProps extends React.HTMLAttributes<HTMLElement> {
949
+ variant?: 'default' | 'outline' | 'ghost';
950
+ size?: 'default' | 'sm' | 'lg';
822
951
  className?: string;
823
952
  }
824
953
 
@@ -878,14 +1007,39 @@ import {
878
1007
  </Card>
879
1008
  ```
880
1009
 
1010
+ ### Variants
1011
+
1012
+ - **default**: Standard card with shadow (shadow-xl)
1013
+ - **outline**: Card with prominent border (border-2)
1014
+ - **ghost**: Card without border or shadow (border-0 shadow-none)
1015
+
1016
+ ### Sizes
1017
+
1018
+ - **default**: Standard card size
1019
+ - **sm**: Small card with smaller text (text-sm)
1020
+ - **lg**: Large card with larger text (text-lg)
1021
+
881
1022
  ### Semantic Structure
882
1023
 
883
1024
  - **Card**: `<article>` element for self-contained content
884
1025
  - **CardHeader**: `<header>` element for card heading area
885
- - **CardContent**: `<div>` element for primary card content
1026
+ - **CardContent**: `<main>` element for primary card content
886
1027
  - **CardFooter**: `<footer>` element for card footer area
887
1028
  - **CardActions**: `<nav>` element for action buttons
888
1029
 
1030
+ ### Accessibility
1031
+
1032
+ - **Semantic HTML**: Uses proper semantic elements (`<article>`, `<header>`, `<main>`, `<footer>`, `<nav>`) for screen readers
1033
+ - **Keyboard Navigation**: All interactive elements within cards are keyboard accessible
1034
+ - **Focus Management**: Proper focus indicators on interactive card content
1035
+ - **Screen Readers**: Semantic structure provides clear content hierarchy
1036
+
1037
+ ### Edge Cases
1038
+
1039
+ - **Nested Cards**: CardContent uses `<main>` element which should only appear once per page. When nesting cards, consider using a different structure.
1040
+ - **Empty Cards**: Cards can be empty or contain only header/footer without content
1041
+ - **Variant Combinations**: Variant and size props work independently and can be combined
1042
+
889
1043
  ## LoadingSpinner
890
1044
 
891
1045
  A simple, accessible loading spinner component for indicating loading states.
@@ -927,10 +1081,27 @@ import { LoadingSpinner } from '@jmruthers/pace-core';
927
1081
 
928
1082
  ### Features
929
1083
 
930
- - **Accessibility**: WCAG 2.1 AA compliant with proper ARIA attributes
931
- - **Reduced Motion**: Supports users with vestibular disorders
932
- - **Screen Reader**: Announces "Loading..." to screen readers
933
- - **Performance**: CSS-only animations for optimal performance
1084
+ - Multiple size variants (sm, md, lg)
1085
+ - Smooth CSS animations with reduced motion support
1086
+ - Screen reader friendly with proper ARIA attributes
1087
+ - Customizable styling via className
1088
+ - Lightweight and performant (CSS-only animations)
1089
+
1090
+ ### Accessibility
1091
+
1092
+ - **ARIA Role**: Uses `role="status"` for screen reader announcement
1093
+ - **Screen Reader Text**: Includes "Loading..." text for screen readers (visually hidden)
1094
+ - **Reduced Motion**: Respects `prefers-reduced-motion` media query for users with vestibular disorders
1095
+ - **High Contrast**: Works with high contrast mode
1096
+ - **Focus Management**: Non-interactive element, no focus concerns
1097
+
1098
+ ### Edge Cases
1099
+
1100
+ - **Multiple Spinners**: Can be used multiple times on the same page without conflicts
1101
+ - **Nested Usage**: Safe to nest within buttons, cards, or other components
1102
+ - **Custom Styling**: className prop allows full customization while maintaining accessibility
1103
+ - **Size Variants**: Default size is 'md' if not specified
1104
+ - **Animation Performance**: CSS-only animations ensure smooth performance even with multiple spinners
934
1105
 
935
1106
  ## Toast
936
1107
 
@@ -1159,7 +1330,7 @@ interface NavigationMenuProps {
1159
1330
  auditLog?: boolean;
1160
1331
  onNavigationAccessDenied?: (itemId: string, reason: string) => void;
1161
1332
  onStrictModeViolation?: (itemId: string, reason: string) => void;
1162
- filterByPermissions?: boolean;
1333
+ // filterByPermissions prop removed - permission filtering is always enabled
1163
1334
  }
1164
1335
 
1165
1336
  interface NavigationItem {
@@ -1250,7 +1421,7 @@ function AuthenticatedNavigation() {
1250
1421
  currentPath={location.pathname}
1251
1422
  onNavigate={(item) => navigate(item.href)}
1252
1423
  buttonText="Navigation"
1253
- filterByPermissions={true}
1424
+ // Permission filtering is always enabled
1254
1425
  auditLog={true}
1255
1426
  />
1256
1427
  );
@@ -1786,7 +1957,7 @@ function EventHeader({ eventId }: { eventId: string }) {
1786
1957
  }
1787
1958
  ```
1788
1959
 
1789
- For detailed implementation, see [Public Pages Advanced Guide](../implementation-guides/public-pages-advanced.md).
1960
+ For detailed implementation, see [Public Pages Guide](../implementation-guides/public-pages.md#advanced-topics).
1790
1961
 
1791
1962
  ## Component Styling
1792
1963
 
@@ -1808,7 +1979,7 @@ All components include:
1808
1979
  - **Visual Tests**: Visual regression testing
1809
1980
  - **Performance Tests**: Rendering performance
1810
1981
 
1811
- For more information about testing components, see the [Testing Guide](../best-practices/testing.md).
1982
+ For more information about testing components, see the [Testing Guide](../testing/README.md).
1812
1983
 
1813
1984
  ## Avatar
1814
1985
 
@@ -0,0 +1,376 @@
1
+ ---
2
+ lastUpdated: 2025-11-18T12:00:00+11:00
3
+ version: 0.5.181
4
+ reviewedBy: documentation-standards-audit
5
+ ---
6
+
7
+ # Deprecated API Reference
8
+
9
+ This document lists all deprecated APIs in `@jmruthers/pace-core` and provides migration paths. Deprecated items follow a 2-release retirement window as per the [API & RPC Standard](../standards/02-api-and-rpc-standard.md).
10
+
11
+ ## Deprecation Policy
12
+
13
+ - **Retirement Window**: 2 stable releases
14
+ - **Marking**: Items are marked with `@deprecated` JSDoc tags
15
+ - **Documentation**: Migration paths are provided below
16
+ - **Timeline**: Check package version for removal timeline
17
+
18
+ ## Component Deprecations
19
+
20
+ ### ProtectedRoute.allowSuperAdminBypass
21
+
22
+ **Status**: Deprecated
23
+ **Since**: v0.5.x
24
+ **Removal**: v0.7.x
25
+
26
+ **Deprecated Prop**:
27
+ ```typescript
28
+ interface ProtectedRouteProps {
29
+ /**
30
+ * @deprecated Use requireEvent={false} for routes that don't need events
31
+ */
32
+ allowSuperAdminBypass?: boolean;
33
+ }
34
+ ```
35
+
36
+ **Migration**:
37
+ ```tsx
38
+ // Old
39
+ <ProtectedRoute allowSuperAdminBypass={true}>
40
+ <Route path="/settings" element={<SettingsPage />} />
41
+ </ProtectedRoute>
42
+
43
+ // New
44
+ <ProtectedRoute requireEvent={false}>
45
+ <Route path="/settings" element={<SettingsPage />} />
46
+ </ProtectedRoute>
47
+ ```
48
+
49
+ ### PublicPageLayout.className
50
+
51
+ **Status**: Deprecated
52
+ **Since**: v0.5.x
53
+ **Removal**: v0.7.x
54
+
55
+ **Reason**: Wrapper div was removed from PublicPageLayout component.
56
+
57
+ **Deprecated Prop**:
58
+ ```typescript
59
+ interface PublicPageLayoutProps {
60
+ /**
61
+ * @deprecated Custom CSS classes for the layout - no longer used as wrapper div was removed
62
+ */
63
+ className?: string;
64
+ }
65
+ ```
66
+
67
+ **Migration**: Remove `className` prop usage. Use custom header/footer components for styling:
68
+ ```tsx
69
+ // Old
70
+ <PublicPageLayout className="custom-layout" eventCode={eventCode}>
71
+
72
+ // New
73
+ <PublicPageLayout
74
+ eventCode={eventCode}
75
+ customHeader={<CustomHeader className="custom-layout" />}
76
+ >
77
+ ```
78
+
79
+ ### usePublicPageContext Hook
80
+
81
+ **Status**: Deprecated
82
+ **Since**: v0.5.x
83
+ **Removal**: v0.7.x
84
+
85
+ **Location**: `packages/core/src/components/PublicLayout/PublicPageLayout.tsx`
86
+
87
+ **Deprecated Hook**:
88
+ ```typescript
89
+ /**
90
+ * @deprecated This hook is no longer needed as PublicPageLayout no longer
91
+ * automatically fetches event data. Use usePublicRouteParams and usePublicEvent
92
+ * directly in your components instead.
93
+ */
94
+ export function usePublicPageContext()
95
+ ```
96
+
97
+ **Migration**: Use `usePublicRouteParams` and `usePublicEvent` hooks directly:
98
+ ```tsx
99
+ // Old
100
+ import { usePublicPageContext } from '@jmruthers/pace-core';
101
+ const { event, eventCode, isLoading } = usePublicPageContext();
102
+
103
+ // New
104
+ import { usePublicRouteParams, usePublicEvent } from '@jmruthers/pace-core';
105
+ const { eventCode } = usePublicRouteParams({ fetchEventData: false });
106
+ const { event, isLoading } = usePublicEvent(eventCode || '');
107
+ ```
108
+
109
+ ## Hook Deprecations
110
+
111
+ ### usePermissionCache
112
+
113
+ **Status**: Deprecated
114
+ **Since**: v0.4.x
115
+ **Removal**: v0.6.x
116
+
117
+ **Location**: `packages/core/src/hooks/usePermissionCache.ts`
118
+
119
+ **Deprecated Hook**:
120
+ ```typescript
121
+ /**
122
+ * @deprecated Consider using useCan() or usePermissions() hooks directly instead.
123
+ */
124
+ export function usePermissionCache(...)
125
+ ```
126
+
127
+ **Migration**:
128
+ ```tsx
129
+ // Old
130
+ import { usePermissionCache } from '@jmruthers/pace-core';
131
+
132
+ // New - Use RBAC hooks directly
133
+ import { useCan, usePermissions } from '@jmruthers/pace-core/rbac';
134
+
135
+ const { hasPermission } = useCan();
136
+ const { permissions } = usePermissions({ userId, scope });
137
+ ```
138
+
139
+ ## Utility Deprecations
140
+
141
+ ### sanitizeUserInput (from validationUtils)
142
+
143
+ **Status**: Deprecated
144
+ **Since**: v0.5.x
145
+ **Removal**: v0.7.x
146
+
147
+ **Location**: `packages/core/src/utils/validation/validationUtils.ts`
148
+
149
+ **Deprecated Function**:
150
+ ```typescript
151
+ /**
152
+ * @deprecated Use sanitizeUserInput from lib/sanitization instead
153
+ */
154
+ export function sanitizeUserInput(...)
155
+ ```
156
+
157
+ **Migration**:
158
+ ```typescript
159
+ // Old
160
+ import { sanitizeUserInput } from '@jmruthers/pace-core/utils/validation/validationUtils';
161
+
162
+ // New
163
+ import { sanitizeUserInput } from '@jmruthers/pace-core/utils/validation/sanitization';
164
+ ```
165
+
166
+ ### sortHierarchicalDataByStructure
167
+
168
+ **Status**: Deprecated
169
+ **Since**: v0.5.x
170
+ **Removal**: v0.7.x
171
+
172
+ **Location**: `packages/core/src/components/DataTable/utils/hierarchicalUtils.ts`
173
+
174
+ **Deprecated Function**:
175
+ ```typescript
176
+ /**
177
+ * @deprecated Use sortHierarchicalDataByStructure from hierarchicalSorting.ts
178
+ */
179
+ export function sortHierarchicalDataByStructure(...)
180
+ ```
181
+
182
+ **Migration**:
183
+ ```typescript
184
+ // Old
185
+ import { sortHierarchicalDataByStructure } from './hierarchicalUtils';
186
+
187
+ // New
188
+ import { sortHierarchicalDataByStructure } from './hierarchicalSorting';
189
+ ```
190
+
191
+ ## RBAC Deprecations
192
+
193
+ ### getPermissionsForRole
194
+
195
+ **Status**: Removed
196
+ **Since**: v0.4.x
197
+ **Reason**: Removed to ensure RBAC compliance - permissions must be queried from database
198
+
199
+ **Deprecated Function**:
200
+ ```typescript
201
+ /**
202
+ * @deprecated This function has been removed to ensure RBAC compliance.
203
+ */
204
+ export function getPermissionsForRole(role: string): Permission[]
205
+ ```
206
+
207
+ **Migration**: Query permissions from database:
208
+ ```typescript
209
+ // Old
210
+ const permissions = getPermissionsForRole('admin');
211
+
212
+ // New - Query from database
213
+ const { data } = await supabase
214
+ .from('rbac_page_permissions')
215
+ .select('operation, allowed')
216
+ .eq('role_name', 'admin')
217
+ .eq('organisation_id', organisationId)
218
+ .eq('allowed', true);
219
+ ```
220
+
221
+ ## RPC Function Deprecations
222
+
223
+ ### Legacy File Reference RPCs
224
+
225
+ **Status**: Deprecated
226
+ **Since**: v0.5.x
227
+ **Removal**: v0.7.x
228
+
229
+ **Deprecated Functions**:
230
+ - `insert_file_reference` → Use `data_file_reference_create`
231
+ - `get_file_url` → Use `data_file_reference_url_get`
232
+ - `get_file_signed_url` → Use `data_file_reference_signed_url_get`
233
+ - `delete_file_reference` → Use `data_file_reference_delete`
234
+ - `get_record_files` → Use `data_file_reference_list`
235
+ - `get_record_file_count` → Use `data_file_reference_count_get`
236
+
237
+ **Migration**: Use the new RPC naming pattern (`data_*` prefix) or use the service layer:
238
+ ```typescript
239
+ // Old
240
+ await supabase.rpc('insert_file_reference', { ... });
241
+
242
+ // New - Direct RPC
243
+ await supabase.rpc('data_file_reference_create', { ... });
244
+
245
+ // New - Service layer (recommended)
246
+ import { useFileReference } from '@jmruthers/pace-core';
247
+ const { uploadFile } = useFileReference(supabase);
248
+ await uploadFile({ ... }, file);
249
+ ```
250
+
251
+ ### Legacy RBAC RPCs
252
+
253
+ **Status**: Removed
254
+ **Since**: v0.5.x
255
+ **Reason**: Replaced with standardized `rbac_*` prefix functions
256
+
257
+ **Removed Functions**:
258
+ - `get_rbac_permissions` → Use `rbac_permissions_get`
259
+ - `check_page_permission` → Use `rbac_page_access_check` or `rbac_check_permission_simplified`
260
+ - `has_organisation_role` → Use `rbac_role_validate` or query `rbac_user_organisation_roles`
261
+ - `grant_organisation_role` → Use `rbac_role_grant`
262
+ - `revoke_organisation_role` → Use `rbac_role_revoke`
263
+
264
+ **Migration**:
265
+ ```typescript
266
+ // Old
267
+ const { data } = await supabase.rpc('get_rbac_permissions', { ... });
268
+ const { data: hasPermission } = await supabase.rpc('check_page_permission', { ... });
269
+ const { data: roleId } = await supabase.rpc('grant_organisation_role', { ... });
270
+
271
+ // New
272
+ const { data } = await supabase.rpc('rbac_permissions_get', { ... });
273
+ const { data: hasPermission } = await supabase.rpc('rbac_page_access_check', { ... });
274
+ const { data: roleId } = await supabase.rpc('rbac_role_grant', { ... });
275
+ ```
276
+
277
+ ### Legacy Event RPCs
278
+
279
+ **Status**: Deprecated
280
+ **Since**: v0.5.x
281
+ **Removal**: v0.7.x
282
+
283
+ **Deprecated Functions**:
284
+ - `get_pace_user_events` → Use `data_user_events_get`
285
+
286
+ **Migration**:
287
+ ```typescript
288
+ // Old
289
+ const { data } = await supabase.rpc('get_pace_user_events', {
290
+ user_uuid: userId,
291
+ app_name: appName,
292
+ p_organisation_id: orgId
293
+ });
294
+
295
+ // New
296
+ const { data, error } = await supabase.rpc('data_user_events_get', {
297
+ p_user_id: userId,
298
+ p_app_id: appId, // Use app ID instead of app name
299
+ p_organisation_id: orgId
300
+ });
301
+ ```
302
+
303
+ ### Legacy Data Access RPCs
304
+
305
+ **Status**: Removed
306
+ **Since**: v0.5.x
307
+ **Reason**: Replaced with standardized naming pattern
308
+
309
+ **Removed Functions**:
310
+ - `data_cake_meals_get` → Use `data_cake_meals_list` (provides pagination support)
311
+
312
+ **Migration**:
313
+ ```typescript
314
+ // Old
315
+ const { data } = await supabase.rpc('data_cake_meals_get', {
316
+ p_event_id: eventId,
317
+ p_user_id: userId,
318
+ p_organisation_id: orgId
319
+ });
320
+
321
+ // New
322
+ const { data, error } = await supabase.rpc('data_cake_meals_list', {
323
+ p_event_id: eventId,
324
+ p_user_id: userId,
325
+ p_organisation_id: orgId,
326
+ p_limit: 100, // Pagination support
327
+ p_offset: 0
328
+ });
329
+ ```
330
+
331
+ ## Service Deprecations
332
+
333
+ ### RBACService
334
+
335
+ **Status**: Deprecated
336
+ **Since**: v0.4.x
337
+ **Removal**: v0.6.x
338
+
339
+ **Location**: `packages/core/src/providers/services/RBACService.ts`
340
+
341
+ **Deprecated Service**: Use RBAC Engine instead.
342
+
343
+ **Migration**:
344
+ ```typescript
345
+ // Old
346
+ import { RBACService } from '@jmruthers/pace-core/providers/services';
347
+
348
+ // New
349
+ import { useRBAC } from '@jmruthers/pace-core/rbac';
350
+ const { hasPermission } = useRBAC();
351
+ ```
352
+
353
+ ## Migration Checklist
354
+
355
+ When migrating deprecated APIs:
356
+
357
+ - [ ] Check current package version
358
+ - [ ] Identify all deprecated API usage in codebase
359
+ - [ ] Review migration paths above
360
+ - [ ] Update imports and function calls
361
+ - [ ] Test thoroughly
362
+ - [ ] Remove deprecated code before removal version
363
+
364
+ ## Reporting Issues
365
+
366
+ If you encounter issues migrating from deprecated APIs, please:
367
+
368
+ 1. Check this documentation first
369
+ 2. Review the [Migration Guide](../migration/MIGRATION_GUIDE.md)
370
+ 3. Check [Troubleshooting](../troubleshooting/README.md)
371
+ 4. Open an issue on GitHub with:
372
+ - Package version
373
+ - Deprecated API being used
374
+ - Error messages
375
+ - Migration attempt details
376
+