@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
@@ -0,0 +1,153 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PagePermissionGuardProps
2
+
3
+ # Interface: PagePermissionGuardProps
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [pageName](PagePermissionGuardProps.md#pagename)
10
+ - [operation](PagePermissionGuardProps.md#operation)
11
+ - [children](PagePermissionGuardProps.md#children)
12
+ - [fallback](PagePermissionGuardProps.md#fallback)
13
+ - [strictMode](PagePermissionGuardProps.md#strictmode)
14
+ - [auditLog](PagePermissionGuardProps.md#auditlog)
15
+ - [pageId](PagePermissionGuardProps.md#pageid)
16
+ - [scope](PagePermissionGuardProps.md#scope)
17
+ - [onDenied](PagePermissionGuardProps.md#ondenied)
18
+ - [loading](PagePermissionGuardProps.md#loading)
19
+
20
+ ## Properties
21
+
22
+ ### pageName
23
+
24
+ • **pageName**: `string`
25
+
26
+ Name of the page being protected
27
+
28
+ #### Defined in
29
+
30
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L79)
31
+
32
+ ___
33
+
34
+ ### operation
35
+
36
+ • **operation**: ``"read"`` \| ``"create"`` \| ``"update"`` \| ``"delete"``
37
+
38
+ Operation being performed on the page
39
+
40
+ #### Defined in
41
+
42
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:82](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L82)
43
+
44
+ ___
45
+
46
+ ### children
47
+
48
+ • **children**: `ReactNode`
49
+
50
+ Content to render when user has permission
51
+
52
+ #### Defined in
53
+
54
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:85](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L85)
55
+
56
+ ___
57
+
58
+ ### fallback
59
+
60
+ • `Optional` **fallback**: `ReactNode`
61
+
62
+ Content to render when user lacks permission
63
+
64
+ #### Defined in
65
+
66
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:88](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L88)
67
+
68
+ ___
69
+
70
+ ### strictMode
71
+
72
+ • `Optional` **strictMode**: `boolean`
73
+
74
+ Enable strict mode to prevent bypassing (default: true)
75
+
76
+ #### Defined in
77
+
78
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:91](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L91)
79
+
80
+ ___
81
+
82
+ ### auditLog
83
+
84
+ • `Optional` **auditLog**: `boolean`
85
+
86
+ Force audit logging for this page access (default: true)
87
+
88
+ #### Defined in
89
+
90
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:94](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L94)
91
+
92
+ ___
93
+
94
+ ### pageId
95
+
96
+ • `Optional` **pageId**: `string`
97
+
98
+ Custom page ID for permission checking
99
+
100
+ #### Defined in
101
+
102
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:97](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L97)
103
+
104
+ ___
105
+
106
+ ### scope
107
+
108
+ • `Optional` **scope**: [`Scope`](../modules.md#scope)
109
+
110
+ Custom scope for permission checking
111
+
112
+ #### Defined in
113
+
114
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L100)
115
+
116
+ ___
117
+
118
+ ### onDenied
119
+
120
+ • `Optional` **onDenied**: (`pageName`: `string`, `operation`: `string`) => `void`
121
+
122
+ Callback when access is denied
123
+
124
+ #### Type declaration
125
+
126
+ ▸ (`pageName`, `operation`): `void`
127
+
128
+ ##### Parameters
129
+
130
+ | Name | Type |
131
+ | :------ | :------ |
132
+ | `pageName` | `string` |
133
+ | `operation` | `string` |
134
+
135
+ ##### Returns
136
+
137
+ `void`
138
+
139
+ #### Defined in
140
+
141
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:103](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L103)
142
+
143
+ ___
144
+
145
+ ### loading
146
+
147
+ • `Optional` **loading**: `ReactNode`
148
+
149
+ Loading state content
150
+
151
+ #### Defined in
152
+
153
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:106](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L106)
@@ -0,0 +1,119 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PagePermissionProviderProps
2
+
3
+ # Interface: PagePermissionProviderProps
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [children](PagePermissionProviderProps.md#children)
10
+ - [strictMode](PagePermissionProviderProps.md#strictmode)
11
+ - [auditLog](PagePermissionProviderProps.md#auditlog)
12
+ - [onPageAccess](PagePermissionProviderProps.md#onpageaccess)
13
+ - [onStrictModeViolation](PagePermissionProviderProps.md#onstrictmodeviolation)
14
+ - [maxHistorySize](PagePermissionProviderProps.md#maxhistorysize)
15
+
16
+ ## Properties
17
+
18
+ ### children
19
+
20
+ • **children**: `ReactNode`
21
+
22
+ Child components
23
+
24
+ #### Defined in
25
+
26
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:96](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L96)
27
+
28
+ ___
29
+
30
+ ### strictMode
31
+
32
+ • `Optional` **strictMode**: `boolean`
33
+
34
+ Enable strict mode to prevent bypassing (default: true)
35
+
36
+ #### Defined in
37
+
38
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L99)
39
+
40
+ ___
41
+
42
+ ### auditLog
43
+
44
+ • `Optional` **auditLog**: `boolean`
45
+
46
+ Enable audit logging (default: true)
47
+
48
+ #### Defined in
49
+
50
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:102](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L102)
51
+
52
+ ___
53
+
54
+ ### onPageAccess
55
+
56
+ • `Optional` **onPageAccess**: (`pageName`: `string`, `operation`: `string`, `allowed`: `boolean`, `record`: [`PageAccessRecord`](PageAccessRecord.md)) => `void`
57
+
58
+ Callback when page access is attempted
59
+
60
+ #### Type declaration
61
+
62
+ ▸ (`pageName`, `operation`, `allowed`, `record`): `void`
63
+
64
+ ##### Parameters
65
+
66
+ | Name | Type |
67
+ | :------ | :------ |
68
+ | `pageName` | `string` |
69
+ | `operation` | `string` |
70
+ | `allowed` | `boolean` |
71
+ | `record` | [`PageAccessRecord`](PageAccessRecord.md) |
72
+
73
+ ##### Returns
74
+
75
+ `void`
76
+
77
+ #### Defined in
78
+
79
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L105)
80
+
81
+ ___
82
+
83
+ ### onStrictModeViolation
84
+
85
+ • `Optional` **onStrictModeViolation**: (`pageName`: `string`, `operation`: `string`, `record`: [`PageAccessRecord`](PageAccessRecord.md)) => `void`
86
+
87
+ Callback when strict mode violation occurs
88
+
89
+ #### Type declaration
90
+
91
+ ▸ (`pageName`, `operation`, `record`): `void`
92
+
93
+ ##### Parameters
94
+
95
+ | Name | Type |
96
+ | :------ | :------ |
97
+ | `pageName` | `string` |
98
+ | `operation` | `string` |
99
+ | `record` | [`PageAccessRecord`](PageAccessRecord.md) |
100
+
101
+ ##### Returns
102
+
103
+ `void`
104
+
105
+ #### Defined in
106
+
107
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L108)
108
+
109
+ ___
110
+
111
+ ### maxHistorySize
112
+
113
+ • `Optional` **maxHistorySize**: `number`
114
+
115
+ Maximum number of access records to keep in history
116
+
117
+ #### Defined in
118
+
119
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:111](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L111)
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PaletteData
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PaletteData
2
2
 
3
3
  # Interface: PaletteData
4
4
 
@@ -0,0 +1,153 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PermissionEnforcerProps
2
+
3
+ # Interface: PermissionEnforcerProps
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [permissions](PermissionEnforcerProps.md#permissions)
10
+ - [operation](PermissionEnforcerProps.md#operation)
11
+ - [children](PermissionEnforcerProps.md#children)
12
+ - [fallback](PermissionEnforcerProps.md#fallback)
13
+ - [strictMode](PermissionEnforcerProps.md#strictmode)
14
+ - [auditLog](PermissionEnforcerProps.md#auditlog)
15
+ - [scope](PermissionEnforcerProps.md#scope)
16
+ - [onDenied](PermissionEnforcerProps.md#ondenied)
17
+ - [loading](PermissionEnforcerProps.md#loading)
18
+ - [requireAll](PermissionEnforcerProps.md#requireall)
19
+
20
+ ## Properties
21
+
22
+ ### permissions
23
+
24
+ • **permissions**: (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` \| \`manage:$\{string}\`)[]
25
+
26
+ Permissions required for access
27
+
28
+ #### Defined in
29
+
30
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:77](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L77)
31
+
32
+ ___
33
+
34
+ ### operation
35
+
36
+ • **operation**: `string`
37
+
38
+ Operation being performed
39
+
40
+ #### Defined in
41
+
42
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:80](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L80)
43
+
44
+ ___
45
+
46
+ ### children
47
+
48
+ • **children**: `ReactNode`
49
+
50
+ Content to render when user has permission
51
+
52
+ #### Defined in
53
+
54
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:83](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L83)
55
+
56
+ ___
57
+
58
+ ### fallback
59
+
60
+ • `Optional` **fallback**: `ReactNode`
61
+
62
+ Content to render when user lacks permission
63
+
64
+ #### Defined in
65
+
66
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:86](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L86)
67
+
68
+ ___
69
+
70
+ ### strictMode
71
+
72
+ • `Optional` **strictMode**: `boolean`
73
+
74
+ Enable strict mode to prevent bypassing (default: true)
75
+
76
+ #### Defined in
77
+
78
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L89)
79
+
80
+ ___
81
+
82
+ ### auditLog
83
+
84
+ • `Optional` **auditLog**: `boolean`
85
+
86
+ Force audit logging for this operation (default: true)
87
+
88
+ #### Defined in
89
+
90
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:92](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L92)
91
+
92
+ ___
93
+
94
+ ### scope
95
+
96
+ • `Optional` **scope**: [`Scope`](../modules.md#scope)
97
+
98
+ Custom scope for permission checking
99
+
100
+ #### Defined in
101
+
102
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:95](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L95)
103
+
104
+ ___
105
+
106
+ ### onDenied
107
+
108
+ • `Optional` **onDenied**: (`permissions`: (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` \| \`manage:$\{string}\`)[], `operation`: `string`) => `void`
109
+
110
+ Callback when access is denied
111
+
112
+ #### Type declaration
113
+
114
+ ▸ (`permissions`, `operation`): `void`
115
+
116
+ ##### Parameters
117
+
118
+ | Name | Type |
119
+ | :------ | :------ |
120
+ | `permissions` | (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` \| \`manage:$\{string}\`)[] |
121
+ | `operation` | `string` |
122
+
123
+ ##### Returns
124
+
125
+ `void`
126
+
127
+ #### Defined in
128
+
129
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:98](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L98)
130
+
131
+ ___
132
+
133
+ ### loading
134
+
135
+ • `Optional` **loading**: `ReactNode`
136
+
137
+ Loading state content
138
+
139
+ #### Defined in
140
+
141
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:101](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L101)
142
+
143
+ ___
144
+
145
+ ### requireAll
146
+
147
+ • `Optional` **requireAll**: `boolean`
148
+
149
+ Require all permissions (AND) or any permission (OR)
150
+
151
+ #### Defined in
152
+
153
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:104](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L104)
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicErrorBoundaryProps
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicErrorBoundaryProps
2
2
 
3
3
  # Interface: PublicErrorBoundaryProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicErrorBoundaryState
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicErrorBoundaryState
2
2
 
3
3
  # Interface: PublicErrorBoundaryState
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicLoadingSpinnerProps
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicLoadingSpinnerProps
2
2
 
3
3
  # Interface: PublicLoadingSpinnerProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicPageFooterProps
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicPageFooterProps
2
2
 
3
3
  # Interface: PublicPageFooterProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
2
2
 
3
3
  # Interface: PublicPageHeaderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.1](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
2
2
 
3
3
  # Interface: PublicPageLayoutProps
4
4
 
@@ -0,0 +1,99 @@
1
+ [@jmruthers/pace-core - v0.5.4](../README.md) / [Exports](../modules.md) / RBACConfig
2
+
3
+ # Interface: RBACConfig
4
+
5
+ ## Table of contents
6
+
7
+ ### Properties
8
+
9
+ - [supabase](RBACConfig.md#supabase)
10
+ - [debug](RBACConfig.md#debug)
11
+ - [logLevel](RBACConfig.md#loglevel)
12
+ - [developmentMode](RBACConfig.md#developmentmode)
13
+ - [mockPermissions](RBACConfig.md#mockpermissions)
14
+ - [cache](RBACConfig.md#cache)
15
+ - [audit](RBACConfig.md#audit)
16
+
17
+ ## Properties
18
+
19
+ ### supabase
20
+
21
+ • **supabase**: `default`\<`Database`, ``"public"``, ``"public"``, `never`, {}\>
22
+
23
+ #### Defined in
24
+
25
+ [packages/core/src/rbac/config.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L16)
26
+
27
+ ___
28
+
29
+ ### debug
30
+
31
+ • `Optional` **debug**: `boolean`
32
+
33
+ #### Defined in
34
+
35
+ [packages/core/src/rbac/config.ts:17](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L17)
36
+
37
+ ___
38
+
39
+ ### logLevel
40
+
41
+ • `Optional` **logLevel**: [`LogLevel`](../modules.md#loglevel)
42
+
43
+ #### Defined in
44
+
45
+ [packages/core/src/rbac/config.ts:18](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L18)
46
+
47
+ ___
48
+
49
+ ### developmentMode
50
+
51
+ • `Optional` **developmentMode**: `boolean`
52
+
53
+ #### Defined in
54
+
55
+ [packages/core/src/rbac/config.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L19)
56
+
57
+ ___
58
+
59
+ ### mockPermissions
60
+
61
+ • `Optional` **mockPermissions**: `Record`\<`string`, `boolean`\>
62
+
63
+ #### Defined in
64
+
65
+ [packages/core/src/rbac/config.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L20)
66
+
67
+ ___
68
+
69
+ ### cache
70
+
71
+ • `Optional` **cache**: `Object`
72
+
73
+ #### Type declaration
74
+
75
+ | Name | Type |
76
+ | :------ | :------ |
77
+ | `ttl?` | `number` |
78
+ | `enabled?` | `boolean` |
79
+
80
+ #### Defined in
81
+
82
+ [packages/core/src/rbac/config.ts:21](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L21)
83
+
84
+ ___
85
+
86
+ ### audit
87
+
88
+ • `Optional` **audit**: `Object`
89
+
90
+ #### Type declaration
91
+
92
+ | Name | Type |
93
+ | :------ | :------ |
94
+ | `enabled?` | `boolean` |
95
+ | `logLevel?` | [`LogLevel`](../modules.md#loglevel) |
96
+
97
+ #### Defined in
98
+
99
+ [packages/core/src/rbac/config.ts:25](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/config.ts#L25)