@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-18T15:00:00+11:00
3
+ version: 0.5.181
4
+ reviewedBy: documentation-standards-audit
5
5
  ---
6
6
 
7
7
  # Troubleshooting Styling Issues
@@ -268,6 +268,201 @@ npm run build
268
268
 
269
269
  ## 🆘 Still Not Working?
270
270
 
271
+ ## 🔍 Tailwind v4 Content Scanning Issues
272
+
273
+ ### The Core Problem
274
+
275
+ Tailwind v4 needs to scan source files to detect utility classes, but published packages only contain compiled JavaScript. This results in:
276
+
277
+ - ❌ Only ~292 CSS rules instead of 987+ needed
278
+ - ❌ Missing component styles
279
+ - ❌ Severely compromised UI
280
+
281
+ ### Solution 1: Use Source Files (Recommended)
282
+
283
+ Pace-core v0.4.15+ includes source files in the published package for Tailwind scanning.
284
+
285
+ #### Updated Vite Configuration
286
+
287
+ ```typescript
288
+ // vite.config.ts
289
+ import { defineConfig } from 'vite'
290
+ import react from '@vitejs/plugin-react'
291
+ import tailwindcss from '@tailwindcss/vite'
292
+
293
+ export default defineConfig({
294
+ plugins: [
295
+ react(),
296
+ tailwindcss({
297
+ content: [
298
+ // Your app's source files
299
+ './src/**/*.{js,ts,jsx,tsx}',
300
+ // Pace-core source files (NEW)
301
+ './node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}'
302
+ ]
303
+ })
304
+ ],
305
+ })
306
+ ```
307
+
308
+ #### Alternative: PostCSS Configuration
309
+
310
+ ```javascript
311
+ // tailwind.config.js
312
+ /** @type {import('tailwindcss').Config} */
313
+ module.exports = {
314
+ content: [
315
+ './src/**/*.{js,ts,jsx,tsx}',
316
+ './node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}'
317
+ ],
318
+ theme: {
319
+ extend: {},
320
+ },
321
+ plugins: [],
322
+ }
323
+ ```
324
+
325
+ ### Solution 2: Pre-built CSS (Fallback)
326
+
327
+ If source file scanning doesn't work, use the pre-built CSS approach:
328
+
329
+ #### 1. Import Pre-built CSS
330
+
331
+ ```tsx
332
+ // src/main.tsx
333
+ import '@jmruthers/pace-core/src/styles/core.css';
334
+ // Don't import your own Tailwind CSS
335
+ ```
336
+
337
+ #### 2. Disable Tailwind in Your App
338
+
339
+ ```typescript
340
+ // vite.config.ts
341
+ import { defineConfig } from 'vite'
342
+ import react from '@vitejs/plugin-react'
343
+ // Don't include tailwindcss plugin
344
+
345
+ export default defineConfig({
346
+ plugins: [react()],
347
+ })
348
+ ```
349
+
350
+ ### Solution 3: Hybrid Approach
351
+
352
+ Use both approaches for maximum compatibility:
353
+
354
+ #### 1. Vite Configuration
355
+
356
+ ```typescript
357
+ // vite.config.ts
358
+ import { defineConfig } from 'vite'
359
+ import react from '@vitejs/plugin-react'
360
+ import tailwindcss from '@tailwindcss/vite'
361
+
362
+ export default defineConfig({
363
+ plugins: [
364
+ react(),
365
+ tailwindcss({
366
+ content: [
367
+ './src/**/*.{js,ts,jsx,tsx}',
368
+ './node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}',
369
+ // Fallback: also scan dist files
370
+ './node_modules/@jmruthers/pace-core/dist/**/*.{js,ts,jsx,tsx}'
371
+ ]
372
+ })
373
+ ],
374
+ })
375
+ ```
376
+
377
+ #### 2. CSS Import
378
+
379
+ ```tsx
380
+ // src/main.tsx
381
+ import '@jmruthers/pace-core/src/styles/core.css';
382
+ ```
383
+
384
+ ### Verification Steps
385
+
386
+ #### 1. Check CSS Output Size
387
+
388
+ After building, your CSS should be:
389
+ - **Expected**: 50-100+ kB (with all utility classes)
390
+ - **Problem**: 20-30 kB (missing classes)
391
+
392
+ #### 2. Verify Component Styling
393
+
394
+ Test with a simple component:
395
+
396
+ ```tsx
397
+ import { Button, Card } from '@jmruthers/pace-core';
398
+
399
+ function TestComponent() {
400
+ return (
401
+ <Card className="p-4">
402
+ <Button variant="primary" className="bg-main-600 text-main-50">
403
+ Test Button
404
+ </Button>
405
+ </Card>
406
+ );
407
+ }
408
+ ```
409
+
410
+ **Expected Result**: Properly styled components with PACE Core colors and spacing.
411
+
412
+ #### 3. Check Browser Dev Tools
413
+
414
+ Inspect elements to verify:
415
+ - ✅ `bg-main-600` class is applied
416
+ - ✅ `text-main-50` class is applied
417
+ - ✅ Component has proper padding and styling
418
+
419
+ ### Troubleshooting Content Scanning
420
+
421
+ #### Issue: Source files not found
422
+
423
+ **Error**: `Cannot resolve './node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}'`
424
+
425
+ **Solution**: Ensure you're using pace-core v0.4.15+ which includes source files.
426
+
427
+ #### Issue: Still only 292 rules
428
+
429
+ **Possible Causes**:
430
+ 1. Using old package version
431
+ 2. Incorrect content paths
432
+ 3. Cached build files
433
+
434
+ **Solutions**:
435
+ 1. Update to latest pace-core: `npm install @jmruthers/pace-core@latest`
436
+ 2. Clear node_modules and reinstall: `rm -rf node_modules package-lock.json && npm install`
437
+ 3. Clear build cache: `rm -rf dist .vite`
438
+
439
+ #### Issue: Build errors with source files
440
+
441
+ **Error**: TypeScript errors when scanning source files
442
+
443
+ **Solution**: Add TypeScript configuration for node_modules:
444
+
445
+ ```json
446
+ // tsconfig.json
447
+ {
448
+ "compilerOptions": {
449
+ "skipLibCheck": true
450
+ },
451
+ "include": [
452
+ "src/**/*",
453
+ "node_modules/@jmruthers/pace-core/src/**/*"
454
+ ]
455
+ }
456
+ ```
457
+
458
+ ### Expected Results
459
+
460
+ With proper configuration, you should see:
461
+ - ✅ 987+ CSS rules generated
462
+ - ✅ All component styles working
463
+ - ✅ Full UI functionality restored
464
+ - ✅ Proper color palette applied
465
+
271
466
  If you've tried everything above and still have issues:
