@jmruthers/pace-core 0.5.5 → 0.5.6

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 (105) hide show
  1. package/dist/{DataTable-3SSI644S.js → DataTable-BEMN72L5.js} +2 -2
  2. package/dist/{chunk-RTCA5ZNK.js → chunk-4EIBJ6DF.js} +2 -2
  3. package/dist/{chunk-2BJFM2JC.js → chunk-SFGUMWEE.js} +19 -19
  4. package/dist/chunk-SFGUMWEE.js.map +1 -0
  5. package/dist/components.js +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/utils.js +1 -1
  8. package/docs/api/classes/ErrorBoundary.md +1 -1
  9. package/docs/api/classes/InvalidScopeError.md +1 -1
  10. package/docs/api/classes/MissingUserContextError.md +1 -1
  11. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  12. package/docs/api/classes/PermissionDeniedError.md +1 -1
  13. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  14. package/docs/api/classes/RBACAuditManager.md +1 -1
  15. package/docs/api/classes/RBACCache.md +1 -1
  16. package/docs/api/classes/RBACEngine.md +1 -1
  17. package/docs/api/classes/RBACError.md +1 -1
  18. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  19. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  20. package/docs/api/interfaces/AggregateConfig.md +1 -1
  21. package/docs/api/interfaces/ButtonProps.md +1 -1
  22. package/docs/api/interfaces/CardProps.md +1 -1
  23. package/docs/api/interfaces/ColorPalette.md +1 -1
  24. package/docs/api/interfaces/ColorShade.md +1 -1
  25. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  26. package/docs/api/interfaces/DataTableAction.md +1 -1
  27. package/docs/api/interfaces/DataTableColumn.md +1 -1
  28. package/docs/api/interfaces/DataTableProps.md +1 -1
  29. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  30. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  31. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  32. package/docs/api/interfaces/EventContextType.md +1 -1
  33. package/docs/api/interfaces/EventLogoProps.md +1 -1
  34. package/docs/api/interfaces/EventProviderProps.md +1 -1
  35. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  36. package/docs/api/interfaces/FileUploadProps.md +1 -1
  37. package/docs/api/interfaces/FooterProps.md +1 -1
  38. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  39. package/docs/api/interfaces/InputProps.md +1 -1
  40. package/docs/api/interfaces/LabelProps.md +1 -1
  41. package/docs/api/interfaces/LoginFormProps.md +1 -1
  42. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  43. package/docs/api/interfaces/NavigationContextType.md +1 -1
  44. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  45. package/docs/api/interfaces/NavigationItem.md +1 -1
  46. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  47. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  48. package/docs/api/interfaces/Organisation.md +1 -1
  49. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  50. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  51. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  52. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  53. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  54. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  55. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  56. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  57. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  58. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  59. package/docs/api/interfaces/PaletteData.md +1 -1
  60. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  61. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  62. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  63. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  64. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  65. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  66. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  67. package/docs/api/interfaces/RBACConfig.md +1 -1
  68. package/docs/api/interfaces/RBACContextType.md +1 -1
  69. package/docs/api/interfaces/RBACLogger.md +1 -1
  70. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  71. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  72. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  73. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  74. package/docs/api/interfaces/RouteConfig.md +1 -1
  75. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  76. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  77. package/docs/api/interfaces/StorageConfig.md +1 -1
  78. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  79. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  80. package/docs/api/interfaces/StorageListOptions.md +1 -1
  81. package/docs/api/interfaces/StorageListResult.md +1 -1
  82. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  83. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  84. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  85. package/docs/api/interfaces/StyleImport.md +1 -1
  86. package/docs/api/interfaces/ToastActionElement.md +1 -1
  87. package/docs/api/interfaces/ToastProps.md +1 -1
  88. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  89. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  90. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  91. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  92. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  93. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  94. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  95. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  96. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  97. package/docs/api/interfaces/UserEventAccess.md +1 -1
  98. package/docs/api/interfaces/UserMenuProps.md +1 -1
  99. package/docs/api/interfaces/UserProfile.md +1 -1
  100. package/docs/api/modules.md +2 -2
  101. package/package.json +1 -1
  102. package/src/components/DataTable/components/DataTableCore.tsx +29 -25
  103. package/dist/chunk-2BJFM2JC.js.map +0 -1
  104. /package/dist/{DataTable-3SSI644S.js.map → DataTable-BEMN72L5.js.map} +0 -0
  105. /package/dist/{chunk-RTCA5ZNK.js.map → chunk-4EIBJ6DF.js.map} +0 -0
@@ -32,7 +32,7 @@ import {
32
32
  useDataTableContext,
33
33
  usePluginRegistry,
34
34
  useStateManager
35
- } from "./chunk-2BJFM2JC.js";
35
+ } from "./chunk-SFGUMWEE.js";
36
36
  import "./chunk-QVYBYGT2.js";
