@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
@@ -25,17 +25,20 @@ vi.mock('../../../rbac/hooks', () => ({
25
25
  }))
26
26
  }));
27
27
 
28
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
29
- useUnifiedAuth: vi.fn(() => ({
30
- user: {
31
- id: 'test-user',
32
- user_metadata: { organisationId: 'test-org' },
33
- app_metadata: { organisationId: 'test-org' },
34
- },
35
- selectedOrganisationId: 'test-org-id',
36
- selectedEventId: 'test-event-id',
37
- supabase: null,
38
- })),
28
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
29
+ user: {
30
+ id: 'test-user',
31
+ user_metadata: { organisationId: 'test-org' },
32
+ app_metadata: { organisationId: 'test-org' },
33
+ },
34
+ selectedOrganisation: { id: 'test-org-id' },
35
+ selectedEvent: { event_id: 'test-event-id' },
36
+ supabase: {},
37
+ }));
38
+
39
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
40
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
41
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
39
42
  }));
40
43
 
41
44
  // Test data interface
@@ -44,8 +44,10 @@ const mockUseCan = {
44
44
  };
45
45
 
46
46
  // Mock all the required modules
47
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
48
- useUnifiedAuth: () => mockUseUnifiedAuth
47
+ const mockUseUnifiedAuthFn = vi.fn(() => mockUseUnifiedAuth);
48
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
49
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
50
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
49
51
  }));
50
52
 
51
53
  vi.mock('../../../rbac/hooks', () => ({
@@ -27,13 +27,19 @@ vi.mock('../../../rbac/hooks', () => ({
27
27
  }));
28
28
 
29
29
  // Mock the auth provider
30
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
31
- useUnifiedAuth: vi.fn(() => ({
32
- user: { id: 'test-user', email: 'test@example.com' },
33
- isAuthenticated: true,
34
- isLoading: false,
35
- error: null,
36
- })),
30
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
31
+ user: { id: 'test-user', email: 'test@example.com' },
32
+ isAuthenticated: true,
33
+ isLoading: false,
34
+ error: null,
35
+ selectedOrganisation: { id: 'test-org' },
36
+ selectedEvent: { event_id: 'test-event' },
37
+ supabase: {},
38
+ }));
39
+
40
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
41
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
42
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
37
43
  }));
38
44
 
39
45
  // Mock the DataTableCore component to focus on DataTable logic
@@ -24,16 +24,19 @@ vi.mock('../../../rbac/hooks', () => ({
24
24
  }));
25
25
 
26
26
  // Mock the auth provider
27
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
28
- useUnifiedAuth: vi.fn(() => ({
29
- user: { id: 'test-user', email: 'test@example.com' },
30
- isAuthenticated: true,
31
- isLoading: false,
32
- error: null,
33
- selectedOrganisationId: 'test-org-id',
34
- selectedEventId: 'test-event-id',
35
- supabase: null,
36
- })),
27
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
28
+ user: { id: 'test-user', email: 'test@example.com' },
29
+ isAuthenticated: true,
30
+ isLoading: false,
31
+ error: null,
32
+ selectedOrganisation: { id: 'test-org-id' },
33
+ selectedEvent: { event_id: 'test-event-id' },
34
+ supabase: {},
35
+ }));
36
+
37
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
38
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
39
+ UnifiedAuthProvider: (props: { children: React.ReactNode }) => props.children,
37
40
  }));
38
41
 
39
42
  // Mock the performance hook
@@ -16,6 +16,7 @@ import { DataTableCore } from '../components/DataTableCore';
16
16
  import type { DataTableColumn } from '../types';
17
17
  import { createTestData, createTestColumns, testDataScenarios } from './test-utils/dataFactories';
18
18
  import { createDefaultFeatures, createReadOnlyFeatures, createFullFeatures } from './test-utils.ts';
19
+ import { renderWithProviders } from '../../../__tests__/helpers/test-utils';
19
20
 
20
21
  // Mock the RBAC hooks
