@jmruthers/pace-core 0.5.1 → 0.5.4

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 (210) hide show
  1. package/dist/{DataTable-GX3XERFJ.js → DataTable-ZQDRE46Q.js} +7 -6
  2. package/dist/{PublicLoadingSpinner-DztrzuJr.d.ts → PublicLoadingSpinner-Bq_-BeK-.d.ts} +1 -1
  3. package/dist/RBACProvider-BO4ilsQB.d.ts +63 -0
  4. package/dist/{UnifiedAuthProvider-w66zSCUf.d.ts → UnifiedAuthProvider-DGQsy-vY.d.ts} +2 -59
  5. package/dist/{api-ETQ6YJ3C.js → api-H5A3H4IR.js} +2 -2
  6. package/dist/{chunk-T3XIA4AJ.js → chunk-5H3C2SWM.js} +14 -16
  7. package/dist/chunk-5H3C2SWM.js.map +1 -0
  8. package/dist/chunk-5SIXIV7R.js +1925 -0
  9. package/dist/chunk-5SIXIV7R.js.map +1 -0
  10. package/dist/chunk-GNTALZV3.js +17 -0
  11. package/dist/chunk-GNTALZV3.js.map +1 -0
  12. package/dist/{chunk-C5G2A4PO.js → chunk-GWSBHC4J.js} +6 -6
  13. package/dist/{chunk-XJK2J4N6.js → chunk-HD7PYDUV.js} +4 -6
  14. package/dist/{chunk-XJK2J4N6.js.map → chunk-HD7PYDUV.js.map} +1 -1
  15. package/dist/{chunk-TGDCLPP2.js → chunk-HXX35Q2M.js} +6 -21
  16. package/dist/chunk-HXX35Q2M.js.map +1 -0
  17. package/dist/{chunk-5EL3KHOQ.js → chunk-K6B7BLSE.js} +2 -2
  18. package/dist/{chunk-GSNM5D6H.js → chunk-M4RW7PIP.js} +4 -4
  19. package/dist/{chunk-U6JDHVC2.js → chunk-PVMYVQSM.js} +6 -8
  20. package/dist/{chunk-U6JDHVC2.js.map → chunk-PVMYVQSM.js.map} +1 -1
  21. package/dist/{chunk-6CR3MRZN.js → chunk-QKHFMQ5R.js} +372 -11
  22. package/dist/{chunk-6CR3MRZN.js.map → chunk-QKHFMQ5R.js.map} +1 -1
  23. package/dist/chunk-QVYBYGT2.js +428 -0
  24. package/dist/chunk-QVYBYGT2.js.map +1 -0
  25. package/dist/{chunk-OEGRKULD.js → chunk-WJARTBCT.js} +56 -1
  26. package/dist/chunk-WJARTBCT.js.map +1 -0
  27. package/dist/components.d.ts +4 -3
  28. package/dist/components.js +16 -162
  29. package/dist/components.js.map +1 -1
  30. package/dist/hooks.d.ts +2 -2
  31. package/dist/hooks.js +7 -9
  32. package/dist/hooks.js.map +1 -1
  33. package/dist/index.d.ts +8 -6
  34. package/dist/index.js +152 -17
  35. package/dist/index.js.map +1 -1
  36. package/dist/providers.d.ts +3 -2
  37. package/dist/providers.js +6 -12
  38. package/dist/rbac/index.d.ts +167 -98
  39. package/dist/rbac/index.js +48 -1881
  40. package/dist/rbac/index.js.map +1 -1
  41. package/dist/styles/core.css +0 -55
  42. package/dist/types.d.ts +2 -2
  43. package/dist/{unified-CM7T0aTK.d.ts → unified-CMPjE_fv.d.ts} +1 -1
  44. package/dist/{usePublicRouteParams-B6i0KtXW.d.ts → usePublicRouteParams-B2OcAsur.d.ts} +1 -1
  45. package/dist/utils.js +12 -14
  46. package/dist/utils.js.map +1 -1
  47. package/docs/api/classes/ErrorBoundary.md +1 -1
  48. package/docs/api/classes/InvalidScopeError.md +73 -0
  49. package/docs/api/classes/MissingUserContextError.md +66 -0
  50. package/docs/api/classes/OrganisationContextRequiredError.md +66 -0
  51. package/docs/api/classes/PermissionDeniedError.md +73 -0
  52. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  53. package/docs/api/classes/RBACAuditManager.md +270 -0
  54. package/docs/api/classes/RBACCache.md +284 -0
  55. package/docs/api/classes/RBACEngine.md +141 -0
  56. package/docs/api/classes/RBACError.md +76 -0
  57. package/docs/api/classes/RBACNotInitializedError.md +66 -0
  58. package/docs/api/classes/SecureSupabaseClient.md +135 -0
  59. package/docs/api/interfaces/AggregateConfig.md +1 -1
  60. package/docs/api/interfaces/ButtonProps.md +1 -1
  61. package/docs/api/interfaces/CardProps.md +1 -1
  62. package/docs/api/interfaces/ColorPalette.md +1 -1
  63. package/docs/api/interfaces/ColorShade.md +1 -1
  64. package/docs/api/interfaces/DataAccessRecord.md +96 -0
  65. package/docs/api/interfaces/DataTableAction.md +1 -1
  66. package/docs/api/interfaces/DataTableColumn.md +1 -1
  67. package/docs/api/interfaces/DataTableProps.md +1 -1
  68. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  69. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  70. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +235 -0
  71. package/docs/api/interfaces/EventContextType.md +1 -1
  72. package/docs/api/interfaces/EventLogoProps.md +1 -1
  73. package/docs/api/interfaces/EventProviderProps.md +1 -1
  74. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  75. package/docs/api/interfaces/FileUploadProps.md +1 -1
  76. package/docs/api/interfaces/FooterProps.md +1 -1
  77. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  78. package/docs/api/interfaces/InputProps.md +1 -1
  79. package/docs/api/interfaces/LabelProps.md +1 -1
  80. package/docs/api/interfaces/LoginFormProps.md +1 -1
  81. package/docs/api/interfaces/NavigationAccessRecord.md +107 -0
  82. package/docs/api/interfaces/NavigationContextType.md +164 -0
  83. package/docs/api/interfaces/NavigationGuardProps.md +139 -0
  84. package/docs/api/interfaces/NavigationItem.md +1 -1
  85. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  86. package/docs/api/interfaces/NavigationProviderProps.md +117 -0
  87. package/docs/api/interfaces/Organisation.md +1 -1
  88. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  89. package/docs/api/interfaces/OrganisationMembership.md +2 -2
  90. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  91. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  92. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  93. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  94. package/docs/api/interfaces/PageAccessRecord.md +85 -0
  95. package/docs/api/interfaces/PagePermissionContextType.md +140 -0
  96. package/docs/api/interfaces/PagePermissionGuardProps.md +153 -0
  97. package/docs/api/interfaces/PagePermissionProviderProps.md +119 -0
  98. package/docs/api/interfaces/PaletteData.md +1 -1
  99. package/docs/api/interfaces/PermissionEnforcerProps.md +153 -0
  100. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  101. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  102. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  103. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  104. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  105. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  106. package/docs/api/interfaces/RBACConfig.md +99 -0
  107. package/docs/api/interfaces/RBACContextType.md +474 -0
  108. package/docs/api/interfaces/RBACLogger.md +112 -0
  109. package/docs/api/interfaces/RBACProviderProps.md +107 -0
  110. package/docs/api/interfaces/RoleBasedRouterContextType.md +151 -0
  111. package/docs/api/interfaces/RoleBasedRouterProps.md +156 -0
  112. package/docs/api/interfaces/RouteAccessRecord.md +107 -0
  113. package/docs/api/interfaces/RouteConfig.md +121 -0
  114. package/docs/api/interfaces/SecureDataContextType.md +168 -0
  115. package/docs/api/interfaces/SecureDataProviderProps.md +132 -0
  116. package/docs/api/interfaces/StorageConfig.md +1 -1
  117. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  118. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  119. package/docs/api/interfaces/StorageListOptions.md +1 -1
  120. package/docs/api/interfaces/StorageListResult.md +1 -1
  121. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  122. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  123. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  124. package/docs/api/interfaces/StyleImport.md +1 -1
  125. package/docs/api/interfaces/ToastActionElement.md +1 -1
  126. package/docs/api/interfaces/ToastProps.md +1 -1
  127. package/docs/api/interfaces/UnifiedAuthContextType.md +85 -85
  128. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  129. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  130. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  131. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  132. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  133. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  134. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  135. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  136. package/docs/api/interfaces/UserEventAccess.md +11 -11
  137. package/docs/api/interfaces/UserMenuProps.md +1 -1
  138. package/docs/api/interfaces/UserProfile.md +1 -1
  139. package/docs/api/modules.md +2244 -3
  140. package/docs/migration-guide.md +43 -18
  141. package/docs/styles/README.md +187 -98
  142. package/docs/usage.md +32 -7
  143. package/package.json +2 -2
  144. package/src/components/Footer/Footer.test.tsx +482 -0
  145. package/src/components/Form/Form.test.tsx +1158 -0
  146. package/src/components/Header/Header.test.tsx +582 -0
  147. package/src/components/Header/Header.tsx +1 -1
  148. package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +489 -0
  149. package/src/components/Input/Input.test.tsx +466 -0
  150. package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +450 -0
  151. package/src/components/LoginForm/LoginForm.test.tsx +816 -0
  152. package/src/components/NavigationMenu/NavigationMenu.test.tsx +883 -0
  153. package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +748 -0
  154. package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +891 -0
  155. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +475 -0
  156. package/src/components/PasswordReset/PasswordChangeForm.test.tsx +621 -0
  157. package/src/components/PasswordReset/PasswordResetForm.test.tsx +605 -0
  158. package/src/components/Select/Select.test.tsx +948 -0
  159. package/src/components/SuperAdminGuard.tsx +1 -1
  160. package/src/components/Toast/Toast.test.tsx +586 -0
  161. package/src/components/Tooltip/Tooltip.test.tsx +852 -0
  162. package/src/components/UserMenu/UserMenu.test.tsx +702 -0
  163. package/src/components/UserMenu/UserMenu.tsx +2 -2
  164. package/src/hooks/useDebounce.test.ts +375 -0
  165. package/src/hooks/useOrganisationPermissions.test.ts +528 -0
  166. package/src/hooks/useOrganisationSecurity.test.ts +734 -0
  167. package/src/hooks/usePermissionCache.test.ts +542 -0
  168. package/src/hooks/usePermissionCache.ts +1 -1
  169. package/src/index.ts +2 -3
  170. package/src/providers/UnifiedAuthProvider.tsx +2 -2
  171. package/src/providers/index.ts +3 -1
  172. package/src/rbac/__tests__/integration.test.tsx +218 -0
  173. package/src/rbac/api.test.ts +952 -0
  174. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +843 -0
  175. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +1007 -0
  176. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +806 -0
  177. package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +741 -0
  178. package/src/rbac/hooks/index.ts +21 -0
  179. package/src/rbac/hooks/useCan.test.ts +461 -0
  180. package/src/rbac/hooks/usePermissions.test.ts +364 -0
  181. package/src/rbac/hooks/usePermissions.ts +567 -0
  182. package/src/rbac/hooks/useRBAC.simple.test.ts +90 -0
  183. package/src/rbac/hooks/useRBAC.test.ts +551 -0
  184. package/src/{hooks → rbac/hooks}/useRBAC.ts +7 -7
  185. package/src/rbac/index.ts +5 -10
  186. package/src/{providers → rbac/providers}/RBACProvider.tsx +6 -6
  187. package/src/rbac/providers/__tests__/RBACProvider.test.tsx +687 -0
  188. package/src/rbac/providers/index.ts +11 -0
  189. package/src/styles/core.css +0 -55
  190. package/src/utils/formatDate.test.ts +241 -0
  191. package/dist/chunk-AUE24LVR.js +0 -268
  192. package/dist/chunk-AUE24LVR.js.map +0 -1
  193. package/dist/chunk-COBPIXXQ.js +0 -379
  194. package/dist/chunk-COBPIXXQ.js.map +0 -1
  195. package/dist/chunk-OEGRKULD.js.map +0 -1
  196. package/dist/chunk-OYRY44Q2.js +0 -62
  197. package/dist/chunk-OYRY44Q2.js.map +0 -1
  198. package/dist/chunk-T3XIA4AJ.js.map +0 -1
  199. package/dist/chunk-TGDCLPP2.js.map +0 -1
  200. package/src/components/RBAC/PagePermissionGuard.tsx +0 -287
  201. package/src/components/RBAC/RBACGuard.tsx +0 -143
  202. package/src/components/RBAC/RBACProvider.tsx +0 -186
  203. package/src/components/RBAC/RoleBasedContent.tsx +0 -129
  204. package/src/components/RBAC/index.ts +0 -23
  205. package/src/rbac/hooks.ts +0 -570
  206. /package/dist/{DataTable-GX3XERFJ.js.map → DataTable-ZQDRE46Q.js.map} +0 -0
  207. /package/dist/{api-ETQ6YJ3C.js.map → api-H5A3H4IR.js.map} +0 -0
  208. /package/dist/{chunk-C5G2A4PO.js.map → chunk-GWSBHC4J.js.map} +0 -0
  209. /package/dist/{chunk-5EL3KHOQ.js.map → chunk-K6B7BLSE.js.map} +0 -0
  210. /package/dist/{chunk-GSNM5D6H.js.map → chunk-M4RW7PIP.js.map} +0 -0