37
37
  import "./chunk-GWSBHC4J.js";
38
38
  import "./chunk-7BNPOCLL.js";
@@ -96,4 +96,4 @@ export {
96
96
  usePluginRegistry,
97
97
  useStateManager
98
98
  };
99
- //# sourceMappingURL=DataTable-3SSI644S.js.map
99
+ //# sourceMappingURL=DataTable-BEMN72L5.js.map
@@ -15,7 +15,7 @@ import {
15
15
  SelectSeparator,
16
16
  SelectTrigger,
17
17
  SelectValue
18
- } from "./chunk-2BJFM2JC.js";
18
+ } from "./chunk-SFGUMWEE.js";
19
19
  import {
20
20
  isPermitted
21
21
  } from "./chunk-GWSBHC4J.js";
@@ -3290,4 +3290,4 @@ export {
3290
3290
  PublicPageDiagnostic,
3291
3291
  PublicPageContextChecker
3292
3292
  };
3293
- //# sourceMappingURL=chunk-RTCA5ZNK.js.map
3293
+ //# sourceMappingURL=chunk-4EIBJ6DF.js.map
@@ -3490,21 +3490,7 @@ function DataTableInternal({
3490
3490
  }
3491
3491
  };
3492
3492
  }, [cleanup]);
3493
- if (!user) {
3494
- throw new Error("DataTable requires authenticated user for RBAC");
3495
- }
3496
- if (!rbac?.resource) {
3497
- throw new Error("DataTable requires rbac.resource for permission checking");
3498
- }
3499
- const scope = {
3500
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3501
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3502
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3503
- };
3504
- if (!permissions.canRead.can) {
3505
- return /* @__PURE__ */ jsx20(AccessDeniedPage, { resource: rbac?.resource || "test-resource", operation: "read" });
3506
- }
3507
- const secureFeatures = {
3493
+ const secureFeatures = useMemo6(() => ({
3508
3494
  ...features,
3509
3495
  creation: features.creation && permissions.canCreate.can,
3510
3496
  editing: features.editing && permissions.canUpdate.can,
@@ -3512,15 +3498,15 @@ function DataTableInternal({
3512
3498
  deleteSelected: features.deleteSelected && permissions.canDelete.can,
3513
3499
  export: features.export && permissions.canExport.can,
3514
3500
  import: features.import && permissions.canImport.can
3515
- };
3516
- const secureHandlers = {
3501
+ }), [features, permissions.canCreate.can, permissions.canUpdate.can, permissions.canDelete.can, permissions.canExport.can, permissions.canImport.can]);
3502
+ const secureHandlers = useMemo6(() => ({
3517
3503
  onEditRow: permissions.canUpdate.can ? onEditRow : void 0,
3518
3504
  onDeleteRow: permissions.canDelete.can ? onDeleteRow : void 0,
3519
3505
  onCreateRow: permissions.canCreate.can ? onCreateRow : void 0,
3520
3506
  onImport: permissions.canImport.can ? onImport : void 0,
3521
3507
  onExport: permissions.canExport.can ? onExport : void 0,
3522
3508
  onDeleteSelected: permissions.canDelete.can ? onDeleteSelected : void 0
3523
- };
3509
+ }), [permissions.canUpdate.can, permissions.canDelete.can, permissions.canCreate.can, permissions.canImport.can, permissions.canExport.can, onEditRow, onDeleteRow, onCreateRow, onImport, onExport, onDeleteSelected]);
3524
3510
  const effectiveActions = useMemo6(() => {
3525
3511
  const result = [...actions];
3526
3512
  if (secureFeatures.editing && secureHandlers.onEditRow && !result.some((a) => a.label === "Edit")) {
@@ -3699,6 +3685,20 @@ function DataTableInternal({
3699
3685
  pagination.pageSize
3700
3686
  ]);
3701
3687
  const table = useReactTable(tableConfig);
3688
+ if (!user) {
3689
+ throw new Error("DataTable requires authenticated user for RBAC");
3690
+ }
3691
+ if (!rbac?.resource) {
3692
+ throw new Error("DataTable requires rbac.resource for permission checking");
3693
+ }
3694
+ const scope = {
3695
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3696
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3697
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3698
+ };
3699
+ if (!permissions.canRead.can) {
3700
+ return /* @__PURE__ */ jsx20(AccessDeniedPage, { resource: rbac?.resource || "test-resource", operation: "read" });
3701
+ }
3702
3702
  if (isLoading) {
3703
3703
  return /* @__PURE__ */ jsx20(LoadingComponent, {});
3704
3704
  }
@@ -5462,4 +5462,4 @@ export {
5462
5462
  GroupHeader,
5463
5463
  EditableRow
5464
5464
  };
5465
- //# sourceMappingURL=chunk-2BJFM2JC.js.map
5465
+ //# sourceMappingURL=chunk-SFGUMWEE.js.map