@jmruthers/pace-core 0.5.181 → 0.5.183

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 (756) 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/usePublicEventLogo.test.ts +147 -0
  470. package/src/hooks/public/usePublicRouteParams.ts +1 -1
  471. package/src/hooks/services/useAuth.ts +2 -4
  472. package/src/hooks/services/useCurrentEvent.ts +1 -1
  473. package/src/hooks/useAppConfig.ts +1 -1
  474. package/src/hooks/useDataTablePerformance.ts +2 -2
  475. package/src/hooks/useEventTheme.ts +1 -1
  476. package/src/hooks/useEvents.ts +51 -10
  477. package/src/hooks/useOrganisationPermissions.test.ts +3 -3
  478. package/src/hooks/useOrganisationPermissions.ts +1 -1
  479. package/src/hooks/useOrganisationSecurity.ts +2 -2
  480. package/src/hooks/usePermissionCache.test.ts +9 -9
  481. package/src/hooks/usePermissionCache.ts +2 -2
  482. package/src/index.ts +19 -12
  483. package/src/providers/OrganisationProvider.tsx +73 -9
  484. package/src/providers/UnifiedAuthProvider.smoke.test.tsx +113 -13
  485. package/src/providers/__tests__/AuthProvider.test.tsx +2 -1
  486. package/src/providers/__tests__/EventProvider.test.tsx +24 -15
  487. package/src/providers/__tests__/OrganisationProvider.test.tsx +87 -36
  488. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +80 -24
  489. package/src/providers/index.ts +0 -3
  490. package/src/providers/services/AuthServiceProvider.tsx +2 -17
  491. package/src/providers/services/EventServiceProvider.tsx +11 -16
  492. package/src/providers/services/InactivityServiceProvider.tsx +9 -12
  493. package/src/providers/services/OrganisationServiceProvider.tsx +9 -12
  494. package/src/providers/services/UnifiedAuthProvider.tsx +85 -18
  495. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +11 -4
  496. package/src/rbac/__tests__/scenarios.user-role.test.tsx +105 -21
  497. package/src/rbac/adapters.tsx +1 -1
  498. package/src/rbac/api.ts +20 -4
  499. package/src/rbac/audit-enhanced.ts +47 -2
  500. package/src/rbac/audit.ts +47 -2
  501. package/src/rbac/components/NavigationGuard.tsx +1 -1
  502. package/src/rbac/components/NavigationProvider.test.tsx +7 -6
  503. package/src/rbac/components/NavigationProvider.tsx +1 -1
  504. package/src/rbac/components/PagePermissionGuard.tsx +1 -1
  505. package/src/rbac/components/PagePermissionProvider.test.tsx +7 -6
  506. package/src/rbac/components/PagePermissionProvider.tsx +1 -1
  507. package/src/rbac/components/PermissionEnforcer.tsx +1 -1
  508. package/src/rbac/components/RoleBasedRouter.tsx +1 -1
  509. package/src/rbac/components/SecureDataProvider.test.tsx +7 -6
  510. package/src/rbac/components/SecureDataProvider.tsx +1 -1
  511. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +6 -6
  512. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +11 -10
  513. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +10 -11
  514. package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +19 -15
  515. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +13 -12
  516. package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +19 -15
  517. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +18 -18
  518. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +11 -10
  519. package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +8 -7
  520. package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +10 -11
  521. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +48 -19
  522. package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +476 -0
  523. package/src/rbac/hooks/index.ts +3 -0
  524. package/src/rbac/hooks/usePermissions.ts +31 -85
  525. package/src/rbac/hooks/useRBAC.test.ts +13 -1
  526. package/src/rbac/hooks/useRBAC.ts +13 -67
  527. package/src/rbac/hooks/useResolvedScope.ts +11 -0
  528. package/src/rbac/hooks/useSecureSupabase.ts +308 -0
  529. package/src/rbac/index.ts +3 -0
  530. package/src/rbac/secureClient.ts +53 -6
  531. package/src/rbac/security.ts +37 -1
  532. package/src/{types/rbac-functions.ts → rbac/types/functions.ts} +30 -30
  533. package/src/rbac/types.ts +3 -2
  534. package/src/services/AuthService.ts +33 -25
  535. package/src/services/EventService.ts +56 -44
  536. package/src/services/InactivityService.ts +33 -53
  537. package/src/services/OrganisationService.ts +36 -40
  538. package/src/services/__tests__/AuthService.restoreSession.test.ts +6 -2
  539. package/src/services/__tests__/EventService.test.ts +67 -33
  540. package/src/services/interfaces/IEventService.ts +1 -1
  541. package/src/styles/core.css +2 -2
  542. package/src/styles/index.test.ts +21 -0
  543. package/src/styles/index.ts +1 -5
  544. package/src/types/__tests__/guards.test.ts +1 -1
  545. package/src/types/__tests__/organisation.roles.test.ts +55 -0
  546. package/src/types/__tests__/type-validation.test.ts +0 -1
  547. package/src/types/auth.ts +42 -2
  548. package/src/types/core.ts +251 -0
  549. package/src/types/database.ts +11 -496
  550. package/src/types/event.ts +102 -0
  551. package/src/types/file-reference.ts +6 -4
  552. package/src/types/guards.ts +2 -1
  553. package/src/types/index.ts +48 -14
  554. package/src/types/lodash.debounce.d.ts +15 -0
  555. package/src/types/organisation.ts +14 -10
  556. package/src/types/supabase.ts +15 -17
  557. package/src/utils/__tests__/secureErrors.unit.test.ts +1 -1
  558. package/src/utils/__tests__/validationUtils.unit.test.ts +0 -29
  559. package/src/utils/app/appNameResolver.ts +1 -1
  560. package/src/utils/audit/audit.test.ts +65 -0
  561. package/src/utils/device/deviceFingerprint.test.ts +171 -0
  562. package/src/utils/dynamic/dynamicUtils.ts +3 -2
  563. package/src/utils/file-reference/index.ts +25 -6
  564. package/src/utils/security/secureErrors.ts +1 -1
  565. package/src/utils/validation/__tests__/validationUtils.test.ts +72 -0
  566. package/src/utils/validation/index.ts +6 -12
  567. package/src/utils/validation/validationUtils.ts +0 -13
  568. package/dist/UnifiedAuthProvider-B37ATQHE.js +0 -16
  569. package/dist/auth-DReDSLq9.d.ts +0 -16
  570. package/dist/chunk-3JI76CYK.js +0 -2444
  571. package/dist/chunk-3JI76CYK.js.map +0 -1
  572. package/dist/chunk-56XJ3TU6.js +0 -11
  573. package/dist/chunk-56XJ3TU6.js.map +0 -1
  574. package/dist/chunk-5MT24GKJ.js.map +0 -1
  575. package/dist/chunk-7QCC6MCP.js +0 -288
  576. package/dist/chunk-BESYRHQM.js.map +0 -1
  577. package/dist/chunk-BJPBT3CU.js +0 -21
  578. package/dist/chunk-BJPBT3CU.js.map +0 -1
  579. package/dist/chunk-BVYWGZVV.js.map +0 -1
  580. package/dist/chunk-CX5M4ZAG.js.map +0 -1
  581. package/dist/chunk-D7LCGMVS.js.map +0 -1
  582. package/dist/chunk-EGI6MUL6.js +0 -27
  583. package/dist/chunk-EGI6MUL6.js.map +0 -1
  584. package/dist/chunk-ERISIBYU.js.map +0 -1
  585. package/dist/chunk-HRO5HWN2.js.map +0 -1
  586. package/dist/chunk-HZLDFOE4.js.map +0 -1
  587. package/dist/chunk-JISYG63F.js +0 -70
  588. package/dist/chunk-JISYG63F.js.map +0 -1
  589. package/dist/chunk-LIMSTKYD.js +0 -61
  590. package/dist/chunk-LIMSTKYD.js.map +0 -1
  591. package/dist/chunk-OWAG3GSU.js.map +0 -1
  592. package/dist/chunk-PPMP5J6T.js.map +0 -1
  593. package/dist/chunk-Q5QRDWKI.js.map +0 -1
  594. package/dist/chunk-S5OFRT4M.js.map +0 -1
  595. package/dist/chunk-SBVILCCA.js.map +0 -1
  596. package/dist/chunk-TUMEWN34.js +0 -15
  597. package/dist/chunk-TUMEWN34.js.map +0 -1
  598. package/dist/chunk-XDNLUEXI.js +0 -138
  599. package/dist/chunk-XJ2HZOBU.js.map +0 -1
  600. package/dist/chunk-ZYTYSTO5.js.map +0 -1
  601. package/dist/chunk-ZZ2SS7NI.js +0 -237
  602. package/dist/chunk-ZZ2SS7NI.js.map +0 -1
  603. package/dist/database-C6jy7EOu.d.ts +0 -500
  604. package/dist/organisation-D6qRDtbF.d.ts +0 -93
  605. package/dist/schema-DTDZQe2u.d.ts +0 -28
  606. package/dist/unified-DQ4VcT7H.d.ts +0 -198
  607. package/dist/useInactivityTracker-TO6ZOF35.js +0 -11
  608. package/dist/validation.d.ts +0 -47
  609. package/dist/validation.js +0 -24
  610. package/dist/validation.js.map +0 -1
  611. package/docs/DOCUMENTATION_AUDIT.md +0 -172
  612. package/docs/DOCUMENTATION_STANDARD.md +0 -137
  613. package/docs/api/classes/PublicErrorBoundary.md +0 -132
  614. package/docs/api/interfaces/EventLogoProps.md +0 -152
  615. package/docs/api/interfaces/PublicErrorBoundaryProps.md +0 -94
  616. package/docs/api/interfaces/PublicErrorBoundaryState.md +0 -68
  617. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +0 -86
  618. package/docs/architecture/rpc-function-standards.md +0 -1106
  619. package/docs/getting-started/consuming-app-vite-config.md +0 -239
  620. package/docs/implementation-guides/event-theming-summary.md +0 -226
  621. package/docs/implementation-guides/public-pages-advanced.md +0 -1038
  622. package/docs/migration/v0.4.15-tailwind-scanning.md +0 -278
  623. package/docs/migration/v0.4.16-css-first-approach.md +0 -312
  624. package/docs/migration/v0.4.17-source-path-fix.md +0 -235
  625. package/docs/rbac/RBAC_EVENT_CONTEXT_LOADING.md +0 -222
  626. package/docs/rbac/RBAC_LOGIN_SAFETY_FIX.md +0 -95
  627. package/docs/rbac/RBAC_V0.5.147_FIX.md +0 -117
  628. package/docs/rbac/README-rbac-rls-integration.md +0 -374
  629. package/docs/styles/usage.md +0 -227
  630. package/docs/testing/visual-testing.md +0 -120
  631. package/docs/troubleshooting/DEBUG_NETWORK_ERROR.md +0 -152
  632. package/docs/troubleshooting/FIX_SUPABASE_CORS.md +0 -184
  633. package/docs/troubleshooting/cake-page-permission-guard-issue-summary.md +0 -193
  634. package/docs/troubleshooting/database-view-compatibility.md +0 -125
  635. package/docs/troubleshooting/react-hooks-issue-analysis.md +0 -172
  636. package/docs/troubleshooting/tailwind-content-scanning.md +0 -219
  637. package/examples/RBAC/EventBasedApp.tsx +0 -239
  638. package/examples/RBAC/PermissionExample.tsx +0 -151
  639. package/examples/STRUCTURE.md +0 -125
  640. package/examples/components 2/DataTable/HierarchicalExample.tsx +0 -475
  641. package/examples/components 2/Dialog/BasicHtmlTest.tsx +0 -55
  642. package/examples/components 2/Dialog/DebugHtmlExample.tsx +0 -68
  643. package/examples/components 2/Dialog/HtmlDialogExample.tsx +0 -202
  644. package/examples/components 2/Dialog/SimpleHtmlTest.tsx +0 -61
  645. package/examples/components 2/Dialog/SmartDialogExample.tsx +0 -322
  646. package/examples/components 2/index.ts +0 -11
  647. package/examples/features/index.ts +0 -12
  648. package/examples/features/rbac/CompleteRBACExample.tsx +0 -324
  649. package/examples/features/rbac/index.ts +0 -13
  650. package/examples/public-pages/CorrectPublicPageImplementation.tsx +0 -301
  651. package/examples/public-pages/PublicEventPage.tsx +0 -274
  652. package/examples/public-pages/PublicPageApp.tsx +0 -308
  653. package/examples/public-pages/PublicPageUsageExample.tsx +0 -216
  654. package/examples/public-pages/index.ts +0 -14
  655. package/src/__tests__/TEST_STANDARD.md +0 -1008
  656. package/src/components/Checkbox/__mocks__/Checkbox.tsx +0 -2
  657. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +0 -421
  658. package/src/components/DataTable/examples/InitialPageSizeExample.tsx +0 -177
  659. package/src/components/DataTable/examples/PerformanceExample.tsx +0 -506
  660. package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +0 -316
  661. package/src/components/DataTable/examples/__tests__/HierarchicalExample.test.tsx +0 -45
  662. package/src/components/DataTable/examples/__tests__/InitialPageSizeExample.test.tsx +0 -211
  663. package/src/components/DataTable/examples/__tests__/PerformanceExample.test.tsx +0 -126
  664. package/src/components/Dialog/README.md +0 -804
  665. package/src/components/Dialog/examples/BasicHtmlTest.tsx +0 -55
  666. package/src/components/Dialog/examples/DebugHtmlExample.tsx +0 -68
  667. package/src/components/Dialog/examples/ScrollableDialogExample.tsx +0 -290
  668. package/src/components/Dialog/examples/SimpleHtmlTest.tsx +0 -61
  669. package/src/components/Dialog/examples/__tests__/HtmlDialogExample.test.tsx +0 -71
  670. package/src/components/Dialog/examples/__tests__/SimpleHtmlTest.test.tsx +0 -122
  671. package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -147
  672. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
  673. package/src/components/Dialog/utils/safeHtml.ts +0 -185
  674. package/src/components/EventSelector/types.ts +0 -79
  675. package/src/components/Form/FormErrorSummary.tsx +0 -113
  676. package/src/components/Form/FormField.tsx +0 -249
  677. package/src/components/Form/FormFieldset.tsx +0 -127
  678. package/src/components/Form/FormLiveRegion.tsx +0 -198
  679. package/src/components/Input/__mocks__/Input.tsx +0 -2
  680. package/src/components/NavigationMenu/types.ts +0 -85
  681. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -326
  682. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -1078
  683. package/src/components/PasswordReset/PasswordResetForm.test.tsx +0 -597
  684. package/src/components/PasswordReset/PasswordResetForm.tsx +0 -201
  685. package/src/components/PasswordReset/index.ts +0 -2
  686. package/src/components/ProtectedRoute/README.md +0 -164
  687. package/src/components/PublicLayout/EventLogo.tsx +0 -175
  688. package/src/components/PublicLayout/PublicErrorBoundary.tsx +0 -282
  689. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +0 -216
  690. package/src/components/PublicLayout/PublicPageContextChecker.tsx +0 -131
  691. package/src/components/PublicLayout/PublicPageDebugger.tsx +0 -104
  692. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +0 -162
  693. package/src/components/PublicLayout/PublicPageFooter.tsx +0 -124
  694. package/src/components/PublicLayout/PublicPageHeader.tsx +0 -209
  695. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -449
  696. package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -393
  697. package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +0 -192
  698. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -351
  699. package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -402
  700. package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -460
  701. package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -313
  702. package/src/components/Select/hooks.ts +0 -289
  703. package/src/hooks/useCounter.test.ts +0 -131
  704. package/src/hooks/useDebounce.test.ts +0 -375
  705. package/src/providers/AuthProvider.tsx +0 -15
  706. package/src/providers/EventProvider.tsx +0 -16
  707. package/src/providers/InactivityProvider.tsx +0 -15
  708. package/src/providers/OrganisationProvider.context.test.tsx +0 -169
  709. package/src/providers/UnifiedAuthProvider.tsx +0 -15
  710. package/src/types/theme.ts +0 -6
  711. package/src/types/unified.ts +0 -265
  712. package/src/utils/appConfig.ts +0 -47
  713. package/src/utils/appIdResolver.test.ts +0 -499
  714. package/src/utils/appIdResolver.ts +0 -130
  715. package/src/utils/appNameResolver.simple.test.ts +0 -212
  716. package/src/utils/appNameResolver.test.ts +0 -121
  717. package/src/utils/appNameResolver.ts +0 -191
  718. package/src/utils/audit.ts +0 -127
  719. package/src/utils/auth-utils.ts +0 -96
  720. package/src/utils/bundleAnalysis.ts +0 -129
  721. package/src/utils/debugLogger.ts +0 -67
  722. package/src/utils/deviceFingerprint.ts +0 -215
  723. package/src/utils/dynamicUtils.ts +0 -105
  724. package/src/utils/file-reference.test.ts +0 -788
  725. package/src/utils/file-reference.ts +0 -519
  726. package/src/utils/formatDate.test.ts +0 -237
  727. package/src/utils/formatting.ts +0 -170
  728. package/src/utils/lazyLoad.tsx +0 -44
  729. package/src/utils/logger.ts +0 -179
  730. package/src/utils/organisationContext.test.ts +0 -322
  731. package/src/utils/organisationContext.ts +0 -153
  732. package/src/utils/performanceBenchmark.ts +0 -64
  733. package/src/utils/performanceBudgets.ts +0 -110
  734. package/src/utils/permissionTypes.ts +0 -37
  735. package/src/utils/permissionUtils.test.ts +0 -393
  736. package/src/utils/permissionUtils.ts +0 -34
  737. package/src/utils/sanitization.ts +0 -264
  738. package/src/utils/schemaUtils.ts +0 -37
  739. package/src/utils/secureDataAccess.test.ts +0 -711
  740. package/src/utils/secureDataAccess.ts +0 -377
  741. package/src/utils/secureErrors.ts +0 -79
  742. package/src/utils/security.ts +0 -156
  743. package/src/utils/securityMonitor.ts +0 -45
  744. package/src/utils/sessionTracking.ts +0 -126
  745. package/src/utils/validation.ts +0 -111
  746. package/src/utils/validationUtils.ts +0 -120
  747. package/src/validation/index.ts +0 -12
  748. /package/dist/{DataTable-UA6CL4JI.js.map → DataTable-QAB34V6K.js.map} +0 -0
  749. /package/dist/{UnifiedAuthProvider-B37ATQHE.js.map → UnifiedAuthProvider-7F6T4B6K.js.map} +0 -0
  750. /package/dist/{api-45XYYO2A.js.map → api-ROMBCNKU.js.map} +0 -0
  751. /package/dist/{audit-64X3VJXB.js.map → audit-WRS3KJKI.js.map} +0 -0
  752. /package/dist/{chunk-PLDDJCW6.js.map → chunk-7D4SUZUM.js.map} +0 -0
  753. /package/dist/{useInactivityTracker-TO6ZOF35.js.map → chunk-KQCRWDSA.js.map} +0 -0
  754. /package/examples/{components 2/DataTable → DataTable}/InitialPageSizeExample.tsx +0 -0
  755. /package/examples/{features/public-pages → PublicPages}/index.ts +0 -0
  756. /package/examples/{RBAC → rbac}/index.ts +0 -0