@@ -49,7 +49,7 @@ import {
49
49
  usePublicPageContext as usePublicPageContext2,
50
50
  useStorage,
51
51
  useToast
52
- } from "./chunk-T3XIA4AJ.js";
52
+ } from "./chunk-5H3C2SWM.js";
53
53
  import {
54
54
  Alert,
55
55
  AlertDescription,
@@ -72,14 +72,14 @@ import {
72
72
  SelectSeparator,
73
73
  SelectTrigger,
74
74
  SelectValue
75
- } from "./chunk-GSNM5D6H.js";
76
- import "./chunk-AUE24LVR.js";
77
- import "./chunk-C5G2A4PO.js";
78
- import "./chunk-7BNPOCLL.js";
75
+ } from "./chunk-M4RW7PIP.js";
79
76
  import {
80
- init_EventProvider,
81
- useEvents
82
- } from "./chunk-TGDCLPP2.js";
77
+ useRBAC
78
+ } from "./chunk-QVYBYGT2.js";
79
+ import "./chunk-GWSBHC4J.js";
80
+ import "./chunk-7BNPOCLL.js";
81
+ import "./chunk-GNTALZV3.js";
82
+ import "./chunk-HXX35Q2M.js";
83
83
  import {
84
84
  DefaultPublicErrorFallback,
85
85
  PublicErrorBoundary,
@@ -87,12 +87,8 @@ import {
87
87
  useErrorBoundary,
88
88
  useIsPublicPage,
89
89
  usePublicPageContext
90
- } from "./chunk-5EL3KHOQ.js";
90
+ } from "./chunk-K6B7BLSE.js";
91
91
  import "./chunk-SS3E6QLB.js";