272
467
 
273
468
  1. **Create a minimal test case** showing the problem
@@ -277,4 +472,51 @@ If you've tried everything above and still have issues:
277
472
 
278
473
  ---
279
474
 
280
- **Last Updated:** 2025-01-XX | **Version:** v0.5.65+
475
+ **Last Updated:** 2025-01-28 | **Version:** v0.5.181
476
+
477
+ ## ♿ Accessibility
478
+
479
+ Troubleshooting styling issues should consider accessibility:
480
+
481
+ - **WCAG 2.1 AA compliance** - Ensure fixes maintain accessibility standards
482
+ - **Screen Reader Support** - Verify styling fixes don't break screen reader functionality
483
+ - **Keyboard Navigation** - Ensure styling changes don't affect keyboard accessibility
484
+ - **Color Contrast** - Verify color fixes meet WCAG contrast requirements
485
+ - **Focus Indicators** - Ensure focus states remain visible after styling fixes
486
+
487
+ ### Accessibility Best Practices
488
+
489
+ 1. **Test with screen readers** - Verify styling fixes work with assistive technologies
490
+ 2. **Check color contrast** - Use contrast checkers to verify color fixes
491
+ 3. **Maintain focus visibility** - Ensure focus indicators remain visible
492
+ 4. **Test keyboard navigation** - Verify all interactive elements remain keyboard accessible
493
+ 5. **Preserve semantic structure** - Don't break semantic HTML with styling fixes
494
+
495
+ ## ⚠️ Edge Cases
496
+
497
+ ### Styling Fixes Not Applying
498
+
499
+ When styling fixes don't apply:
500
+ - Clear browser cache and hard refresh
501
+ - Verify CSS import order is correct
502
+ - Check for CSS specificity conflicts
503
+ - Ensure Tailwind is scanning all necessary files
504
+ - Restart dev server after configuration changes
505
+
506
+ ### Build-Time vs Runtime Styling Issues
507
+
508
+ When styles work in development but not production:
509
+ - Verify build configuration matches development
510
+ - Check that all CSS files are included in build
511
+ - Ensure Tailwind is configured for production builds
512
+ - Verify content scanning paths are correct
513
+ - Check for CSS minification issues
514
+
515
+ ### Multiple Styling Conflicts
516
+
517
+ When multiple styling issues occur simultaneously:
518
+ - Address CSS import order first
519
+ - Fix Tailwind configuration before component-specific issues
520
+ - Resolve color palette issues before utility class problems
521
+ - Test each fix independently
522
+ - Use browser DevTools to identify conflicting styles
@@ -10,7 +10,7 @@
10
10
  */
