@jmruthers/pace-core 0.5.135 → 0.5.137

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 (544) hide show
  1. package/dist/{DataTable-A36PJG6N.js → DataTable-6M4L6BI2.js} +26 -13
  2. package/dist/{DataTable-C7GaRZye.d.ts → DataTable-CWAZZcXC.d.ts} +1 -1
  3. package/dist/{PublicLoadingSpinner-CUAnTvcg.d.ts → EventLogo-rFL_kRjk.d.ts} +123 -135
  4. package/dist/{UnifiedAuthProvider-BVKmQd9u.d.ts → UnifiedAuthProvider-DJxGTftH.d.ts} +1 -1
  5. package/dist/{UnifiedAuthProvider-CQDZRJIS.js → UnifiedAuthProvider-XIQQ7LVU.js} +5 -5
  6. package/dist/{api-TNIBJWLM.js → api-45XYYO2A.js} +4 -3
  7. package/dist/{audit-T36HM7IM.js → audit-64X3VJXB.js} +3 -2
  8. package/dist/{chunk-F64FFPOZ.js → chunk-22WKWKRX.js} +26 -20
  9. package/dist/chunk-22WKWKRX.js.map +1 -0
  10. package/dist/{chunk-VZ5OR6HD.js → chunk-4C7EXCAR.js} +62 -150
  11. package/dist/chunk-4C7EXCAR.js.map +1 -0
  12. package/dist/{chunk-PYUXFQJ3.js → chunk-56XJ3TU6.js} +2 -2
  13. package/dist/chunk-56XJ3TU6.js.map +1 -0
  14. package/dist/{chunk-CTJRBUX2.js → chunk-6LAAY47Q.js} +2 -2
  15. package/dist/{chunk-UJI6WSMD.js → chunk-7QCC6MCP.js} +90 -3
  16. package/dist/chunk-7QCC6MCP.js.map +1 -0
  17. package/dist/{chunk-66C4BSAY.js → chunk-ANBQRTPX.js} +9 -2
  18. package/dist/chunk-ANBQRTPX.js.map +1 -0
  19. package/dist/{chunk-CQZU6TFE.js → chunk-BCIBECNB.js} +100 -62
  20. package/dist/chunk-BCIBECNB.js.map +1 -0
  21. package/dist/{chunk-GKHF54DI.js → chunk-BESYRHQM.js} +10 -4
  22. package/dist/chunk-BESYRHQM.js.map +1 -0
  23. package/dist/chunk-BJPBT3CU.js +21 -0
  24. package/dist/chunk-BJPBT3CU.js.map +1 -0
  25. package/dist/{chunk-BYXRHAIF.js → chunk-BLCXZEYF.js} +23 -14
  26. package/dist/chunk-BLCXZEYF.js.map +1 -0
  27. package/dist/{chunk-WP5I5GLN.js → chunk-BVYWGZVV.js} +112 -97
  28. package/dist/chunk-BVYWGZVV.js.map +1 -0
  29. package/dist/{chunk-GEVIB2UB.js → chunk-ERISIBYU.js} +14 -5
  30. package/dist/chunk-ERISIBYU.js.map +1 -0
  31. package/dist/{chunk-O3NWNXDY.js → chunk-FMUCXFII.js} +2 -2
  32. package/dist/chunk-FMUCXFII.js.map +1 -0
  33. package/dist/{chunk-GVDR7WNV.js → chunk-HAWZXGR2.js} +334 -614
  34. package/dist/chunk-HAWZXGR2.js.map +1 -0
  35. package/dist/{chunk-ZV77RZMU.js → chunk-INQLMHPF.js} +2 -2
  36. package/dist/chunk-JISYG63F.js +70 -0
  37. package/dist/chunk-JISYG63F.js.map +1 -0
  38. package/dist/{chunk-HMNOSGVA.js → chunk-KYRHUBIU.js} +576 -767
  39. package/dist/chunk-KYRHUBIU.js.map +1 -0
  40. package/dist/{chunk-M6DDYFUD.js → chunk-LS353YLY.js} +19 -16
  41. package/dist/chunk-LS353YLY.js.map +1 -0
  42. package/dist/{chunk-TGIY2AR2.js → chunk-MA6EPSGZ.js} +4 -3
  43. package/dist/{chunk-TGIY2AR2.js.map → chunk-MA6EPSGZ.js.map} +1 -1
  44. package/dist/chunk-OWAG3GSU.js +58 -0
  45. package/dist/chunk-OWAG3GSU.js.map +1 -0
  46. package/dist/{chunk-JCQZ6LA7.js → chunk-Q5QRDWKI.js} +9 -3
  47. package/dist/chunk-Q5QRDWKI.js.map +1 -0
  48. package/dist/chunk-S5OFRT4M.js +94 -0
  49. package/dist/chunk-S5OFRT4M.js.map +1 -0
  50. package/dist/{chunk-3DBFLLLU.js → chunk-SBVILCCA.js} +14 -9
  51. package/dist/chunk-SBVILCCA.js.map +1 -0
  52. package/dist/{chunk-ZYZCRSBD.js → chunk-T6JN6LH6.js} +16 -11
  53. package/dist/chunk-T6JN6LH6.js.map +1 -0
  54. package/dist/chunk-XDNLUEXI.js +138 -0
  55. package/dist/chunk-XDNLUEXI.js.map +1 -0
  56. package/dist/{chunk-3CG5L6RN.js → chunk-YCWDTTUK.js} +90 -75
  57. package/dist/chunk-YCWDTTUK.js.map +1 -0
  58. package/dist/{chunk-5F3NDPJV.js → chunk-ZZ2SS7NI.js} +10 -5
  59. package/dist/chunk-ZZ2SS7NI.js.map +1 -0
  60. package/dist/components.d.ts +7 -287
  61. package/dist/components.js +27 -157
  62. package/dist/components.js.map +1 -1
  63. package/dist/{file-reference-C9isKNPn.d.ts → file-reference-C6Gkn77H.d.ts} +1 -1
  64. package/dist/{formatting-DFcCxUEk.d.ts → formatting-CvUXy2mF.d.ts} +1 -1
  65. package/dist/hooks.d.ts +3 -3
  66. package/dist/hooks.js +21 -16
  67. package/dist/hooks.js.map +1 -1
  68. package/dist/index.d.ts +101 -9
  69. package/dist/index.js +44 -31
  70. package/dist/index.js.map +1 -1
  71. package/dist/providers.d.ts +1 -1
  72. package/dist/providers.js +4 -4
  73. package/dist/rbac/index.js +12 -12
  74. package/dist/schema-DTDZQe2u.d.ts +28 -0
  75. package/dist/styles/index.js +2 -1
  76. package/dist/theming/runtime.d.ts +2 -19
  77. package/dist/theming/runtime.js +2 -1
  78. package/dist/{types-D5rqZQXk.d.ts → types-Dfz9dmVH.d.ts} +12 -1
  79. package/dist/types.d.ts +153 -4
  80. package/dist/types.js +51 -16
  81. package/dist/types.js.map +1 -1
  82. package/dist/{useInactivityTracker-MRUU55XI.js → useInactivityTracker-TO6ZOF35.js} +3 -2
  83. package/dist/{usePublicRouteParams-Dyt1tzI9.d.ts → usePublicRouteParams-B7PabvuH.d.ts} +1 -1
  84. package/dist/utils.d.ts +221 -173
  85. package/dist/utils.js +185 -225
  86. package/dist/utils.js.map +1 -1
  87. package/dist/validation.d.ts +24 -115
  88. package/dist/validation.js +19 -474
  89. package/dist/validation.js.map +1 -1
  90. package/docs/api/classes/ColumnFactory.md +1 -1
  91. package/docs/api/classes/ErrorBoundary.md +6 -6
  92. package/docs/api/classes/InvalidScopeError.md +1 -1
  93. package/docs/api/classes/MissingUserContextError.md +1 -1
  94. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  95. package/docs/api/classes/PermissionDeniedError.md +1 -1
  96. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  97. package/docs/api/classes/RBACAuditManager.md +6 -6
  98. package/docs/api/classes/RBACCache.md +1 -1
  99. package/docs/api/classes/RBACEngine.md +7 -7
  100. package/docs/api/classes/RBACError.md +1 -1
  101. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  102. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  103. package/docs/api/classes/StorageUtils.md +1 -1
  104. package/docs/api/enums/FileCategory.md +1 -1
  105. package/docs/api/interfaces/AggregateConfig.md +4 -4
  106. package/docs/api/interfaces/BadgeProps.md +27 -0
  107. package/docs/api/interfaces/ButtonProps.md +1 -1
  108. package/docs/api/interfaces/CardProps.md +1 -1
  109. package/docs/api/interfaces/ColorPalette.md +1 -1
  110. package/docs/api/interfaces/ColorShade.md +29 -4
  111. package/docs/api/interfaces/DataAccessRecord.md +9 -9
  112. package/docs/api/interfaces/DataRecord.md +1 -1
  113. package/docs/api/interfaces/DataTableAction.md +18 -18
  114. package/docs/api/interfaces/DataTableColumn.md +61 -1
  115. package/docs/api/interfaces/DataTableProps.md +1 -1
  116. package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
  117. package/docs/api/interfaces/EmptyStateConfig.md +5 -5
  118. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +14 -14
  119. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  120. package/docs/api/interfaces/EventLogoProps.md +152 -0
  121. package/docs/api/interfaces/ExportColumn.md +1 -1
  122. package/docs/api/interfaces/ExportOptions.md +8 -8
  123. package/docs/api/interfaces/FileDisplayProps.md +15 -15
  124. package/docs/api/interfaces/FileMetadata.md +1 -1
  125. package/docs/api/interfaces/FileReference.md +1 -1
  126. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  127. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  128. package/docs/api/interfaces/FileUploadProps.md +1 -1
  129. package/docs/api/interfaces/FooterProps.md +1 -1
  130. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  131. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  132. package/docs/api/interfaces/InputProps.md +1 -1
  133. package/docs/api/interfaces/LabelProps.md +1 -1
  134. package/docs/api/interfaces/LoginFormProps.md +1 -1
  135. package/docs/api/interfaces/NavigationAccessRecord.md +10 -10
  136. package/docs/api/interfaces/NavigationContextType.md +9 -9
  137. package/docs/api/interfaces/NavigationGuardProps.md +10 -10
  138. package/docs/api/interfaces/NavigationItem.md +1 -1
  139. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  140. package/docs/api/interfaces/NavigationProviderProps.md +7 -7
  141. package/docs/api/interfaces/Organisation.md +1 -1
  142. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  143. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  144. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  145. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  146. package/docs/api/interfaces/PaceAppLayoutProps.md +27 -27
  147. package/docs/api/interfaces/PaceLoginPageProps.md +4 -4
  148. package/docs/api/interfaces/PageAccessRecord.md +8 -8
  149. package/docs/api/interfaces/PagePermissionContextType.md +8 -8
  150. package/docs/api/interfaces/PagePermissionGuardProps.md +11 -11
  151. package/docs/api/interfaces/PagePermissionProviderProps.md +7 -7
  152. package/docs/api/interfaces/PaletteData.md +4 -4
  153. package/docs/api/interfaces/PermissionEnforcerProps.md +11 -11
  154. package/docs/api/interfaces/ProtectedRouteProps.md +6 -6
  155. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  156. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  157. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  158. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  159. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  160. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  161. package/docs/api/interfaces/RBACConfig.md +1 -1
  162. package/docs/api/interfaces/RBACLogger.md +1 -1
  163. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  164. package/docs/api/interfaces/RoleBasedRouterContextType.md +8 -8
  165. package/docs/api/interfaces/RoleBasedRouterProps.md +10 -10
  166. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  167. package/docs/api/interfaces/RouteAccessRecord.md +10 -10
  168. package/docs/api/interfaces/RouteConfig.md +10 -10
  169. package/docs/api/interfaces/SecureDataContextType.md +9 -9
  170. package/docs/api/interfaces/SecureDataProviderProps.md +8 -8
  171. package/docs/api/interfaces/SessionRestorationLoaderProps.md +21 -0
  172. package/docs/api/interfaces/StorageConfig.md +1 -1
  173. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  174. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  175. package/docs/api/interfaces/StorageListOptions.md +1 -1
  176. package/docs/api/interfaces/StorageListResult.md +1 -1
  177. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  178. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  179. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  180. package/docs/api/interfaces/StyleImport.md +1 -1
  181. package/docs/api/interfaces/SwitchProps.md +1 -1
  182. package/docs/api/interfaces/ToastActionElement.md +1 -1
  183. package/docs/api/interfaces/ToastProps.md +1 -1
  184. package/docs/api/interfaces/UnifiedAuthContextType.md +53 -53
  185. package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
  186. package/docs/api/interfaces/UseInactivityTrackerOptions.md +9 -9
  187. package/docs/api/interfaces/UseInactivityTrackerReturn.md +8 -8
  188. package/docs/api/interfaces/UsePublicEventOptions.md +3 -3
  189. package/docs/api/interfaces/UsePublicEventReturn.md +5 -5
  190. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +4 -4
  191. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +9 -9
  192. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  193. package/docs/api/interfaces/UseResolvedScopeOptions.md +4 -4
  194. package/docs/api/interfaces/UseResolvedScopeReturn.md +4 -4
  195. package/docs/api/interfaces/UserEventAccess.md +11 -11
  196. package/docs/api/interfaces/UserMenuProps.md +1 -1
  197. package/docs/api/interfaces/UserProfile.md +1 -1
  198. package/docs/api/modules.md +591 -220
  199. package/docs/api-reference/components.md +106 -26
  200. package/docs/architecture/README.md +0 -3
  201. package/docs/implementation-guides/data-tables.md +277 -13
  202. package/docs/implementation-guides/forms.md +1 -16
  203. package/docs/implementation-guides/permission-enforcement.md +8 -2
  204. package/docs/styles/README.md +0 -2
  205. package/examples/README.md +30 -14
  206. package/examples/STRUCTURE.md +125 -0
  207. package/examples/components 2/DataTable/HierarchicalActionsExample.tsx +421 -0
  208. package/examples/components 2/DataTable/HierarchicalExample.tsx +475 -0
  209. package/examples/components 2/DataTable/InitialPageSizeExample.tsx +177 -0
  210. package/examples/components 2/DataTable/PerformanceExample.tsx +506 -0
  211. package/examples/components 2/DataTable/index.ts +13 -0
  212. package/examples/components 2/Dialog/BasicHtmlTest.tsx +55 -0
  213. package/examples/components 2/Dialog/DebugHtmlExample.tsx +68 -0
  214. package/examples/components 2/Dialog/HtmlDialogExample.tsx +202 -0
  215. package/examples/components 2/Dialog/ScrollableDialogExample.tsx +290 -0
  216. package/examples/components 2/Dialog/SimpleHtmlTest.tsx +61 -0
  217. package/examples/components 2/Dialog/SmartDialogExample.tsx +322 -0
  218. package/examples/components 2/Dialog/index.ts +15 -0
  219. package/examples/components 2/index.ts +11 -0
  220. package/examples/features/index.ts +12 -0
  221. package/{src/examples → examples/features/public-pages}/CorrectPublicPageImplementation.tsx +14 -17
  222. package/{src/examples → examples/features/public-pages}/PublicEventPage.tsx +14 -27
  223. package/{src/examples → examples/features/public-pages}/PublicPageApp.tsx +15 -28
  224. package/{src/examples → examples/features/public-pages}/PublicPageUsageExample.tsx +8 -10
  225. package/examples/features/public-pages/index.ts +14 -0
  226. package/examples/features/rbac/CompleteRBACExample.tsx +324 -0
  227. package/examples/features/rbac/EventBasedApp.tsx +239 -0
  228. package/examples/features/rbac/PermissionExample.tsx +151 -0
  229. package/examples/features/rbac/index.ts +13 -0
  230. package/examples/index.ts +11 -3
  231. package/package.json +30 -19
  232. package/src/__tests__/TEST_STANDARD.md +92 -0
  233. package/src/components/Alert/Alert.tsx +1 -1
  234. package/src/components/Avatar/Avatar.tsx +1 -1
  235. package/src/components/Badge/Badge.test.tsx +314 -0
  236. package/src/components/Badge/Badge.tsx +304 -0
  237. package/src/components/Badge/index.ts +3 -0
  238. package/src/components/Button/Button.tsx +1 -1
  239. package/src/components/Card/Card.tsx +1 -1
  240. package/src/components/Checkbox/Checkbox.tsx +1 -1
  241. package/src/components/DataTable/DataTable.test.tsx +1 -1
  242. package/src/components/DataTable/DataTable.tsx +1 -30
  243. package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +562 -0
  244. package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +217 -0
  245. package/src/components/DataTable/__tests__/styles.test.ts +3 -3
  246. package/src/components/DataTable/components/ActionButtons.tsx +0 -15
  247. package/src/components/DataTable/components/ColumnFilter.tsx +8 -4
  248. package/src/components/DataTable/components/DataTableBody.tsx +461 -0
  249. package/src/components/DataTable/components/DataTableCore.tsx +4 -185
  250. package/src/components/DataTable/components/DataTableErrorBoundary.tsx +1 -1
  251. package/src/components/DataTable/components/DataTableModals.tsx +1 -27
  252. package/src/components/DataTable/components/DraggableColumnHeader.tsx +144 -0
  253. package/src/components/DataTable/components/EditableRow.tsx +1 -1
  254. package/src/components/DataTable/components/FilterRow.tsx +9 -3
  255. package/src/components/DataTable/components/ImportModal.tsx +2 -14
  256. package/src/components/DataTable/components/PaginationControls.tsx +2 -1
  257. package/src/components/DataTable/components/UnifiedTableBody.tsx +109 -82
  258. package/src/components/DataTable/components/VirtualizedDataTable.tsx +513 -0
  259. package/src/components/DataTable/components/__tests__/AccessDeniedPage.test.tsx +14 -68
  260. package/src/components/DataTable/components/__tests__/ActionButtons.test.tsx +1 -1
  261. package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +62 -0
  262. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +1 -1
  263. package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +1 -1
  264. package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +43 -0
  265. package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +1 -1
  266. package/src/components/DataTable/core/ActionManager.ts +235 -0
  267. package/src/components/DataTable/core/ColumnManager.ts +205 -0
  268. package/src/components/DataTable/core/DataManager.ts +188 -0
  269. package/src/components/DataTable/core/DataTableContext.tsx +181 -0
  270. package/src/components/DataTable/core/LocalDataAdapter.ts +273 -0
  271. package/src/components/DataTable/core/PluginRegistry.ts +229 -0
  272. package/src/components/DataTable/core/StateManager.ts +311 -0
  273. package/src/components/DataTable/core/interfaces.ts +338 -0
  274. package/src/components/DataTable/examples/GroupingAggregationExample.tsx +273 -0
  275. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +1 -1
  276. package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +1 -1
  277. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +1 -1
  278. package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +1 -1
  279. package/src/components/DataTable/hooks/useDataTablePermissions.ts +2 -23
  280. package/src/components/DataTable/index.ts +4 -0
  281. package/src/components/DataTable/styles.ts +28 -7
  282. package/src/components/DataTable/types.ts +13 -0
  283. package/src/components/DataTable/utils/__tests__/columnUtils.test.ts +94 -0
  284. package/src/components/DataTable/utils/__tests__/exportUtils.test.ts +1 -1
  285. package/src/components/DataTable/utils/aggregationUtils.ts +161 -0
  286. package/src/components/DataTable/utils/columnUtils.ts +40 -0
  287. package/src/components/DataTable/utils/debugTools.ts +609 -0
  288. package/src/components/DataTable/utils/exportUtils.ts +1 -1
  289. package/src/components/DataTable/utils/flexibleImport.ts +1 -11
  290. package/src/components/DataTable/utils/index.ts +2 -0
  291. package/src/components/DataTable/utils/paginationUtils.ts +1 -1
  292. package/src/components/Dialog/Dialog.tsx +2 -2
  293. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +8 -1
  294. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +35 -7
  295. package/src/components/ErrorBoundary/ErrorBoundary.tsx +5 -4
  296. package/src/components/EventSelector/EventSelector.tsx +3 -2
  297. package/src/components/FileDisplay/FileDisplay.tsx +2 -36
  298. package/src/components/FileUpload/FileUpload.test.tsx +2 -2
  299. package/src/components/FileUpload/FileUpload.tsx +2 -2
  300. package/src/components/Footer/Footer.test.tsx +1 -1
  301. package/src/components/Footer/Footer.tsx +1 -1
  302. package/src/components/Form/Form.test.tsx +5 -510
  303. package/src/components/Form/Form.tsx +1 -1
  304. package/src/components/Form/FormField.tsx +1 -1
  305. package/src/components/Form/index.ts +0 -12
  306. package/src/components/Header/Header.tsx +1 -1
  307. package/src/components/Input/Input.tsx +1 -1
  308. package/src/components/Label/Label.tsx +1 -1
  309. package/src/components/LoginForm/LoginForm.test.tsx +1 -1
  310. package/src/components/LoginForm/LoginForm.tsx +1 -1
  311. package/src/components/NavigationMenu/NavigationMenu.test.tsx +19 -3
  312. package/src/components/NavigationMenu/NavigationMenu.tsx +9 -8
  313. package/src/components/OrganisationSelector/OrganisationSelector.tsx +4 -3
  314. package/src/components/PaceAppLayout/PaceAppLayout.tsx +14 -12
  315. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +0 -16
  316. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +76 -10
  317. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +0 -1
  318. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -9
  319. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +35 -3
  320. package/src/components/PaceLoginPage/PaceLoginPage.tsx +14 -13
  321. package/src/components/PasswordReset/PasswordChangeForm.tsx +1 -1
  322. package/src/components/PasswordReset/index.ts +0 -2
  323. package/src/components/Progress/Progress.tsx +1 -1
  324. package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +35 -8
  325. package/src/components/ProtectedRoute/ProtectedRoute.tsx +3 -2
  326. package/src/components/PublicLayout/PublicErrorBoundary.tsx +1 -1
  327. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +1 -1
  328. package/src/components/PublicLayout/PublicPageContextChecker.tsx +44 -43
  329. package/src/components/PublicLayout/PublicPageFooter.tsx +1 -1
  330. package/src/components/PublicLayout/PublicPageHeader.tsx +1 -15
  331. package/src/components/PublicLayout/PublicPageProvider.tsx +3 -2
  332. package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +2 -0
  333. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +1 -1
  334. package/src/components/PublicLayout/index.ts +4 -2
  335. package/src/components/Select/Select.test.tsx +1 -1
  336. package/src/components/Select/Select.tsx +21 -9
  337. package/src/components/{SessionRestorationLoader.tsx → SessionRestorationLoader/SessionRestorationLoader.tsx} +3 -2
  338. package/src/components/SessionRestorationLoader/index.ts +3 -0
  339. package/src/components/Switch/Switch.tsx +1 -1
  340. package/src/components/Table/Table.tsx +1 -1
  341. package/src/components/Table/__tests__/Table.test.tsx +1 -1
  342. package/src/components/Toast/Toast.tsx +1 -1
  343. package/src/components/Tooltip/Tooltip.tsx +1 -1
  344. package/src/components/index.ts +7 -10
  345. package/src/hooks/__tests__/hooks.integration.test.tsx +37 -22
  346. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +33 -17
  347. package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +28 -3
  348. package/src/hooks/__tests__/useFileDisplay.unit.test.ts +36 -9
  349. package/src/hooks/__tests__/useFileUrl.unit.test.ts +83 -85
  350. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +26 -2
  351. package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +19 -6
  352. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +17 -4
  353. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +17 -4
  354. package/src/hooks/__tests__/usePublicEvent.simple.test.ts +26 -6
  355. package/src/hooks/__tests__/usePublicFileDisplay.test.ts +16 -6
  356. package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +3 -3
  357. package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +17 -3
  358. package/src/hooks/public/usePublicEvent.ts +7 -6
  359. package/src/hooks/public/usePublicEventLogo.ts +7 -4
  360. package/src/hooks/public/usePublicFileDisplay.ts +6 -150
  361. package/src/hooks/useComponentPerformance.ts +4 -1
  362. package/src/hooks/useDataTablePerformance.ts +4 -3
  363. package/src/hooks/useEventTheme.test.ts +18 -5
  364. package/src/hooks/useEventTheme.ts +4 -1
  365. package/src/hooks/useEvents.ts +2 -0
  366. package/src/hooks/useFileDisplay.ts +9 -8
  367. package/src/hooks/useFileReference.ts +4 -1
  368. package/src/hooks/useFileUrl.ts +4 -1
  369. package/src/hooks/useInactivityTracker.ts +5 -4
  370. package/src/hooks/useOrganisationSecurity.test.ts +33 -12
  371. package/src/hooks/useOrganisationSecurity.ts +8 -7
  372. package/src/hooks/usePerformanceMonitor.ts +6 -3
  373. package/src/hooks/usePermissionCache.ts +13 -6
  374. package/src/hooks/useSecureDataAccess.test.ts +2 -2
  375. package/src/hooks/useSecureDataAccess.ts +9 -8
  376. package/src/hooks/useSessionRestoration.ts +4 -1
  377. package/src/hooks/useStorage.ts +4 -1
  378. package/src/index.ts +20 -7
  379. package/src/providers/services/AuthServiceProvider.tsx +3 -2
  380. package/src/providers/services/EventServiceProvider.tsx +2 -1
  381. package/src/providers/services/InactivityServiceProvider.tsx +2 -1
  382. package/src/providers/services/OrganisationServiceProvider.tsx +2 -1
  383. package/src/providers/services/UnifiedAuthProvider.tsx +4 -3
  384. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +22 -2
  385. package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +24 -2
  386. package/src/rbac/__tests__/cache-invalidation.test.ts +20 -6
  387. package/src/rbac/api.ts +5 -2
  388. package/src/rbac/audit-enhanced.ts +6 -6
  389. package/src/rbac/audit.test.ts +60 -38
  390. package/src/rbac/audit.ts +8 -8
  391. package/src/rbac/cache-invalidation.ts +7 -4
  392. package/src/rbac/components/EnhancedNavigationMenu.tsx +11 -5
  393. package/src/rbac/components/NavigationGuard.tsx +7 -3
  394. package/src/rbac/components/NavigationProvider.tsx +6 -3
  395. package/src/rbac/components/PagePermissionGuard.tsx +28 -16
  396. package/src/rbac/components/PagePermissionProvider.tsx +4 -1
  397. package/src/rbac/components/PermissionEnforcer.tsx +9 -3
  398. package/src/rbac/components/RoleBasedRouter.tsx +3 -1
  399. package/src/rbac/components/SecureDataProvider.tsx +7 -3
  400. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +87 -61
  401. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +83 -33
  402. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +36 -13
  403. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +2 -2
  404. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +22 -8
  405. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +19 -6
  406. package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +43 -17
  407. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +42 -17
  408. package/src/rbac/engine.ts +15 -7
  409. package/src/rbac/hooks/usePermissions.ts +7 -3
  410. package/src/rbac/hooks/useResolvedScope.test.ts +2 -2
  411. package/src/rbac/hooks/useResolvedScope.ts +10 -7
  412. package/src/rbac/permissions.ts +5 -2
  413. package/src/rbac/security.test.ts +27 -16
  414. package/src/rbac/security.ts +5 -4
  415. package/src/services/AuthService.ts +22 -21
  416. package/src/services/EventService.ts +12 -12
  417. package/src/services/InactivityService.ts +5 -4
  418. package/src/services/OrganisationService.ts +26 -25
  419. package/src/services/__tests__/AuthService.test.ts +51 -19
  420. package/src/services/__tests__/EventService.test.ts +37 -5
  421. package/src/services/__tests__/InactivityService.test.ts +38 -4
  422. package/src/services/__tests__/OrganisationService.test.ts +3 -8
  423. package/src/services/base/BaseService.ts +3 -1
  424. package/src/styles/core.css +3 -0
  425. package/src/theming/__tests__/runtime.test.ts +21 -12
  426. package/src/theming/parseEventColours.ts +5 -19
  427. package/src/theming/runtime.ts +8 -4
  428. package/src/types/validation.ts +2 -29
  429. package/src/utils/__tests__/appConfig.unit.test.ts +1 -1
  430. package/src/utils/__tests__/audit.unit.test.ts +1 -1
  431. package/src/utils/__tests__/auth-utils.unit.test.ts +1 -1
  432. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +19 -19
  433. package/src/utils/__tests__/cn.unit.test.ts +1 -1
  434. package/src/utils/__tests__/debugLogger.test.ts +1 -1
  435. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +1 -1
  436. package/src/utils/__tests__/dynamicUtils.unit.test.ts +1 -1
  437. package/src/utils/__tests__/formatting.unit.test.ts +1 -1
  438. package/src/utils/__tests__/lazyLoad.unit.test.tsx +1 -1
  439. package/src/utils/__tests__/logger.unit.test.ts +1 -1
  440. package/src/utils/__tests__/organisationContext.unit.test.ts +1 -1
  441. package/src/utils/__tests__/performanceBenchmark.test.ts +1 -1
  442. package/src/utils/__tests__/performanceBudgets.unit.test.ts +1 -1
  443. package/src/utils/__tests__/permissionTypes.unit.test.ts +1 -1
  444. package/src/utils/__tests__/permissionUtils.unit.test.ts +1 -1
  445. package/src/utils/__tests__/sanitization.unit.test.ts +1 -1
  446. package/src/utils/__tests__/schemaUtils.unit.test.ts +1 -1
  447. package/src/utils/__tests__/secureDataAccess.unit.test.ts +1 -1
  448. package/src/utils/__tests__/secureErrors.unit.test.ts +33 -15
  449. package/src/utils/__tests__/secureStorage.unit.test.ts +1 -1
  450. package/src/utils/__tests__/security.unit.test.ts +40 -18
  451. package/src/utils/__tests__/securityMonitor.unit.test.ts +1 -1
  452. package/src/utils/__tests__/sessionTracking.unit.test.ts +40 -29
  453. package/src/utils/__tests__/validationUtils.unit.test.ts +19 -6
  454. package/src/utils/app/appConfig.ts +47 -0
  455. package/src/utils/app/appIdResolver.test.ts +497 -0
  456. package/src/utils/app/appIdResolver.ts +133 -0
  457. package/src/utils/app/appNameResolver.simple.test.ts +212 -0
  458. package/src/utils/app/appNameResolver.test.ts +121 -0
  459. package/src/utils/app/appNameResolver.ts +195 -0
  460. package/src/utils/audit/audit.ts +127 -0
  461. package/src/utils/context/organisationContext.test.ts +322 -0
  462. package/src/utils/context/organisationContext.ts +156 -0
  463. package/src/utils/context/sessionTracking.ts +125 -0
  464. package/src/utils/core/cn.ts +7 -0
  465. package/src/utils/core/debugLogger.ts +67 -0
  466. package/src/utils/core/logger.ts +181 -0
  467. package/src/utils/device/deviceFingerprint.ts +215 -0
  468. package/src/utils/dynamic/dynamicUtils.ts +105 -0
  469. package/src/utils/dynamic/lazyLoad.tsx +44 -0
  470. package/src/utils/file-reference/__tests__/file-reference.test.ts +788 -0
  471. package/src/utils/file-reference/index.ts +501 -0
  472. package/src/utils/formatting/formatDate.test.ts +237 -0
  473. package/src/utils/formatting/formatting.ts +133 -0
  474. package/src/utils/index.ts +39 -54
  475. package/src/utils/performance/bundleAnalysis.ts +129 -0
  476. package/src/utils/performance/performanceBenchmark.ts +64 -0
  477. package/src/utils/performance/performanceBudgets.ts +110 -0
  478. package/src/utils/permissions/permissionTypes.ts +37 -0
  479. package/src/utils/permissions/permissionUtils.test.ts +393 -0
  480. package/src/utils/permissions/permissionUtils.ts +34 -0
  481. package/src/utils/security/auth-utils.ts +96 -0
  482. package/src/utils/security/secureDataAccess.test.ts +711 -0
  483. package/src/utils/security/secureDataAccess.ts +377 -0
  484. package/src/utils/security/secureErrors.ts +82 -0
  485. package/src/utils/security/secureStorage.ts +244 -0
  486. package/src/utils/security/security.ts +159 -0
  487. package/src/utils/security/securityMonitor.ts +45 -0
  488. package/src/utils/storage/__tests__/helpers.unit.test.ts +1 -4
  489. package/src/utils/storage/helpers.ts +15 -8
  490. package/src/utils/validation/__tests__/htmlSanitization.unit.test.ts +598 -0
  491. package/src/{validation → utils/validation}/csrf.ts +1 -1
  492. package/src/utils/validation/htmlSanitization.ts +184 -0
  493. package/src/utils/validation/index.ts +79 -0
  494. package/src/utils/validation/sanitization.ts +333 -0
  495. package/src/{validation/schemaUtils.ts → utils/validation/schema.ts} +11 -6
  496. package/src/{validation → utils/validation}/sqlInjectionProtection.ts +2 -0
  497. package/src/utils/validation/validation.ts +111 -0
  498. package/src/utils/validation/validationUtils.ts +123 -0
  499. package/src/validation/index.ts +3 -34
  500. package/dist/chunk-24MKLB7U.js +0 -81
  501. package/dist/chunk-24MKLB7U.js.map +0 -1
  502. package/dist/chunk-3CG5L6RN.js.map +0 -1
  503. package/dist/chunk-3DBFLLLU.js.map +0 -1
  504. package/dist/chunk-5F3NDPJV.js.map +0 -1
  505. package/dist/chunk-66C4BSAY.js.map +0 -1
  506. package/dist/chunk-BDZUMRBD.js +0 -87
  507. package/dist/chunk-BDZUMRBD.js.map +0 -1
  508. package/dist/chunk-BYXRHAIF.js.map +0 -1
  509. package/dist/chunk-CDQ3PX7L.js +0 -18
  510. package/dist/chunk-CDQ3PX7L.js.map +0 -1
  511. package/dist/chunk-CQZU6TFE.js.map +0 -1
  512. package/dist/chunk-F64FFPOZ.js.map +0 -1
  513. package/dist/chunk-GEVIB2UB.js.map +0 -1
  514. package/dist/chunk-GKHF54DI.js.map +0 -1
  515. package/dist/chunk-GVDR7WNV.js.map +0 -1
  516. package/dist/chunk-HMNOSGVA.js.map +0 -1
  517. package/dist/chunk-JCQZ6LA7.js.map +0 -1
  518. package/dist/chunk-M6DDYFUD.js.map +0 -1
  519. package/dist/chunk-O3NWNXDY.js.map +0 -1
  520. package/dist/chunk-PYUXFQJ3.js.map +0 -1
  521. package/dist/chunk-UJI6WSMD.js.map +0 -1
  522. package/dist/chunk-VZ5OR6HD.js.map +0 -1
  523. package/dist/chunk-WP5I5GLN.js.map +0 -1
  524. package/dist/chunk-ZYZCRSBD.js.map +0 -1
  525. package/dist/validation-DnhrNMju.d.ts +0 -159
  526. package/src/components/PublicLayout/__tests__/PublicPageDebugger.test.tsx +0 -185
  527. package/src/validation/__tests__/common.unit.test.ts +0 -101
  528. package/src/validation/__tests__/csrf.unit.test.ts +0 -365
  529. package/src/validation/__tests__/passwordSchema.unit.test.ts +0 -203
  530. package/src/validation/__tests__/sanitization.unit.test.ts +0 -250
  531. package/src/validation/__tests__/schemaUtils.unit.test.ts +0 -451
  532. package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +0 -462
  533. package/src/validation/__tests__/user.unit.test.ts +0 -440
  534. package/src/validation/sanitization.ts +0 -96
  535. /package/dist/{DataTable-A36PJG6N.js.map → DataTable-6M4L6BI2.js.map} +0 -0
  536. /package/dist/{UnifiedAuthProvider-CQDZRJIS.js.map → UnifiedAuthProvider-XIQQ7LVU.js.map} +0 -0
  537. /package/dist/{api-TNIBJWLM.js.map → api-45XYYO2A.js.map} +0 -0
  538. /package/dist/{audit-T36HM7IM.js.map → audit-64X3VJXB.js.map} +0 -0
  539. /package/dist/{chunk-CTJRBUX2.js.map → chunk-6LAAY47Q.js.map} +0 -0
  540. /package/dist/{chunk-ZV77RZMU.js.map → chunk-INQLMHPF.js.map} +0 -0
  541. /package/dist/{useInactivityTracker-MRUU55XI.js.map → useInactivityTracker-TO6ZOF35.js.map} +0 -0
  542. /package/src/{validation → utils/validation}/common.ts +0 -0
  543. /package/src/{validation → utils/validation}/passwordSchema.ts +0 -0
  544. /package/src/{validation → utils/validation}/user.ts +0 -0