92
- import {
93
- init_OrganisationProvider,
94
- useOrganisations
95
- } from "./chunk-COBPIXXQ.js";
96
92
  import {
97
93
  Button,
98
94
  Dialog,
@@ -116,17 +112,16 @@ import {
116
112
  init_Tooltip2 as init_Tooltip,
117
113
  init_UnifiedAuthProvider,
118
114
  useUnifiedAuth
119
- } from "./chunk-6CR3MRZN.js";
115
+ } from "./chunk-QKHFMQ5R.js";
120
116
  import "./chunk-YDJW5XTN.js";
121
117
  import {
122
118
  LoadingSpinner
123
119
  } from "./chunk-CDQ3PX7L.js";
124
120
  import "./chunk-74C6SNEC.js";
125
- import "./chunk-OEGRKULD.js";
126
121
  import {
127
122
  cn,
128
123
  init_cn
129
- } from "./chunk-OYRY44Q2.js";
124
+ } from "./chunk-WJARTBCT.js";
130
125
  import "./chunk-PLDDJCW6.js";
131
126
 
132
127
  // src/components/index.ts
@@ -321,147 +316,6 @@ var FormFieldset = React2.forwardRef(
321
316
  );
322
317
  FormFieldset.displayName = "FormFieldset";
323
318
 