21
22
  vi.mock('../../../rbac/hooks', () => ({
@@ -30,16 +31,19 @@ vi.mock('../../../rbac/hooks', () => ({
30
31
  }));
31
32
 
32
33
  // Mock the auth provider
33
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
34
- useUnifiedAuth: vi.fn(() => ({
35
- user: { id: 'test-user', email: 'test@example.com' },
36
- isAuthenticated: true,
37
- isLoading: false,
38
- error: null,
39
- selectedOrganisationId: 'test-org-id',
40
- selectedEventId: 'test-event-id',
41
- supabase: null,
42
- })),
34
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
35
+ user: { id: 'test-user', email: 'test@example.com' },
36
+ isAuthenticated: true,
37
+ isLoading: false,
38
+ error: null,
39
+ selectedOrganisation: { id: 'test-org-id' },
40
+ selectedEvent: { event_id: 'test-event-id' },
41
+ supabase: {},
42
+ }));
43
+
44
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
45
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
46
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
43
47
  }));
44
48
 
45
49
  // Mock the performance hook
@@ -703,7 +707,7 @@ describe('DataTableCore Component', () => {
703
707
  effectivePageId: 'test-page',
704
708
  });
705
709
 
706
- render(
710
+ renderWithProviders(
707
711
  <DataTableCore
708
712
  data={mockData}
709
713
  columns={mockColumns}
@@ -28,12 +28,18 @@ vi.mock('../../../rbac/hooks', () => ({
28
28
  }));
29
29
 
30
30
  // Mock the UnifiedAuthProvider
31
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
32
- useUnifiedAuth: vi.fn(() => ({
33
- user: { id: 'test-user', name: 'Test User' },
34
- isLoading: false,
35
- error: null,
36
- })),
31
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
32
+ user: { id: 'test-user', name: 'Test User' },
33
+ isLoading: false,
34
+ error: null,
35
+ selectedOrganisation: { id: 'test-org' },
36
+ selectedEvent: { event_id: 'test-event' },
37
+ supabase: {},
38
+ }));
39
+
40
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
41
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
42
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
37
43
  }));
38
44
 
39
45
  // Mock the toast hook
@@ -28,12 +28,18 @@ vi.mock('../../../rbac/hooks', () => ({
28
28
  }));
29
29
 
30
30
  // Mock the UnifiedAuthProvider
31
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
32
- useUnifiedAuth: vi.fn(() => ({
33
- user: { id: 'test-user', name: 'Test User' },
34
- isLoading: false,
35
- error: null,
36
- })),
31
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
32
+ user: { id: 'test-user', name: 'Test User' },
33
+ isLoading: false,
34
+ error: null,
35
+ selectedOrganisation: { id: 'test-org' },
36
+ selectedEvent: { event_id: 'test-event' },
37
+ supabase: {},
38
+ }));
39
+
40
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
41
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
42
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
37
43
  }));
38
44
 
39
45
  // Mock the toast hook
