@jmruthers/pace-core 0.5.25 → 0.5.27

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-6J4HB5O3.js → DataTable-XBVIX3TJ.js} +2 -2
  2. package/dist/{chunk-7GIFTTH3.js → chunk-2HNC463D.js} +39 -62
  3. package/dist/chunk-2HNC463D.js.map +1 -0
  4. package/dist/{chunk-A3NJHR2H.js → chunk-H6ZSHTG7.js} +2 -2
  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 +46 -61
  103. package/dist/chunk-7GIFTTH3.js.map +0 -1
  104. /package/dist/{DataTable-6J4HB5O3.js.map → DataTable-XBVIX3TJ.js.map} +0 -0
  105. /package/dist/{chunk-A3NJHR2H.js.map → chunk-H6ZSHTG7.js.map} +0 -0
@@ -32,7 +32,7 @@ import {
32
32
  useDataTableContext,
33
33
  usePluginRegistry,
34
34
  useStateManager
35
- } from "./chunk-7GIFTTH3.js";
35
+ } from "./chunk-2HNC463D.js";
36
36
  import "./chunk-YA77BOZM.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-6J4HB5O3.js.map
99
+ //# sourceMappingURL=DataTable-XBVIX3TJ.js.map
@@ -3353,38 +3353,23 @@ function DataTableInternal({
3353
3353
  throw new Error("DataTable requires either rbac.pageId or rbac.pageName for permission checking");
3354
3354
  }
3355
3355
  const effectivePageId = pageId || pageName;
3356
+ const { selectedOrganisationId, selectedEventId, supabase } = useUnifiedAuth();
3357
+ const resolvedScope = useMemo6(() => {
3358
+ if (!selectedOrganisationId) return null;
3359
+ return {
3360
+ organisationId: selectedOrganisationId,
3361
+ eventId: selectedEventId || void 0,
3362
+ appId: void 0
3363
+ };
3364
+ }, [selectedOrganisationId, selectedEventId]);
3356
3365
  const permissions = {
3357
- canRead: useCan(user?.id || "", {
3358
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3359
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3360
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3361
- }, `read:page.${effectivePageId}`, effectivePageId),
3362
- canCreate: useCan(user?.id || "", {
3363
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3364
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3365
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3366
- }, `create:page.${effectivePageId}`, effectivePageId),
3367
- canUpdate: useCan(user?.id || "", {
3368
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3369
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3370
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3371
- }, `update:page.${effectivePageId}`, effectivePageId),
3372
- canDelete: useCan(user?.id || "", {
3373
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3374
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3375
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3376
- }, `delete:page.${effectivePageId}`, effectivePageId),
3377
- canExport: useCan(user?.id || "", {
3378
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3379
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3380
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3381
- }, `manage:page.${effectivePageId}`, effectivePageId),
3366
+ canRead: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `read:page.${effectivePageId}`, effectivePageId),
3367
+ canCreate: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `create:page.${effectivePageId}`, effectivePageId),
3368
+ canUpdate: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `update:page.${effectivePageId}`, effectivePageId),
3369
+ canDelete: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `delete:page.${effectivePageId}`, effectivePageId),
3370
+ canExport: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `manage:page.${effectivePageId}`, effectivePageId),
3382
3371
  // Using manage for export/import
3383
- canImport: useCan(user?.id || "", {
3384
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3385
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3386
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3387
- }, `manage:page.${effectivePageId}`, effectivePageId)
3372
+ canImport: useCan(user?.id || "", resolvedScope || { organisationId: "", eventId: void 0, appId: void 0 }, `manage:page.${effectivePageId}`, effectivePageId)
3388
3373
  // Using manage for export/import
3389
3374
  };
3390
3375
  const finalPaginationMode = paginationMode || detectedMode;