11
11
 
12
12
  import React from 'react';
13
- import { DataTable, sum, average, count, type DataTableColumn, type DataRecord } from '../index';
13
+ import { DataTable, sum, average, count, type DataTableColumn, type DataRecord } from '@jmruthers/pace-core';
14
14
 
15
15
  // ============================================================================
16
16
  // DATA INTERFACE
@@ -9,10 +9,13 @@
9
9
  */
10
10
 
11
11
  import React from 'react';
12
- import { DataTable } from '../DataTable';
13
- import type { DataTableColumn, DataTableAction } from '../types';
14
- import { Button } from '../../Button';
15
- import { createLogger } from '../../../utils/logger';
12
+ import {
13
+ DataTable,
14
+ type DataTableColumn,
15
+ type DataTableAction,
16
+ type HierarchicalDataRow,
17
+ Button
18
+ } from '@jmruthers/pace-core';
16
19
  import {
17
20
  PlusIcon,
18
21
  PencilIcon,
@@ -25,7 +28,6 @@ import {
25
28
  InfoIcon,
26
29
  StarIcon
27
30
  } from 'lucide-react';
28
- import type { HierarchicalDataRow } from '../types';
29
31
 
30
32
  // ============================================================================
31
33
  // DATA TYPES
@@ -352,7 +354,6 @@ const columns: DataTableColumn<Dish>[] = [
352
354
  // ============================================================================
353
355
 
354
356
  export function HierarchicalActionsExample() {
355
- const logger = createLogger('HierarchicalActionsExample');
356
357
  return (
357
358
  <div className="space-y-6">
358
359
  <div>
@@ -17,10 +17,12 @@
17
17
  */
18
18
 
19
19
  import React from 'react';
20
- import { DataTable } from '../DataTable';
21
- import type { DataTableColumn } from '../types';
22
- import { ExpandButton, ExpandButtonMinimal } from '../components/ExpandButton';
23
- import type { HierarchicalDataRow, HierarchicalConfig } from '../types';
20
+ import {
21
+ DataTable,
22
+ type DataTableColumn,
23
+ type HierarchicalDataRow,
24
+ type HierarchicalConfig
25
+ } from '@jmruthers/pace-core';
24
26
 
25
27
  // ============================================================================
26
28
  // DATA TYPES
@@ -313,7 +315,7 @@ const hierarchicalConfig: HierarchicalConfig = {
313
315
  onExpandedChange: (expandedIds) => {
314
316
  // Expanded rows changed
315
317
  },
316
- expandButton: ExpandButton, // Use default expand button
318
+ // expandButton is optional - DataTable uses default if not provided
317
319
  indentSize: 24, // 24px indentation for child rows
318
320
  parentRowClassName: 'bg-main-50 hover:bg-main-100 font-medium border-l-4 border-l-main-500',
319
321
  childRowClassName: 'bg-sec-25 hover:bg-sec-50 text-sec-700',
@@ -378,7 +380,7 @@ export function HierarchicalExample() {
378
380
  export function HierarchicalExampleMinimal() {
379
381
  const minimalConfig: HierarchicalConfig = {
380
382
  ...hierarchicalConfig,
381
- expandButton: ExpandButtonMinimal,
383
+ // expandButton is optional - DataTable uses default if not provided
382
384
  parentRowClassName: 'bg-acc-50 hover:bg-acc-100 font-semibold',
383
385
  childRowClassName: 'bg-acc-25 hover:bg-acc-50',
384
386
  };
@@ -7,14 +7,14 @@
7
7
 
8
8
  import React, { useState, useMemo } from 'react';
9
9
  import {
10
+ DataTable,
10
11
  type DataTableColumn,
11
12
  type ServerSideConfig,
12
13
  type PerformanceConfig,
13
14
  type ServerSideParams,
14
15
  type ServerSideResponse,
15
16
  type DataTableFeatureConfig
16
- } from '../types';
17
- import { DataTable } from '../DataTable';
17
+ } from '@jmruthers/pace-core';
18
18
 
19
19
  // Sample data interface
20
20
  interface User {
@@ -11,3 +11,4 @@ export { HierarchicalExample } from './HierarchicalExample';
11
11
  export { HierarchicalActionsExample } from './HierarchicalActionsExample';
12
12
  export { InitialPageSizeExample } from './InitialPageSizeExample';
13
13
  export { PerformanceExample } from './PerformanceExample';
14
+ export { GroupingAggregationExample, CustomAggregationExample } from './GroupingAggregationExample';
@@ -17,9 +17,9 @@ import {
17
17
  DialogTitle,
18
18
  DialogDescription,
19
19
  DialogBody,
20
- DialogFooter
21
- } from '../Dialog';
22
- import { Button } from '../../Button';
20
+ DialogFooter,
21
+ Button
22
+ } from '@jmruthers/pace-core';
23
23
 
24
24
  export function HtmlDialogExample() {
25
25
  const importInstructionsHtml = `
@@ -23,7 +23,7 @@ import {
23
23
  DialogDescription,
24
24
  Button,
25
25
  Card,
26
- } from '../../../index';
26
+ } from '@jmruthers/pace-core';
27
27
 
28
28
  /**
29
29
  * Example demonstrating Dialog with scrolling, height, and width constraints
@@ -18,7 +18,7 @@ import {
18
18
  Button,
19
19
  Input,
20
20
  Label,
21
- } from '../../../index';
21
+ } from '@jmruthers/pace-core';
22
22
 
23
23
  /**
24
24
  * Example demonstrating the enhanced Dialog component with all advanced features
@@ -10,6 +10,3 @@
10
10
  export { HtmlDialogExample } from './HtmlDialogExample';
11
11
  export { ScrollableDialogExample } from './ScrollableDialogExample';
12
12
  export { SmartDialogExample } from './SmartDialogExample';
13
- export { SimpleHtmlTest } from './SimpleHtmlTest';
14
- export { BasicHtmlTest } from './BasicHtmlTest';
15
- export { DebugHtmlExample } from './DebugHtmlExample';
@@ -19,11 +19,12 @@ import {
19
19
  PublicPageLayout,
20
20
  PublicPageHeader,
21
21
  PublicPageFooter,
22
- EventLogo,
22
+ FileDisplay,
23
+ FileCategory,
23
24
  usePublicEvent,
24
25
  usePublicRouteParams,
25
- PublicLoadingSpinner
26
- } from '../../../src';
26
+ LoadingSpinner
27
+ } from '@jmruthers/pace-core';
27
28
 
28
29
  /**
29
30
  * MAIN APPLICATION - This is your main app with authentication
@@ -97,9 +98,12 @@ function PublicRecipeGridReportPage() {
97
98
  // Step 3: Handle loading state
98
99
  if (isLoading) {
99
100
  return (
100
- <PublicLoadingSpinner
101
- message="Loading recipe grid report..."
102
- />
101
+ <div className="min-h-screen bg-background flex items-center justify-center">
102
+ <div className="max-w-md mx-auto text-center px-4">
103
+ <LoadingSpinner size="lg" className="mx-auto mb-4" />
104
+ <p className="text-sec-600">Loading recipe grid report...</p>
105
+ </div>
106
+ </div>
103
107
  );
104
108
  }
105
109
 
@@ -219,12 +223,23 @@ function PublicRecipeGridReportPage() {
219
223
  {/* Event Logo */}
220
224
  <div className="flex justify-center lg:justify-start">
221
225
  <div className="text-center">
222
- <EventLogo
223
- eventId={event.event_id}
224
- eventName={event.event_name}
225
- organisationId={event.organisation_id}
226
- size="2xl"
226
+ <FileDisplay
227
+ table_name="event"
228
+ record_id={event.event_id}
229
+ organisation_id={event.organisation_id}
230
+ category={FileCategory.EVENT_LOGOS}
231
+ displayOnly={true}
232
+ showFallback={true}
233
+ fallbackSize="2xl"
227
234
  className="rounded-lg shadow-lg"
235
+ generateFallbackText={() => {
236
+ if (!event.event_name) return 'EV';
237
+ return event.event_name
238
+ .split(/[\s\-_]+/)
239
+ .map(word => word.charAt(0).toUpperCase())
240
+ .join('')
241
+ .substring(0, 3);
242
+ }}
228
243
  />
229
244
  <p className="mt-4 text-sm text-sec-600">Event Logo</p>
230
245
  </div>
@@ -244,7 +259,16 @@ function PublicEventPage() {
244
259
  const { eventCode } = usePublicRouteParams({ fetchEventData: false });
245
260
  const { event, isLoading, error, refetch } = usePublicEvent(eventCode || '');
246
261
 
247
- if (isLoading) return <PublicLoadingSpinner message="Loading event..." />;
262
+ if (isLoading) {
263
+ return (
264
+ <div className="min-h-screen bg-background flex items-center justify-center">
265
+ <div className="max-w-md mx-auto text-center px-4">
266
+ <LoadingSpinner size="lg" className="mx-auto mb-4" />
267
+ <p className="text-sec-600">Loading event...</p>
268
+ </div>
269
+ </div>
270
+ );
271
+ }
248
272
  if (error) return <div>Error: {error.message}</div>;
249
273
  if (!event) return <div>Event not found</div>;
250
274
 
@@ -259,12 +283,23 @@ function PublicEventPage() {
259
283
 
260
284
  <main className="max-w-4xl mx-auto px-4 py-6">
261
285
  <div className="text-center mb-6">
262
- <EventLogo
263
- eventId={event.event_id}
264
- eventName={event.event_name}
265
- organisationId={event.organisation_id}
266
- size="xl"
286
+ <FileDisplay
287
+ table_name="event"
288
+ record_id={event.event_id}
289
+ organisation_id={event.organisation_id}
290
+ category={FileCategory.EVENT_LOGOS}
291
+ displayOnly={true}
292
+ showFallback={true}
293
+ fallbackSize="xl"
267
294
  className="mx-auto mb-4"
295
+ generateFallbackText={() => {
296
+ if (!event.event_name) return 'EV';
297
+ return event.event_name
298
+ .split(/[\s\-_]+/)
299
+ .map(word => word.charAt(0).toUpperCase())
300
+ .join('')
301
+ .substring(0, 3);
302
+ }}
268
303
  />
269
304
  <h1 className="text-2xl font-bold text-sec-900">{event.event_name}</h1>
270
305
  {event.event_date && (
@@ -34,12 +34,12 @@ import {
34
34
  PublicPageLayout,
35
35
  PublicPageHeader,
36
36
  PublicPageFooter,
37
- EventLogo,
37
+ FileDisplay,
38
+ FileCategory,
38
39
  usePublicEvent,
39
40
  usePublicRouteParams,
40
- PublicLoadingSpinner,
41
- PublicErrorBoundary
42
- } from '../../../src';
41
+ LoadingSpinner
42
+ } from '@jmruthers/pace-core';
43
43
 
44
44
  /**
45
45
  * Complete public event page example
@@ -56,9 +56,12 @@ export function PublicEventPage() {
56
56
  // Handle loading state
57
57
  if (eventLoading) {
58
58
  return (
59
- <PublicLoadingSpinner
60
- message="Loading event details..."
61
- />
59
+ <div className="min-h-screen bg-background flex items-center justify-center">
60
+ <div className="max-w-md mx-auto text-center px-4">
61
+ <LoadingSpinner size="lg" className="mx-auto mb-4" />
62
+ <p className="text-sec-600">Loading event details...</p>
63
+ </div>
64
+ </div>
62
65
  );
63
66
  }
64
67
 
@@ -114,8 +117,7 @@ export function PublicEventPage() {
114
117
  }
115
118
 
116
119
  return (
117
- <PublicErrorBoundary>
118
- <PublicPageLayout eventCode={eventCode || ''} event={event}>
120
+ <PublicPageLayout eventCode={eventCode || ''} event={event}>
119
121
  <PublicPageHeader
120
122
  event={event}
121
123
  eventCode={eventCode || ''}
@@ -170,12 +172,23 @@ export function PublicEventPage() {
170
172
  {/* Event Logo */}
171
173
  <div className="flex justify-center lg:justify-start">
172
174
  <div className="text-center">
173
- <EventLogo
174
- eventId={event.event_id}
175
- eventName={event.event_name}
176
- organisationId={event.organisation_id}
177
- size="2xl"
175
+ <FileDisplay
176
+ table_name="event"
177
+ record_id={event.event_id}
178
+ organisation_id={event.organisation_id}
179
+ category={FileCategory.EVENT_LOGOS}
180
+ displayOnly={true}
181
+ showFallback={true}
182
+ fallbackSize="2xl"
178
183
  className="rounded-lg shadow-lg"
184
+ generateFallbackText={() => {
185
+ if (!event.event_name) return 'EV';
186
+ return event.event_name
187
+ .split(/[\s\-_]+/)
188
+ .map(word => word.charAt(0).toUpperCase())
189
+ .join('')
190
+ .substring(0, 3);
191
+ }}
179
192
  />
180
193
  <p className="mt-4 text-sm text-sec-600">Event Logo</p>
181
194
  </div>
@@ -205,7 +218,6 @@ export function PublicEventPage() {
205
218
 
206
219
  <PublicPageFooter event={event} />
207
220
  </PublicPageLayout>
208
- </PublicErrorBoundary>
209
221
  );
210
222
  }
211
223
 
@@ -216,28 +228,47 @@ export function PublicEventPageCompact() {
216
228
  const { eventCode } = usePublicRouteParams();
217
229
  const { event, isLoading, error } = usePublicEvent(eventCode || '');
218
230
 
219
- if (isLoading) return <PublicLoadingSpinner message="Loading..." />;
231
+ if (isLoading) {
232
+ return (
233
+ <div className="min-h-screen bg-background flex items-center justify-center">
234
+ <div className="max-w-md mx-auto text-center px-4">
235
+ <LoadingSpinner size="lg" className="mx-auto mb-4" />
236
+ <p className="text-sec-600">Loading...</p>
237
+ </div>
238
+ </div>
239
+ );
240
+ }
220
241
  if (error || !event) return <div>Event not found</div>;
221
242
 
222
243
  return (
223
- <PublicErrorBoundary>
224
- <PublicPageLayout eventCode={eventCode || ''} event={event}>
225
- <PublicPageHeader
226
- event={event}
227
- eventCode={eventCode || ''}
228
- showEventLogo={true}
229
- showAppLogo={true}
230
- />
231
-
232
- <main className="max-w-4xl mx-auto px-4 py-6">
233
- <div className="text-center mb-6">
234
- <EventLogo
235
- eventId={event.event_id}
236
- eventName={event.event_name}
237
- organisationId={event.organisation_id}
238
- size="xl"
239
- className="mx-auto mb-4"
240
- />
244
+ <PublicPageLayout eventCode={eventCode || ''} event={event}>
245
+ <PublicPageHeader
246
+ event={event}
247
+ eventCode={eventCode || ''}
248
+ showEventLogo={true}
249
+ showAppLogo={true}
250
+ />
251
+
252
+ <main className="max-w-4xl mx-auto px-4 py-6">
253
+ <div className="text-center mb-6">
254
+ <FileDisplay
255
+ table_name="event"
256
+ record_id={event.event_id}
257
+ organisation_id={event.organisation_id}
258
+ category={FileCategory.EVENT_LOGOS}
259
+ displayOnly={true}
260
+ showFallback={true}
261
+ fallbackSize="xl"
262
+ className="mx-auto mb-4"
263
+ generateFallbackText={() => {
264
+ if (!event.event_name) return 'EV';
265
+ return event.event_name
266
+ .split(/[\s\-_]+/)
267
+ .map(word => word.charAt(0).toUpperCase())
268
+ .join('')
269
+ .substring(0, 3);
270
+ }}
271
+ />
241
272
  <h1 className="text-2xl font-bold text-sec-900">{event.event_name}</h1>
242
273
  {event.event_date && (
243
274
  <p className="text-sec-600 mt-2">
@@ -267,7 +298,6 @@ export function PublicEventPageCompact() {
267
298
 
268
299
  <PublicPageFooter event={event} />
269
300
  </PublicPageLayout>
270
- </PublicErrorBoundary>
271
301
  );
272
302
  }
273
303