@@ -1,5 +1,6 @@
1
+ import './UnifiedAuthProvider-F86d7dSi.js';
1
2
  import * as React from 'react';
2
- import React__default, { Component, ReactNode, ErrorInfo } from 'react';
3
+ import React__default, { Component, ReactNode } from 'react';
3
4
  import * as LabelPrimitive from '@radix-ui/react-label';
4
5
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
5
6
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
@@ -10,13 +11,16 @@ import * as DialogPrimitive from '@radix-ui/react-dialog';
10
11
  import * as TabsPrimitive from '@radix-ui/react-tabs';
11
12
  import { DayPickerProps } from 'react-day-picker';
12
13
  import * as ToastPrimitives from '@radix-ui/react-toast';
14
+ import './useToast-C8gR5ir4.js';
13
15
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
14
- import { FieldValues, DefaultValues, SubmitHandler, SubmitErrorHandler, UseFormReturn } from 'react-hook-form';
16
+ import './DataTable-Bz8ffqyA.js';
17
+ import './types-_x1f4QBF.js';
18
+ import { FieldValues, DefaultValues, SubmitHandler, SubmitErrorHandler, UseFormReturn, FieldPath, ControllerRenderProps, ControllerFieldState, UseFormStateReturn } from 'react-hook-form';
15
19
  import { z } from 'zod';