@@ -62,12 +62,16 @@ const mockRbacConfig = {
62
62
  // ============================================================================
63
63
 
64
64
  // Mock the auth provider
65
- vi.mock('../../../providers/UnifiedAuthProvider', () => ({
66
- useUnifiedAuth: () => ({
67
- user: { id: 'test-user', email: 'test@example.com' },
68
- organisation: { id: 'test-org' },
69
- event: null,
70
- }),
65
+ const mockUseUnifiedAuthFn = vi.fn(() => ({
66
+ user: { id: 'test-user', email: 'test@example.com' },
67
+ selectedOrganisation: { id: 'test-org' },
68
+ selectedEvent: null,
69
+ supabase: {},
70
+ }));
71
+
72
+ vi.mock('../../../providers/services/UnifiedAuthProvider', () => ({
73
+ useUnifiedAuth: () => mockUseUnifiedAuthFn(),
74
+ UnifiedAuthProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
71
75
  }));
72
76
 
73
77
  // Mock RBAC hooks
@@ -10,7 +10,7 @@
10
10
 
11
11
  import { vi } from 'vitest';
12
12
  import type { DataTableColumn, DataTableAction, DataTableFeatureConfig } from '../../types';
13
- import { AccessLevel } from '../../../../types/unified';
13
+ // AccessLevel removed - use AccessLevel type from rbac/types.ts if needed
14
14
  import '@testing-library/jest-dom';
15
15
  import React from 'react';
16
16
 
@@ -57,27 +57,27 @@
57
57
  */
58
58
 
59
59
  import React from 'react';
60
- import { type Table, flexRender } from '@tanstack/react-table';
60
+ import { type Table, flexRender, type Column } from '@tanstack/react-table';
61
61
  import { Button } from '../../Button/Button';
62
62
  import { ChevronUp, ChevronDown, ChevronRight, ChevronsUpDown } from 'lucide-react';
63
63
  import { EmptyState } from './EmptyState';
64
64
  import { Input } from '../../Input/Input';
65
65
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../Select/Select';
66
- import type { AggregateConfig } from '../types';
66
+ import type { AggregateConfig, DataRecord } from '../types';
67
67
 
68
68
  /**
69
69
  * Props for the DataTable body component
70
70
  * @template TData - The type of data records in the table
71
71
  */
72
- interface DataTableBodyProps<TData extends Record<string, any>> {
72
+ interface DataTableBodyProps<TData extends DataRecord> {
73
73
  /** TanStack table instance */
74
74
  table: Table<TData>;
75
75
  /** Whether a new row is being created */
76
76
  isCreating: boolean;
77
77
  /** Data for the row being created */
78
- creationData: Record<string, any>;
78
+ creationData: Record<string, unknown>;
79
79
  /** Callback when creation data changes */
80
- onCreationDataChange: (data: Record<string, any>) => void;
80
+ onCreationDataChange: (data: Record<string, unknown>) => void;
81
81
  /** Callback to save the new row */
82
82
  onSaveCreation: () => void;
83
83
  /** Callback to cancel row creation */
@@ -85,9 +85,9 @@ interface DataTableBodyProps<TData extends Record<string, any>> {
85
85
  /** ID of the row currently being edited */
86
86
  editingRowId: string | null;
87
87
  /** Data for the row being edited */
88
- editingData: Record<string, any>;
88
+ editingData: Record<string, unknown>;
89
89
  /** Callback when editing data changes */
90
- onEditingDataChange: (data: Record<string, any>) => void;
90
+ onEditingDataChange: (data: Record<string, unknown>) => void;
91
91
  /** Current grouping configuration */
92
92
  grouping: string[];
93
93
  /** Aggregate configurations for grouped data */
@@ -156,8 +156,8 @@ const renderEditField = (
156
156
  <SelectValue placeholder={placeholder || `Select ${column.id}`} />
157
157
  </SelectTrigger>
158
158
  <SelectContent>
159
- {columnDef.fieldOptions.map((option: any) => (
160
- <SelectItem key={option.value} value={String(option.value)}>
159
+ {columnDef.fieldOptions.map((option: { value: unknown; label: string }) => (
160
+ <SelectItem key={String(option.value) || option.label} value={String(option.value)}>
161
161
  {option.label}
162
162
  </SelectItem>
163
163
  ))}
@@ -189,7 +189,7 @@ const renderEditField = (
189
189
  );
190
190
  };
191
191
 
192
- export function DataTableBody<TData extends Record<string, any>>({
192
+ export function DataTableBody<TData extends DataRecord>({
193
193
  table,
194
194
  isCreating,
195
195
  creationData,
@@ -208,21 +208,6 @@ export function DataTableBody<TData extends Record<string, any>>({
208
208
  hierarchical,
209
209
  }: DataTableBodyProps<TData>) {
210
210
 
211
- // Debug logging
212
- console.log('🔍 DataTableBody Debug:', {
213
- rowModelLength: table.getRowModel().rows.length,
214
- totalRowCount: table.getRowCount(),
215
- groupingEnabled: grouping.length > 0,
216
- grouping: grouping,
217
- rowAnalysis: table.getRowModel().rows.map(row => ({
218
- id: row.id,
219
- isGrouped: row.getIsGrouped(),
220
- hasParent: !!(typeof row.getParentRow === 'function' ? row.getParentRow() : false),
221
- subRowsCount: row.subRows?.length || 0,
222
- originalData: row.original?.meal_code || row.original?.id || 'no-id',
223
- })),
224
- paginationState: table.getState().pagination,
225
- });
226
211
 
227
212
  return (
228
213
  <>
@@ -47,7 +47,7 @@ import { useCan, useResolvedScope } from '../../../rbac/hooks';
47
47
  import { toast } from '../../../hooks/useToast';
48
48
  import { exportToCSV, exportToCSVWithTableRows } from '../utils/exportUtils';
49
49
  import type { ExportOptions } from '../types';
50
- import { useUnifiedAuth } from '../../../providers/UnifiedAuthProvider';
50
+ import { useUnifiedAuth } from '../../../providers/services/UnifiedAuthProvider';
51
51
  import { Scope } from '../../../rbac/types';
52
52
  import { useDataTablePermissions } from '../hooks/useDataTablePermissions';
53
53
  import { useTableColumns } from '../hooks/useTableColumns';
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  import { ColumnFilter } from './ColumnFilter';
3
3
  import type { Header, Table } from '@tanstack/react-table';
4
4
  import { getColumnHeaderText } from '../utils/columnUtils';
5
+ import type { Column } from '@tanstack/react-table';
6
+ import type { DataRecord } from '../types';
5
7
 
6
8
  interface FilterRowProps<TData> {
7
9
  table: Table<TData>;
@@ -114,7 +116,7 @@ export function FilterRow<TData>({ table, visibleColumns }: FilterRowProps<TData
114
116
  column={column}
115
117
  filterType={filterType}
116
118
  options={options}
117
- placeholder={`Filter ${getColumnHeaderText(column)}...`}
119
+ placeholder={`Filter ${getColumnHeaderText(column as unknown as Column<DataRecord, unknown>)}...`}
118
120
  />
119
121
  ) : (
120
122
  <div className="h-8 flex items-center text-sec-400 text-sm">
@@ -39,7 +39,7 @@ import React, { useState, useRef, useEffect } from 'react';
39
39
  import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../../Dialog';
40
40
  import { Button } from '../../Button/Button';
41
41
  import { Input } from '../../Input/Input';
42
- import { Progress } from '../../Progress/Progress';
42
+ import { Progress } from '../../Progress';
43
43
  import { Upload, FileText, AlertCircle } from 'lucide-react';
44
44
  import { createLogger } from '../../../utils/core/logger';
45
45
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React, { useMemo, useRef, useCallback, memo, useLayoutEffect, useState } from 'react';
9
9
  import { useVirtualizer } from '@tanstack/react-virtual';
10
- import { flexRender, type Table as TanStackTable } from '@tanstack/react-table';
10
+ import { flexRender, type Table as TanStackTable, type Cell, type Row } from '@tanstack/react-table';
11
11
  import { cn } from '../../../utils/core/cn';
12
12
  import type { DataRecord } from '../types';
13
13
 
@@ -22,7 +22,7 @@ export interface VirtualizedDataTableProps<TData extends DataRecord> {
22
22
  /**
23
23
  * Memoized cell component for performance
24
24
  */
25
- const MemoizedCell = memo(({ cell, style }: { cell: any; style?: React.CSSProperties }) => {
25
+ const MemoizedCell = memo(<TData extends DataRecord>({ cell, style }: { cell: Cell<TData, unknown>; style?: React.CSSProperties }) => {
26
26
  return (
27
27
  <td
28
28
  key={cell.id}
@@ -42,8 +42,8 @@ MemoizedCell.displayName = 'MemoizedCell';
42
42
  /**
43
43
  * Memoized row component for performance
44
44
  */
45
- const MemoizedRow = memo(({ row, style }: {
46
- row: any;
45
+ const MemoizedRow = memo(<TData extends DataRecord>({ row, style }: {
46
+ row: Row<TData>;
47
47
  style: React.CSSProperties;
48
48
  }) => {
49
49
  return (
@@ -56,10 +56,10 @@ const MemoizedRow = memo(({ row, style }: {
56
56
  style={style}
57
57
  data-testid={`data-table-row-${row.id}`}
58
58
  >
59
- {row.getVisibleCells && row.getVisibleCells().map((cell: any) => (
59
+ {row.getVisibleCells && row.getVisibleCells().map((cell) => (
60
60
  <MemoizedCell
61
61
  key={cell.id}
62
- cell={cell}
62
+ cell={cell as unknown as Cell<DataRecord, unknown>}
63
63
  style={{}}
64
64
  />
65
65
  ))}
@@ -276,12 +276,12 @@ export interface EnhancedVirtualizedDataTableProps<TData extends DataRecord>
276
276
  // Additional props for DataTable integration
277
277
  variant?: 'default' | 'compact' | 'spacious';
278
278
  enableGrouping?: boolean;
279
- actions?: any[];
279
+ actions?: unknown[];
280
280
  enableEditing?: boolean;
281
281
  enableDeletion?: boolean;
282
282
  onEditRow?: (row: TData, data: Partial<TData>) => void;
283
283
  onDeleteRow?: (row: TData) => void;
284
- getRowId?: (row: any) => string;
284
+ getRowId?: (row: TData) => string;
285
285
  }
286
286
 
287
287
  export function EnhancedVirtualizedDataTable<TData extends DataRecord>({
@@ -468,7 +468,7 @@ export function EnhancedVirtualizedDataTable<TData extends DataRecord>({
468
468
  );
469
469
  }
470
470
 
471
- const row = displayRow as any;
471
+ const row = displayRow as Row<TData>;
472
472
  return (
473
473
  <MemoizedRow
474
474
  key={row.id}
@@ -18,7 +18,7 @@ export interface TextColumnOptions {
18
18
  filterable?: boolean;
19
19
  groupable?: boolean;
20
20
  hideable?: boolean;
21
- render?: (value: any) => React.ReactNode;
21
+ render?: (value: unknown) => React.ReactNode;
22
22
  footer?: React.ReactNode;
23
23
  size?: number;
24
24
  minSize?: number;
@@ -35,7 +35,7 @@ export interface DateColumnOptions extends TextColumnOptions {
35
35
  dateOptions?: Intl.DateTimeFormatOptions;
36
36
  }
37
37
 
38
- export interface BooleanColumnOptions extends TextColumnOptions {
38
+ export interface BooleanColumnOptions extends Omit<TextColumnOptions, 'render'> {
39
39
  render?: (value: boolean) => React.ReactNode;
40
40
  }
41
41
 
@@ -47,13 +47,13 @@ export interface ActionColumnOptions {
47
47
  maxSize?: number;
48
48
  meta?: {
49
49
  align?: 'left' | 'right' | 'center';
50
- [key: string]: any;
50
+ [key: string]: unknown;
51
51
  };
52
52
  }
53
53
 
54
54
  export interface CustomColumnOptions<TData extends DataRecord> {
55
55
  header?: string;
56
- cell?: (info: any) => React.ReactNode;
56
+ cell?: (info: unknown) => React.ReactNode;
57
57
  enableSorting?: boolean;
58
58
  enableColumnFilter?: boolean;
59
59
  enableGrouping?: boolean;
@@ -150,7 +150,7 @@ export class ColumnFactory<TData extends DataRecord = DataRecord> {
150
150
  const value = getValue();
151
151
  if (!value) return '';
152
152
 
153
- const date = new Date(value as any);
153
+ const date = new Date(String(value));
154
154
  if (isNaN(date.getTime())) return String(value);
155
155
 
156
156
  if (options.format) {
@@ -211,7 +211,7 @@ export class ColumnFactory<TData extends DataRecord = DataRecord> {
211
211
  enableHiding: false,
212
212
  cell: ({ row }) => {
213
213
  if (options.render) {
214
- return options.render(row.original, actions as any);
214
+ return options.render(row.original, actions as DataTableAction<DataRecord>[]);
215
215
  }
216
216
 
217
217
  // Return a simple object that can be rendered by the component
@@ -14,7 +14,8 @@ import { Checkbox } from '../../Checkbox/Checkbox';
14
14
  // DropdownMenu components have been merged into Select components
15
15
  import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from '../../Dialog/Dialog';
16
16
  import type { DataTableContext as IDataTableContext, DataTableConfig, DataTableUtils } from './interfaces';
17
- import type { DataRecord } from '../types';
17
+ import type { DataRecord, DataTableAction } from '../types';
18
+ import type { ColumnDef } from '@tanstack/react-table';
18
19
  import { DataManager } from './DataManager';
19
20
  import { ColumnManagerImpl } from './ColumnManager';
20
21
  import { ActionManagerImpl } from './ActionManager';
@@ -23,7 +24,7 @@ import { PluginRegistryImpl } from './PluginRegistry';
23
24
  import { LocalDataAdapter } from './LocalDataAdapter';
24
25
 
25
26
  // Create the context
26
- const DataTableContext = createContext<IDataTableContext<any> | null>(null);
27
+ const DataTableContext = createContext<IDataTableContext<DataRecord> | null>(null);
27
28
 
28
29
  /**
29
30
  * DataTable provider component
@@ -32,8 +33,8 @@ export interface DataTableProviderProps<TData extends DataRecord> {
32
33
  children: React.ReactNode;
33
34
  config: DataTableConfig<TData>;
34
35
  data?: TData[];
35
- columns?: any[];
36
- actions?: any[];
36
+ columns?: ColumnDef<TData>[];
37
+ actions?: DataTableAction<TData>[];
37
38
  pageSize?: number;
38
39
  }
39
40
 
@@ -80,12 +81,15 @@ export function DataTableProvider<TData extends DataRecord>({
80
81
 
81
82
  // Create utilities
82
83
  const utils: DataTableUtils<TData> = useMemo(() => ({
83
- getRowId: (row: TData, index: number) => (row as any).id || String(index),
84
- formatValue: (value: any, column: any) => String(value),
84
+ getRowId: (row: TData, index: number) => {
85
+ const record = row as Record<string, unknown>;
86
+ return (record.id ? String(record.id) : String(index));
87
+ },
88
+ formatValue: (value: unknown, column: ColumnDef<TData>) => String(value),
85
89
  validateData: (data: Partial<TData>) => null,
86
- debounce: <T extends (...args: any[]) => any>(func: T, delay: number) => {
90
+ debounce: <T extends (...args: unknown[]) => unknown>(func: T, delay: number) => {
87
91
  let timeoutId: NodeJS.Timeout;
88
- return ((...args: any[]) => {
92
+ return ((...args: unknown[]) => {
89
93
  clearTimeout(timeoutId);
90
94
  timeoutId = setTimeout(() => func(...args), delay);
91
95
  }) as T;
@@ -135,7 +139,7 @@ export function DataTableProvider<TData extends DataRecord>({
135
139
  }, [actions, actionManager, stateManager]);
136
140
 
137
141
  return (
138
- <DataTableContext.Provider value={contextValue}>
142
+ <DataTableContext.Provider value={contextValue as unknown as IDataTableContext<DataRecord>}>
139
143
  {children}
140
144
  </DataTableContext.Provider>
141
145
  );
@@ -149,7 +153,7 @@ export function useDataTableContext<TData extends DataRecord = DataRecord>(): ID
149
153
  if (!context) {
150
154
  throw new Error('useDataTableContext must be used within a DataTableProvider');
151
155
  }
152
- return context as IDataTableContext<TData>;
156
+ return context as unknown as IDataTableContext<TData>;
153
157
  }
154
158
 
155
159
  /**
@@ -228,7 +228,8 @@ export class LocalDataAdapter<TData extends DataRecord = DataRecord> implements
228
228
  * Get row ID from data item
229
229
  */
230
230
  private getRowId(item: TData): string {
231
- return (item as any).id || (item as any).key || JSON.stringify(item);
231
+ const record = item as Record<string, unknown>;
232
+ return (record.id ? String(record.id) : record.key ? String(record.key) : JSON.stringify(item));
232
233
  }
233
234
 
234
235
  /**
@@ -39,7 +39,7 @@ export class PluginRegistryImpl<TData extends DataRecord = DataRecord> implement
39
39
  // Cleanup if initialized
40
40
  if (this.initializedPlugins.has(name)) {
41
41
  plugin.cleanup().catch(error => {
42
- console.error(`Error cleaning up plugin "${name}":`, error);
42
+ // Error logged silently - plugin cleanup failures should not break the app
43
43
  });
44
44
  this.initializedPlugins.delete(name);
45
45
  }
@@ -118,7 +118,7 @@ export class PluginRegistryImpl<TData extends DataRecord = DataRecord> implement
118
118
  await plugin.initialize(context);
119
119
  this.initializedPlugins.add(plugin.name);
120
120
  } catch (error) {
121
- console.error(`Failed to initialize plugin "${plugin.name}":`, error);
121
+ // Re-throw error - initialization failures should be handled by caller
122
122
  throw error;
123
123
  }
124
124
  }
@@ -136,7 +136,7 @@ export class PluginRegistryImpl<TData extends DataRecord = DataRecord> implement
136
136
  await plugin.cleanup();
137
137
  this.initializedPlugins.delete(plugin.name);
138
138
  } catch (error) {
139
- console.error(`Error cleaning up plugin "${plugin.name}":`, error);
139
+ // Error logged silently - plugin cleanup failures should not break the app
140
140
  }
141
141
  }
142
142
  }