324
- // src/hooks/useRBAC.ts
325
- init_UnifiedAuthProvider();
326
- init_OrganisationProvider();
327
- init_EventProvider();
328
- import { useState as useState2, useEffect as useEffect2, useCallback, useMemo } from "react";
329
- function useRBAC(pageId) {
330
- const { user, session, supabase, appName } = useUnifiedAuth();
331
- const { selectedOrganisation } = useOrganisations();
332
- let selectedEvent = null;
333
- try {
334
- const eventsContext = useEvents();
335
- selectedEvent = eventsContext.selectedEvent;
336
- } catch (error2) {
337
- console.debug("useRBAC: EventProvider not available, continuing without event context");
338
- }
339
- const [globalRole, setGlobalRole] = useState2(null);
340
- const [organisationRole, setOrganisationRole] = useState2(null);
341
- const [eventAppRole, setEventAppRole] = useState2(null);
342
- const [permissions, setPermissions] = useState2([]);
343
- const [isLoading, setIsLoading] = useState2(false);
344
- const [error, setError] = useState2(null);
345
- const loadRBACContext = useCallback(async () => {
346
- if (!user || !session || !supabase || !appName) {
347
- console.log("[useRBAC] Missing required dependencies, clearing RBAC state");
348
- setGlobalRole(null);
349
- setOrganisationRole(null);
350
- setEventAppRole(null);
351
- setPermissions([]);
352
- return;
353
- }
354
- setIsLoading(true);
355
- setError(null);
356
- try {
357
- const { data: appData, error: appError } = await supabase.from("rbac_apps").select("id").eq("name", appName).eq("is_active", true).single();
358
- if (appError || !appData) {
359
- console.warn("App not found or inactive:", appName);
360
- setIsLoading(false);
361
- return;
362
- }
363
- const { data, error: rpcError } = await supabase.rpc("get_rbac_permissions", {
364
- p_user_id: user.id,
365
- p_app_id: appData.id,
366
- p_event_id: selectedEvent?.event_id || null,
367
- p_organisation_id: selectedOrganisation?.id || null,
368
- p_page_id: pageId || null
369
- });
370
- if (rpcError) {
371
- throw new Error(`Failed to load RBAC permissions: ${rpcError.message}`);
372
- }
373
- if (data) {
374
- const globalPerms = data.filter((p) => p.permission_type === "all_permissions");
375
- const orgPerms = data.filter((p) => p.permission_type === "organisation_access");
376
- const eventPerms = data.filter((p) => p.permission_type === "event_app_access");
377
- setGlobalRole(globalPerms.length > 0 ? "super_admin" : null);
378
- setOrganisationRole(orgPerms.length > 0 ? orgPerms[0].role_name : null);
379
- setEventAppRole(eventPerms.length > 0 ? eventPerms[0].role_name : null);
380
- setPermissions(data);
381
- } else {
382
- setPermissions([]);
383
- }
384
- } catch (err) {
385
- console.error("RBAC Context Loading Error:", err);
386
- setError(err instanceof Error ? err : new Error("Unknown error loading RBAC context"));
387
- setPermissions([]);
388
- } finally {
389
- setIsLoading(false);
390
- }
391
- }, [user?.id, session, supabase, appName, selectedEvent?.event_id, selectedOrganisation?.id, pageId]);
392
- const hasPermission = useCallback(async (operation, targetPageId) => {
393
- if (!user || !session || !supabase || !appName) return false;
394
- if (globalRole === "super_admin") {
395
- return true;
396
- }
397
- try {
398
- const { data: appData, error: appError } = await supabase.from("rbac_apps").select("id").eq("name", appName).eq("is_active", true).single();
399
- if (appError || !appData) {
400
- console.warn("App not found or inactive:", appName);
401
- return false;
402
- }
403
- const { data, error: error2 } = await supabase.rpc("check_page_permission", {
404
- p_user_id: user.id,
405
- p_app_id: appData.id,
406
- p_page_id: targetPageId || pageId || "default",
407
- p_operation: operation,
408
- p_event_id: selectedEvent?.event_id,
409
- p_organisation_id: selectedOrganisation?.id
410
- });
411
- if (error2) {
412
- console.error("Permission check failed:", error2);
413
- return false;
414
- }
415
- return data === true;
416
- } catch (err) {
417
- console.error("Permission check error:", err);
418
- return false;
419
- }
420
- }, [user, supabase, appName, selectedEvent, selectedOrganisation, pageId, globalRole]);
421
- const hasGlobalPermission = useCallback((permission) => {
422
- if (globalRole === "super_admin") {
423
- return true;
424
- }
425
- if (permission === "super_admin") {
426
- return globalRole === "super_admin";
427
- }
428
- if (permission === "org_admin") {
429
- return organisationRole === "org_admin" || globalRole === "super_admin";
430
- }
431
- return false;
432
- }, [globalRole, organisationRole]);
433
- const isSuperAdmin = useMemo(() => globalRole === "super_admin", [globalRole]);
434
- const isOrgAdmin = useMemo(() => organisationRole === "org_admin", [organisationRole]);
435
- const isEventAdmin = useMemo(() => eventAppRole === "event_admin", [eventAppRole]);
436
- const canManageOrganisation = useMemo(
437
- () => isSuperAdmin || isOrgAdmin,
438
- [isSuperAdmin, isOrgAdmin]
439
- );
440
- const canManageEvent = useMemo(
441
- () => isSuperAdmin || isEventAdmin,
442
- [isSuperAdmin, isEventAdmin]
443
- );
444
- useEffect2(() => {
445
- loadRBACContext();
446
- }, [loadRBACContext]);
447
- return {
448
- user,
449
- // Add user to the returned context
450
- globalRole,
451
- organisationRole,
452
- eventAppRole,
453
- hasPermission,
454
- hasGlobalPermission,
455
- isSuperAdmin,
456
- isOrgAdmin,
457
- isEventAdmin,
458
- canManageOrganisation,
459
- canManageEvent,
460
- isLoading,
461
- error
462
- };
463
- }
464
-
465
319
  // src/components/SuperAdminGuard.tsx