16
20
  import { User, SupabaseClient, createClient } from '@supabase/supabase-js';
17
- import { E as Event } from './unified-DQ4VcT7H.js';
18
- import { O as Organisation } from './organisation-D6qRDtbF.js';
19
- import { F as FileCategory, e as FileUploadResult, U as UploadProgress, c as FileUploadOptions, a as FileReference } from './file-reference-C6Gkn77H.js';
21
+ import { P as Permission, A as AccessLevel } from './types-UU913iLA.js';
22
+ import { E as Event, O as Organisation } from './event-CW5YB_2p.js';
23
+ import { b as FileCategory, e as FileUploadResult, U as UploadProgress, c as FileUploadOptions, F as FileReference } from './file-reference-D06mEEWW.js';
20
24
 
21
25
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
22
26
  /** Visual variant of the button */
@@ -115,6 +119,10 @@ interface CardProps extends React.HTMLAttributes<HTMLElement> {
115
119
  variant?: 'default' | 'outline' | 'ghost';
116
120
  /** Size of the card */
117
121
  size?: 'default' | 'sm' | 'lg';
122
+ /** Whether the card should appear as a clickable link with hover effects */
123
+ isLink?: boolean;
124
+ /** Path or URL to navigate to when the card is clicked */
125
+ link?: string;
118
126
  }
119
127
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLElement>>;
120
128
  declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
@@ -122,7 +130,7 @@ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HT
122
130
  declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
123
131
  declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
124
132
  declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
125
- declare const CardActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
133
+ declare const CardActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
126
134
  type CardActionsProps = React.HTMLAttributes<HTMLElement>;
127
135
 
128
136
  /**
@@ -289,7 +297,6 @@ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttri
289
297
  *
290
298
  * @dependencies
291
299
  * - @radix-ui/react-label - Core label functionality
292
- * - class-variance-authority - Variant styling
293
300
  * - React 18+ - Hooks and refs
294
301
  * - Tailwind CSS - Styling
295
302
  */
@@ -466,7 +473,7 @@ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.Re
466
473
  declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
467
474
  variant?: "default" | "destructive" | "inline";
468
475
  } & React.RefAttributes<HTMLDivElement>>;
469
- declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
476
+ declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
470
477
  declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
471
478
 
472
479
  /**
@@ -1015,15 +1022,17 @@ declare const DialogTitle: React.ForwardRefExoticComponent<DialogTitleProps & Re
1015
1022
  declare const DialogDescription: React.ForwardRefExoticComponent<DialogDescriptionProps & React.RefAttributes<HTMLHeadingElement>>;
1016
1023
 
1017
1024
  /**
1018
- * @file Select Hooks - Custom hooks for Select component state management
1025
+ * @file Select Component - Refactored SOLID Implementation
1019
1026
  * @package @jmruthers/pace-core
1020
- * @module Components/Select/Hooks
1027
+ * @module Components/Select
1021
1028
  * @since 0.4.0
1022
1029
  *
1023
- * Custom hooks for Select component following SOLID principles:
1024
- * - Single Responsibility: Each hook handles one concern
1030
+ * Refactored Select component following SOLID principles:
1031
+ * - Single Responsibility: Each component has one clear purpose
1025
1032
  * - Open/Closed: Easy to extend without modification
1026
- * - Dependency Inversion: Abstractions over concrete implementations
1033
+ * - Liskov Substitution: Components can be substituted
1034
+ * - Interface Segregation: Small, focused interfaces
1035
+ * - Dependency Inversion: Depends on abstractions, not concretions
1027
1036
  */
1028
1037
 
