@jmruthers/pace-core 0.5.181 → 0.5.182

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +16 -2
  3. package/dist/{AuthService-DYuQPJj6.d.ts → AuthService-B-cd2MA4.d.ts} +9 -11
  4. package/dist/{DataTable-CWAZZcXC.d.ts → DataTable-Bz8ffqyA.d.ts} +1 -1
  5. package/dist/{DataTable-UA6CL4JI.js → DataTable-QAB34V6K.js} +14 -15
  6. package/dist/UnifiedAuthProvider-7F6T4B6K.js +13 -0
  7. package/dist/{UnifiedAuthProvider-DJxGTftH.d.ts → UnifiedAuthProvider-F86d7dSi.d.ts} +5 -6
  8. package/dist/{api-45XYYO2A.js → api-ROMBCNKU.js} +5 -5
  9. package/dist/{audit-64X3VJXB.js → audit-WRS3KJKI.js} +4 -4
  10. package/dist/auth-BZOJqrdd.d.ts +49 -0
  11. package/dist/{chunk-CX5M4ZAG.js → chunk-5DRSZLL2.js} +1 -1
  12. package/dist/chunk-5DRSZLL2.js.map +1 -0
  13. package/dist/{chunk-BESYRHQM.js → chunk-6C4YBBJM.js} +10 -7
  14. package/dist/chunk-6C4YBBJM.js.map +1 -0
  15. package/dist/{chunk-PLDDJCW6.js → chunk-7D4SUZUM.js} +2 -13
  16. package/dist/{chunk-HRO5HWN2.js → chunk-CSOFYHAG.js} +55 -162
  17. package/dist/chunk-CSOFYHAG.js.map +1 -0
  18. package/dist/{chunk-ANBQRTPX.js → chunk-E66EQZE6.js} +3 -5
  19. package/dist/{chunk-ANBQRTPX.js.map → chunk-E66EQZE6.js.map} +1 -1
  20. package/dist/{chunk-Q5QRDWKI.js → chunk-F2IMUDXZ.js} +4 -6
  21. package/dist/chunk-F2IMUDXZ.js.map +1 -0
  22. package/dist/{chunk-SBVILCCA.js → chunk-FSFQFJCU.js} +28 -6
  23. package/dist/chunk-FSFQFJCU.js.map +1 -0
  24. package/dist/chunk-FUEYYMX5.js +2296 -0
  25. package/dist/chunk-FUEYYMX5.js.map +1 -0
  26. package/dist/{chunk-FFKNH6U5.js → chunk-HKIT6O7W.js} +3 -5
  27. package/dist/{chunk-FFKNH6U5.js.map → chunk-HKIT6O7W.js.map} +1 -1
  28. package/dist/chunk-KQCRWDSA.js +1 -0
  29. package/dist/{chunk-S5OFRT4M.js → chunk-KUEN3HFB.js} +6 -6
  30. package/dist/chunk-KUEN3HFB.js.map +1 -0
  31. package/dist/chunk-LMC26NLJ.js +84 -0
  32. package/dist/chunk-LMC26NLJ.js.map +1 -0
  33. package/dist/{chunk-BVYWGZVV.js → chunk-M7W4CP3M.js} +52 -19
  34. package/dist/chunk-M7W4CP3M.js.map +1 -0
  35. package/dist/{chunk-HZLDFOE4.js → chunk-MI7HBHN3.js} +164 -243
  36. package/dist/chunk-MI7HBHN3.js.map +1 -0
  37. package/dist/{chunk-PPMP5J6T.js → chunk-PWAHJW4G.js} +180 -29
  38. package/dist/chunk-PWAHJW4G.js.map +1 -0
  39. package/dist/chunk-PWLANIRT.js +127 -0
  40. package/dist/{chunk-XDNLUEXI.js.map → chunk-PWLANIRT.js.map} +1 -1
  41. package/dist/chunk-QCDXODCA.js +75 -0
  42. package/dist/chunk-QCDXODCA.js.map +1 -0
  43. package/dist/{chunk-D7LCGMVS.js → chunk-QETLRQI6.js} +526 -887
  44. package/dist/chunk-QETLRQI6.js.map +1 -0
  45. package/dist/{chunk-5MT24GKJ.js → chunk-QUVSNGIP.js} +264 -262
  46. package/dist/chunk-QUVSNGIP.js.map +1 -0
  47. package/dist/chunk-QXHPKYJV.js +113 -0
  48. package/dist/chunk-QXHPKYJV.js.map +1 -0
  49. package/dist/{chunk-OWAG3GSU.js → chunk-R77UEZ4E.js} +11 -1
  50. package/dist/chunk-R77UEZ4E.js.map +1 -0
  51. package/dist/{chunk-ZYTYSTO5.js → chunk-RA3JUFMW.js} +314 -161
  52. package/dist/chunk-RA3JUFMW.js.map +1 -0
  53. package/dist/{chunk-ERISIBYU.js → chunk-SQGMNID3.js} +3 -8
  54. package/dist/chunk-SQGMNID3.js.map +1 -0
  55. package/dist/{chunk-XJ2HZOBU.js → chunk-UHNYIBXL.js} +1 -1
  56. package/dist/chunk-UHNYIBXL.js.map +1 -0
  57. package/{src/utils/secureStorage.ts → dist/chunk-VBXEHIUJ.js} +113 -88
  58. package/dist/{chunk-7QCC6MCP.js.map → chunk-VBXEHIUJ.js.map} +1 -1
  59. package/dist/{chunk-VZ4VDGTB.js → chunk-W22JP75J.js} +5 -13
  60. package/dist/{chunk-VZ4VDGTB.js.map → chunk-W22JP75J.js.map} +1 -1
  61. package/dist/components.d.ts +12 -93
  62. package/dist/components.js +23 -106
  63. package/dist/components.js.map +1 -1
  64. package/dist/core-CUElvH_C.d.ts +164 -0
  65. package/dist/database.generated-CBmg2950.d.ts +8284 -0
  66. package/dist/event-CW5YB_2p.d.ts +239 -0
  67. package/dist/{file-reference-C6Gkn77H.d.ts → file-reference-D06mEEWW.d.ts} +7 -5
  68. package/dist/functions-D_kgHktt.d.ts +208 -0
  69. package/dist/hooks.d.ts +54 -7
  70. package/dist/hooks.js +204 -17
  71. package/dist/hooks.js.map +1 -1
  72. package/dist/{EventLogo-B3V3otev.d.ts → index-Bl--n7-T.d.ts} +387 -397
  73. package/dist/index.d.ts +94 -261
  74. package/dist/index.js +314 -126
  75. package/dist/index.js.map +1 -1
  76. package/dist/providers.d.ts +7 -8
  77. package/dist/providers.js +6 -13
  78. package/dist/rbac/index.d.ts +171 -101
  79. package/dist/rbac/index.js +23 -17
  80. package/dist/styles/index.d.ts +1 -3
  81. package/dist/styles/index.js +2 -17
  82. package/dist/theming/runtime.js +3 -3
  83. package/dist/types-UU913iLA.d.ts +102 -0
  84. package/dist/{types-Dfz9dmVH.d.ts → types-_x1f4QBF.d.ts} +6 -6
  85. package/dist/types.d.ts +88 -227
  86. package/dist/types.js +64 -112
  87. package/dist/types.js.map +1 -1
  88. package/dist/{usePublicRouteParams-B7PabvuH.d.ts → usePublicRouteParams-JJczomYq.d.ts} +203 -6
  89. package/dist/utils.d.ts +299 -13
  90. package/dist/utils.js +481 -55
  91. package/dist/utils.js.map +1 -1
  92. package/dist/validation-643vUDZW.d.ts +177 -0
  93. package/docs/DOCUMENTATION_REVIEW_TRACKER.md +511 -0
  94. package/docs/README.md +9 -8
  95. package/docs/api/README.md +16 -2
  96. package/docs/api/classes/ColumnFactory.md +1 -1
  97. package/docs/api/classes/ErrorBoundary.md +1 -1
  98. package/docs/api/classes/InvalidScopeError.md +4 -4
  99. package/docs/api/classes/MissingUserContextError.md +4 -4
  100. package/docs/api/classes/OrganisationContextRequiredError.md +4 -4
  101. package/docs/api/classes/PermissionDeniedError.md +4 -4
  102. package/docs/api/classes/RBACAuditManager.md +14 -14
  103. package/docs/api/classes/RBACCache.md +1 -1
  104. package/docs/api/classes/RBACEngine.md +2 -2
  105. package/docs/api/classes/RBACError.md +4 -4
  106. package/docs/api/classes/RBACNotInitializedError.md +4 -4
  107. package/docs/api/classes/SecureSupabaseClient.md +29 -9
  108. package/docs/api/classes/StorageUtils.md +1 -1
  109. package/docs/api/enums/FileCategory.md +17 -17
  110. package/docs/api/enums/RBACErrorCode.md +228 -0
  111. package/docs/api/enums/RPCFunction.md +118 -0
  112. package/docs/api/interfaces/AggregateConfig.md +1 -1
  113. package/docs/api/interfaces/BadgeProps.md +1 -1
  114. package/docs/api/interfaces/ButtonProps.md +2 -2
  115. package/docs/api/interfaces/CalendarProps.md +1 -1
  116. package/docs/api/interfaces/CardProps.md +29 -3
  117. package/docs/api/interfaces/ColorPalette.md +1 -1
  118. package/docs/api/interfaces/ColorShade.md +1 -1
  119. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  120. package/docs/api/interfaces/DataRecord.md +1 -1
  121. package/docs/api/interfaces/DataTableAction.md +2 -2
  122. package/docs/api/interfaces/DataTableColumn.md +6 -6
  123. package/docs/api/interfaces/DataTableProps.md +1 -1
  124. package/docs/api/interfaces/DataTableToolbarButton.md +2 -2
  125. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  126. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  127. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  128. package/docs/api/interfaces/ExportColumn.md +5 -5
  129. package/docs/api/interfaces/ExportOptions.md +4 -4
  130. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  131. package/docs/api/interfaces/FileMetadata.md +13 -13
  132. package/docs/api/interfaces/FileReference.md +12 -12
  133. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  134. package/docs/api/interfaces/FileUploadOptions.md +10 -10
  135. package/docs/api/interfaces/FileUploadProps.md +19 -19
  136. package/docs/api/interfaces/FooterProps.md +1 -1
  137. package/docs/api/interfaces/FormFieldProps.md +166 -0
  138. package/docs/api/interfaces/FormProps.md +113 -0
  139. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  140. package/docs/api/interfaces/InactivityWarningModalProps.md +8 -8
  141. package/docs/api/interfaces/InputProps.md +2 -2
  142. package/docs/api/interfaces/LabelProps.md +8 -8
  143. package/docs/api/interfaces/LoginFormProps.md +1 -1
  144. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  145. package/docs/api/interfaces/NavigationContextType.md +1 -1
  146. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  147. package/docs/api/interfaces/NavigationItem.md +17 -73
  148. package/docs/api/interfaces/NavigationMenuProps.md +38 -53
  149. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  150. package/docs/api/interfaces/Organisation.md +13 -13
  151. package/docs/api/interfaces/OrganisationContextType.md +21 -21
  152. package/docs/api/interfaces/OrganisationMembership.md +15 -15
  153. package/docs/api/interfaces/OrganisationProviderProps.md +59 -2
  154. package/docs/api/interfaces/OrganisationSecurityError.md +5 -5
  155. package/docs/api/interfaces/PaceAppLayoutProps.md +26 -39
  156. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  157. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  158. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  159. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  160. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  161. package/docs/api/interfaces/PaletteData.md +1 -1
  162. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  163. package/docs/api/interfaces/ProgressProps.md +50 -0
  164. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  165. package/docs/api/interfaces/PublicPageFooterProps.md +9 -9
  166. package/docs/api/interfaces/PublicPageHeaderProps.md +10 -10
  167. package/docs/api/interfaces/PublicPageLayoutProps.md +15 -15
  168. package/docs/api/interfaces/RBACAccessValidateParams.md +52 -0
  169. package/docs/api/interfaces/RBACAccessValidateResult.md +41 -0
  170. package/docs/api/interfaces/RBACAuditLogParams.md +85 -0
  171. package/docs/api/interfaces/RBACAuditLogResult.md +52 -0
  172. package/docs/api/interfaces/RBACConfig.md +2 -2
  173. package/docs/api/interfaces/RBACContext.md +52 -0
  174. package/docs/api/interfaces/RBACLogger.md +1 -1
  175. package/docs/api/interfaces/RBACPageAccessCheckParams.md +74 -0
  176. package/docs/api/interfaces/RBACPermissionCheckParams.md +74 -0
  177. package/docs/api/interfaces/RBACPermissionCheckResult.md +52 -0
  178. package/docs/api/interfaces/RBACPermissionsGetParams.md +63 -0
  179. package/docs/api/interfaces/RBACPermissionsGetResult.md +63 -0
  180. package/docs/api/interfaces/RBACResult.md +58 -0
  181. package/docs/api/interfaces/RBACRoleGrantParams.md +63 -0
  182. package/docs/api/interfaces/RBACRoleGrantResult.md +52 -0
  183. package/docs/api/interfaces/RBACRoleRevokeParams.md +63 -0
  184. package/docs/api/interfaces/RBACRoleRevokeResult.md +52 -0
  185. package/docs/api/interfaces/RBACRoleValidateParams.md +52 -0
  186. package/docs/api/interfaces/RBACRoleValidateResult.md +63 -0
  187. package/docs/api/interfaces/RBACRolesListParams.md +52 -0
  188. package/docs/api/interfaces/RBACRolesListResult.md +74 -0
  189. package/docs/api/interfaces/RBACSessionTrackParams.md +74 -0
  190. package/docs/api/interfaces/RBACSessionTrackResult.md +52 -0
  191. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  192. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  193. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  194. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  195. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  196. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  197. package/docs/api/interfaces/RouteConfig.md +1 -1
  198. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  199. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  200. package/docs/api/interfaces/SessionRestorationLoaderProps.md +15 -2
  201. package/docs/api/interfaces/StorageConfig.md +1 -1
  202. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  203. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  204. package/docs/api/interfaces/StorageListOptions.md +1 -1
  205. package/docs/api/interfaces/StorageListResult.md +1 -1
  206. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  207. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  208. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  209. package/docs/api/interfaces/StyleImport.md +1 -1
  210. package/docs/api/interfaces/SwitchProps.md +1 -1
  211. package/docs/api/interfaces/TabsContentProps.md +1 -1
  212. package/docs/api/interfaces/TabsListProps.md +1 -1
  213. package/docs/api/interfaces/TabsProps.md +1 -1
  214. package/docs/api/interfaces/TabsTriggerProps.md +43 -2
  215. package/docs/api/interfaces/TextareaProps.md +2 -2
  216. package/docs/api/interfaces/ToastActionElement.md +1 -1
  217. package/docs/api/interfaces/ToastProps.md +1 -1
  218. package/docs/api/interfaces/UnifiedAuthContextType.md +61 -61
  219. package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
  220. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  221. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  222. package/docs/api/interfaces/UsePublicEventLogoOptions.md +87 -0
  223. package/docs/api/interfaces/UsePublicEventLogoReturn.md +81 -0
  224. package/docs/api/interfaces/UsePublicEventOptions.md +3 -3
  225. package/docs/api/interfaces/UsePublicEventReturn.md +5 -5
  226. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +2 -2
  227. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  228. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  229. package/docs/api/interfaces/UseResolvedScopeOptions.md +2 -2
  230. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  231. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  232. package/docs/api/interfaces/UserEventAccess.md +1 -1
  233. package/docs/api/interfaces/UserMenuProps.md +4 -4
  234. package/docs/api/interfaces/UserProfile.md +7 -7
  235. package/docs/api/modules.md +484 -462
  236. package/docs/api-reference/components.md +186 -15
  237. package/docs/api-reference/deprecated.md +376 -0
  238. package/docs/api-reference/hooks.md +149 -19
  239. package/docs/api-reference/providers.md +61 -6
  240. package/docs/api-reference/rpc-functions.md +397 -0
  241. package/docs/api-reference/types.md +135 -78
  242. package/docs/api-reference/utilities.md +51 -380
  243. package/docs/architecture/README.md +49 -3
  244. package/docs/architecture/database-schema-requirements.md +40 -3
  245. package/docs/architecture/rbac-security-architecture.md +41 -4
  246. package/docs/architecture/services.md +127 -42
  247. package/docs/best-practices/README.md +51 -5
  248. package/docs/best-practices/accessibility.md +32 -3
  249. package/docs/best-practices/common-patterns.md +50 -3
  250. package/docs/best-practices/deployment.md +50 -4
  251. package/docs/best-practices/performance.md +50 -3
  252. package/docs/best-practices/security.md +94 -41
  253. package/docs/best-practices/testing.md +33 -4
  254. package/docs/core-concepts/authentication.md +5 -5
  255. package/docs/core-concepts/events.md +3 -3
  256. package/docs/core-concepts/organisations.md +3 -3
  257. package/docs/core-concepts/permissions.md +3 -3
  258. package/docs/core-concepts/rbac-system.md +5 -5
  259. package/docs/documentation-index.md +30 -8
  260. package/docs/getting-started/documentation-index.md +1 -1
  261. package/docs/getting-started/examples/README.md +7 -5
  262. package/docs/getting-started/examples/basic-auth-app.md +3 -0
  263. package/docs/getting-started/examples/full-featured-app.md +5 -3
  264. package/docs/getting-started/faq.md +6 -6
  265. package/docs/getting-started/installation-guide.md +192 -13
  266. package/docs/getting-started/local-development.md +303 -0
  267. package/docs/getting-started/quick-reference.md +3 -3
  268. package/docs/getting-started/quick-start.md +517 -0
  269. package/docs/implementation-guides/app-layout.md +45 -3
  270. package/docs/implementation-guides/authentication.md +66 -7
  271. package/docs/implementation-guides/component-styling.md +53 -3
  272. package/docs/implementation-guides/data-tables.md +76 -7
  273. package/docs/implementation-guides/datatable-filtering.md +1 -2
  274. package/docs/implementation-guides/datatable-rbac-usage.md +0 -1
  275. package/docs/implementation-guides/dynamic-colors.md +155 -4
  276. package/docs/implementation-guides/file-reference-system.md +72 -3
  277. package/docs/implementation-guides/file-upload-storage.md +72 -3
  278. package/docs/implementation-guides/forms.md +53 -3
  279. package/docs/implementation-guides/inactivity-tracking.md +53 -3
  280. package/docs/implementation-guides/large-datasets.md +1 -1
  281. package/docs/implementation-guides/navigation.md +55 -5
  282. package/docs/implementation-guides/organisation-security.md +72 -3
  283. package/docs/implementation-guides/performance.md +57 -1
  284. package/docs/implementation-guides/permission-enforcement.md +81 -8
  285. package/docs/implementation-guides/public-pages.md +560 -14
  286. package/docs/migration/MIGRATION_GUIDE.md +409 -50
  287. package/docs/migration/README.md +37 -3
  288. package/docs/migration/organisation-context-timing-fix.md +39 -4
  289. package/docs/migration/quick-migration-guide.md +41 -5
  290. package/docs/migration/rbac-migration.md +59 -3
  291. package/docs/migration/service-architecture.md +77 -14
  292. package/docs/rbac/README.md +79 -3
  293. package/docs/rbac/advanced-patterns.md +47 -3
  294. package/docs/rbac/api-reference.md +77 -8
  295. package/docs/rbac/event-based-apps.md +50 -5
  296. package/docs/rbac/examples/rbac-rls-integration-example.md +3 -3
  297. package/docs/rbac/examples.md +39 -3
  298. package/docs/rbac/getting-started.md +63 -4
  299. package/docs/rbac/quick-start.md +57 -5
  300. package/docs/rbac/rbac-rls-integration.md +68 -6
  301. package/docs/rbac/super-admin-guide.md +47 -3
  302. package/docs/rbac/troubleshooting.md +3 -3
  303. package/docs/security/README.md +68 -3
  304. package/docs/security/checklist.md +50 -3
  305. package/docs/standards/01-architecture-standard.md +39 -0
  306. package/docs/standards/02-api-and-rpc-standard.md +39 -0
  307. package/docs/standards/03-component-standard.md +32 -0
  308. package/docs/standards/04-code-style-standard.md +32 -0
  309. package/docs/standards/05-security-standard.md +30 -0
  310. package/docs/standards/06-testing-and-docs-standard.md +29 -0
  311. package/docs/standards/README.md +35 -0
  312. package/docs/styles/README.md +89 -8
  313. package/docs/testing/README.md +175 -24
  314. package/docs/troubleshooting/README.md +50 -3
  315. package/docs/troubleshooting/common-issues.md +271 -5
  316. package/docs/troubleshooting/debugging.md +54 -1
  317. package/docs/troubleshooting/migration.md +54 -1
  318. package/docs/troubleshooting/organisation-context-setup.md +29 -3
  319. package/docs/troubleshooting/styling-issues.md +246 -4
  320. package/{src/components/DataTable/examples → examples/DataTable}/GroupingAggregationExample.tsx +1 -1
  321. package/examples/{components 2/DataTable/HierarchicalActionsExample.tsx → DataTable/HierarchicalActionsExample.tsx} +7 -6
  322. package/{src/components/DataTable/examples → examples/DataTable}/HierarchicalExample.tsx +8 -6
  323. package/examples/{components 2/DataTable/PerformanceExample.tsx → DataTable/PerformanceExample.tsx} +2 -2
  324. package/examples/{components 2/DataTable/index.ts → DataTable/index.ts} +1 -0
  325. package/{src/components/Dialog/examples → examples/Dialog}/HtmlDialogExample.tsx +3 -3
  326. package/examples/{components 2/Dialog/ScrollableDialogExample.tsx → Dialog/ScrollableDialogExample.tsx} +1 -1
  327. package/{src/components/Dialog/examples → examples/Dialog}/SmartDialogExample.tsx +1 -1
  328. package/examples/{components 2/Dialog/index.ts → Dialog/index.ts} +0 -3
  329. package/examples/{features/public-pages → PublicPages}/CorrectPublicPageImplementation.tsx +52 -17
  330. package/examples/{features/public-pages → PublicPages}/PublicEventPage.tsx +65 -35
  331. package/examples/{features/public-pages → PublicPages}/PublicPageApp.tsx +52 -18
  332. package/examples/{features/public-pages → PublicPages}/PublicPageUsageExample.tsx +28 -15
  333. package/examples/README.md +81 -33
  334. package/examples/index.ts +14 -12
  335. package/examples/{RBAC → rbac}/CompleteRBACExample.tsx +1 -1
  336. package/examples/{features/rbac → rbac}/EventBasedApp.tsx +4 -4
  337. package/examples/{features/rbac → rbac}/PermissionExample.tsx +5 -3
  338. package/package.json +21 -27
  339. package/src/__tests__/helpers/test-utils.tsx +29 -3
  340. package/src/__tests__/rbac/PagePermissionGuard.test.tsx +7 -5
  341. package/src/components/Alert/Alert.test.tsx +2 -2
  342. package/src/components/Alert/Alert.tsx +4 -4
  343. package/src/components/Avatar/Avatar.test.tsx +17 -6
  344. package/src/components/Badge/Badge.test.tsx +1 -1
  345. package/src/components/Badge/Badge.tsx +2 -2
  346. package/src/components/Button/Button.test.tsx +2 -2
  347. package/src/components/Button/Button.tsx +11 -7
  348. package/src/components/Calendar/Calendar.test.tsx +41 -8
  349. package/src/components/Calendar/Calendar.tsx +39 -36
  350. package/src/components/Card/Card.tsx +51 -13
  351. package/src/components/Checkbox/Checkbox.test.tsx +36 -12
  352. package/src/components/DataTable/DataTable.test.tsx +1 -1
  353. package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +13 -7
  354. package/src/components/DataTable/__tests__/DataTable.default-state.test.tsx +14 -42
  355. package/src/components/DataTable/__tests__/DataTable.export.test.tsx +13 -10
  356. package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +14 -11
  357. package/src/components/DataTable/__tests__/DataTable.hooks.test.tsx +4 -2
  358. package/src/components/DataTable/__tests__/DataTable.test.tsx +13 -7
  359. package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +13 -10
  360. package/src/components/DataTable/__tests__/DataTableCore.test.tsx +15 -11
  361. package/src/components/DataTable/__tests__/a11y.basic.test.tsx +12 -6
  362. package/src/components/DataTable/__tests__/keyboard.test.tsx +12 -6
  363. package/src/components/DataTable/__tests__/pagination.modes.test.tsx +10 -6
  364. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +1 -1
  365. package/src/components/DataTable/components/DataTableBody.tsx +10 -25
  366. package/src/components/DataTable/components/DataTableCore.tsx +1 -1
  367. package/src/components/DataTable/components/FilterRow.tsx +3 -1
  368. package/src/components/DataTable/components/ImportModal.tsx +1 -1
  369. package/src/components/DataTable/components/VirtualizedDataTable.tsx +9 -9
  370. package/src/components/DataTable/core/ColumnFactory.ts +6 -6
  371. package/src/components/DataTable/core/DataTableContext.tsx +14 -10
  372. package/src/components/DataTable/core/LocalDataAdapter.ts +2 -1
  373. package/src/components/DataTable/core/PluginRegistry.ts +3 -3
  374. package/src/components/DataTable/core/StateManager.ts +12 -11
  375. package/src/components/DataTable/core/__tests__/ActionManager.test.ts +104 -0
  376. package/src/components/DataTable/core/__tests__/DataManager.test.ts +101 -0
  377. package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +84 -0
  378. package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +102 -0
  379. package/src/components/DataTable/core/__tests__/StateManager.test.ts +104 -0
  380. package/src/components/DataTable/core/interfaces.ts +17 -17
  381. package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +124 -0
  382. package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +117 -0
  383. package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +102 -0
  384. package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +53 -0
  385. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +0 -2
  386. package/src/components/DataTable/hooks/useDataTablePermissions.ts +9 -8
  387. package/src/components/DataTable/types.ts +5 -5
  388. package/src/components/DataTable/utils/aggregationUtils.ts +4 -4
  389. package/src/components/DataTable/utils/columnUtils.ts +3 -2
  390. package/src/components/DataTable/utils/debugTools.ts +1 -1
  391. package/src/components/DataTable/utils/exportUtils.ts +6 -6
  392. package/src/components/DataTable/utils/hierarchicalSorting.ts +6 -6
  393. package/src/components/DataTable/utils/hierarchicalUtils.ts +0 -8
  394. package/src/components/DataTable/utils/index.ts +0 -1
  395. package/src/components/DataTable/utils/performanceUtils.ts +9 -4
  396. package/src/components/Dialog/Dialog.test.tsx +49 -27
  397. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +13 -8
  398. package/src/components/EventSelector/EventSelector.test.tsx +60 -12
  399. package/src/components/EventSelector/EventSelector.tsx +38 -15
  400. package/src/components/EventSelector/index.ts +2 -2
  401. package/src/components/FileDisplay/FileDisplay.test.tsx +143 -85
  402. package/src/components/FileDisplay/FileDisplay.tsx +1 -0
  403. package/src/components/FileUpload/FileUpload.test.tsx +532 -152
  404. package/src/components/FileUpload/FileUpload.tsx +43 -8
  405. package/src/components/Footer/Footer.test.tsx +19 -14
  406. package/src/components/Form/Form.test.tsx +96 -14
  407. package/src/components/Form/Form.tsx +210 -1
  408. package/src/components/Form/index.ts +3 -7
  409. package/src/components/Header/Header.test.tsx +24 -17
  410. package/src/components/Header/Header.tsx +3 -1
  411. package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +2 -4
  412. package/src/components/Input/Input.test.tsx +61 -36
  413. package/src/components/Label/{__tests__/Label.test.tsx → Label.test.tsx} +2 -2
  414. package/src/components/Label/Label.tsx +2 -3
  415. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +6 -5
  416. package/src/components/LoadingSpinner/LoadingSpinner.tsx +6 -2
  417. package/src/components/LoginForm/LoginForm.test.tsx +14 -13
  418. package/src/components/LoginForm/LoginForm.tsx +1 -1
  419. package/src/components/LoginForm/index.ts +7 -0
  420. package/src/components/NavigationMenu/NavigationMenu.test.tsx +233 -20
  421. package/src/components/NavigationMenu/NavigationMenu.tsx +191 -55
  422. package/src/components/NavigationMenu/index.ts +1 -1
  423. package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +20 -11
  424. package/src/components/OrganisationSelector/OrganisationSelector.tsx +1 -1
  425. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.integration.test.tsx → PaceAppLayout.integration.test.tsx} +272 -79
  426. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.performance.test.tsx → PaceAppLayout.performance.test.tsx} +155 -32
  427. package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.security.test.tsx → PaceAppLayout.security.test.tsx} +211 -65
  428. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +498 -210
  429. package/src/components/PaceAppLayout/PaceAppLayout.tsx +63 -64
  430. package/src/components/PaceAppLayout/test-setup.tsx +192 -0
  431. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +193 -39
  432. package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.test.tsx +2 -2
  433. package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.tsx +10 -4
  434. package/src/components/PasswordChange/index.ts +2 -0
  435. package/src/components/Progress/Progress.test.tsx +11 -0
  436. package/src/components/Progress/Progress.tsx +1 -1
  437. package/src/components/Progress/index.ts +10 -0
  438. package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +2 -1
  439. package/src/components/PublicLayout/PublicLayout.test.tsx +1210 -0
  440. package/src/components/PublicLayout/PublicPageLayout.tsx +190 -36
  441. package/src/components/PublicLayout/PublicPageProvider.tsx +8 -7
  442. package/src/components/PublicLayout/index.ts +10 -28
  443. package/src/components/Select/Select.test.tsx +7 -7
  444. package/src/components/Select/Select.tsx +277 -11
  445. package/src/components/Select/index.ts +1 -2
  446. package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +232 -0
  447. package/src/components/SessionRestorationLoader/SessionRestorationLoader.tsx +40 -19
  448. package/src/components/Table/{__tests__/Table.test.tsx → Table.test.tsx} +94 -41
  449. package/src/components/Tabs/Tabs.test.tsx +10 -9
  450. package/src/components/Tabs/Tabs.tsx +61 -33
  451. package/src/components/Textarea/Textarea.test.tsx +31 -18
  452. package/src/components/Toast/Toast.tsx +2 -2
  453. package/src/components/Tooltip/Tooltip.test.tsx +1 -1
  454. package/src/components/UserMenu/UserMenu.test.tsx +7 -6
  455. package/src/components/UserMenu/UserMenu.tsx +2 -2
  456. package/src/components/index.ts +5 -4
  457. package/src/constants/performance.ts +19 -8
  458. package/src/hooks/__tests__/useAppConfig.unit.test.ts +21 -22
  459. package/src/hooks/__tests__/useEvents.unit.test.ts +5 -4
  460. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +2 -2
  461. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +17 -0
  462. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +16 -11
  463. package/src/hooks/__tests__/usePublicEvent.simple.test.ts +1 -3
  464. package/src/hooks/__tests__/usePublicEvent.unit.test.ts +1 -3
  465. package/src/hooks/__tests__/useRBAC.unit.test.ts +24 -2
  466. package/src/hooks/index.ts +4 -0
  467. package/src/hooks/public/index.ts +2 -0
  468. package/src/hooks/public/usePublicEvent.ts +4 -6
  469. package/src/hooks/public/usePublicRouteParams.ts +1 -1
  470. package/src/hooks/services/useAuth.ts +2 -4
  471. package/src/hooks/services/useCurrentEvent.ts +1 -1
  472. package/src/hooks/useAppConfig.ts +1 -1
  473. package/src/hooks/useDataTablePerformance.ts +2 -2
  474. package/src/hooks/useEventTheme.ts +1 -1
  475. package/src/hooks/useEvents.ts +51 -10
  476. package/src/hooks/useOrganisationPermissions.test.ts +3 -3
  477. package/src/hooks/useOrganisationPermissions.ts +1 -1
  478. package/src/hooks/useOrganisationSecurity.ts +2 -2
  479. package/src/hooks/usePermissionCache.test.ts +9 -9
  480. package/src/hooks/usePermissionCache.ts +2 -2
  481. package/src/index.ts +19 -12
  482. package/src/providers/OrganisationProvider.tsx +73 -9
  483. package/src/providers/UnifiedAuthProvider.smoke.test.tsx +113 -13
  484. package/src/providers/__tests__/AuthProvider.test.tsx +2 -1
  485. package/src/providers/__tests__/EventProvider.test.tsx +24 -15
  486. package/src/providers/__tests__/OrganisationProvider.test.tsx +87 -36
  487. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +80 -24
  488. package/src/providers/index.ts +0 -3
  489. package/src/providers/services/AuthServiceProvider.tsx +2 -17
  490. package/src/providers/services/EventServiceProvider.tsx +11 -16
  491. package/src/providers/services/InactivityServiceProvider.tsx +9 -12
  492. package/src/providers/services/OrganisationServiceProvider.tsx +9 -12
  493. package/src/providers/services/UnifiedAuthProvider.tsx +85 -18
  494. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +11 -4
  495. package/src/rbac/__tests__/scenarios.user-role.test.tsx +105 -21
  496. package/src/rbac/adapters.tsx +1 -1
  497. package/src/rbac/api.ts +20 -4
  498. package/src/rbac/audit-enhanced.ts +47 -2
  499. package/src/rbac/audit.ts +47 -2
  500. package/src/rbac/components/NavigationGuard.tsx +1 -1
  501. package/src/rbac/components/NavigationProvider.test.tsx +7 -6
  502. package/src/rbac/components/NavigationProvider.tsx +1 -1
  503. package/src/rbac/components/PagePermissionGuard.tsx +1 -1
  504. package/src/rbac/components/PagePermissionProvider.test.tsx +7 -6
  505. package/src/rbac/components/PagePermissionProvider.tsx +1 -1
  506. package/src/rbac/components/PermissionEnforcer.tsx +1 -1
  507. package/src/rbac/components/RoleBasedRouter.tsx +1 -1
  508. package/src/rbac/components/SecureDataProvider.test.tsx +7 -6
  509. package/src/rbac/components/SecureDataProvider.tsx +1 -1
  510. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +6 -6
  511. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +11 -10
  512. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +10 -11
  513. package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +19 -15
  514. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +13 -12
  515. package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +19 -15
  516. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +18 -18
  517. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +11 -10
  518. package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +8 -7
  519. package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +10 -11
  520. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +48 -19
  521. package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +476 -0
  522. package/src/rbac/hooks/index.ts +3 -0
  523. package/src/rbac/hooks/usePermissions.ts +31 -85
  524. package/src/rbac/hooks/useRBAC.test.ts +13 -1
  525. package/src/rbac/hooks/useRBAC.ts +13 -67
  526. package/src/rbac/hooks/useResolvedScope.ts +11 -0
  527. package/src/rbac/hooks/useSecureSupabase.ts +308 -0
  528. package/src/rbac/index.ts +3 -0
  529. package/src/rbac/secureClient.ts +53 -6
  530. package/src/rbac/security.ts +37 -1
  531. package/src/{types/rbac-functions.ts → rbac/types/functions.ts} +30 -30
  532. package/src/rbac/types.ts +3 -2
  533. package/src/services/AuthService.ts +33 -25
  534. package/src/services/EventService.ts +56 -44
  535. package/src/services/InactivityService.ts +33 -53
  536. package/src/services/OrganisationService.ts +36 -40
  537. package/src/services/__tests__/AuthService.restoreSession.test.ts +6 -2
  538. package/src/services/__tests__/EventService.test.ts +67 -33
  539. package/src/services/interfaces/IEventService.ts +1 -1
  540. package/src/styles/core.css +2 -2
  541. package/src/styles/index.ts +1 -5
  542. package/src/types/__tests__/guards.test.ts +1 -1
  543. package/src/types/__tests__/type-validation.test.ts +0 -1
  544. package/src/types/auth.ts +42 -2
  545. package/src/types/core.ts +251 -0
  546. package/src/types/database.ts +11 -496
  547. package/src/types/event.ts +102 -0
  548. package/src/types/file-reference.ts +6 -4
  549. package/src/types/guards.ts +2 -1
  550. package/src/types/index.ts +48 -14
  551. package/src/types/lodash.debounce.d.ts +15 -0
  552. package/src/types/organisation.ts +14 -10
  553. package/src/types/supabase.ts +15 -17
  554. package/src/utils/__tests__/secureErrors.unit.test.ts +1 -1
  555. package/src/utils/__tests__/validationUtils.unit.test.ts +0 -29
  556. package/src/utils/app/appNameResolver.ts +1 -1
  557. package/src/utils/dynamic/dynamicUtils.ts +3 -2
  558. package/src/utils/file-reference/index.ts +25 -6
  559. package/src/utils/security/secureErrors.ts +1 -1
  560. package/src/utils/validation/index.ts +6 -12
  561. package/src/utils/validation/validationUtils.ts +0 -13
  562. package/dist/UnifiedAuthProvider-B37ATQHE.js +0 -16
  563. package/dist/auth-DReDSLq9.d.ts +0 -16
  564. package/dist/chunk-3JI76CYK.js +0 -2444
  565. package/dist/chunk-3JI76CYK.js.map +0 -1
  566. package/dist/chunk-56XJ3TU6.js +0 -11
  567. package/dist/chunk-56XJ3TU6.js.map +0 -1
  568. package/dist/chunk-5MT24GKJ.js.map +0 -1
  569. package/dist/chunk-7QCC6MCP.js +0 -288
  570. package/dist/chunk-BESYRHQM.js.map +0 -1
  571. package/dist/chunk-BJPBT3CU.js +0 -21
  572. package/dist/chunk-BJPBT3CU.js.map +0 -1
  573. package/dist/chunk-BVYWGZVV.js.map +0 -1
  574. package/dist/chunk-CX5M4ZAG.js.map +0 -1
  575. package/dist/chunk-D7LCGMVS.js.map +0 -1
  576. package/dist/chunk-EGI6MUL6.js +0 -27
  577. package/dist/chunk-EGI6MUL6.js.map +0 -1
  578. package/dist/chunk-ERISIBYU.js.map +0 -1
  579. package/dist/chunk-HRO5HWN2.js.map +0 -1
  580. package/dist/chunk-HZLDFOE4.js.map +0 -1
  581. package/dist/chunk-JISYG63F.js +0 -70
  582. package/dist/chunk-JISYG63F.js.map +0 -1
  583. package/dist/chunk-LIMSTKYD.js +0 -61
  584. package/dist/chunk-LIMSTKYD.js.map +0 -1
  585. package/dist/chunk-OWAG3GSU.js.map +0 -1
  586. package/dist/chunk-PPMP5J6T.js.map +0 -1
  587. package/dist/chunk-Q5QRDWKI.js.map +0 -1
  588. package/dist/chunk-S5OFRT4M.js.map +0 -1
  589. package/dist/chunk-SBVILCCA.js.map +0 -1
  590. package/dist/chunk-TUMEWN34.js +0 -15
  591. package/dist/chunk-TUMEWN34.js.map +0 -1
  592. package/dist/chunk-XDNLUEXI.js +0 -138
  593. package/dist/chunk-XJ2HZOBU.js.map +0 -1
  594. package/dist/chunk-ZYTYSTO5.js.map +0 -1
  595. package/dist/chunk-ZZ2SS7NI.js +0 -237
  596. package/dist/chunk-ZZ2SS7NI.js.map +0 -1
  597. package/dist/database-C6jy7EOu.d.ts +0 -500
  598. package/dist/organisation-D6qRDtbF.d.ts +0 -93
  599. package/dist/schema-DTDZQe2u.d.ts +0 -28
  600. package/dist/unified-DQ4VcT7H.d.ts +0 -198
  601. package/dist/useInactivityTracker-TO6ZOF35.js +0 -11
  602. package/dist/validation.d.ts +0 -47
  603. package/dist/validation.js +0 -24
  604. package/dist/validation.js.map +0 -1
  605. package/docs/DOCUMENTATION_AUDIT.md +0 -172
  606. package/docs/DOCUMENTATION_STANDARD.md +0 -137
  607. package/docs/api/classes/PublicErrorBoundary.md +0 -132
  608. package/docs/api/interfaces/EventLogoProps.md +0 -152
  609. package/docs/api/interfaces/PublicErrorBoundaryProps.md +0 -94
  610. package/docs/api/interfaces/PublicErrorBoundaryState.md +0 -68
  611. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +0 -86
  612. package/docs/architecture/rpc-function-standards.md +0 -1106
  613. package/docs/getting-started/consuming-app-vite-config.md +0 -239
  614. package/docs/implementation-guides/event-theming-summary.md +0 -226
  615. package/docs/implementation-guides/public-pages-advanced.md +0 -1038
  616. package/docs/migration/v0.4.15-tailwind-scanning.md +0 -278
  617. package/docs/migration/v0.4.16-css-first-approach.md +0 -312
  618. package/docs/migration/v0.4.17-source-path-fix.md +0 -235
  619. package/docs/rbac/RBAC_EVENT_CONTEXT_LOADING.md +0 -222
  620. package/docs/rbac/RBAC_LOGIN_SAFETY_FIX.md +0 -95
  621. package/docs/rbac/RBAC_V0.5.147_FIX.md +0 -117
  622. package/docs/rbac/README-rbac-rls-integration.md +0 -374
  623. package/docs/styles/usage.md +0 -227
  624. package/docs/testing/visual-testing.md +0 -120
  625. package/docs/troubleshooting/DEBUG_NETWORK_ERROR.md +0 -152
  626. package/docs/troubleshooting/FIX_SUPABASE_CORS.md +0 -184
  627. package/docs/troubleshooting/cake-page-permission-guard-issue-summary.md +0 -193
  628. package/docs/troubleshooting/database-view-compatibility.md +0 -125
  629. package/docs/troubleshooting/react-hooks-issue-analysis.md +0 -172
  630. package/docs/troubleshooting/tailwind-content-scanning.md +0 -219
  631. package/examples/RBAC/EventBasedApp.tsx +0 -239
  632. package/examples/RBAC/PermissionExample.tsx +0 -151
  633. package/examples/STRUCTURE.md +0 -125
  634. package/examples/components 2/DataTable/HierarchicalExample.tsx +0 -475
  635. package/examples/components 2/Dialog/BasicHtmlTest.tsx +0 -55
  636. package/examples/components 2/Dialog/DebugHtmlExample.tsx +0 -68
  637. package/examples/components 2/Dialog/HtmlDialogExample.tsx +0 -202
  638. package/examples/components 2/Dialog/SimpleHtmlTest.tsx +0 -61
  639. package/examples/components 2/Dialog/SmartDialogExample.tsx +0 -322
  640. package/examples/components 2/index.ts +0 -11
  641. package/examples/features/index.ts +0 -12
  642. package/examples/features/rbac/CompleteRBACExample.tsx +0 -324
  643. package/examples/features/rbac/index.ts +0 -13
  644. package/examples/public-pages/CorrectPublicPageImplementation.tsx +0 -301
  645. package/examples/public-pages/PublicEventPage.tsx +0 -274
  646. package/examples/public-pages/PublicPageApp.tsx +0 -308
  647. package/examples/public-pages/PublicPageUsageExample.tsx +0 -216
  648. package/examples/public-pages/index.ts +0 -14
  649. package/src/__tests__/TEST_STANDARD.md +0 -1008
  650. package/src/components/Checkbox/__mocks__/Checkbox.tsx +0 -2
  651. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +0 -421
  652. package/src/components/DataTable/examples/InitialPageSizeExample.tsx +0 -177
  653. package/src/components/DataTable/examples/PerformanceExample.tsx +0 -506
  654. package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +0 -316
  655. package/src/components/DataTable/examples/__tests__/HierarchicalExample.test.tsx +0 -45
  656. package/src/components/DataTable/examples/__tests__/InitialPageSizeExample.test.tsx +0 -211
  657. package/src/components/DataTable/examples/__tests__/PerformanceExample.test.tsx +0 -126
  658. package/src/components/Dialog/README.md +0 -804
  659. package/src/components/Dialog/examples/BasicHtmlTest.tsx +0 -55
  660. package/src/components/Dialog/examples/DebugHtmlExample.tsx +0 -68
  661. package/src/components/Dialog/examples/ScrollableDialogExample.tsx +0 -290
  662. package/src/components/Dialog/examples/SimpleHtmlTest.tsx +0 -61
  663. package/src/components/Dialog/examples/__tests__/HtmlDialogExample.test.tsx +0 -71
  664. package/src/components/Dialog/examples/__tests__/SimpleHtmlTest.test.tsx +0 -122
  665. package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -147
  666. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
  667. package/src/components/Dialog/utils/safeHtml.ts +0 -185
  668. package/src/components/EventSelector/types.ts +0 -79
  669. package/src/components/Form/FormErrorSummary.tsx +0 -113
  670. package/src/components/Form/FormField.tsx +0 -249
  671. package/src/components/Form/FormFieldset.tsx +0 -127
  672. package/src/components/Form/FormLiveRegion.tsx +0 -198
  673. package/src/components/Input/__mocks__/Input.tsx +0 -2
  674. package/src/components/NavigationMenu/types.ts +0 -85
  675. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -326
  676. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -1078
  677. package/src/components/PasswordReset/PasswordResetForm.test.tsx +0 -597
  678. package/src/components/PasswordReset/PasswordResetForm.tsx +0 -201
  679. package/src/components/PasswordReset/index.ts +0 -2
  680. package/src/components/ProtectedRoute/README.md +0 -164
  681. package/src/components/PublicLayout/EventLogo.tsx +0 -175
  682. package/src/components/PublicLayout/PublicErrorBoundary.tsx +0 -282
  683. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +0 -216
  684. package/src/components/PublicLayout/PublicPageContextChecker.tsx +0 -131
  685. package/src/components/PublicLayout/PublicPageDebugger.tsx +0 -104
  686. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +0 -162
  687. package/src/components/PublicLayout/PublicPageFooter.tsx +0 -124
  688. package/src/components/PublicLayout/PublicPageHeader.tsx +0 -209
  689. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -449
  690. package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -393
  691. package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +0 -192
  692. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -351
  693. package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -402
  694. package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -460
  695. package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -313
  696. package/src/components/Select/hooks.ts +0 -289
  697. package/src/hooks/useCounter.test.ts +0 -131
  698. package/src/hooks/useDebounce.test.ts +0 -375
  699. package/src/providers/AuthProvider.tsx +0 -15
  700. package/src/providers/EventProvider.tsx +0 -16
  701. package/src/providers/InactivityProvider.tsx +0 -15
  702. package/src/providers/OrganisationProvider.context.test.tsx +0 -169
  703. package/src/providers/UnifiedAuthProvider.tsx +0 -15
  704. package/src/types/theme.ts +0 -6
  705. package/src/types/unified.ts +0 -265
  706. package/src/utils/appConfig.ts +0 -47
  707. package/src/utils/appIdResolver.test.ts +0 -499
  708. package/src/utils/appIdResolver.ts +0 -130
  709. package/src/utils/appNameResolver.simple.test.ts +0 -212
  710. package/src/utils/appNameResolver.test.ts +0 -121
  711. package/src/utils/appNameResolver.ts +0 -191
  712. package/src/utils/audit.ts +0 -127
  713. package/src/utils/auth-utils.ts +0 -96
  714. package/src/utils/bundleAnalysis.ts +0 -129
  715. package/src/utils/debugLogger.ts +0 -67
  716. package/src/utils/deviceFingerprint.ts +0 -215
  717. package/src/utils/dynamicUtils.ts +0 -105
  718. package/src/utils/file-reference.test.ts +0 -788
  719. package/src/utils/file-reference.ts +0 -519
  720. package/src/utils/formatDate.test.ts +0 -237
  721. package/src/utils/formatting.ts +0 -170
  722. package/src/utils/lazyLoad.tsx +0 -44
  723. package/src/utils/logger.ts +0 -179
  724. package/src/utils/organisationContext.test.ts +0 -322
  725. package/src/utils/organisationContext.ts +0 -153
  726. package/src/utils/performanceBenchmark.ts +0 -64
  727. package/src/utils/performanceBudgets.ts +0 -110
  728. package/src/utils/permissionTypes.ts +0 -37
  729. package/src/utils/permissionUtils.test.ts +0 -393
  730. package/src/utils/permissionUtils.ts +0 -34
  731. package/src/utils/sanitization.ts +0 -264
  732. package/src/utils/schemaUtils.ts +0 -37
  733. package/src/utils/secureDataAccess.test.ts +0 -711
  734. package/src/utils/secureDataAccess.ts +0 -377
  735. package/src/utils/secureErrors.ts +0 -79
  736. package/src/utils/security.ts +0 -156
  737. package/src/utils/securityMonitor.ts +0 -45
  738. package/src/utils/sessionTracking.ts +0 -126
  739. package/src/utils/validation.ts +0 -111
  740. package/src/utils/validationUtils.ts +0 -120
  741. package/src/validation/index.ts +0 -12
  742. /package/dist/{DataTable-UA6CL4JI.js.map → DataTable-QAB34V6K.js.map} +0 -0
  743. /package/dist/{UnifiedAuthProvider-B37ATQHE.js.map → UnifiedAuthProvider-7F6T4B6K.js.map} +0 -0
  744. /package/dist/{api-45XYYO2A.js.map → api-ROMBCNKU.js.map} +0 -0
  745. /package/dist/{audit-64X3VJXB.js.map → audit-WRS3KJKI.js.map} +0 -0
  746. /package/dist/{chunk-PLDDJCW6.js.map → chunk-7D4SUZUM.js.map} +0 -0
  747. /package/dist/{useInactivityTracker-TO6ZOF35.js.map → chunk-KQCRWDSA.js.map} +0 -0
  748. /package/examples/{components 2/DataTable → DataTable}/InitialPageSizeExample.tsx +0 -0
  749. /package/examples/{features/public-pages → PublicPages}/index.ts +0 -0
  750. /package/examples/{RBAC → rbac}/index.ts +0 -0
@@ -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
  }