466
320
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
467
321
  function SuperAdminGuard({
@@ -525,7 +379,7 @@ function SuperAdminDebugPanel() {
525
379
  init_cn();
526
380
 
527
381
  // src/components/PrintLayout/PrintLayoutContext.tsx
528
- import { createContext, useContext, useState as useState3, useEffect as useEffect3 } from "react";
382
+ import { createContext, useContext, useState as useState2, useEffect as useEffect2 } from "react";
529
383
  import { jsx as jsx6 } from "react/jsx-runtime";
530
384
  var PrintLayoutContext = createContext(void 0);
531
385
  function PrintLayoutProvider({
@@ -535,8 +389,8 @@ function PrintLayoutProvider({
535
389
  hasFirstPageHeader,
536
390
  hasSubsequentPageHeader
537
391
  }) {
538
- const [isFirstPage, setIsFirstPage] = useState3(true);
539
- useEffect3(() => {
392
+ const [isFirstPage, setIsFirstPage] = useState2(true);
393
+ useEffect2(() => {
540
394
  const handleResize = () => {
541
395
  setIsFirstPage(true);
542
396
  };
@@ -2006,7 +1860,7 @@ function PrintDivider({
2006
1860
 
2007
1861
  // src/components/PrintButton/PrintButton.tsx
2008
1862
  init_cn();
2009
- import { useState as useState4 } from "react";
1863
+ import { useState as useState3 } from "react";
2010
1864
  import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
2011
1865
  function PrintButton({
2012
1866
  children,
@@ -2029,7 +1883,7 @@ function PrintButton({
2029
1883
  className,
2030
1884
  ...props
2031
1885
  }) {
2032
- const [isPrinting, setIsPrinting] = useState4(false);
1886
+ const [isPrinting, setIsPrinting] = useState3(false);
2033
1887
  const getVariantClasses = (variant2) => {
2034
1888
  switch (variant2) {
2035
1889
  case "secondary":