1029
1038
  interface UseSelectStateProps {
@@ -1036,21 +1045,6 @@ interface UseSelectStateProps {
1036
1045
  onValueChange?: (value: string) => void;
1037
1046
  onOpenChange?: (open: boolean) => void;
1038
1047
  }
1039
-
1040
- /**
1041
- * @file Select Component - Refactored SOLID Implementation
1042
- * @package @jmruthers/pace-core
1043
- * @module Components/Select
1044
- * @since 0.4.0
1045
- *
1046
- * Refactored Select component following SOLID principles:
1047
- * - Single Responsibility: Each component has one clear purpose
1048
- * - Open/Closed: Easy to extend without modification
1049
- * - Liskov Substitution: Components can be substituted
1050
- * - Interface Segregation: Small, focused interfaces
1051
- * - Dependency Inversion: Depends on abstractions, not concretions
1052
- */
1053
-
1054
1048
  interface SelectProps extends Omit<React.HTMLAttributes<HTMLFormElement>, 'onChange' | 'onKeyDown' | 'onFocus' | 'onBlur'> {
1055
1049
  children: React.ReactNode;
1056
1050
  className?: string;
@@ -1184,12 +1178,14 @@ interface TabsListProps extends React.ComponentPropsWithoutRef<typeof TabsPrimit
1184
1178
  * ```
1185
1179
  */
1186
1180
  declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
1187
- interface TabsTriggerProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> {
1181
+ interface TabsTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>, 'asChild'>, Pick<ButtonProps, 'variant' | 'size'> {
1188
1182
  }
1189
1183
  /**
1190
1184
  * TabsTrigger component
1191
1185
  * Individual tab button that activates a tab panel
1192
1186
  *
1187
+ * Uses Button component internally, allowing Button props (variant, size) to be passed through.
1188
+ *
1193
1189
  * @component
1194
1190
  * @example
1195
1191
  * ```tsx
@@ -1199,6 +1195,11 @@ interface TabsTriggerProps extends React.ComponentPropsWithoutRef<typeof TabsPri
1199
1195
  * <TabsTrigger value="transport">
1200
1196
  * <Plane size={16} /> Transport
1201
1197
  * </TabsTrigger>
1198
+ *
1199
+ * // With Button variant
1200
+ * <TabsTrigger value="tab1" variant="outline" size="sm">
1201
+ * Tab 1
1202
+ * </TabsTrigger>
1202
1203
  * ```
1203
1204
  */
1204
1205
  declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1599,6 +1600,133 @@ interface FormProps<TFieldValues extends FieldValues = FieldValues> {
1599
1600
  * ```
1600
1601
  */
1601
1602
  declare function Form<TFieldValues extends FieldValues = FieldValues>({ schema, defaultValues, onSubmit, onError, mode, children, className, }: FormProps<TFieldValues>): react_jsx_runtime.JSX.Element;
1603
+ /**
1604
+ * Props for the FormField component
1605
+ */
1606
+ interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
1607
+ /**
1608
+ * Field name
1609
+ */
1610
+ name: TName;
1611
+ /**
1612
+ * Field label
1613
+ */
1614
+ label?: string;
1615
+ /**
1616
+ * Field type
1617
+ */
1618
+ type?: string;
1619
+ /**
1620
+ * Placeholder text
1621
+ */
1622
+ placeholder?: string;
1623
+ /**
1624
+ * Additional props for the input
1625
+ */
1626
+ inputProps?: React__default.InputHTMLAttributes<HTMLInputElement>;
1627
+ /**
1628
+ * Validation rules
1629
+ */
1630
+ validation?: {
1631
+ required?: boolean;
1632
+ pattern?: {
1633
+ value: RegExp;
1634
+ message: string;
1635
+ };
1636
+ minLength?: {
1637
+ value: number;
1638
+ message: string;
1639
+ };
1640
+ maxLength?: {
1641
+ value: number;
1642
+ message: string;
1643
+ };
1644
+ };
1645
+ /**
1646
+ * Custom render function
1647
+ */
1648
+ render?: (props: {
1649
+ field: ControllerRenderProps<TFieldValues, TName>;
1650
+ fieldState: ControllerFieldState;
1651
+ formState: UseFormStateReturn<TFieldValues>;
1652
+ }) => React__default.ReactElement;
1653
+ /**
1654
+ * Test ID
1655
+ */
1656
+ 'data-testid'?: string;
1657
+ /**
1658
+ * Class name
1659
+ */
1660
+ className?: string;
1661
+ }
1662
+ /**
1663
+ * FormField component for React Hook Form integration
1664
+ *
1665
+ * A flexible form field component that integrates with React Hook Form and provides
1666
+ * built-in validation, error handling, and accessibility features.
1667
+ *
1668
+ * Features:
1669
+ * - React Hook Form integration with Controller
1670
+ * - Built-in validation with error display
1671
+ * - Accessible labels and error messages
1672
+ * - Custom render function support
1673
+ * - TypeScript support with generic field paths
1674
+ * - Consistent styling with error states
1675
+ * - Test ID support for testing
1676
+ * - Flexible input types and props
1677
+ *
1678
+ * @template TFieldValues - The type of form field values
1679
+ * @template TName - The type of the field name (must be a valid field path)
1680
+ * @param props - Form field configuration and validation
1681
+ * @returns JSX.Element - The rendered form field with validation
1682
+ *
1683
+ * @example
1684
+ * ```tsx
1685
+ * // Basic text field
1686
+ * <FormField
1687
+ * name="username"
1688
+ * label="Username"
1689
+ * placeholder="Enter your username"
1690
+ * validation={{ required: true }}
1691
+ * />
1692
+ *
1693
+ * // Email field with custom validation
1694
+ * <FormField
1695
+ * name="email"
1696
+ * label="Email Address"
1697
+ * type="email"
1698
+ * validation={{
1699
+ * required: true,
1700
+ * pattern: {
1701
+ * value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
1702
+ * message: "Invalid email address"
1703
+ * }
1704
+ * }}
1705
+ * />
1706
+ *
1707
+ * // Custom render function
1708
+ * <FormField
1709
+ * name="avatar"
1710
+ * label="Profile Picture"
1711
+ * render={({ field }) => (
1712
+ * <input
1713
+ * {...field}
1714
+ * type="file"
1715
+ * accept="image/*"
1716
+ * />
1717
+ * )}
1718
+ * />
1719
+ * ```
1720
+ *
1721
+ * @accessibility
1722
+ * - Proper label association with htmlFor
1723
+ * - Error messages with role="alert"
1724
+ * - Required field indicators
1725
+ * - Focus management
1726
+ * - Screen reader friendly error announcements
1727
+ * - Keyboard navigation support
1728
+ */
1729
+ declare function FormField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, label, type, placeholder, inputProps, validation, render, 'data-testid': testId, className, }: FormFieldProps<TFieldValues, TName>): react_jsx_runtime.JSX.Element;
1602
1730
 
1603
1731
  /**
1604
1732
  * @file LoginForm Component
@@ -1745,85 +1873,6 @@ interface LoginFormProps {
1745
1873
  */
1746
1874
  declare const LoginForm: React__default.NamedExoticComponent<LoginFormProps>;
1747
1875
 
1748
- /**
1749
- * @file NavigationMenu Types
1750
- * @package @jmruthers/pace-core
1751
- * @module NavigationMenu
1752
- * @since 0.1.0
1753
- */
1754
- /**
1755
- * Navigation item configuration
1756
- * Supports both flat and hierarchical navigation structures
1757
- */
1758
- interface NavigationItem {
1759
- /** Unique identifier for the navigation item */
1760
- id: string;
1761
- /** Display text for the navigation item */
1762
- label: string;
1763
- /** URL or path to navigate to (optional for parent items in hierarchical mode) */
1764
- href?: string;
1765
- /** Optional Lucide icon name for the navigation item */
1766
- icon?: string;
1767
- /** Child navigation items for hierarchical mode */
1768
- children?: NavigationItem[];
1769
- /** Whether this item is currently active (auto-detected if not provided) */
1770
- isActive?: boolean;
1771
- /** Permissions required for this navigation item */
1772
- permissions?: string[];
1773
- /** Roles that can access this navigation item */
1774
- roles?: string[];
1775
- /** Minimum access level required */
1776
- accessLevel?: string;
1777
- /** Page ID for permission checking */
1778
- pageId?: string;
1779
- /** Enable strict mode for this navigation item */
1780
- strictMode?: boolean;
1781
- /** Navigation item metadata */
1782
- meta?: {
1783
- title?: string;
1784
- description?: string;
1785
- hidden?: boolean;
1786
- order?: number;
1787
- };
1788
- }
1789
- /**
1790
- * Navigation mode configuration
1791
- */
1792
- type NavigationMode = 'dropdown' | 'hierarchical';
1793
- /**
1794
- * NavigationMenu component props
1795
- */
1796
- interface NavigationMenuProps {
1797
- /** Array of navigation items to display */
1798
- items: NavigationItem[];
1799
- /** Navigation mode: 'dropdown' for menu button style, 'hierarchical' for expandable tree */
1800
- mode?: NavigationMode;
1801
- /** Current page path for highlighting active item */
1802
- currentPath?: string;
1803
- /** Optional callback when navigation item is clicked */
1804
- onNavigate?: (item: NavigationItem) => void;
1805
- /** Additional CSS classes */
1806
- className?: string;
1807
- /** Whether the menu is disabled (dropdown mode only) */
1808
- disabled?: boolean;
1809
- /** Custom button text for dropdown mode (defaults to "Menu") */
1810
- buttonText?: string;
1811
- /** Whether to show icons in the navigation (dropdown mode only) */
1812
- showIcons?: boolean;
1813
- /** Custom navigation label for screen readers */
1814
- navigationLabel?: string;
1815
- /** Enable strict mode to prevent bypassing navigation protection (default: true) */
1816
- strictMode?: boolean;
1817
- /** Enable audit logging for all navigation access attempts (default: true) */
1818
- auditLog?: boolean;
1819
- /** Callback when navigation access is denied */
1820
- onNavigationAccessDenied?: (itemId: string, reason: string) => void;
1821
- /** Callback when strict mode violation occurs */
1822
- onStrictModeViolation?: (itemId: string, reason: string) => void;
1823
- /** Enable automatic filtering of navigation items based on permissions */
1824
- filterByPermissions?: boolean;
1825
- }
1826
-
1827
1876
  /**
1828
1877
  * @file Unified Navigation Menu Component
1829
1878
  * @package @jmruthers/pace-core
@@ -2017,6 +2066,56 @@ interface NavigationMenuProps {
2017
2066
  * - Tailwind CSS - Styling system
2018
2067
  */