@@ -3699,46 +3684,38 @@ function DataTableInternal({
3699
3684
  eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3700
3685
  appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3701
3686
  };
3702
- console.log("[DataTable] RBAC DEBUG:", {
3687
+ console.log("[DataTable] RBAC DEBUG - Basic Info:", {
3703
3688
  effectivePageId,
3704
3689
  pageId,
3705
3690
  pageName,
3706
- canRead: {
3707
- can: permissions.canRead.can,
3708
- isLoading: permissions.canRead.isLoading,
3709
- error: permissions.canRead.error,
3710
- refetch: typeof permissions.canRead.refetch
3711
- },
3712
3691
  userId: user?.id,
3713
- scope: {
3714
- organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3715
- eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3716
- appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3717
- },
3718
3692
  permission: `read:page.${effectivePageId}`
3719
3693
  });
3694
+ console.log("[DataTable] RBAC DEBUG - CanRead Details:");
3695
+ console.log(" can:", permissions.canRead.can);
3696
+ console.log(" isLoading:", permissions.canRead.isLoading);
3697
+ console.log(" error:", permissions.canRead.error);
3698
+ console.log(" refetch type:", typeof permissions.canRead.refetch);
3699
+ console.log("[DataTable] RBAC DEBUG - Scope (FIXED):");
3700
+ console.log(" resolvedScope:", resolvedScope);
3701
+ console.log(" organisationId:", resolvedScope?.organisationId);
3702
+ console.log(" eventId:", resolvedScope?.eventId);
3703
+ console.log(" appId:", resolvedScope?.appId);
3720
3704
  if (!permissions.canRead.can) {
3721
- console.error("[DataTable] ACCESS DENIED - DataTable RBAC failing:", {
3722
- effectivePageId,
3723
- canRead: {
3724
- can: permissions.canRead.can,
3725
- isLoading: permissions.canRead.isLoading,
3726
- error: permissions.canRead.error,
3727
- refetch: typeof permissions.canRead.refetch
3728
- },
3729
- permission: `read:page.${effectivePageId}`,
3730
- fullCanReadObject: permissions.canRead
3731
- });
3705
+ console.error("[DataTable] ACCESS DENIED - DataTable RBAC failing!");
3706
+ console.error(" effectivePageId:", effectivePageId);
3707
+ console.error(" canRead.can:", permissions.canRead.can);
3708
+ console.error(" canRead.isLoading:", permissions.canRead.isLoading);
3709
+ console.error(" canRead.error:", permissions.canRead.error);
3710
+ console.error(" permission:", `read:page.${effectivePageId}`);
3711
+ console.error(" Full canRead object:", permissions.canRead);
3732
3712
  return /* @__PURE__ */ jsx20(AccessDeniedPage, { resource: effectivePageId || "unknown-page", operation: "read" });
3733
3713
  }
3734
- console.log("[DataTable] ACCESS GRANTED - DataTable RBAC working:", {
3735
- effectivePageId,
3736
- canRead: {
3737
- can: permissions.canRead.can,
3738
- isLoading: permissions.canRead.isLoading,
3739
- error: permissions.canRead.error
3740
- }
3741
- });
3714
+ console.log("[DataTable] ACCESS GRANTED - DataTable RBAC working!");
3715
+ console.log(" effectivePageId:", effectivePageId);
3716
+ console.log(" canRead.can:", permissions.canRead.can);
3717
+ console.log(" canRead.isLoading:", permissions.canRead.isLoading);
3718
+ console.log(" canRead.error:", permissions.canRead.error);
3742
3719
  if (isLoading) {
3743
3720
  return /* @__PURE__ */ jsx20(LoadingComponent, {});
3744
3721
  }
@@ -5502,4 +5479,4 @@ export {
5502
5479
  GroupHeader,
5503
5480
  EditableRow
5504
5481
  };
5505
- //# sourceMappingURL=chunk-7GIFTTH3.js.map
5482
+ //# sourceMappingURL=chunk-2HNC463D.js.map