@@ -25,11 +25,13 @@ import {
25
25
  announceSearchResults,
26
26
  announceSelectionChange,
27
27
  announceSortChange,
28
+ average,
28
29
  calculateAllDepths,
29
30
  calculateAllIndentation,
30
31
  calculateIndentation,
31
32
  calculateOptimalPageSize,
32
33
  cleanupLiveRegion,
34
+ count,
33
35
  createHierarchicalStructure,
34
36
  defaultDataTableFeatures,
35
37
  exportToCSV,
@@ -37,6 +39,7 @@ import {
37
39
  generateCSVContent,
38
40
  getAriaSortValue,
39
41
  getCellRenderer,
42
+ getColumnHeaderText,
40
43
  getHierarchicalSortConfig,
41
44
  getPageSizeOptions,
42
45
  getPaginationBinding,
@@ -48,16 +51,19 @@ import {
48
51
  hasValidRowId,
49
52
  initializeLiveRegion,
50
53
  isHierarchicalSortableColumn,
54
+ max,
55
+ min,
51
56
  normalizeDataTableFeatures,
52
57
  shouldShowColumnForRow,
53
58
  sortHierarchicalDataByStructure,
54
59
  sortHierarchicalDataWithSorting,
60
+ sum,
55
61
  validateHierarchicalData,
56
62
  validatePaginationConfig
57
- } from "./chunk-GVDR7WNV.js";
58
- import "./chunk-BYXRHAIF.js";
59
- import "./chunk-WP5I5GLN.js";
60
- import "./chunk-3DBFLLLU.js";
63
+ } from "./chunk-HAWZXGR2.js";
64
+ import "./chunk-BLCXZEYF.js";
65
+ import "./chunk-BVYWGZVV.js";
66
+ import "./chunk-SBVILCCA.js";
61
67
  import {
62
68
  CircuitBreaker,
63
69
  DEFAULT_FALLBACK_CONFIG,
@@ -75,14 +81,15 @@ import {
75
81
  safeExecute,
76
82
  throttle,
77
83
  useDataTablePerformance
78
- } from "./chunk-GKHF54DI.js";
79
- import "./chunk-TGIY2AR2.js";
80
- import "./chunk-CTJRBUX2.js";
81
- import "./chunk-3CG5L6RN.js";
82
- import "./chunk-JCQZ6LA7.js";
83
- import "./chunk-PYUXFQJ3.js";
84
- import "./chunk-BDZUMRBD.js";
85
- import "./chunk-UJI6WSMD.js";
84
+ } from "./chunk-BESYRHQM.js";
85
+ import "./chunk-MA6EPSGZ.js";
86
+ import "./chunk-6LAAY47Q.js";
87
+ import "./chunk-YCWDTTUK.js";
88
+ import "./chunk-OWAG3GSU.js";
89
+ import "./chunk-Q5QRDWKI.js";
90
+ import "./chunk-56XJ3TU6.js";
91
+ import "./chunk-7QCC6MCP.js";
92
+ import "./chunk-XDNLUEXI.js";
86
93
  import "./chunk-PLDDJCW6.js";
87
94
  export {
88
95
  ActionButtons,
@@ -120,12 +127,14 @@ export {
120
127
  announceSearchResults,
121
128
  announceSelectionChange,
122
129
  announceSortChange,
130
+ average,
123
131
  calculateAllDepths,
124
132
  calculateAllIndentation,
125
133
  calculateIndentation,
126
134
  calculateOptimalPageSize,
127
135
  chunkData,
128
136
  cleanupLiveRegion,
137
+ count,
129
138
  createHierarchicalStructure,
130
139
  debounce,
131
140
  defaultDataTableFeatures,
@@ -135,6 +144,7 @@ export {
135
144
  generateCSVContent,
136
145
  getAriaSortValue,
137
146
  getCellRenderer,
147
+ getColumnHeaderText,
138
148
  getHierarchicalSortConfig,
139
149
  getOptimalPageSizeOptions,
140
150
  getPageSizeOptions,
@@ -147,14 +157,17 @@ export {
147
157
  hasValidRowId,
148
158
  initializeLiveRegion,
149
159
  isHierarchicalSortableColumn,
160
+ max,
161
+ min,
150
162
  normalizeDataTableFeatures,
151
163
  safeExecute,
152
164
  shouldShowColumnForRow,
153
165
  sortHierarchicalDataByStructure,
154
166
  sortHierarchicalDataWithSorting,
167
+ sum,
155
168
  throttle,
156
169
  useDataTablePerformance,
157
170
  validateHierarchicalData,
158
171
  validatePaginationConfig
159
172
  };
160
- //# sourceMappingURL=DataTable-A36PJG6N.js.map
173
+ //# sourceMappingURL=DataTable-6M4L6BI2.js.map
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { D as DataRecord, a as DataTableColumn, b as DataTableRBACConfig, c as DataTableFeatureConfig, H as HierarchicalConfig, P as PerformanceConfig, S as ServerSideConfig, d as PaginationMode, C as ChunkingConfig, e as SearchIndexConfig, E as ExportOptions, G as GetRowId, f as EmptyStateConfig, A as AggregateConfig, g as DataTableAction } from './types-D5rqZQXk.js';
2
+ import { c as DataRecord, D as DataTableColumn, d as DataTableRBACConfig, e as DataTableFeatureConfig, H as HierarchicalConfig, P as PerformanceConfig, S as ServerSideConfig, f as PaginationMode, C as ChunkingConfig, g as SearchIndexConfig, h as ExportOptions, G as GetRowId, E as EmptyStateConfig, A as AggregateConfig, a as DataTableAction } from './types-Dfz9dmVH.js';
3
3
  import React__default from 'react';
4
4
 
5
5
  /**
@@ -14,7 +14,7 @@ import { z } from 'zod';
14
14
  import { User, SupabaseClient, createClient } from '@supabase/supabase-js';
15
15
  import { E as Event } from './unified-DQ4VcT7H.js';
16
16
  import { O as Organisation } from './organisation-D6qRDtbF.js';
17
- import { b as FileCategory, e as FileUploadResult, U as UploadProgress, c as FileUploadOptions, F as FileReference } from './file-reference-C9isKNPn.js';
17
+ import { F as FileCategory, e as FileUploadResult, U as UploadProgress, c as FileUploadOptions, a as FileReference } from './file-reference-C6Gkn77H.js';
18
18
 
19
19
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
20
20
  /** Visual variant of the button */
@@ -421,6 +421,77 @@ declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.Avata
421
421
  declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
422
422
  declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
423
423
 
424
+ /**
425
+ * @file Badge Component
426
+ * @package @jmruthers/pace-core
427
+ * @module Components
428
+ * @since 0.1.0
429
+ *
430
+ * A small, non-interactive visual label component for displaying concise information
431
+ * such as status indicators, tags, or labels. Acts as a visual alternative to buttons
432
+ * for non-interactive content.
433
+ *
434
+ * Features:
435
+ * - 27 combined variants (3 styles × 3 colors × 3 shades)
436
+ * - Non-interactive by default (renders as <span>)
437
+ * - Supports all pace-core color palettes (main, sec, acc)
438
+ * - Customizable styling via className prop
439
+ * - Accessible and screen reader friendly
440
+ *
441
+ * @example
442
+ * ```tsx
443
+ * // Basic badge with default variant
444
+ * <Badge>New</Badge>
445
+ *
446
+ * // Badge with specific variant
447
+ * <Badge variant="solid-main-normal">Active</Badge>
448
+ *
449
+ * // Outline variant
450
+ * <Badge variant="outline-sec-muted">Pending</Badge>
451
+ *
452
+ * // Soft variant with accent color
453
+ * <Badge variant="soft-acc-strong">Featured</Badge>
454
+ *
455
+ * // Custom styling
456
+ * <Badge variant="solid-main-normal" className="px-4">
457
+ * Custom Badge
458
+ * </Badge>
459
+ * ```
460
+ *
461
+ * @accessibility
462
+ * - Renders as semantic <span> element
463
+ * - No focus styles (non-interactive by default)
464
+ * - Screen reader friendly through semantic HTML
465
+ * - Can be wrapped in interactive elements if needed
466
+ */
467
+
468
+ type BadgeVariant = 'solid-main-muted' | 'solid-main-normal' | 'solid-main-strong' | 'solid-sec-muted' | 'solid-sec-normal' | 'solid-sec-strong' | 'solid-acc-muted' | 'solid-acc-normal' | 'solid-acc-strong' | 'outline-main-muted' | 'outline-main-normal' | 'outline-main-strong' | 'outline-sec-muted' | 'outline-sec-normal' | 'outline-sec-strong' | 'outline-acc-muted' | 'outline-acc-normal' | 'outline-acc-strong' | 'soft-main-muted' | 'soft-main-normal' | 'soft-main-strong' | 'soft-sec-muted' | 'soft-sec-normal' | 'soft-sec-strong' | 'soft-acc-muted' | 'soft-acc-normal' | 'soft-acc-strong';
469
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
470
+ /** Visual variant of the badge (style-color-shade) */
471
+ variant?: BadgeVariant;
472
+ }
473
+ /**
474
+ * Badge Component
475
+ * A small, non-interactive visual label for displaying concise information.
476
+ *
477
+ * @component
478
+ * @example
479
+ * ```tsx
480
+ * // Default variant
481
+ * <Badge>New</Badge>
482
+ *
483
+ * // Specific variant
484
+ * <Badge variant="solid-main-normal">Active</Badge>
485
+ *
486
+ * // Outline variant
487
+ * <Badge variant="outline-sec-muted">Pending</Badge>
488
+ *
489
+ * // Soft variant
490
+ * <Badge variant="soft-acc-strong">Featured</Badge>
491
+ * ```
492
+ */
493
+ declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
494
+
424
495
  /**
425
496
  * @file Checkbox Component
426
497
  * @package @jmruthers/pace-core
@@ -895,6 +966,7 @@ interface UseSelectStateProps {
895
966
  interface SelectProps extends Omit<React.HTMLAttributes<HTMLFormElement>, 'onChange' | 'onKeyDown' | 'onFocus' | 'onBlur'> {
896
967
  children: React.ReactNode;
897
968
  className?: string;
969
+ direction?: 'up' | 'down';
898
970
  }
899
971
  interface SelectTriggerProps extends Omit<ButtonProps, 'onClick' | 'onKeyDown'> {
900
972
  children: React.ReactNode;
@@ -2783,7 +2855,7 @@ declare const LoadingSpinner: React__default.FC<LoadingSpinnerProps>;
2783
2855
  /**
2784
2856
  * @file SessionRestorationLoader Component
2785
2857
  * @package @jmruthers/pace-core
2786
- * @module Components
2858
+ * @module Components/SessionRestorationLoader
2787
2859
  * @since 0.1.0
2788
2860
  *
2789
2861
  * Displays a consistent loading state while the authentication service
@@ -2862,92 +2934,6 @@ interface OrganisationSelectorProps {
2862
2934
  */
2863
2935
  declare function OrganisationSelector({ placeholder, className, onOrganisationChange, showNoOrganisationsMessage, showRetryButton, showRole, compact, disabled }: OrganisationSelectorProps): react_jsx_runtime.JSX.Element | null;
2864
2936
 
2865
- /**
2866
- * @file Password Reset Form Component
2867
- * @package @jmruthers/pace-core
2868
- * @module Components/PasswordReset
2869
- * @since 0.1.0
2870
- *
2871
- * A comprehensive password reset form component that handles email-based password recovery
2872
- * with proper validation, loading states, and success feedback.
2873
- *
2874
- * Features:
2875
- * - Email validation and submission
2876
- * - Loading states with disabled form
2877
- * - Success state with confirmation message
2878
- * - Error handling and display
2879
- * - Resend functionality
2880
- * - Accessibility compliant
2881
- * - Responsive design
2882
- * - Integration with UnifiedAuthProvider
2883
- * - Form validation
2884
- * - Success and error callbacks
2885
- *
2886
- * @example
2887
- * ```tsx
2888
- * // Basic password reset form
2889
- * <PasswordResetForm
2890
- * onSuccess={() => {
2891
- * toast.success('Password reset email sent!');
2892
- * }}
2893
- * onError={(error) => {
2894
- * toast.error(`Failed to send reset email: ${error.message}`);
2895
- * }}
2896
- * />
2897
- *
2898
- * // Password reset form with custom styling
2899
- * <PasswordResetForm
2900
- * className="max-w-md mx-auto p-6 bg-main-50 rounded-lg shadow-md"
2901
- * onSuccess={() => {
2902
- * console.log('Reset email sent successfully');
2903
- * navigate('/check-email');
2904
- * }}
2905
- * onError={(error) => {
2906
- * console.error('Password reset failed:', error);
2907
- * }}
2908
- * />
2909
- *
2910
- * // Password reset form in a modal
2911
- * <Modal isOpen={showResetForm} onClose={() => setShowResetForm(false)}>
2912
- * <ModalContent>
2913
- * <PasswordResetForm
2914
- * onSuccess={() => {
2915
- * setShowResetForm(false);
2916
- * toast.success('Check your email for reset instructions');
2917
- * }}
2918
- * onError={(error) => {
2919
- * toast.error(error.message);
2920
- * }}
2921
- * />
2922
- * </ModalContent>
2923
- * </Modal>
2924
- * ```
2925
- *
2926
- * @accessibility
2927
- * - WCAG 2.1 AA compliant
2928
- * - Proper form labels and associations
2929
- * - Screen reader friendly error messages
2930
- * - Keyboard navigation support
2931
- * - Focus management
2932
- * - High contrast support
2933
- * - Clear error identification
2934
- * - Role="alert" for error announcements
2935
- *
2936
- * @dependencies
2937
- * - React 18+ - Hooks and state
2938
- * - UnifiedAuthProvider - Authentication context
2939
- * - Button component
2940
- * - Input component
2941
- * - Label component
2942
- * - Tailwind CSS - Styling
2943
- */
2944
- interface PasswordResetFormProps {
2945
- onSuccess?: () => void;
2946
- onError?: (error: Error) => void;
2947
- className?: string;
2948
- }
2949
- declare function PasswordResetForm({ onSuccess, onError, className }: PasswordResetFormProps): react_jsx_runtime.JSX.Element;
2950
-
2951
2937
  interface FileUploadProps {
2952
2938
  supabase: SupabaseClient;
2953
2939
  table_name: string;
@@ -3403,52 +3389,6 @@ interface PublicPageFooterProps {
3403
3389
  */
3404
3390
  declare function PublicPageFooter({ event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
3405
3391
 
3406
- /**
3407
- * @file Public Page Debugger
3408
- * @package @jmruthers/pace-core
3409
- * @module Components/PublicLayout
3410
- * @since 1.0.0
3411
- *
3412
- * A debugging component that helps identify why authentication context
3413
- * is being triggered in public pages.
3414
- */
3415
- interface PublicPageDebuggerProps {
3416
- /** Whether to enable debugging */
3417
- enabled?: boolean;
3418
- /** Custom label for this debugger instance */
3419
- label?: string;
3420
- }
3421
- /**
3422
- * Debugger component that logs context information
3423
- *
3424
- * This component helps identify why authentication context
3425
- * is being triggered in public pages.
3426
- */
3427
- declare function PublicPageDebugger({ enabled, label }: PublicPageDebuggerProps): react_jsx_runtime.JSX.Element | null;
3428
-
3429
- /**
3430
- * @file Public Page Diagnostic Component
3431
- * @package @jmruthers/pace-core
3432
- * @module Components/PublicLayout
3433
- * @since 1.0.0
3434
- *
3435
- * A diagnostic component that helps identify exactly where authentication
3436
- * context is being triggered in public pages.
3437
- */
3438
- interface PublicPageDiagnosticProps {
3439
- /** Whether to enable diagnostics */
3440
- enabled?: boolean;
3441
- /** Custom label for this diagnostic instance */
3442
- label?: string;
3443
- }
3444
- /**
3445
- * Diagnostic component that identifies authentication context issues
3446
- *
3447
- * This component will help you identify exactly where the problem is
3448
- * in your public page implementation.
3449
- */
3450
- declare function PublicPageDiagnostic({ enabled, label }: PublicPageDiagnosticProps): react_jsx_runtime.JSX.Element | null;
3451
-
3452
3392
  /**
3453
3393
  * @file Public Page Context Checker
3454
3394
  * @package @jmruthers/pace-core
@@ -3469,6 +3409,8 @@ interface PublicPageContextCheckerProps {
3469
3409
  *
3470
3410
  * This component will immediately log to console if authentication context
3471
3411
  * is being triggered in a public page.
3412
+ *
3413
+ * Only enabled in development mode when VITE_ENABLE_DEBUG_LOGS is 'true'
3472
3414
  */
3473
3415
  declare function PublicPageContextChecker({ enabled, label }: PublicPageContextCheckerProps): react_jsx_runtime.JSX.Element | null;
3474
3416
 
@@ -3600,4 +3542,50 @@ declare function PublicLoadingSkeleton({ lines, className }: {
3600
3542
  className?: string;
3601
3543
  }): react_jsx_runtime.JSX.Element;
3602
3544
 
3603
- export { Select as $, Alert as A, Button as B, Card as C, Dialog as D, DialogOverlay as E, DialogTrigger as F, DialogClose as G, DialogContent as H, Input as I, DialogHeader as J, DialogBody as K, Label as L, DialogFooter as M, DialogTitle as N, DialogDescription as O, Progress as P, type DialogProps as Q, type DialogTriggerProps as R, Switch as S, Table as T, type DialogContentProps as U, type DialogOverlayProps as V, type DialogHeaderProps as W, type DialogFooterProps as X, type DialogTitleProps as Y, type DialogDescriptionProps as Z, type DialogSize as _, type ButtonProps as a, PublicPageDiagnostic as a$, SelectGroup as a0, SelectValue as a1, SelectTrigger as a2, SelectContent as a3, SelectLabel as a4, SelectItem as a5, SelectSeparator as a6, Toast as a7, Toaster as a8, ToastAction as a9, UserMenu as aA, ErrorBoundary as aB, type ErrorBoundaryProps as aC, type ErrorBoundaryState as aD, LoadingSpinner as aE, SessionRestorationLoader as aF, EventSelector as aG, PasswordResetForm as aH, FileUpload as aI, type FileUploadProps as aJ, FileDisplay as aK, type FileDisplayProps as aL, useFileReference as aM, useFileReferenceForRecord as aN, useFileReferenceById as aO, useFilesByCategory as aP, type UseFileReferenceOptions as aQ, type UseFileReferenceReturn as aR, type UseFileReferenceForRecordReturn as aS, PublicPageLayout as aT, usePublicPageContext$1 as aU, PublicPageHeader as aV, PublicPageProvider as aW, usePublicPageContext as aX, useIsPublicPage as aY, PublicPageFooter as aZ, PublicPageDebugger as a_, ToastProvider as aa, ToastViewport as ab, ToastTitle as ac, ToastDescription as ad, ToastClose as ae, type ToastActionElement as af, type ToastProps as ag, Tooltip as ah, TooltipTrigger as ai, TooltipContent as aj, TooltipProvider as ak, TooltipRoot as al, Form as am, type FormProps as an, LoginForm as ao, type LoginFormProps as ap, Header as aq, Footer as ar, type FooterProps as as, ProtectedRoute as at, type ProtectedRouteProps as au, NavigationMenu as av, type NavigationMenuProps as aw, type NavigationItem as ax, OrganisationSelector as ay, type OrganisationSelectorProps as az, CardHeader as b, PublicPageContextChecker as b0, PublicErrorBoundary as b1, useErrorBoundary as b2, DefaultPublicErrorFallback as b3, PublicLoadingSpinner as b4, PublicLoadingSpinnerFullPage as b5, PublicLoadingSkeleton as b6, type PublicPageLayoutProps as b7, type PublicPageHeaderProps as b8, type PublicPageFooterProps as b9, type PublicErrorBoundaryProps as ba, type PublicErrorBoundaryState as bb, type PublicLoadingSpinnerProps as bc, type PaceAppLayoutProps as bd, PaceAppLayout as be, type PaceLoginPageProps as bf, PaceLoginPage as bg, type UserMenuProps as bh, 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, AlertTitle as l, AlertDescription as m, Avatar as n, AvatarImage as o, AvatarFallback as p, Checkbox as q, type SwitchProps as r, TableHeader as s, TableBody as t, TableCaption as u, TableCell as v, TableFooter as w, TableHead as x, TableRow as y, DialogPortal as z };
3545
+ interface EventLogoProps {
3546
+ /** The event ID to fetch logo for */
3547
+ eventId: string;
3548
+ /** The event name for fallback text generation */
3549
+ eventName: string;
3550
+ /** The organisation ID for storage path */
3551
+ organisationId: string;
3552
+ /** Logo size variant */
3553
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
3554
+ /** Custom CSS classes */
3555
+ className?: string;
3556
+ /** Whether to show fallback text when no logo is available */
3557
+ showFallback?: boolean;
3558
+ /** Custom fallback text generator */
3559
+ generateFallbackText?: (eventName: string) => string;
3560
+ /** Whether to validate image existence (deprecated - FileDisplay handles this) */
3561
+ validateImage?: boolean;
3562
+ /** Custom loading component */
3563
+ loadingComponent?: React__default.ComponentType;
3564
+ /** Custom error component */
3565
+ errorComponent?: React__default.ComponentType<{
3566
+ error: Error;
3567
+ }>;
3568
+ }
3569
+ /**
3570
+ * Component for displaying event logos with fallback to initials
3571
+ *
3572
+ * This component is context-aware and automatically detects whether it's being used
3573
+ * in a public or authenticated context. It uses FileDisplay internally to fetch and
3574
+ * display event logos from storage, with automatic fallback to event initials if no
3575
+ * logo is available.
3576
+ *
3577
+ * @param props - Logo configuration and styling
3578
+ * @returns React element with event logo or fallback
3579
+ */
3580
+ declare function EventLogo({ eventId, eventName, organisationId, size, className, showFallback, generateFallbackText, validateImage, // Deprecated but kept for backward compatibility
3581
+ loadingComponent: LoadingComponent, errorComponent: ErrorComponent }: EventLogoProps): react_jsx_runtime.JSX.Element;
3582
+ /**
3583
+ * Compact event logo for small spaces
3584
+ */
3585
+ declare function EventLogoCompact(props: EventLogoProps): react_jsx_runtime.JSX.Element;
3586
+ /**
3587
+ * Large event logo for prominent display
3588
+ */
3589
+ declare function EventLogoLarge(props: EventLogoProps): react_jsx_runtime.JSX.Element;
3590
+
3591
+ export { type DialogTitleProps as $, Alert as A, Button as B, Card as C, TableHead as D, TableRow as E, Dialog as F, DialogPortal as G, DialogOverlay as H, Input as I, DialogTrigger as J, DialogClose as K, Label as L, DialogContent as M, DialogHeader as N, DialogBody as O, Progress as P, DialogFooter as Q, DialogTitle as R, Switch as S, Table as T, DialogDescription as U, type DialogProps as V, type DialogTriggerProps as W, type DialogContentProps as X, type DialogOverlayProps as Y, type DialogHeaderProps as Z, type DialogFooterProps as _, type ButtonProps as a, useIsPublicPage as a$, type DialogDescriptionProps as a0, type DialogSize as a1, Select as a2, SelectGroup as a3, SelectValue as a4, SelectTrigger as a5, SelectContent as a6, SelectLabel as a7, SelectItem as a8, SelectSeparator as a9, type NavigationItem as aA, OrganisationSelector as aB, type OrganisationSelectorProps as aC, UserMenu as aD, ErrorBoundary as aE, type ErrorBoundaryProps as aF, type ErrorBoundaryState as aG, LoadingSpinner as aH, SessionRestorationLoader as aI, type SessionRestorationLoaderProps as aJ, EventSelector as aK, FileUpload as aL, type FileUploadProps as aM, FileDisplay as aN, type FileDisplayProps as aO, useFileReference as aP, useFileReferenceForRecord as aQ, useFileReferenceById as aR, useFilesByCategory as aS, type UseFileReferenceOptions as aT, type UseFileReferenceReturn as aU, type UseFileReferenceForRecordReturn as aV, PublicPageLayout as aW, usePublicPageContext$1 as aX, PublicPageHeader as aY, PublicPageProvider as aZ, usePublicPageContext as a_, Toast as aa, Toaster as ab, ToastAction as ac, ToastProvider as ad, ToastViewport as ae, ToastTitle as af, ToastDescription as ag, ToastClose as ah, type ToastActionElement as ai, type ToastProps as aj, Tooltip as ak, TooltipTrigger as al, TooltipContent as am, TooltipProvider as an, TooltipRoot as ao, Form as ap, type FormProps as aq, LoginForm as ar, type LoginFormProps as as, Header as at, Footer as au, type FooterProps as av, ProtectedRoute as aw, type ProtectedRouteProps as ax, NavigationMenu as ay, type NavigationMenuProps as az, CardHeader as b, PublicPageFooter as b0, PublicPageContextChecker as b1, PublicErrorBoundary as b2, useErrorBoundary as b3, DefaultPublicErrorFallback as b4, PublicLoadingSpinner as b5, PublicLoadingSpinnerFullPage as b6, PublicLoadingSkeleton as b7, EventLogo as b8, EventLogoCompact as b9, EventLogoLarge as ba, type EventLogoProps as bb, type PublicPageLayoutProps as bc, type PublicPageHeaderProps as bd, type PublicPageFooterProps as be, type PublicErrorBoundaryProps as bf, type PublicErrorBoundaryState as bg, type PublicLoadingSpinnerProps as bh, type PaceAppLayoutProps as bi, PaceAppLayout as bj, type PaceLoginPageProps as bk, PaceLoginPage as bl, type UserMenuProps as bm, 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, 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, TableHeader as v, TableBody as w, TableCaption as x, TableCell as y, TableFooter as z };
@@ -111,4 +111,4 @@ persistState, enablePersistence, requireOrganisationContext, idleTimeoutMs, // 3
111
111
  warnBeforeMs, // 60 seconds
112
112
  onIdleLogout, renderInactivityWarning, dangerouslyDisableInactivity }: UnifiedAuthProviderProps): react_jsx_runtime.JSX.Element;
113
113
 
114
- export { type UserEventAccess as U, type UnifiedAuthContextType as a, type UnifiedAuthProviderProps as b, UnifiedAuthProvider as c, useUnifiedAuth as u };
114
+ export { UnifiedAuthProvider as U, type UnifiedAuthProviderProps as a, type UnifiedAuthContextType as b, type UserEventAccess as c, useUnifiedAuth as u };
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  init_UnifiedAuthProvider
3
- } from "./chunk-CTJRBUX2.js";
3
+ } from "./chunk-6LAAY47Q.js";
4
4
  import {
5
5
  UnifiedAuthProvider,
6
6
  useUnifiedAuth
7
- } from "./chunk-3CG5L6RN.js";
8
- import "./chunk-BDZUMRBD.js";
9
- import "./chunk-UJI6WSMD.js";
7
+ } from "./chunk-YCWDTTUK.js";
8
+ import "./chunk-7QCC6MCP.js";
9
+ import "./chunk-XDNLUEXI.js";
10
10
  import "./chunk-PLDDJCW6.js";
11
11
  init_UnifiedAuthProvider();
12
12
  export {
13
13
  UnifiedAuthProvider,
14
14
  useUnifiedAuth
15
15
  };
16
- //# sourceMappingURL=UnifiedAuthProvider-CQDZRJIS.js.map
16
+ //# sourceMappingURL=UnifiedAuthProvider-XIQQ7LVU.js.map
@@ -20,8 +20,9 @@ import {
20
20
  isSuperAdmin,
21
21
  resolveAppContext,
22
22
  setupRBAC
23
- } from "./chunk-WP5I5GLN.js";
24
- import "./chunk-3DBFLLLU.js";
23
+ } from "./chunk-BVYWGZVV.js";
24
+ import "./chunk-SBVILCCA.js";
25
+ import "./chunk-XDNLUEXI.js";
25
26
  import "./chunk-PLDDJCW6.js";
26
27
  export {
27
28
  OrganisationContextRequiredError,
@@ -46,4 +47,4 @@ export {
46
47
  resolveAppContext,
47
48
  setupRBAC
48
49
  };
49
- //# sourceMappingURL=api-TNIBJWLM.js.map
50
+ //# sourceMappingURL=api-45XYYO2A.js.map
@@ -4,7 +4,8 @@ import {
4
4
  emitAuditEvent,
5
5
  getGlobalAuditManager,
6
6
  setGlobalAuditManager
7
- } from "./chunk-3DBFLLLU.js";
7
+ } from "./chunk-SBVILCCA.js";
8
+ import "./chunk-XDNLUEXI.js";
8
9
  import "./chunk-PLDDJCW6.js";
9
10
  export {
10
11
  RBACAuditManager,
@@ -13,4 +14,4 @@ export {
13
14
  getGlobalAuditManager,
14
15
  setGlobalAuditManager
15
16
  };
16
- //# sourceMappingURL=audit-T36HM7IM.js.map
17
+ //# sourceMappingURL=audit-64X3VJXB.js.map