2019
2068
 
2069
+ /**
2070
+ * Navigation mode type
2071
+ */
2072
+ type NavigationMode = 'dropdown' | 'hierarchical';
2073
+ /**
2074
+ * Navigation item metadata
2075
+ */
2076
+ interface NavigationItemMeta {
2077
+ hidden?: boolean;
2078
+ [key: string]: unknown;
2079
+ }
2080
+ /**
2081
+ * Navigation item interface
2082
+ */
2083
+ interface NavigationItem {
2084
+ id: string;
2085
+ label: string;
2086
+ href?: string;
2087
+ icon?: string;
2088
+ children?: NavigationItem[];
2089
+ permissions?: (Permission | string)[];
2090
+ roles?: string[];
2091
+ accessLevel?: AccessLevel | string;
2092
+ meta?: NavigationItemMeta;
2093
+ pageId?: string;
2094
+ }
2095
+ /**
2096
+ * Navigation menu component props
2097
+ */
2098
+ interface NavigationMenuProps extends React.HTMLAttributes<HTMLDivElement> {
2099
+ items: NavigationItem[];
2100
+ mode?: NavigationMode;
2101
+ currentPath?: string;
2102
+ onNavigate?: (item: NavigationItem) => void;
2103
+ className?: string;
2104
+ disabled?: boolean;
2105
+ buttonText?: string;
2106
+ showIcons?: boolean;
2107
+ navigationLabel?: string;
2108
+ strictMode?: boolean;
2109
+ auditLog?: boolean;
2110
+ onNavigationAccessDenied?: (item: NavigationItem) => void;
2111
+ onStrictModeViolation?: (item: NavigationItem, reason: string) => void;
2112
+ /**
2113
+ * If true, indicates that items have already been filtered by the parent component (e.g., PaceAppLayout).
2114
+ * When true, NavigationMenu will skip expensive permission checks and trust the provided items.
2115
+ * This significantly improves performance when items are pre-filtered.
2116
+ */
2117
+ itemsPreFiltered?: boolean;
2118
+ }
2020
2119
  /**
2021
2120
  * Unified NavigationMenu component that supports both dropdown and hierarchical navigation modes.
2022
2121
  *
@@ -2159,7 +2258,7 @@ interface NavigationMenuProps {
2159
2258
  * onNavigate={(item) => navigate(item.href)}
2160
2259
  * buttonText="Navigation"
2161
2260
  * navigationLabel="Main application navigation"
2162
- * filterByPermissions={true}
2261
+ * // Permission filtering is always enabled - no prop needed
2163
2262
  * auditLog={true}
2164
2263
  * />
2165
2264
  * );
@@ -2210,6 +2309,120 @@ interface NavigationMenuProps {
2210
2309
  */
2211
2310
  declare const NavigationMenu: React.ForwardRefExoticComponent<NavigationMenuProps & React.RefAttributes<HTMLDivElement>>;
2212
2311
 
2312
+ /**
2313
+ * @file Password Change Form Component
2314
+ * @package @jmruthers/pace-core
2315
+ * @module Components/PasswordChange
2316
+ * @since 0.1.0
2317
+ *
2318
+ * A secure password change form component with validation, confirmation matching,
2319
+ * and proper error handling for updating user passwords.
2320
+ *
2321
+ * Features:
2322
+ * - Password strength validation (minimum 8 characters)
2323
+ * - Password confirmation matching
2324
+ * - Loading states with disabled form
2325
+ * - Error handling and display
2326
+ * - Accessibility compliant
2327
+ * - Responsive design
2328
+ * - Form validation
2329
+ * - Secure password input
2330
+ * - Success and error callbacks
2331
+ *
2332
+ * @example
2333
+ * ```tsx
2334
+ * // Basic password change form
2335
+ * <PasswordChangeForm
2336
+ * onSubmit={async (values) => {
2337
+ * try {
2338
+ * await updatePassword(values.newPassword);
2339
+ * toast.success('Password updated successfully!');
2340
+ * return {};
2341
+ * } catch (error) {
2342
+ * return { error: { message: error.message } };
2343
+ * }
2344
+ * }}
2345
+ * />
2346
+ *
2347
+ * // Password change form with custom styling
2348
+ * <PasswordChangeForm
2349
+ * className="max-w-md mx-auto p-6 bg-main-50 rounded-lg shadow-md"
2350
+ * onSubmit={async (values) => {
2351
+ * const result = await authService.changePassword(values.newPassword);
2352
+ * if (result.success) {
2353
+ * navigate('/profile');
2354
+ * return {};
2355
+ * } else {
2356
+ * return { error: { message: result.error } };
2357
+ * }
2358
+ * }}
2359
+ * />
2360
+ *
2361
+ * // Password change form in a modal
2362
+ * <Modal isOpen={showPasswordChange} onClose={() => setShowPasswordChange(false)}>
2363
+ * <ModalContent>
2364
+ * <ModalHeader>
2365
+ * <ModalTitle>Change Password</ModalTitle>
2366
+ * </ModalHeader>
2367
+ * <ModalBody>
2368
+ * <PasswordChangeForm
2369
+ * onSubmit={async (values) => {
2370
+ * const result = await changePassword(values.newPassword);
2371
+ * if (result.success) {
2372
+ * setShowPasswordChange(false);
2373
+ * toast.success('Password changed successfully');
2374
+ * return {};
2375
+ * } else {
2376
+ * return { error: { message: result.error } };
2377
+ * }
2378
+ * }}
2379
+ * />
2380
+ * </ModalBody>
2381
+ * </ModalContent>
2382
+ * </Modal>
2383
+ * ```
2384
+ *
2385
+ * @accessibility
2386
+ * - WCAG 2.1 AA compliant
2387
+ * - Proper form labels and associations
2388
+ * - Screen reader friendly error messages
2389
+ * - Keyboard navigation support
2390
+ * - Focus management
2391
+ * - High contrast support
2392
+ * - Clear error identification
2393
+ * - Role="alert" for error announcements
2394
+ * - Password field security
2395
+ *
2396
+ * @security
2397
+ * - Password strength validation
2398
+ * - Secure password input fields
2399
+ * - Confirmation matching
2400
+ * - No password logging
2401
+ * - Proper error handling
2402
+ *
2403
+ * @dependencies
2404
+ * - React 18+ - Hooks and state
2405
+ * - Button component
2406
+ * - Input component
2407
+ * - Label component
2408
+ * - Tailwind CSS - Styling
2409
+ */
2410
+ interface PasswordChangeFormValues {
2411
+ newPassword: string;
2412
+ confirmPassword: string;
2413
+ }
2414
+ interface PasswordChangeFormError {
2415
+ message?: string;
2416
+ code?: string;
2417
+ }
2418
+ interface PasswordChangeFormProps {
2419
+ onSubmit: (values: PasswordChangeFormValues) => Promise<{
2420
+ error?: PasswordChangeFormError;
2421
+ }>;
2422
+ className?: string;
2423
+ }
2424
+ declare function PasswordChangeForm({ onSubmit, className }: PasswordChangeFormProps): react_jsx_runtime.JSX.Element;
2425
+
2213
2426
  /**
2214
2427
  * Props for the Header component
2215
2428
  */
@@ -2228,7 +2441,7 @@ interface HeaderProps {
2228
2441
  onSignOut?: () => Promise<void>;
2229
2442
  /** Password change handler for user menu */
2230
2443
  onChangePassword?: (newPassword: string, confirmPassword: string) => Promise<{
2231
- error: any;
2444
+ error?: PasswordChangeFormError;
2232
2445
  }>;
2233
2446
  /** Additional actions to display (will be placed between event selector and user menu) */
2234
2447
  actions?: React__default.ReactNode;
@@ -2580,7 +2793,7 @@ interface UserMenuProps {
2580
2793
  user: User | null;
2581
2794
  onSignOut?: () => Promise<void>;
2582
2795
  onChangePassword?: (newPassword: string, confirmPassword: string) => Promise<{
2583
- error: any;
2796
+ error?: PasswordChangeFormError;
2584
2797
  }>;
2585
2798
  className?: string;
2586
2799
  showAvatar?: boolean;
@@ -2615,8 +2828,6 @@ interface PaceAppLayoutProps {
2615
2828
  routePermissions?: Record<string, Operation>;
2616
2829
  /** Fallback component to show when user lacks permission */
2617
2830
  permissionFallback?: React__default.ReactNode;
2618
- /** Enable permission-based navigation filtering */
2619
- filterNavigationByPermissions?: boolean;
2620
2831
  /** Custom permission page ID mapping */
2621
2832
  pageIdMapping?: Record<string, string>;
2622
2833
  /** Enable strict mode to prevent bypassing permission checks (default: true) */
@@ -2745,8 +2956,7 @@ interface PaceAppLayoutProps {
2745
2956
  * <PaceAppLayout
2746
2957
  * appName="My Custom App"
2747
2958
  * navItems={customNavItems}
2748
- * // Navigation filtering works independently - no need for enforcePermissions
2749
- * filterNavigationByPermissions={true}
2959
+ * // Permission filtering is always enabled - no prop needed
2750
2960
  * routePermissions={{
2751
2961
  * '/components': 'read',
2752
2962
  * '/styles': 'read',
@@ -2805,7 +3015,7 @@ interface PaceAppLayoutProps {
2805
3015
  *
2806
3016
  * @since 0.1.0
2807
3017
  */
2808
- declare function PaceAppLayout({ appName, navItems, showEventSelector, headerActions, customLogo, logoHref, customUserMenu, headerClassName, showUserMenu, enforcePermissions, defaultPermission, routePermissions, permissionFallback, filterNavigationByPermissions, pageIdMapping, strictMode, enforcePagePermissions, pagePermissionFallback, auditLog, onPageAccessDenied, onStrictModeViolation, roleBasedRouting, routeConfig, fallbackRoute, onRouteAccessDenied, onRouteStrictModeViolation }: PaceAppLayoutProps): react_jsx_runtime.JSX.Element;
3018
+ declare function PaceAppLayout({ appName, navItems, showEventSelector, headerActions, customLogo, logoHref, customUserMenu, headerClassName, showUserMenu, enforcePermissions, defaultPermission, routePermissions, permissionFallback, pageIdMapping, strictMode, enforcePagePermissions, pagePermissionFallback, auditLog, onPageAccessDenied, onStrictModeViolation, roleBasedRouting, routeConfig, fallbackRoute, onRouteAccessDenied, onRouteStrictModeViolation }: PaceAppLayoutProps): react_jsx_runtime.JSX.Element;
2809
3019
 
2810
3020
  /**
2811
3021
  * @file PACE Login Page Component
@@ -3166,11 +3376,40 @@ declare const LoadingSpinner: React__default.FC<LoadingSpinnerProps>;
3166
3376
  *
3167
3377
  * Displays a consistent loading state while the authentication service
3168
3378
  * restores the Supabase session from persistent storage.
3379
+ *
3380
+ * Features:
3381
+ * - Full-screen loading state
3382
+ * - Accessible with proper ARIA attributes
3383
+ * - Screen reader friendly
3384
+ * - Customizable message
3385
+ * - Uses LoadingSpinner component
3386
+ *
3387
+ * @example
3388
+ * ```tsx
3389
+ * // Basic usage
3390
+ * <SessionRestorationLoader />
3391
+ *
3392
+ * // With custom message
3393
+ * <SessionRestorationLoader message="Restoring your session..." />
3394
+ * ```
3395
+ *
3396
+ * @accessibility
3397
+ * - WCAG 2.1 AA compliant
3398
+ * - Proper ARIA role="status"
3399
+ * - Screen reader announcement
3400
+ * - High contrast support
3401
+ *
3402
+ * @dependencies
3403
+ * - React 18+ - Component framework
3404
+ * - LoadingSpinner - Spinner component
3405
+ * - Tailwind CSS - Styling
3169
3406
  */
3170
3407
 
3171
3408
  interface SessionRestorationLoaderProps {
3172
3409
  /** Customise the status message displayed under the spinner */
3173
3410
  message?: string;
3411
+ /** Additional CSS classes for styling */
3412
+ className?: string;
3174
3413
  }
3175
3414
  declare const SessionRestorationLoader: React__default.FC<SessionRestorationLoaderProps>;
3176
3415
 
@@ -3550,37 +3789,6 @@ interface PublicPageLayoutProps {
3550
3789
  /** Custom loading message */
3551
3790
  loadingMessage?: string;
3552
3791
  }
3553
- /**
3554
- * Layout component for public pages that don't require authentication
3555
- *
3556
- * This component provides a consistent structure for public event pages
3557
- * with event-specific branding, error handling, and loading states.
3558
- *
3559
- * Automatically applies event colors from the event's event_colours field
3560
- * when an event is provided, ensuring consistent theming across public pages.
3561
- *
3562
- * @param props - Layout configuration and content
3563
- * @returns React element with complete public page layout
3564
- */
3565
- declare function PublicPageLayout({ eventCode, children, event, isLoading, error, refetch, showFooter, className, errorFallback: ErrorFallback, loadingFallback: LoadingFallback, customHeader, customFooter, showValidationErrors, loadingMessage }: PublicPageLayoutProps): react_jsx_runtime.JSX.Element;
3566
- /**
3567
- * Hook for accessing public page context
3568
- * Provides access to event data and layout state within public pages
3569
- *
3570
- * @deprecated This hook is no longer needed as PublicPageLayout no longer
3571
- * automatically fetches event data. Use usePublicRouteParams and usePublicEvent
3572
- * directly in your components instead.
3573
- */
3574
- declare function usePublicPageContext$1(): {
3575
- eventCode: null;
3576
- eventId: null;
3577
- event: null;
3578
- isLoading: boolean;
3579
- error: null;
3580
- refetch: () => Promise<void>;
3581
- isPublicPage: boolean;
3582
- };
3583
-
3584
3792
  interface PublicPageHeaderProps {
3585
3793
  /** The event data for this public page */
3586
3794
  event?: Event;
@@ -3601,29 +3809,42 @@ interface PublicPageHeaderProps {
3601
3809
  /** Custom event logo component */
3602
3810
  customEventLogo?: ReactNode;
3603
3811
  }
3812
+ declare function PublicPageHeader({ event, eventCode, title, description, showEventLogo, showAppLogo, className, children, customEventLogo }: PublicPageHeaderProps): react_jsx_runtime.JSX.Element;
3813
+ interface PublicPageFooterProps {
3814
+ /** The event data for this public page */
3815
+ event: Event;
3816
+ /** Company or organization name */
3817
+ companyName?: string;
3818
+ /** Current year or custom year for copyright */
3819
+ year?: number;
3820
+ /** Optional array of navigation links to display */
3821
+ links?: Array<{
3822
+ label: string;
3823
+ href: string;
3824
+ }>;
3825
+ /** Optional CSS class name */
3826
+ className?: string;
3827
+ /** Logo image URL */
3828
+ logo?: string;
3829
+ /** Copyright text */
3830
+ copyright?: string;
3831
+ /** Footer content - children to render inside footer */
3832
+ children?: React__default.ReactNode;
3833
+ }
3834
+ declare function PublicPageFooter({ event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
3604
3835
  /**
3605
- * Header component for public pages with event-specific branding
3606
- *
3607
- * This component displays the app logo, event logo, and event information
3608
- * in a clean, accessible layout suitable for public pages.
3609
- *
3610
- * The app logo is automatically generated from the appName using the pattern:
3611
- * `/{appName.toLowerCase()}_logo_wide.svg` from the public folder.
3836
+ * Layout component for public pages that don't require authentication
3612
3837
  *
3613
- * **Important:** The appName is obtained from PublicPageProvider context, which should
3614
- * receive the APP_NAME constant from your App.tsx file. This ensures consistency with
3615
- * authenticated pages that use the same APP_NAME constant.
3838
+ * This component provides a consistent structure for public event pages
3839
+ * with event-specific branding, error handling, and loading states.
3616
3840
  *
3617
- * **Event Logo Requirements:**
3618
- * - Event logo files must be marked as `is_public = true` in the `file_references` table
3619
- * - The RPC function `data_file_reference_by_category_list` must be accessible to the anonymous/public role
3620
- * - Storage bucket must allow public read access for logo files
3621
- * - If no public logo is available, a fallback UI with event initials will be displayed
3841
+ * Automatically applies event colors from the event's event_colours field
3842
+ * when an event is provided, ensuring consistent theming across public pages.
3622
3843
  *
3623
- * @param props - Header configuration and content
3624
- * @returns React element with public page header
3844
+ * @param props - Layout configuration and content
3845
+ * @returns React element with complete public page layout
3625
3846
  */
3626
- declare function PublicPageHeader({ event, eventCode, title, description, showEventLogo, showAppLogo, className, children, customEventLogo }: PublicPageHeaderProps): react_jsx_runtime.JSX.Element;
3847
+ declare function PublicPageLayout({ eventCode, children, event, isLoading, error, refetch, showFooter, className, errorFallback: ErrorFallback, loadingFallback: LoadingFallback, customHeader, customFooter, showValidationErrors, loadingMessage }: PublicPageLayoutProps): react_jsx_runtime.JSX.Element;
3627
3848
 
3628
3849
  interface PublicPageContextType {
3629
3850
  isPublicPage: true;
@@ -3663,235 +3884,4 @@ declare function usePublicPageContext(): PublicPageContextType;
3663
3884
  */
3664
3885
  declare function useIsPublicPage(): boolean;
3665
3886
 
3666
- interface PublicPageFooterProps {
3667
- /** The event data for this public page */
3668
- event: Event;
3669
- /** Company or organization name */
3670
- companyName?: string;
3671
- /** Current year or custom year for copyright */
3672
- year?: number;
3673
- /** Optional array of navigation links to display */
3674
- links?: Array<{
3675
- label: string;
3676
- href: string;
3677
- }>;
3678
- /** Optional CSS class name */
3679
- className?: string;
3680
- /** Logo image URL */
3681
- logo?: string;
3682
- /** Copyright text */
3683
- copyright?: string;
3684
- /** Footer content - children to render inside footer */
3685
- children?: React__default.ReactNode;
3686
- }
3687
- /**
3688
- * Footer component for public pages that matches the normal Footer exactly
3689
- *
3690
- * This component uses the same styling and structure as the main Footer component
3691
- * to ensure consistency across the application.
3692
- *
3693
- * @param props - Footer configuration and content
3694
- * @returns React element with public page footer
3695
- */
3696
- declare function PublicPageFooter({ event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
3697
-
3698
- /**
3699
- * @file Public Page Context Checker
3700
- * @package @jmruthers/pace-core
3701
- * @module Components/PublicLayout
3702
- * @since 1.0.0
3703
- *
3704
- * A simple component that immediately identifies if a public page
3705
- * is being rendered inside authentication context.
3706
- */
3707
- interface PublicPageContextCheckerProps {
3708
- /** Whether to enable checking */
3709
- enabled?: boolean;
3710
- /** Custom label for this checker instance */
3711
- label?: string;
3712
- }
3713
- /**
3714
- * Context checker component that immediately identifies authentication context issues
3715
- *
3716
- * This component will immediately log to console if authentication context
3717
- * is being triggered in a public page.
3718
- *
3719
- * Only enabled in development mode when VITE_ENABLE_DEBUG_LOGS is 'true'
3720
- */
3721
- declare function PublicPageContextChecker({ enabled, label }: PublicPageContextCheckerProps): react_jsx_runtime.JSX.Element | null;
3722
-
3723
- interface PublicErrorBoundaryProps {
3724
- /** Child components to wrap */
3725
- children: ReactNode;
3726
- /** Custom error fallback component */
3727
- fallback?: React__default.ComponentType<PublicErrorBoundaryState>;
3728
- /** Custom CSS classes for error display */
3729
- className?: string;
3730
- /** Whether to show error details in development */
3731
- showErrorDetails?: boolean;
3732
- /** Custom error message */
3733
- customErrorMessage?: string;
3734
- /** Custom recovery action */
3735
- onRecover?: () => void;
3736
- }
3737
- interface PublicErrorBoundaryState {
3738
- /** Whether an error has occurred */
3739
- hasError: boolean;
3740
- /** The error that occurred */
3741
- error: Error | null;
3742
- /** Error information */
3743
- errorInfo: ErrorInfo | null;
3744
- /** Function to reset the error state */
3745
- resetError: () => void;
3746
- }
3747
- /**
3748
- * Error boundary component for public pages
3749
- *
3750
- * This component catches JavaScript errors anywhere in the child component tree,
3751
- * logs those errors, and displays a fallback UI instead of the component tree that crashed.
3752
- *
3753
- * @param props - Error boundary configuration
3754
- * @returns React element with error boundary wrapper
3755
- */
3756
- declare class PublicErrorBoundary extends Component<PublicErrorBoundaryProps, PublicErrorBoundaryState> {
3757
- constructor(props: PublicErrorBoundaryProps);
3758
- static getDerivedStateFromError(error: Error): Partial<PublicErrorBoundaryState>;
3759
- componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
3760
- resetError: () => void;
3761
- render(): string | number | boolean | Iterable<React__default.ReactNode> | react_jsx_runtime.JSX.Element | null | undefined;
3762
- }
3763
- /**
3764
- * Hook for accessing error boundary state
3765
- * Useful for components that need to know if they're inside an error boundary
3766
- */
3767
- declare function useErrorBoundary(): {
3768
- captureError: (error: Error) => void;
3769
- resetError: () => void;
3770
- };
3771
- /**
3772
- * Default error fallback component
3773
- */
3774
- declare function DefaultPublicErrorFallback({ error, resetError }: PublicErrorBoundaryState): react_jsx_runtime.JSX.Element;
3775
-
3776
- /**
3777
- * @file Public Loading Spinner Component
3778
- * @package @jmruthers/pace-core
3779
- * @module Components/PublicLayout
3780
- * @since 1.0.0
3781
- *
3782
- * A loading spinner component specifically designed for public pages.
3783
- * Provides consistent loading states with event-specific branding.
3784
- *
3785
- * Features:
3786
- * - Consistent loading design
3787
- * - Event-specific branding
3788
- * - Multiple size options
3789
- * - Accessibility compliant
3790
- * - TypeScript support
3791
- *
3792
- * @example
3793
- * ```tsx
3794
- * import { PublicLoadingSpinner } from '@jmruthers/pace-core';
3795
- *
3796
- * function PublicEventPage() {
3797
- * if (isLoading) {
3798
- * return <PublicLoadingSpinner message="Loading event details..." />;
3799
- * }
3800
- * }
3801
- * ```
3802
- *
3803
- * @accessibility
3804
- * - WCAG 2.1 AA compliant
3805
- * - Screen reader friendly
3806
- * - Proper ARIA labels
3807
- * - High contrast support
3808
- *
3809
- * @dependencies
3810
- * - React 18+ - Component framework
3811
- * - Tailwind CSS - Styling
3812
- */
3813
- interface PublicLoadingSpinnerProps {
3814
- /** Loading message to display */
3815
- message?: string;
3816
- /** Size variant */
3817
- size?: 'sm' | 'md' | 'lg' | 'xl';
3818
- /** Custom CSS classes */
3819
- className?: string;
3820
- /** Whether to show the app logo */
3821
- showLogo?: boolean;
3822
- /** Custom loading message */
3823
- customMessage?: string;
3824
- /** Whether to center the spinner */
3825
- centered?: boolean;
3826
- }
3827
- /**
3828
- * Loading spinner component for public pages
3829
- *
3830
- * This component displays a consistent loading state with optional
3831
- * branding and messaging for public pages.
3832
- *
3833
- * @param props - Spinner configuration and styling
3834
- * @returns React element with loading spinner
3835
- */
3836
- declare function PublicLoadingSpinner({ message, size, className, showLogo, customMessage, centered }: PublicLoadingSpinnerProps): react_jsx_runtime.JSX.Element;
3837
- /**
3838
- * Full page loading spinner with event branding
3839
- */
3840
- declare function PublicLoadingSpinnerFullPage({ message, eventName, className }: Pick<PublicLoadingSpinnerProps, 'message' | 'className'> & {
3841
- eventName?: string;
3842
- }): react_jsx_runtime.JSX.Element;
3843
- /**
3844
- * Skeleton loading component for content placeholders
3845
- */
3846
- declare function PublicLoadingSkeleton({ lines, className }: {
3847
- lines?: number;
3848
- className?: string;
3849
- }): react_jsx_runtime.JSX.Element;
3850
-
3851
- interface EventLogoProps {
3852
- /** The event ID to fetch logo for */
3853
- eventId: string;
3854
- /** The event name for fallback text generation */
3855
- eventName: string;
3856
- /** The organisation ID for storage path */
3857
- organisationId: string;
3858
- /** Logo size variant */
3859
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
3860
- /** Custom CSS classes */
3861
- className?: string;
3862
- /** Whether to show fallback text when no logo is available */
3863
- showFallback?: boolean;
3864
- /** Custom fallback text generator */
3865
- generateFallbackText?: (eventName: string) => string;
3866
- /** Whether to validate image existence (deprecated - FileDisplay handles this) */
3867
- validateImage?: boolean;
3868
- /** Custom loading component */
3869
- loadingComponent?: React__default.ComponentType;
3870
- /** Custom error component */
3871
- errorComponent?: React__default.ComponentType<{
3872
- error: Error;
3873
- }>;
3874
- }
3875
- /**
3876
- * Component for displaying event logos with fallback to initials
3877
- *
3878
- * This component is context-aware and automatically detects whether it's being used
3879
- * in a public or authenticated context. It uses FileDisplay internally to fetch and
3880
- * display event logos from storage, with automatic fallback to event initials if no
3881
- * logo is available.
3882
- *
3883
- * @param props - Logo configuration and styling
3884
- * @returns React element with event logo or fallback
3885
- */
3886
- declare function EventLogo({ eventId, eventName, organisationId, size, className, showFallback, generateFallbackText, validateImage, // Deprecated but kept for backward compatibility
3887
- loadingComponent: LoadingComponent, errorComponent: ErrorComponent }: EventLogoProps): react_jsx_runtime.JSX.Element;
3888
- /**
3889
- * Compact event logo for small spaces
3890
- */
3891
- declare function EventLogoCompact(props: EventLogoProps): react_jsx_runtime.JSX.Element;
3892
- /**
3893
- * Large event logo for prominent display
3894
- */
3895
- declare function EventLogoLarge(props: EventLogoProps): react_jsx_runtime.JSX.Element;
3896
-
3897
- export { type DialogHeaderProps as $, Alert as A, Button as B, Card as C, TableCell as D, TableFooter as E, TableHead as F, TableRow as G, Dialog as H, Input as I, DialogPortal as J, DialogOverlay as K, Label as L, DialogTrigger as M, DialogClose as N, DialogContent as O, Progress as P, DialogHeader as Q, DialogBody as R, Switch as S, Textarea as T, DialogFooter as U, DialogTitle as V, DialogDescription as W, type DialogProps as X, type DialogTriggerProps as Y, type DialogContentProps as Z, type DialogOverlayProps as _, type ButtonProps as a, useFileReference as a$, type DialogFooterProps as a0, type DialogTitleProps as a1, type DialogDescriptionProps as a2, type DialogSize as a3, Select as a4, SelectGroup as a5, SelectValue as a6, SelectTrigger as a7, SelectContent as a8, SelectLabel as a9, TooltipRoot as aA, Form as aB, type FormProps as aC, LoginForm as aD, type LoginFormProps as aE, Header as aF, Footer as aG, type FooterProps as aH, ProtectedRoute as aI, type ProtectedRouteProps as aJ, NavigationMenu as aK, type NavigationMenuProps as aL, type NavigationItem as aM, OrganisationSelector as aN, type OrganisationSelectorProps as aO, UserMenu as aP, ErrorBoundary as aQ, type ErrorBoundaryProps as aR, type ErrorBoundaryState as aS, LoadingSpinner as aT, SessionRestorationLoader as aU, type SessionRestorationLoaderProps as aV, EventSelector as aW, FileUpload as aX, type FileUploadProps as aY, FileDisplay as aZ, type FileDisplayProps as a_, SelectItem as aa, SelectSeparator as ab, Tabs as ac, TabsList as ad, TabsTrigger as ae, TabsContent as af, type TabsProps as ag, type TabsListProps as ah, type TabsTriggerProps as ai, type TabsContentProps as aj, Calendar as ak, type CalendarProps as al, Toast as am, Toaster as an, ToastAction as ao, ToastProvider as ap, ToastViewport as aq, ToastTitle as ar, ToastDescription as as, ToastClose as at, type ToastActionElement as au, type ToastProps as av, Tooltip as aw, TooltipTrigger as ax, TooltipContent as ay, TooltipProvider as az, CardHeader as b, useFileReferenceForRecord as b0, useFileReferenceById as b1, useFilesByCategory as b2, type UseFileReferenceOptions as b3, type UseFileReferenceReturn as b4, type UseFileReferenceForRecordReturn as b5, PublicPageLayout as b6, usePublicPageContext$1 as b7, PublicPageHeader as b8, PublicPageProvider as b9, usePublicPageContext as ba, useIsPublicPage as bb, PublicPageFooter as bc, PublicPageContextChecker as bd, PublicErrorBoundary as be, useErrorBoundary as bf, DefaultPublicErrorFallback as bg, PublicLoadingSpinner as bh, PublicLoadingSpinnerFullPage as bi, PublicLoadingSkeleton as bj, EventLogo as bk, EventLogoCompact as bl, EventLogoLarge as bm, type EventLogoProps as bn, type PublicPageLayoutProps as bo, type PublicPageHeaderProps as bp, type PublicPageFooterProps as bq, type PublicErrorBoundaryProps as br, type PublicErrorBoundaryState as bs, type PublicLoadingSpinnerProps as bt, type PaceAppLayoutProps as bu, PaceAppLayout as bv, type PaceLoginPageProps as bw, PaceLoginPage as bx, type UserMenuProps as by, CardFooter as c, CardTitle as d, CardDescription as e, CardContent as f, CardActions as g, type CardProps as h, type CardActionsProps as i, type InputProps as j, type LabelProps as k, type TextareaProps as l, AlertTitle as m, AlertDescription as n, Avatar as o, AvatarImage as p, AvatarFallback as q, Badge as r, type BadgeProps as s, type BadgeVariant as t, Checkbox as u, type SwitchProps as v, Table as w, TableHeader as x, TableBody as y, TableCaption as z };
3887
+ export { type TabsProps as $, Alert as A, Button as B, Card as C, Dialog as D, DialogContent as E, DialogHeader as F, DialogBody as G, DialogFooter as H, Input as I, DialogTitle as J, DialogDescription as K, Label as L, Select as M, SelectGroup as N, SelectValue as O, Progress as P, SelectTrigger as Q, SelectContent as R, Switch as S, Textarea as T, SelectLabel as U, SelectItem as V, SelectSeparator as W, Tabs as X, TabsList as Y, TabsTrigger as Z, TabsContent as _, type ButtonProps as a, TableCell as a$, type TabsListProps as a0, type TabsTriggerProps as a1, type TabsContentProps as a2, Calendar as a3, type CalendarProps as a4, Toast as a5, Toaster as a6, ToastAction as a7, ToastProvider as a8, ToastViewport as a9, type PaceAppLayoutProps as aA, PaceLoginPage as aB, type PaceLoginPageProps as aC, ProtectedRoute as aD, type ProtectedRouteProps as aE, ErrorBoundary as aF, LoadingSpinner as aG, SessionRestorationLoader as aH, type SessionRestorationLoaderProps as aI, EventSelector as aJ, OrganisationSelector as aK, PasswordChangeForm as aL, FileUpload as aM, type FileUploadProps as aN, FileDisplay as aO, type FileDisplayProps as aP, useFileReference as aQ, useFileReferenceForRecord as aR, useFileReferenceById as aS, useFilesByCategory as aT, type UseFileReferenceOptions as aU, type UseFileReferenceReturn as aV, type UseFileReferenceForRecordReturn as aW, Table as aX, TableHeader as aY, TableBody as aZ, TableCaption as a_, ToastTitle as aa, ToastDescription as ab, ToastClose as ac, type ToastActionElement as ad, type ToastProps as ae, Tooltip as af, TooltipTrigger as ag, TooltipContent as ah, TooltipProvider as ai, TooltipRoot as aj, Form as ak, FormField as al, type FormProps as am, type FormFieldProps as an, LoginForm as ao, type LoginFormProps as ap, Header as aq, Footer as ar, type FooterProps as as, NavigationMenu as at, type NavigationMenuProps as au, type NavigationItem as av, type NavigationMode as aw, UserMenu as ax, type UserMenuProps as ay, PaceAppLayout as az, CardHeader as b, TableFooter as b0, TableHead as b1, TableRow as b2, PublicPageLayout as b3, PublicPageHeader as b4, PublicPageFooter as b5, PublicPageProvider as b6, usePublicPageContext as b7, useIsPublicPage as b8, type PublicPageLayoutProps as b9, type PublicPageHeaderProps as ba, type PublicPageFooterProps as bb, type CardActionsProps as bc, type DialogProps as bd, type DialogTriggerProps as be, type DialogContentProps as bf, type DialogOverlayProps as bg, type DialogHeaderProps as bh, type DialogFooterProps as bi, type DialogTitleProps as bj, type DialogDescriptionProps as bk, type DialogSize as bl, type OrganisationSelectorProps as bm, type ErrorBoundaryProps as bn, type ErrorBoundaryState as bo, CardFooter as c, CardTitle as d, CardDescription as e, CardContent as f, CardActions as g, type CardProps as h, type InputProps as i, type LabelProps as j, type TextareaProps as k, AlertTitle as l, AlertDescription as m, Avatar as n, AvatarImage as o, AvatarFallback as p, Badge as q, type BadgeProps as r, type BadgeVariant as s, Checkbox as t, type SwitchProps as u, type ProgressProps as v, DialogPortal as w, DialogOverlay as x, DialogTrigger as y, DialogClose as z };