@jmruthers/pace-core 0.2.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 (1009) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/README.md +299 -0
  3. package/dist/DataTable-BHlzyKZP.d.ts +116 -0
  4. package/dist/DataTable-GEY5U7OI.js +100 -0
  5. package/dist/DataTable-GEY5U7OI.js.map +1 -0
  6. package/dist/PublicLoadingSpinner-DztrzuJr.d.ts +3430 -0
  7. package/dist/UnifiedAuthProvider-w66zSCUf.d.ts +160 -0
  8. package/dist/api-GZHIDA4X.js +41 -0
  9. package/dist/api-GZHIDA4X.js.map +1 -0
  10. package/dist/appConfig-BVGyuvI7.d.ts +71 -0
  11. package/dist/appNameResolver-7GHF5ED2.js +22 -0
  12. package/dist/appNameResolver-7GHF5ED2.js.map +1 -0
  13. package/dist/audit-BUW3LMJB.js +16 -0
  14. package/dist/audit-BUW3LMJB.js.map +1 -0
  15. package/dist/chunk-22KLBHPS.js +29 -0
  16. package/dist/chunk-22KLBHPS.js.map +1 -0
  17. package/dist/chunk-24MKLB7U.js +81 -0
  18. package/dist/chunk-24MKLB7U.js.map +1 -0
  19. package/dist/chunk-2MKP6IYD.js +388 -0
  20. package/dist/chunk-2MKP6IYD.js.map +1 -0
  21. package/dist/chunk-2V3Y6YBC.js +114 -0
  22. package/dist/chunk-2V3Y6YBC.js.map +1 -0
  23. package/dist/chunk-5CDJCTOO.js +190 -0
  24. package/dist/chunk-5CDJCTOO.js.map +1 -0
  25. package/dist/chunk-6ZQVSHKL.js +1345 -0
  26. package/dist/chunk-6ZQVSHKL.js.map +1 -0
  27. package/dist/chunk-74C6SNEC.js +77 -0
  28. package/dist/chunk-74C6SNEC.js.map +1 -0
  29. package/dist/chunk-7BNPOCLL.js +178 -0
  30. package/dist/chunk-7BNPOCLL.js.map +1 -0
  31. package/dist/chunk-7JL3T7BO.js +3344 -0
  32. package/dist/chunk-7JL3T7BO.js.map +1 -0
  33. package/dist/chunk-CDQ3PX7L.js +18 -0
  34. package/dist/chunk-CDQ3PX7L.js.map +1 -0
  35. package/dist/chunk-DY5E3AT7.js +1734 -0
  36. package/dist/chunk-DY5E3AT7.js.map +1 -0
  37. package/dist/chunk-ETEJVKYK.js +6032 -0
  38. package/dist/chunk-ETEJVKYK.js.map +1 -0
  39. package/dist/chunk-I5Z3QH5X.js +32 -0
  40. package/dist/chunk-I5Z3QH5X.js.map +1 -0
  41. package/dist/chunk-MZBUOP4P.js +119 -0
  42. package/dist/chunk-MZBUOP4P.js.map +1 -0
  43. package/dist/chunk-N2EUGZRW.js +98 -0
  44. package/dist/chunk-N2EUGZRW.js.map +1 -0
  45. package/dist/chunk-NQ4TOOO6.js +20 -0
  46. package/dist/chunk-NQ4TOOO6.js.map +1 -0
  47. package/dist/chunk-OHXGNT3K.js +21 -0
  48. package/dist/chunk-OHXGNT3K.js.map +1 -0
  49. package/dist/chunk-OKXMUYIB.js +522 -0
  50. package/dist/chunk-OKXMUYIB.js.map +1 -0
  51. package/dist/chunk-PFRRIDYA.js +382 -0
  52. package/dist/chunk-PFRRIDYA.js.map +1 -0
  53. package/dist/chunk-PLDDJCW6.js +49 -0
  54. package/dist/chunk-PLDDJCW6.js.map +1 -0
  55. package/dist/chunk-SS3E6QLB.js +695 -0
  56. package/dist/chunk-SS3E6QLB.js.map +1 -0
  57. package/dist/chunk-TMRLB2LA.js +326 -0
  58. package/dist/chunk-TMRLB2LA.js.map +1 -0
  59. package/dist/chunk-WYB6MBZA.js +5533 -0
  60. package/dist/chunk-WYB6MBZA.js.map +1 -0
  61. package/dist/chunk-YDJW5XTN.js +84 -0
  62. package/dist/chunk-YDJW5XTN.js.map +1 -0
  63. package/dist/components.d.ts +1308 -0
  64. package/dist/components.js +3759 -0
  65. package/dist/components.js.map +1 -0
  66. package/dist/database-C3Szpi5J.d.ts +470 -0
  67. package/dist/hooks.d.ts +449 -0
  68. package/dist/hooks.js +612 -0
  69. package/dist/hooks.js.map +1 -0
  70. package/dist/index.d.ts +385 -0
  71. package/dist/index.js +569 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/organisation-CO3Sh3_D.d.ts +99 -0
  74. package/dist/providers.d.ts +45 -0
  75. package/dist/providers.js +36 -0
  76. package/dist/providers.js.map +1 -0
  77. package/dist/rbac/eslint-rules.d.ts +52 -0
  78. package/dist/rbac/eslint-rules.js +252 -0
  79. package/dist/rbac/eslint-rules.js.map +1 -0
  80. package/dist/rbac/index.d.ts +1918 -0
  81. package/dist/rbac/index.js +2212 -0
  82. package/dist/rbac/index.js.map +1 -0
  83. package/dist/styles/core.css +401 -0
  84. package/dist/styles/fonts/georama-italic.woff2 +0 -0
  85. package/dist/styles/fonts/georama.woff2 +0 -0
  86. package/dist/styles/fonts/open-sans-italic.woff2 +0 -0
  87. package/dist/styles/fonts/open-sans.woff2 +0 -0
  88. package/dist/styles/fonts/reddit-mono.woff2 +0 -0
  89. package/dist/styles/index.d.ts +36 -0
  90. package/dist/styles/index.js +24 -0
  91. package/dist/styles/index.js.map +1 -0
  92. package/dist/theming/runtime.d.ts +73 -0
  93. package/dist/theming/runtime.js +16 -0
  94. package/dist/theming/runtime.js.map +1 -0
  95. package/dist/types-CInEi-ng.d.ts +316 -0
  96. package/dist/types.d.ts +196 -0
  97. package/dist/types.js +83 -0
  98. package/dist/types.js.map +1 -0
  99. package/dist/unified-CM7T0aTK.d.ts +198 -0
  100. package/dist/useComponentPerformance-DE9l5RkL.d.ts +11 -0
  101. package/dist/usePublicRouteParams-B6i0KtXW.d.ts +477 -0
  102. package/dist/utils.d.ts +639 -0
  103. package/dist/utils.js +1103 -0
  104. package/dist/utils.js.map +1 -0
  105. package/dist/validation-PM_iOaTI.d.ts +159 -0
  106. package/dist/validation.d.ts +138 -0
  107. package/dist/validation.js +477 -0
  108. package/dist/validation.js.map +1 -0
  109. package/docs/INDEX.md +192 -0
  110. package/docs/README.md +165 -0
  111. package/docs/api/.nojekyll +1 -0
  112. package/docs/api/README.md +301 -0
  113. package/docs/api/classes/ErrorBoundary.md +144 -0
  114. package/docs/api/classes/PublicErrorBoundary.md +132 -0
  115. package/docs/api/interfaces/AggregateConfig.md +43 -0
  116. package/docs/api/interfaces/ButtonProps.md +53 -0
  117. package/docs/api/interfaces/CardProps.md +40 -0
  118. package/docs/api/interfaces/ColorPalette.md +7 -0
  119. package/docs/api/interfaces/ColorShade.md +41 -0
  120. package/docs/api/interfaces/DataTableAction.md +200 -0
  121. package/docs/api/interfaces/DataTableColumn.md +300 -0
  122. package/docs/api/interfaces/DataTableProps.md +517 -0
  123. package/docs/api/interfaces/DataTableToolbarButton.md +96 -0
  124. package/docs/api/interfaces/EmptyStateConfig.md +61 -0
  125. package/docs/api/interfaces/EventContextType.md +96 -0
  126. package/docs/api/interfaces/EventLogoProps.md +152 -0
  127. package/docs/api/interfaces/EventProviderProps.md +19 -0
  128. package/docs/api/interfaces/FileSizeLimits.md +7 -0
  129. package/docs/api/interfaces/FileUploadProps.md +154 -0
  130. package/docs/api/interfaces/FooterProps.md +105 -0
  131. package/docs/api/interfaces/InactivityWarningModalProps.md +115 -0
  132. package/docs/api/interfaces/InputProps.md +53 -0
  133. package/docs/api/interfaces/LabelProps.md +107 -0
  134. package/docs/api/interfaces/LoginFormProps.md +184 -0
  135. package/docs/api/interfaces/NavigationItem.md +176 -0
  136. package/docs/api/interfaces/NavigationMenuProps.md +236 -0
  137. package/docs/api/interfaces/Organisation.md +140 -0
  138. package/docs/api/interfaces/OrganisationContextType.md +377 -0
  139. package/docs/api/interfaces/OrganisationMembership.md +140 -0
  140. package/docs/api/interfaces/OrganisationProviderProps.md +19 -0
  141. package/docs/api/interfaces/OrganisationSecurityError.md +62 -0
  142. package/docs/api/interfaces/PaceAppLayoutProps.md +393 -0
  143. package/docs/api/interfaces/PaceLoginPageProps.md +34 -0
  144. package/docs/api/interfaces/PaletteData.md +41 -0
  145. package/docs/api/interfaces/PublicErrorBoundaryProps.md +94 -0
  146. package/docs/api/interfaces/PublicErrorBoundaryState.md +68 -0
  147. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +86 -0
  148. package/docs/api/interfaces/PublicPageFooterProps.md +112 -0
  149. package/docs/api/interfaces/PublicPageHeaderProps.md +138 -0
  150. package/docs/api/interfaces/PublicPageLayoutProps.md +138 -0
  151. package/docs/api/interfaces/StorageConfig.md +41 -0
  152. package/docs/api/interfaces/StorageFileInfo.md +74 -0
  153. package/docs/api/interfaces/StorageFileMetadata.md +140 -0
  154. package/docs/api/interfaces/StorageListOptions.md +86 -0
  155. package/docs/api/interfaces/StorageListResult.md +41 -0
  156. package/docs/api/interfaces/StorageUploadOptions.md +88 -0
  157. package/docs/api/interfaces/StorageUploadResult.md +63 -0
  158. package/docs/api/interfaces/StorageUrlOptions.md +47 -0
  159. package/docs/api/interfaces/StyleImport.md +19 -0
  160. package/docs/api/interfaces/ToastActionElement.md +9 -0
  161. package/docs/api/interfaces/ToastProps.md +9 -0
  162. package/docs/api/interfaces/UnifiedAuthContextType.md +1108 -0
  163. package/docs/api/interfaces/UnifiedAuthProviderProps.md +171 -0
  164. package/docs/api/interfaces/UseInactivityTrackerOptions.md +136 -0
  165. package/docs/api/interfaces/UseInactivityTrackerReturn.md +123 -0
  166. package/docs/api/interfaces/UsePublicEventLogoOptions.md +87 -0
  167. package/docs/api/interfaces/UsePublicEventLogoReturn.md +81 -0
  168. package/docs/api/interfaces/UsePublicEventOptions.md +34 -0
  169. package/docs/api/interfaces/UsePublicEventReturn.md +68 -0
  170. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +94 -0
  171. package/docs/api/interfaces/UserEventAccess.md +118 -0
  172. package/docs/api/interfaces/UserMenuProps.md +86 -0
  173. package/docs/api/interfaces/UserProfile.md +63 -0
  174. package/docs/api/modules.md +4153 -0
  175. package/docs/api-reference/components.md +1623 -0
  176. package/docs/api-reference/hooks.md +627 -0
  177. package/docs/api-reference/providers.md +487 -0
  178. package/docs/api-reference/types.md +1005 -0
  179. package/docs/api-reference/utilities.md +1104 -0
  180. package/docs/app.css.example +53 -0
  181. package/docs/architecture/README.md +577 -0
  182. package/docs/best-practices/README.md +400 -0
  183. package/docs/best-practices/deployment.md +1042 -0
  184. package/docs/best-practices/performance.md +789 -0
  185. package/docs/best-practices/security.md +881 -0
  186. package/docs/best-practices/testing.md +981 -0
  187. package/docs/consuming-app-example.md +290 -0
  188. package/docs/consuming-app-vite-config.md +233 -0
  189. package/docs/core-concepts/authentication.md +98 -0
  190. package/docs/core-concepts/events.md +756 -0
  191. package/docs/core-concepts/organisations.md +790 -0
  192. package/docs/core-concepts/permissions.md +729 -0
  193. package/docs/core-concepts/rbac-system.md +233 -0
  194. package/docs/database-schema-requirements.md +172 -0
  195. package/docs/documentation-style-checklist.md +294 -0
  196. package/docs/examples/navigation-menu-auth-fix.md +344 -0
  197. package/docs/getting-started/examples/README.md +106 -0
  198. package/docs/getting-started/examples/basic-auth-app.md +521 -0
  199. package/docs/getting-started/examples/full-featured-app.md +616 -0
  200. package/docs/getting-started/installation.md +269 -0
  201. package/docs/getting-started/quick-start.md +401 -0
  202. package/docs/implementation-guides/app-layout.md +983 -0
  203. package/docs/implementation-guides/data-tables.md +1898 -0
  204. package/docs/implementation-guides/dynamic-colors.md +195 -0
  205. package/docs/implementation-guides/forms.md +578 -0
  206. package/docs/implementation-guides/hierarchical-datatable.md +850 -0
  207. package/docs/implementation-guides/large-datasets.md +281 -0
  208. package/docs/implementation-guides/navigation.md +844 -0
  209. package/docs/implementation-guides/performance.md +403 -0
  210. package/docs/implementation-guides/permission-enforcement.md +764 -0
  211. package/docs/implementation-guides/public-pages.md +752 -0
  212. package/docs/migration/README.md +493 -0
  213. package/docs/migration/organisation-context-timing-fix.md +217 -0
  214. package/docs/migration/quick-migration-guide.md +320 -0
  215. package/docs/migration/rbac-migration.md +571 -0
  216. package/docs/migration/v0.4.15-tailwind-scanning.md +272 -0
  217. package/docs/migration/v0.4.16-css-first-approach.md +306 -0
  218. package/docs/migration/v0.4.17-source-path-fix.md +229 -0
  219. package/docs/migration-guide.md +168 -0
  220. package/docs/performance/README.md +551 -0
  221. package/docs/print-components/README.md +258 -0
  222. package/docs/print-components/api-reference.md +636 -0
  223. package/docs/print-components/examples/README.md +204 -0
  224. package/docs/print-components/examples/basic-report.tsx +92 -0
  225. package/docs/print-components/examples/card-catalog.tsx +149 -0
  226. package/docs/print-components/examples/cover-page-report.tsx +163 -0
  227. package/docs/print-components/quick-start.md +363 -0
  228. package/docs/quick-reference.md +576 -0
  229. package/docs/rbac/README.md +265 -0
  230. package/docs/rbac/advanced-patterns.md +776 -0
  231. package/docs/rbac/api-reference.md +1033 -0
  232. package/docs/rbac/examples.md +883 -0
  233. package/docs/rbac/getting-started.md +679 -0
  234. package/docs/rbac/quick-start.md +619 -0
  235. package/docs/rbac/super-admin-guide.md +592 -0
  236. package/docs/rbac/troubleshooting.md +316 -0
  237. package/docs/security/README.md +680 -0
  238. package/docs/security/checklist.md +343 -0
  239. package/docs/style-guide.md +522 -0
  240. package/docs/styles/README.md +319 -0
  241. package/docs/testing/README.md +874 -0
  242. package/docs/troubleshooting/README.md +497 -0
  243. package/docs/troubleshooting/common-issues.md +1563 -0
  244. package/docs/troubleshooting/database-view-compatibility.md +119 -0
  245. package/docs/troubleshooting/debugging.md +1117 -0
  246. package/docs/troubleshooting/migration.md +918 -0
  247. package/docs/troubleshooting/organisation-context-setup.md +277 -0
  248. package/docs/troubleshooting/react-hooks-issue-analysis.md +166 -0
  249. package/docs/troubleshooting/styling-issues.md +219 -0
  250. package/docs/troubleshooting/tailwind-content-scanning.md +213 -0
  251. package/docs/usage.md +175 -0
  252. package/docs/visual-testing.md +114 -0
  253. package/package.json +211 -0
  254. package/src/__mocks__/lucide-react.ts +181 -0
  255. package/src/__tests__/README.md +404 -0
  256. package/src/__tests__/debug-provider.unit.test.tsx +67 -0
  257. package/src/__tests__/e2e/workflows.test.tsx +373 -0
  258. package/src/__tests__/hybridPermissions.unit.test.tsx +474 -0
  259. package/src/__tests__/index.integration.test.ts +491 -0
  260. package/src/__tests__/mocks/MockAuthProvider-standalone.tsx +47 -0
  261. package/src/__tests__/mocks/MockAuthProvider.tsx +63 -0
  262. package/src/__tests__/mocks/enhancedSupabaseMock.ts +252 -0
  263. package/src/__tests__/mocks/index.test.ts +23 -0
  264. package/src/__tests__/mocks/index.ts +16 -0
  265. package/src/__tests__/mocks/mockAuth.ts +155 -0
  266. package/src/__tests__/mocks/mockSupabase.ts +83 -0
  267. package/src/__tests__/mocks/mockSupabaseClient.ts +63 -0
  268. package/src/__tests__/mocks/providers.tsx +22 -0
  269. package/src/__tests__/patterns/__tests__/testPatterns.test.ts +394 -0
  270. package/src/__tests__/patterns/testPatterns.ts +124 -0
  271. package/src/__tests__/performance/componentPerformance.performance.test.ts +27 -0
  272. package/src/__tests__/performance/index.ts +24 -0
  273. package/src/__tests__/performance/performanceValidation.performance.test.ts +15 -0
  274. package/src/__tests__/security/security.unit.test.tsx +7 -0
  275. package/src/__tests__/security/securityValidation.security.test.tsx +153 -0
  276. package/src/__tests__/setup.ts +259 -0
  277. package/src/__tests__/setupTests.d.ts +1 -0
  278. package/src/__tests__/shared/componentTestUtils.tsx +475 -0
  279. package/src/__tests__/shared/errorHandlingTestUtils.ts +107 -0
  280. package/src/__tests__/shared/index.ts +81 -0
  281. package/src/__tests__/shared/integrationTestUtils.tsx +375 -0
  282. package/src/__tests__/shared/performanceTestUtils.tsx +476 -0
  283. package/src/__tests__/shared/testUtils.optimized.tsx +627 -0
  284. package/src/__tests__/simple.test.tsx +20 -0
  285. package/src/__tests__/templates/accessibility.test.template.tsx +279 -0
  286. package/src/__tests__/templates/component.test.template.tsx +122 -0
  287. package/src/__tests__/templates/integration.test.template.tsx +199 -0
  288. package/src/__tests__/test-utils/dataFactories.ts +60 -0
  289. package/src/__tests__/test-utils/index.ts +6 -0
  290. package/src/__tests__/typeSafety.unit.test.ts +65 -0
  291. package/src/__tests__/unifiedAuth.unit.test.tsx +151 -0
  292. package/src/__tests__/utils/accessibilityHelpers.ts +254 -0
  293. package/src/__tests__/utils/assertions.ts +50 -0
  294. package/src/__tests__/utils/deterministicHelpers.ts +31 -0
  295. package/src/__tests__/utils/edgeCaseConfig.test.ts +75 -0
  296. package/src/__tests__/utils/edgeCaseConfig.ts +98 -0
  297. package/src/__tests__/utils/mockHelpers.ts +149 -0
  298. package/src/__tests__/utils/mockLoader.ts +101 -0
  299. package/src/__tests__/utils/performanceHelpers.ts +55 -0
  300. package/src/__tests__/utils/performanceTestHelpers.ts +68 -0
  301. package/src/__tests__/utils/testDataFactories.ts +28 -0
  302. package/src/__tests__/utils/testIsolation.ts +67 -0
  303. package/src/__tests__/utils/visualTestHelpers.ts +20 -0
  304. package/src/__tests__/visual/__snapshots__/componentSnapshots.visual.test.tsx.snap +68 -0
  305. package/src/__tests__/visual/__snapshots__/componentVisuals.visual.test.tsx.snap +14 -0
  306. package/src/__tests__/visual/__snapshots__/visualRegression.test.tsx.snap +217 -0
  307. package/src/__tests__/visual/__snapshots__/visualRegression.visual.test.tsx.snap +24 -0
  308. package/src/__tests__/visual/componentSnapshots.visual.test.tsx +33 -0
  309. package/src/__tests__/visual/componentVisuals.visual.test.tsx +12 -0
  310. package/src/__tests__/visual/visualRegression.visual.test.tsx +20 -0
  311. package/src/components/Alert/Alert.tsx +134 -0
  312. package/src/components/Alert/__tests__/Alert.unit.test.tsx +381 -0
  313. package/src/components/Alert/index.ts +2 -0
  314. package/src/components/Avatar/Avatar.tsx +84 -0
  315. package/src/components/Avatar/__tests__/Avatar.unit.test.tsx +232 -0
  316. package/src/components/Avatar/index.ts +2 -0
  317. package/src/components/Button/Button.tsx +270 -0
  318. package/src/components/Button/__tests__/Button.accessibility.test.tsx +131 -0
  319. package/src/components/Button/__tests__/Button.comprehensive.test.tsx +721 -0
  320. package/src/components/Button/__tests__/Button.unit.test.tsx +189 -0
  321. package/src/components/Button/__tests__/EventSelector.integration.test.tsx +285 -0
  322. package/src/components/Button/index.ts +2 -0
  323. package/src/components/Card/Card.tsx +271 -0
  324. package/src/components/Card/__tests__/Card.accessibility.test.tsx +394 -0
  325. package/src/components/Card/__tests__/Card.comprehensive.test.tsx +599 -0
  326. package/src/components/Card/__tests__/Card.integration.test.tsx +673 -0
  327. package/src/components/Card/__tests__/Card.performance.test.tsx +546 -0
  328. package/src/components/Card/__tests__/Card.unit.test.tsx +330 -0
  329. package/src/components/Card/__tests__/Card.visual.test.tsx +599 -0
  330. package/src/components/Card/__tests__/README.md +211 -0
  331. package/src/components/Card/index.ts +1 -0
  332. package/src/components/Checkbox/Checkbox.tsx +75 -0
  333. package/src/components/Checkbox/__mocks__/Checkbox.tsx +2 -0
  334. package/src/components/Checkbox/__tests__/Checkbox.unit.test.tsx +520 -0
  335. package/src/components/Checkbox/index.ts +2 -0
  336. package/src/components/DataTable/DataTable.tsx +440 -0
  337. package/src/components/DataTable/__tests__/DataTable.autoSizing.test.tsx +526 -0
  338. package/src/components/DataTable/__tests__/DataTable.errorHandling.test.tsx +259 -0
  339. package/src/components/DataTable/__tests__/DataTable.hierarchical.test.tsx +675 -0
  340. package/src/components/DataTable/__tests__/DataTable.infinite-loop.test.tsx +324 -0
  341. package/src/components/DataTable/__tests__/DataTable.integration.test.tsx +724 -0
  342. package/src/components/DataTable/__tests__/DataTable.performance.test.tsx +597 -0
  343. package/src/components/DataTable/__tests__/DataTable.permissions.test.tsx +306 -0
  344. package/src/components/DataTable/__tests__/DataTable.regressionFixes.test.tsx +546 -0
  345. package/src/components/DataTable/__tests__/DataTable.selection.controlled.test.tsx +386 -0
  346. package/src/components/DataTable/__tests__/DataTable.selection.test.tsx +338 -0
  347. package/src/components/DataTable/__tests__/DataTable.userWorkflows.test.tsx +310 -0
  348. package/src/components/DataTable/__tests__/DataTable.workflowValidation.test.tsx +489 -0
  349. package/src/components/DataTable/__tests__/DataTable.workflows.test.tsx +701 -0
  350. package/src/components/DataTable/__tests__/README.md +136 -0
  351. package/src/components/DataTable/__tests__/mocks/MockRBACProvider.tsx +66 -0
  352. package/src/components/DataTable/__tests__/performance-regression.test.tsx +788 -0
  353. package/src/components/DataTable/__tests__/performance.test.tsx +365 -0
  354. package/src/components/DataTable/__tests__/test-utils/dataFactories.ts +103 -0
  355. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +382 -0
  356. package/src/components/DataTable/__tests__/test-utils.ts +94 -0
  357. package/src/components/DataTable/components/ActionButtons.tsx +177 -0
  358. package/src/components/DataTable/components/BulkOperationsDropdown.tsx +160 -0
  359. package/src/components/DataTable/components/ColumnFilter.tsx +114 -0
  360. package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +100 -0
  361. package/src/components/DataTable/components/DataTableBody.tsx +462 -0
  362. package/src/components/DataTable/components/DataTableCore.tsx +869 -0
  363. package/src/components/DataTable/components/DataTableErrorBoundary.tsx +214 -0
  364. package/src/components/DataTable/components/DataTableHeader.tsx +31 -0
  365. package/src/components/DataTable/components/DataTableModals.tsx +87 -0
  366. package/src/components/DataTable/components/DataTableToolbar.tsx +251 -0
  367. package/src/components/DataTable/components/DraggableColumnHeader.tsx +148 -0
  368. package/src/components/DataTable/components/EditableRow.tsx +160 -0
  369. package/src/components/DataTable/components/EmptyState.tsx +64 -0
  370. package/src/components/DataTable/components/ExpandButton.tsx +113 -0
  371. package/src/components/DataTable/components/FilterRow.tsx +101 -0
  372. package/src/components/DataTable/components/GroupHeader.tsx +42 -0
  373. package/src/components/DataTable/components/GroupingDropdown.tsx +96 -0
  374. package/src/components/DataTable/components/ImportModal.tsx +345 -0
  375. package/src/components/DataTable/components/LoadingState.tsx +12 -0
  376. package/src/components/DataTable/components/PaginationControls.tsx +332 -0
  377. package/src/components/DataTable/components/UnifiedTableBody.tsx +911 -0
  378. package/src/components/DataTable/components/ViewRowModal.tsx +68 -0
  379. package/src/components/DataTable/components/VirtualizedDataTable.tsx +593 -0
  380. package/src/components/DataTable/components/__tests__/ActionButtons.unit.test.tsx +150 -0
  381. package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +224 -0
  382. package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.unit.test.tsx +244 -0
  383. package/src/components/DataTable/components/__tests__/DataTable.accessibility.test.tsx +523 -0
  384. package/src/components/DataTable/components/__tests__/DataTable.integration.test.tsx +401 -0
  385. package/src/components/DataTable/components/__tests__/DataTable.performance.test.tsx +161 -0
  386. package/src/components/DataTable/components/__tests__/DataTable.real.test.tsx +251 -0
  387. package/src/components/DataTable/components/__tests__/DataTable.security.test.tsx +172 -0
  388. package/src/components/DataTable/components/__tests__/DataTable.unit.test.tsx +290 -0
  389. package/src/components/DataTable/components/__tests__/DataTableBody.unit.test.tsx +147 -0
  390. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.unit.test.tsx +182 -0
  391. package/src/components/DataTable/components/__tests__/DataTableHeader.unit.test.tsx +143 -0
  392. package/src/components/DataTable/components/__tests__/DataTableModals.unit.test.tsx +123 -0
  393. package/src/components/DataTable/components/__tests__/EditableRow.unit.test.tsx +660 -0
  394. package/src/components/DataTable/components/__tests__/EmptyState.unit.test.tsx +256 -0
  395. package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +498 -0
  396. package/src/components/DataTable/components/__tests__/FilterRow.unit.test.tsx +112 -0
  397. package/src/components/DataTable/components/__tests__/FilteringToggle.unit.test.tsx +130 -0
  398. package/src/components/DataTable/components/__tests__/GroupHeader.unit.test.tsx +172 -0
  399. package/src/components/DataTable/components/__tests__/GroupingDropdown.unit.test.tsx +222 -0
  400. package/src/components/DataTable/components/__tests__/ImportModal.unit.test.tsx +780 -0
  401. package/src/components/DataTable/components/__tests__/LoadingState.unit.test.tsx +65 -0
  402. package/src/components/DataTable/components/__tests__/PaginationControls.unit.test.tsx +634 -0
  403. package/src/components/DataTable/components/__tests__/StateComponents.unit.test.tsx +48 -0
  404. package/src/components/DataTable/components/__tests__/UnifiedTableBody.hierarchical.test.tsx +541 -0
  405. package/src/components/DataTable/components/__tests__/ViewRowModal.unit.test.tsx +228 -0
  406. package/src/components/DataTable/components/__tests__/VirtualizedDataTable.unit.test.tsx +568 -0
  407. package/src/components/DataTable/components/index.ts +17 -0
  408. package/src/components/DataTable/context/DataTableContext.tsx +97 -0
  409. package/src/components/DataTable/core/ActionManager.ts +235 -0
  410. package/src/components/DataTable/core/ColumnFactory.ts +268 -0
  411. package/src/components/DataTable/core/ColumnManager.ts +205 -0
  412. package/src/components/DataTable/core/DataManager.ts +188 -0
  413. package/src/components/DataTable/core/DataTableContext.tsx +182 -0
  414. package/src/components/DataTable/core/LocalDataAdapter.ts +264 -0
  415. package/src/components/DataTable/core/PluginRegistry.ts +229 -0
  416. package/src/components/DataTable/core/StateManager.ts +311 -0
  417. package/src/components/DataTable/core/__tests__/ActionManager.unit.test.ts +405 -0
  418. package/src/components/DataTable/core/__tests__/ArchitectureIntegration.unit.test.tsx +445 -0
  419. package/src/components/DataTable/core/__tests__/ColumnFactory.unit.test.ts +288 -0
  420. package/src/components/DataTable/core/__tests__/ColumnManager.unit.test.ts +623 -0
  421. package/src/components/DataTable/core/__tests__/DataManager.unit.test.ts +431 -0
  422. package/src/components/DataTable/core/__tests__/DataTableContext.unit.test.tsx +433 -0
  423. package/src/components/DataTable/core/__tests__/LocalDataAdapter.unit.test.ts +422 -0
  424. package/src/components/DataTable/core/__tests__/PluginRegistry.unit.test.tsx +207 -0
  425. package/src/components/DataTable/core/__tests__/StateManager.unit.test.ts +278 -0
  426. package/src/components/DataTable/core/index.ts +8 -0
  427. package/src/components/DataTable/core/interfaces.ts +338 -0
  428. package/src/components/DataTable/examples/AutoSizingExample.tsx +180 -0
  429. package/src/components/DataTable/examples/ColumnSizingComparison.tsx +235 -0
  430. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +418 -0
  431. package/src/components/DataTable/examples/HierarchicalExample.tsx +472 -0
  432. package/src/components/DataTable/examples/InitialPageSizeExample.tsx +173 -0
  433. package/src/components/DataTable/examples/PerformanceExample.tsx +502 -0
  434. package/src/components/DataTable/examples/__tests__/PerformanceExample.unit.test.tsx +281 -0
  435. package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.unit.test.ts +407 -0
  436. package/src/components/DataTable/hooks/__tests__/useColumnReordering.unit.test.ts +679 -0
  437. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +95 -0
  438. package/src/components/DataTable/hooks/useColumnReordering.ts +110 -0
  439. package/src/components/DataTable/hooks/useDataTableState.ts +325 -0
  440. package/src/components/DataTable/hooks/useHierarchicalState.ts +174 -0
  441. package/src/components/DataTable/index.ts +70 -0
  442. package/src/components/DataTable/styles.ts +171 -0
  443. package/src/components/DataTable/types.ts +475 -0
  444. package/src/components/DataTable/utils/__tests__/columnSizing.test.ts +237 -0
  445. package/src/components/DataTable/utils/__tests__/debugTools.unit.test.ts +267 -0
  446. package/src/components/DataTable/utils/__tests__/errorHandling.unit.test.ts +467 -0
  447. package/src/components/DataTable/utils/__tests__/exportUtils.unit.test.ts +380 -0
  448. package/src/components/DataTable/utils/__tests__/flexibleImport.unit.test.ts +233 -0
  449. package/src/components/DataTable/utils/__tests__/performanceUtils.unit.test.ts +414 -0
  450. package/src/components/DataTable/utils/columnSizing.ts +125 -0
  451. package/src/components/DataTable/utils/debugTools.ts +583 -0
  452. package/src/components/DataTable/utils/errorHandling.ts +494 -0
  453. package/src/components/DataTable/utils/exportUtils.ts +126 -0
  454. package/src/components/DataTable/utils/flexibleImport.ts +510 -0
  455. package/src/components/DataTable/utils/hierarchicalSorting.ts +151 -0
  456. package/src/components/DataTable/utils/hierarchicalUtils.ts +218 -0
  457. package/src/components/DataTable/utils/index.ts +1 -0
  458. package/src/components/DataTable/utils/performanceUtils.ts +351 -0
  459. package/src/components/Dialog/Dialog.tsx +782 -0
  460. package/src/components/Dialog/README.md +804 -0
  461. package/src/components/Dialog/__tests__/Dialog.accessibility.test.tsx +521 -0
  462. package/src/components/Dialog/__tests__/Dialog.auto-size.example.tsx +157 -0
  463. package/src/components/Dialog/__tests__/Dialog.enhanced.test.tsx +538 -0
  464. package/src/components/Dialog/__tests__/Dialog.unit.test.tsx +1373 -0
  465. package/src/components/Dialog/examples/BasicHtmlTest.tsx +55 -0
  466. package/src/components/Dialog/examples/DebugHtmlExample.tsx +68 -0
  467. package/src/components/Dialog/examples/HtmlDialogExample.tsx +202 -0
  468. package/src/components/Dialog/examples/SimpleHtmlTest.tsx +61 -0
  469. package/src/components/Dialog/examples/SmartDialogExample.tsx +322 -0
  470. package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +151 -0
  471. package/src/components/Dialog/index.ts +12 -0
  472. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +611 -0
  473. package/src/components/Dialog/utils/safeHtml.ts +185 -0
  474. package/src/components/ErrorBoundary/ErrorBoundary.tsx +312 -0
  475. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.accessibility.test.tsx +517 -0
  476. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.integration.test.tsx +572 -0
  477. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.unit.test.tsx +579 -0
  478. package/src/components/ErrorBoundary/index.ts +8 -0
  479. package/src/components/EventSelector/EventSelector.tsx +360 -0
  480. package/src/components/EventSelector/__tests__/EventSelector.test.tsx +528 -0
  481. package/src/components/EventSelector/index.ts +3 -0
  482. package/src/components/EventSelector/types.ts +79 -0
  483. package/src/components/FileUpload/FileUpload.example.tsx +218 -0
  484. package/src/components/FileUpload/FileUpload.tsx +237 -0
  485. package/src/components/FileUpload/__tests__/FileUpload.integration.test.tsx +992 -0
  486. package/src/components/FileUpload/__tests__/FileUpload.real.test.tsx +927 -0
  487. package/src/components/FileUpload/__tests__/FileUpload.test.tsx +855 -0
  488. package/src/components/FileUpload/__tests__/FileUpload.unit.test.tsx +1311 -0
  489. package/src/components/FileUpload/__tests__/FileUpload.unmocked.test.tsx +937 -0
  490. package/src/components/FileUpload/index.ts +6 -0
  491. package/src/components/Footer/Footer.tsx +197 -0
  492. package/src/components/Footer/__tests__/Footer.accessibility.test.tsx +359 -0
  493. package/src/components/Footer/__tests__/Footer.integration.test.tsx +353 -0
  494. package/src/components/Footer/__tests__/Footer.performance.test.tsx +309 -0
  495. package/src/components/Footer/__tests__/Footer.unit.test.tsx +309 -0
  496. package/src/components/Footer/__tests__/Footer.visual.test.tsx +335 -0
  497. package/src/components/Footer/index.ts +17 -0
  498. package/src/components/Form/Form.tsx +166 -0
  499. package/src/components/Form/FormErrorSummary.tsx +113 -0
  500. package/src/components/Form/FormField.tsx +249 -0
  501. package/src/components/Form/FormFieldset.tsx +127 -0
  502. package/src/components/Form/FormLiveRegion.tsx +198 -0
  503. package/src/components/Form/__tests__/Form.accessibility.test.tsx +820 -0
  504. package/src/components/Form/__tests__/Form.unit.test.tsx +305 -0
  505. package/src/components/Form/__tests__/FormErrorSummary.unit.test.tsx +285 -0
  506. package/src/components/Form/__tests__/FormFieldset.unit.test.tsx +241 -0
  507. package/src/components/Form/index.ts +26 -0
  508. package/src/components/Header/Header.tsx +301 -0
  509. package/src/components/Header/__tests__/Header.accessibility.test.tsx +382 -0
  510. package/src/components/Header/__tests__/Header.comprehensive.test.tsx +509 -0
  511. package/src/components/Header/__tests__/Header.unit.test.tsx +335 -0
  512. package/src/components/Header/index.ts +4 -0
  513. package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +196 -0
  514. package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +164 -0
  515. package/src/components/InactivityWarningModal/__tests__/InactivityWarningModal.unit.test.tsx +224 -0
  516. package/src/components/InactivityWarningModal/index.ts +9 -0
  517. package/src/components/Input/Input.tsx +201 -0
  518. package/src/components/Input/__mocks__/Input.tsx +2 -0
  519. package/src/components/Input/__tests__/Input.accessibility.test.tsx +632 -0
  520. package/src/components/Input/__tests__/Input.unit.test.tsx +1121 -0
  521. package/src/components/Input/index.ts +9 -0
  522. package/src/components/Label/Label.tsx +186 -0
  523. package/src/components/Label/__tests__/Label.accessibility.test.tsx +239 -0
  524. package/src/components/Label/__tests__/Label.unit.test.tsx +331 -0
  525. package/src/components/Label/index.ts +2 -0
  526. package/src/components/LoadingSpinner/LoadingSpinner.tsx +98 -0
  527. package/src/components/LoadingSpinner/__tests__/LoadingSpinner.accessibility.test.tsx +116 -0
  528. package/src/components/LoadingSpinner/__tests__/LoadingSpinner.unit.test.tsx +144 -0
  529. package/src/components/LoadingSpinner/index.ts +3 -0
  530. package/src/components/LoginForm/LoginForm.tsx +273 -0
  531. package/src/components/LoginForm/__tests__/LoginForm.accessibility.test.tsx +201 -0
  532. package/src/components/LoginForm/__tests__/LoginForm.unit.test.tsx +119 -0
  533. package/src/components/LoginForm/index.ts +3 -0
  534. package/src/components/NavigationMenu/NavigationMenu.tsx +698 -0
  535. package/src/components/NavigationMenu/__tests__/NavigationMenu.accessibility.test.tsx +378 -0
  536. package/src/components/NavigationMenu/__tests__/NavigationMenu.enhanced.test.tsx +768 -0
  537. package/src/components/NavigationMenu/__tests__/NavigationMenu.integration.test.tsx +576 -0
  538. package/src/components/NavigationMenu/__tests__/NavigationMenu.performance.test.tsx +585 -0
  539. package/src/components/NavigationMenu/__tests__/NavigationMenu.real.component.test.tsx +783 -0
  540. package/src/components/NavigationMenu/__tests__/NavigationMenu.security.enhanced.test.tsx +810 -0
  541. package/src/components/NavigationMenu/__tests__/NavigationMenu.security.test.tsx +494 -0
  542. package/src/components/NavigationMenu/__tests__/NavigationMenu.unit.test.tsx +331 -0
  543. package/src/components/NavigationMenu/__tests__/NavigationMenu.userWorkflows.test.tsx +347 -0
  544. package/src/components/NavigationMenu/__tests__/NavigationMenu.workflows.test.tsx +584 -0
  545. package/src/components/NavigationMenu/index.ts +10 -0
  546. package/src/components/NavigationMenu/types.ts +85 -0
  547. package/src/components/OrganisationSelector/OrganisationSelector.tsx +304 -0
  548. package/src/components/OrganisationSelector/__tests__/OrganisationSelector.unit.test.tsx +664 -0
  549. package/src/components/OrganisationSelector/index.ts +9 -0
  550. package/src/components/PaceAppLayout/PaceAppLayout.tsx +699 -0
  551. package/src/components/PaceAppLayout/README.md +278 -0
  552. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +288 -0
  553. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +889 -0
  554. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +629 -0
  555. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +782 -0
  556. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +904 -0
  557. package/src/components/PaceAppLayout/index.ts +1 -0
  558. package/src/components/PaceLoginPage/PaceLoginPage.tsx +221 -0
  559. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.accessibility.test.tsx +463 -0
  560. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.integration.test.tsx +586 -0
  561. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.unit.test.tsx +533 -0
  562. package/src/components/PaceLoginPage/index.ts +1 -0
  563. package/src/components/PasswordReset/PasswordChangeForm.tsx +186 -0
  564. package/src/components/PasswordReset/PasswordResetForm.tsx +201 -0
  565. package/src/components/PasswordReset/__tests__/PasswordChangeForm.accessibility.test.tsx +408 -0
  566. package/src/components/PasswordReset/__tests__/PasswordChangeForm.unit.test.tsx +561 -0
  567. package/src/components/PasswordReset/__tests__/PasswordReset.integration.test.tsx +304 -0
  568. package/src/components/PasswordReset/__tests__/PasswordResetForm.accessibility.test.tsx +20 -0
  569. package/src/components/PasswordReset/__tests__/PasswordResetForm.unit.test.tsx +523 -0
  570. package/src/components/PasswordReset/__tests__/__mocks__/UnifiedAuthProvider.ts +29 -0
  571. package/src/components/PasswordReset/index.ts +4 -0
  572. package/src/components/Print/__tests__/Print.comprehensive.test.tsx +331 -0
  573. package/src/components/PrintButton/PrintButton.tsx +321 -0
  574. package/src/components/PrintButton/PrintButtonGroup.tsx +84 -0
  575. package/src/components/PrintButton/PrintToolbar.tsx +94 -0
  576. package/src/components/PrintButton/__tests__/PrintButton.unit.test.tsx +429 -0
  577. package/src/components/PrintButton/__tests__/PrintButtonGroup.unit.test.tsx +277 -0
  578. package/src/components/PrintButton/__tests__/PrintToolbar.unit.test.tsx +264 -0
  579. package/src/components/PrintButton/examples/PrintButtonShowcase.tsx +438 -0
  580. package/src/components/PrintButton/index.ts +33 -0
  581. package/src/components/PrintButton/types.ts +173 -0
  582. package/src/components/PrintCard/PrintCard.tsx +154 -0
  583. package/src/components/PrintCard/PrintCardContent.tsx +57 -0
  584. package/src/components/PrintCard/PrintCardFooter.tsx +60 -0
  585. package/src/components/PrintCard/PrintCardGrid.tsx +91 -0
  586. package/src/components/PrintCard/PrintCardHeader.tsx +78 -0
  587. package/src/components/PrintCard/PrintCardImage.tsx +81 -0
  588. package/src/components/PrintCard/__tests__/PrintCard.unit.test.tsx +233 -0
  589. package/src/components/PrintCard/__tests__/PrintCardContent.test.tsx +284 -0
  590. package/src/components/PrintCard/__tests__/PrintCardGrid.unit.test.tsx +214 -0
  591. package/src/components/PrintCard/__tests__/PrintCardImage.unit.test.tsx +264 -0
  592. package/src/components/PrintCard/examples/PrintCardShowcase.tsx +239 -0
  593. package/src/components/PrintCard/index.ts +34 -0
  594. package/src/components/PrintCard/types.ts +171 -0
  595. package/src/components/PrintDataTable/PrintDataTable.tsx +215 -0
  596. package/src/components/PrintDataTable/PrintTableGroup.tsx +90 -0
  597. package/src/components/PrintDataTable/PrintTableRow.tsx +76 -0
  598. package/src/components/PrintDataTable/__tests__/PrintDataTable.unit.test.tsx +361 -0
  599. package/src/components/PrintDataTable/__tests__/PrintTableGroup.unit.test.tsx +314 -0
  600. package/src/components/PrintDataTable/__tests__/PrintTableRow.unit.test.tsx +362 -0
  601. package/src/components/PrintDataTable/index.ts +25 -0
  602. package/src/components/PrintDataTable/types.ts +67 -0
  603. package/src/components/PrintFooter/PrintFooter.tsx +183 -0
  604. package/src/components/PrintFooter/PrintFooterContent.tsx +71 -0
  605. package/src/components/PrintFooter/PrintFooterInfo.tsx +86 -0
  606. package/src/components/PrintFooter/PrintPageNumber.tsx +90 -0
  607. package/src/components/PrintFooter/__tests__/PrintFooter.unit.test.tsx +500 -0
  608. package/src/components/PrintFooter/__tests__/PrintFooterContent.unit.test.tsx +321 -0
  609. package/src/components/PrintFooter/__tests__/PrintFooterInfo.unit.test.tsx +335 -0
  610. package/src/components/PrintFooter/__tests__/PrintPageNumber.unit.test.tsx +340 -0
  611. package/src/components/PrintFooter/examples/PrintFooterShowcase.tsx +390 -0
  612. package/src/components/PrintFooter/index.ts +30 -0
  613. package/src/components/PrintFooter/types.ts +149 -0
  614. package/src/components/PrintGrid/PrintGrid.tsx +180 -0
  615. package/src/components/PrintGrid/PrintGridBreakpoint.tsx +109 -0
  616. package/src/components/PrintGrid/PrintGridContainer.tsx +128 -0
  617. package/src/components/PrintGrid/PrintGridItem.tsx +220 -0
  618. package/src/components/PrintGrid/__tests__/PrintGrid.unit.test.tsx +340 -0
  619. package/src/components/PrintGrid/__tests__/PrintGridBreakpoint.unit.test.tsx +261 -0
  620. package/src/components/PrintGrid/__tests__/PrintGridContainer.unit.test.tsx +338 -0
  621. package/src/components/PrintGrid/__tests__/PrintGridItem.unit.test.tsx +338 -0
  622. package/src/components/PrintGrid/examples/PrintGridShowcase.tsx +359 -0
  623. package/src/components/PrintGrid/index.ts +31 -0
  624. package/src/components/PrintGrid/types.ts +159 -0
  625. package/src/components/PrintHeader/PrintCoverHeader.tsx +230 -0
  626. package/src/components/PrintHeader/PrintHeader.tsx +150 -0
  627. package/src/components/PrintHeader/__tests__/PrintCoverHeader.unit.test.tsx +309 -0
  628. package/src/components/PrintHeader/__tests__/PrintHeader.unit.test.tsx +202 -0
  629. package/src/components/PrintHeader/index.ts +17 -0
  630. package/src/components/PrintHeader/types.ts +42 -0
  631. package/src/components/PrintLayout/PrintLayout.tsx +122 -0
  632. package/src/components/PrintLayout/PrintLayoutContext.tsx +66 -0
  633. package/src/components/PrintLayout/PrintPageBreak.tsx +52 -0
  634. package/src/components/PrintLayout/__tests__/PrintLayout.unit.test.tsx +238 -0
  635. package/src/components/PrintLayout/examples/PrintShowcase.tsx +230 -0
  636. package/src/components/PrintLayout/index.ts +19 -0
  637. package/src/components/PrintLayout/types.ts +37 -0
  638. package/src/components/PrintPageBreak/PrintPageBreak.tsx +120 -0
  639. package/src/components/PrintPageBreak/PrintPageBreakGroup.tsx +90 -0
  640. package/src/components/PrintPageBreak/PrintPageBreakIndicator.tsx +112 -0
  641. package/src/components/PrintPageBreak/__tests__/PrintPageBreak.unit.test.tsx +263 -0
  642. package/src/components/PrintPageBreak/__tests__/PrintPageBreakGroup.unit.test.tsx +239 -0
  643. package/src/components/PrintPageBreak/__tests__/PrintPageBreakIndicator.unit.test.tsx +235 -0
  644. package/src/components/PrintPageBreak/examples/PrintPageBreakShowcase.tsx +279 -0
  645. package/src/components/PrintPageBreak/index.ts +23 -0
  646. package/src/components/PrintPageBreak/types.ts +94 -0
  647. package/src/components/PrintSection/PrintColumn.tsx +104 -0
  648. package/src/components/PrintSection/PrintDivider.tsx +101 -0
  649. package/src/components/PrintSection/PrintSection.tsx +129 -0
  650. package/src/components/PrintSection/PrintSectionContent.tsx +75 -0
  651. package/src/components/PrintSection/PrintSectionHeader.tsx +97 -0
  652. package/src/components/PrintSection/__tests__/PrintColumn.unit.test.tsx +385 -0
  653. package/src/components/PrintSection/__tests__/PrintDivider.unit.test.tsx +373 -0
  654. package/src/components/PrintSection/__tests__/PrintSection.unit.test.tsx +390 -0
  655. package/src/components/PrintSection/__tests__/PrintSectionContent.unit.test.tsx +321 -0
  656. package/src/components/PrintSection/__tests__/PrintSectionHeader.unit.test.tsx +334 -0
  657. package/src/components/PrintSection/examples/PrintSectionShowcase.tsx +258 -0
  658. package/src/components/PrintSection/index.ts +33 -0
  659. package/src/components/PrintSection/types.ts +155 -0
  660. package/src/components/PrintText/PrintText.tsx +116 -0
  661. package/src/components/PrintText/__tests__/PrintText.unit.test.tsx +351 -0
  662. package/src/components/PrintText/index.ts +16 -0
  663. package/src/components/PrintText/types.ts +24 -0
  664. package/src/components/Progress/Progress.tsx +116 -0
  665. package/src/components/Progress/__tests__/Progress.accessibility.test.tsx +240 -0
  666. package/src/components/Progress/__tests__/Progress.unit.test.tsx +242 -0
  667. package/src/components/Progress/index.ts +3 -0
  668. package/src/components/PublicLayout/EventLogo.tsx +287 -0
  669. package/src/components/PublicLayout/PublicErrorBoundary.tsx +279 -0
  670. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +208 -0
  671. package/src/components/PublicLayout/PublicPageContextChecker.tsx +130 -0
  672. package/src/components/PublicLayout/PublicPageDebugger.tsx +104 -0
  673. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +162 -0
  674. package/src/components/PublicLayout/PublicPageFooter.tsx +124 -0
  675. package/src/components/PublicLayout/PublicPageHeader.tsx +178 -0
  676. package/src/components/PublicLayout/PublicPageLayout.tsx +232 -0
  677. package/src/components/PublicLayout/PublicPageProvider.tsx +137 -0
  678. package/src/components/PublicLayout/__tests__/EventLogo.test.tsx +761 -0
  679. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.simplified.test.tsx +228 -0
  680. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +228 -0
  681. package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +459 -0
  682. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +362 -0
  683. package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +522 -0
  684. package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +599 -0
  685. package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +513 -0
  686. package/src/components/PublicLayout/index.ts +51 -0
  687. package/src/components/RBAC/PagePermissionGuard.tsx +274 -0
  688. package/src/components/RBAC/RBACGuard.tsx +143 -0
  689. package/src/components/RBAC/RBACProvider.tsx +186 -0
  690. package/src/components/RBAC/RoleBasedContent.tsx +129 -0
  691. package/src/components/RBAC/__tests__/PagePermissionGuard.unit.test.tsx +674 -0
  692. package/src/components/RBAC/__tests__/RBAC.integration.test.tsx +573 -0
  693. package/src/components/RBAC/__tests__/RBACGuard.unit.test.tsx +467 -0
  694. package/src/components/RBAC/__tests__/RBACProvider.accessibility.test.tsx +475 -0
  695. package/src/components/RBAC/__tests__/RBACProvider.advanced.test.tsx +569 -0
  696. package/src/components/RBAC/__tests__/RBACProvider.integration.test.tsx +352 -0
  697. package/src/components/RBAC/__tests__/RBACProvider.unit.test.tsx +128 -0
  698. package/src/components/RBAC/__tests__/RoleBasedContent.unit.test.tsx +657 -0
  699. package/src/components/RBAC/index.ts +23 -0
  700. package/src/components/Select/Select.tsx +654 -0
  701. package/src/components/Select/__tests__/SearchableSelect.unit.test.tsx +437 -0
  702. package/src/components/Select/__tests__/Select.accessibility.test.tsx +1202 -0
  703. package/src/components/Select/__tests__/Select.actual.test.tsx +774 -0
  704. package/src/components/Select/__tests__/Select.comprehensive.test.tsx +837 -0
  705. package/src/components/Select/__tests__/Select.enhanced.test.tsx +1101 -0
  706. package/src/components/Select/__tests__/Select.integration.test.tsx +772 -0
  707. package/src/components/Select/__tests__/Select.performance.test.tsx +695 -0
  708. package/src/components/Select/__tests__/Select.real-world.test.tsx +1046 -0
  709. package/src/components/Select/__tests__/Select.search-algorithms.test.tsx +968 -0
  710. package/src/components/Select/__tests__/Select.unit.test.tsx +647 -0
  711. package/src/components/Select/__tests__/Select.utils.test.tsx +890 -0
  712. package/src/components/Select/index.ts +1 -0
  713. package/src/components/SuperAdminGuard.tsx +116 -0
  714. package/src/components/Table/Table.tsx +222 -0
  715. package/src/components/Table/__tests__/Table.accessibility.test.tsx +233 -0
  716. package/src/components/Table/__tests__/Table.unit.test.tsx +235 -0
  717. package/src/components/Table/index.ts +11 -0
  718. package/src/components/Toast/Toast.tsx +339 -0
  719. package/src/components/Toast/__tests__/Toast.accessibility.test.tsx +238 -0
  720. package/src/components/Toast/__tests__/Toast.integration.test.tsx +699 -0
  721. package/src/components/Toast/__tests__/Toast.unit.test.tsx +750 -0
  722. package/src/components/Toast/index.ts +14 -0
  723. package/src/components/Tooltip/Tooltip.tsx +167 -0
  724. package/src/components/Tooltip/__tests__/Tooltip.accessibility.test.tsx +121 -0
  725. package/src/components/Tooltip/__tests__/Tooltip.unit.test.tsx +185 -0
  726. package/src/components/Tooltip/index.ts +7 -0
  727. package/src/components/UserMenu/UserMenu.tsx +243 -0
  728. package/src/components/UserMenu/__tests__/UserMenu.accessibility.test.tsx +139 -0
  729. package/src/components/UserMenu/__tests__/UserMenu.integration.test.tsx +188 -0
  730. package/src/components/UserMenu/__tests__/UserMenu.unit.test.tsx +458 -0
  731. package/src/components/UserMenu/index.ts +3 -0
  732. package/src/components/__tests__/EdgeCaseTesting.enhanced.test.tsx +523 -0
  733. package/src/components/__tests__/ErrorTesting.enhanced.test.tsx +455 -0
  734. package/src/components/__tests__/SuperAdminGuard.test.tsx +456 -0
  735. package/src/components/__tests__/SuperAdminGuard.unit.test.tsx +456 -0
  736. package/src/components/examples/PermissionExample.tsx +150 -0
  737. package/src/components/examples/__tests__/PermissionExample.unit.test.tsx +360 -0
  738. package/src/components/index.ts +434 -0
  739. package/src/components.ts +19 -0
  740. package/src/constants/performance.ts +14 -0
  741. package/src/examples/CorrectPublicPageImplementation.tsx +301 -0
  742. package/src/examples/PublicEventPage.tsx +274 -0
  743. package/src/examples/PublicPageApp.tsx +308 -0
  744. package/src/examples/PublicPageUsageExample.tsx +216 -0
  745. package/src/fonts/georama-italic.woff2 +0 -0
  746. package/src/fonts/georama.woff2 +0 -0
  747. package/src/fonts/open-sans-italic.woff2 +0 -0
  748. package/src/fonts/open-sans.woff2 +0 -0
  749. package/src/fonts/reddit-mono.woff2 +0 -0
  750. package/src/hooks/__tests__/hooks.integration.test.tsx +575 -0
  751. package/src/hooks/__tests__/useApiFetch.unit.test.ts +115 -0
  752. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +133 -0
  753. package/src/hooks/__tests__/useDebounce.unit.test.ts +82 -0
  754. package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +293 -0
  755. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +385 -0
  756. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +286 -0
  757. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +838 -0
  758. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +627 -0
  759. package/src/hooks/__tests__/useRBAC.unit.test.ts +903 -0
  760. package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +537 -0
  761. package/src/hooks/__tests__/useToast.unit.test.tsx +62 -0
  762. package/src/hooks/__tests__/useZodForm.unit.test.tsx +37 -0
  763. package/src/hooks/index.ts +56 -0
  764. package/src/hooks/public/__tests__/usePublicEvent.test.tsx +397 -0
  765. package/src/hooks/public/__tests__/usePublicEventLogo.test.tsx +690 -0
  766. package/src/hooks/public/__tests__/usePublicRouteParams.test.tsx +449 -0
  767. package/src/hooks/public/index.ts +34 -0
  768. package/src/hooks/public/usePublicEvent.ts +261 -0
  769. package/src/hooks/public/usePublicEventLogo.ts +285 -0
  770. package/src/hooks/public/usePublicRouteParams.ts +259 -0
  771. package/src/hooks/useAppConfig.ts +94 -0
  772. package/src/hooks/useComponentPerformance.ts +39 -0
  773. package/src/hooks/useDataTablePerformance.ts +387 -0
  774. package/src/hooks/useDataTableState.ts +110 -0
  775. package/src/hooks/useDebounce.ts +18 -0
  776. package/src/hooks/useFocusManagement.ts +161 -0
  777. package/src/hooks/useFocusTrap.ts +155 -0
  778. package/src/hooks/useInactivityTracker.ts +372 -0
  779. package/src/hooks/useIsMobile.ts +42 -0
  780. package/src/hooks/useKeyboardShortcuts.ts +237 -0
  781. package/src/hooks/useOrganisationPermissions.ts +208 -0
  782. package/src/hooks/useOrganisationSecurity.ts +262 -0
  783. package/src/hooks/usePerformanceMonitor.ts +128 -0
  784. package/src/hooks/usePermissionCache.ts +455 -0
  785. package/src/hooks/useRBAC.ts +262 -0
  786. package/src/hooks/useSecureDataAccess.ts +586 -0
  787. package/src/hooks/useStorage.ts +274 -0
  788. package/src/hooks/useToast.ts +242 -0
  789. package/src/hooks/useZodForm.ts +28 -0
  790. package/src/index.ts +200 -0
  791. package/src/providers/AuthProvider.tsx +369 -0
  792. package/src/providers/EventProvider.tsx +324 -0
  793. package/src/providers/InactivityProvider.tsx +238 -0
  794. package/src/providers/OrganisationProvider.tsx +588 -0
  795. package/src/providers/RBACProvider.tsx +622 -0
  796. package/src/providers/UnifiedAuthProvider.tsx +327 -0
  797. package/src/providers/__tests__/EventProvider.unit.test.tsx +768 -0
  798. package/src/providers/__tests__/OrganisationProvider.basic.test.tsx +116 -0
  799. package/src/providers/__tests__/OrganisationProvider.unit.test.tsx +1312 -0
  800. package/src/providers/__tests__/UnifiedAuthProvider.inactivity.test.tsx +601 -0
  801. package/src/providers/__tests__/UnifiedAuthProvider.unit.test.tsx +675 -0
  802. package/src/providers/__tests__/index.unit.test.ts +78 -0
  803. package/src/providers/index.ts +15 -0
  804. package/src/rbac/README.md +885 -0
  805. package/src/rbac/__tests__/PagePermissionGuard.test.tsx +673 -0
  806. package/src/rbac/__tests__/README.md +170 -0
  807. package/src/rbac/__tests__/RoleBasedRouter.test.tsx +709 -0
  808. package/src/rbac/__tests__/TestContext.tsx +72 -0
  809. package/src/rbac/__tests__/__mocks__/cache.ts +144 -0
  810. package/src/rbac/__tests__/__mocks__/supabase.ts +152 -0
  811. package/src/rbac/__tests__/adapters-hooks-comprehensive.test.tsx +782 -0
  812. package/src/rbac/__tests__/adapters-hooks.test.tsx +561 -0
  813. package/src/rbac/__tests__/adapters.comprehensive.test.tsx +963 -0
  814. package/src/rbac/__tests__/adapters.test.tsx +444 -0
  815. package/src/rbac/__tests__/api.test.ts +620 -0
  816. package/src/rbac/__tests__/audit-observability-comprehensive.test.ts +792 -0
  817. package/src/rbac/__tests__/audit-observability.test.ts +549 -0
  818. package/src/rbac/__tests__/audit.test.ts +616 -0
  819. package/src/rbac/__tests__/build-contract-compliance-simple.test.ts +230 -0
  820. package/src/rbac/__tests__/cache-invalidation-comprehensive.test.ts +889 -0
  821. package/src/rbac/__tests__/cache-invalidation.test.ts +457 -0
  822. package/src/rbac/__tests__/cache.test.ts +458 -0
  823. package/src/rbac/__tests__/components-navigation-guard.enhanced.test.tsx +859 -0
  824. package/src/rbac/__tests__/components-navigation-guard.test.tsx +895 -0
  825. package/src/rbac/__tests__/components-navigation-provider.test.tsx +692 -0
  826. package/src/rbac/__tests__/components-page-permission-guard.test.tsx +673 -0
  827. package/src/rbac/__tests__/components-page-permission-provider.test.tsx +614 -0
  828. package/src/rbac/__tests__/components-permission-enforcer.enhanced.fixed.test.tsx +836 -0
  829. package/src/rbac/__tests__/components-permission-enforcer.enhanced.test.tsx +837 -0
  830. package/src/rbac/__tests__/components-permission-enforcer.test.tsx +825 -0
  831. package/src/rbac/__tests__/components-role-based-router.test.tsx +709 -0
  832. package/src/rbac/__tests__/components-secure-data-provider.test.tsx +607 -0
  833. package/src/rbac/__tests__/config.test.ts +583 -0
  834. package/src/rbac/__tests__/core-logic-unit.test.ts +190 -0
  835. package/src/rbac/__tests__/core-permission-logic-comprehensive.test.ts +1467 -0
  836. package/src/rbac/__tests__/core-permission-logic-fixed.test.ts +151 -0
  837. package/src/rbac/__tests__/core-permission-logic-simple.test.ts +968 -0
  838. package/src/rbac/__tests__/core-permission-logic.test.ts +966 -0
  839. package/src/rbac/__tests__/edge-cases-comprehensive.test.ts +988 -0
  840. package/src/rbac/__tests__/edge-cases.test.ts +654 -0
  841. package/src/rbac/__tests__/engine.test.ts +361 -0
  842. package/src/rbac/__tests__/engine.unit.test.ts +361 -0
  843. package/src/rbac/__tests__/hooks.enhanced.test.tsx +979 -0
  844. package/src/rbac/__tests__/hooks.fixed.test.tsx +475 -0
  845. package/src/rbac/__tests__/hooks.test.tsx +385 -0
  846. package/src/rbac/__tests__/index.test.ts +269 -0
  847. package/src/rbac/__tests__/integration.enhanced.test.tsx +824 -0
  848. package/src/rbac/__tests__/page-permission-guard-super-admin.test.tsx +261 -0
  849. package/src/rbac/__tests__/performance.enhanced.test.tsx +724 -0
  850. package/src/rbac/__tests__/permissions.test.ts +383 -0
  851. package/src/rbac/__tests__/requires-event.test.ts +330 -0
  852. package/src/rbac/__tests__/scope-isolation-comprehensive.test.ts +1349 -0
  853. package/src/rbac/__tests__/scope-isolation.test.ts +755 -0
  854. package/src/rbac/__tests__/secure-client-rls-comprehensive.test.ts +592 -0
  855. package/src/rbac/__tests__/secure-client-rls.test.ts +377 -0
  856. package/src/rbac/__tests__/security.test.ts +296 -0
  857. package/src/rbac/__tests__/setup.ts +228 -0
  858. package/src/rbac/__tests__/test-utils-enhanced.tsx +400 -0
  859. package/src/rbac/__tests__/types.test.ts +685 -0
  860. package/src/rbac/adapters.tsx +726 -0
  861. package/src/rbac/api.ts +337 -0
  862. package/src/rbac/audit-enhanced.ts +339 -0
  863. package/src/rbac/audit.ts +338 -0
  864. package/src/rbac/cache.ts +213 -0
  865. package/src/rbac/components/EnhancedNavigationMenu.tsx +294 -0
  866. package/src/rbac/components/NavigationGuard.tsx +294 -0
  867. package/src/rbac/components/NavigationProvider.tsx +314 -0
  868. package/src/rbac/components/PagePermissionGuard.tsx +430 -0
  869. package/src/rbac/components/PagePermissionProvider.tsx +274 -0
  870. package/src/rbac/components/PermissionEnforcer.tsx +307 -0
  871. package/src/rbac/components/RoleBasedRouter.tsx +425 -0
  872. package/src/rbac/components/SecureDataProvider.tsx +319 -0
  873. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +631 -0
  874. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +667 -0
  875. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +647 -0
  876. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +496 -0
  877. package/src/rbac/components/index.ts +64 -0
  878. package/src/rbac/config.ts +133 -0
  879. package/src/rbac/docs/event-based-apps.md +285 -0
  880. package/src/rbac/engine.ts +1026 -0
  881. package/src/rbac/eslint-rules.js +285 -0
  882. package/src/rbac/examples/CompleteRBACExample.tsx +323 -0
  883. package/src/rbac/examples/EventBasedApp.tsx +238 -0
  884. package/src/rbac/hooks.ts +555 -0
  885. package/src/rbac/index.ts +114 -0
  886. package/src/rbac/permissions.ts +293 -0
  887. package/src/rbac/secureClient.ts +244 -0
  888. package/src/rbac/security.ts +346 -0
  889. package/src/rbac/testing/__tests__/index.test.tsx +342 -0
  890. package/src/rbac/testing/index.tsx +340 -0
  891. package/src/rbac/types.ts +341 -0
  892. package/src/rbac/utils/__tests__/eventContext.test.ts +428 -0
  893. package/src/rbac/utils/__tests__/eventContext.unit.test.ts +428 -0
  894. package/src/rbac/utils/eventContext.ts +83 -0
  895. package/src/styles/__tests__/styles.unit.test.ts +164 -0
  896. package/src/styles/core.css +401 -0
  897. package/src/styles/index.ts +51 -0
  898. package/src/test-dom-cleanup.test.tsx +38 -0
  899. package/src/theming/__tests__/README.md +335 -0
  900. package/src/theming/__tests__/runtime.accessibility.test.ts +474 -0
  901. package/src/theming/__tests__/runtime.error.test.ts +616 -0
  902. package/src/theming/__tests__/runtime.integration.test.ts +376 -0
  903. package/src/theming/__tests__/runtime.performance.test.ts +411 -0
  904. package/src/theming/__tests__/runtime.unit.test.ts +470 -0
  905. package/src/theming/runtime.ts +187 -0
  906. package/src/types/__tests__/database.unit.test.ts +489 -0
  907. package/src/types/__tests__/guards.unit.test.ts +146 -0
  908. package/src/types/__tests__/index.unit.test.ts +77 -0
  909. package/src/types/__tests__/organisation.unit.test.ts +713 -0
  910. package/src/types/__tests__/rbac.unit.test.ts +621 -0
  911. package/src/types/__tests__/security.unit.test.ts +347 -0
  912. package/src/types/__tests__/supabase.unit.test.ts +658 -0
  913. package/src/types/__tests__/theme.unit.test.ts +218 -0
  914. package/src/types/__tests__/unified.unit.test.ts +537 -0
  915. package/src/types/__tests__/validation.unit.test.ts +616 -0
  916. package/src/types/database.ts +472 -0
  917. package/src/types/guards.ts +30 -0
  918. package/src/types/index.ts +25 -0
  919. package/src/types/organisation.ts +184 -0
  920. package/src/types/security.ts +70 -0
  921. package/src/types/supabase.ts +166 -0
  922. package/src/types/theme.ts +6 -0
  923. package/src/types/unified.ts +262 -0
  924. package/src/types/validation.ts +164 -0
  925. package/src/types/vitest-globals.d.ts +43 -0
  926. package/src/utils/__mocks__/supabaseMock.ts +75 -0
  927. package/src/utils/__mocks__/supabaseMock.tsx +198 -0
  928. package/src/utils/__tests__/appConfig.unit.test.ts +55 -0
  929. package/src/utils/__tests__/appNameResolver.unit.test.ts +137 -0
  930. package/src/utils/__tests__/audit.unit.test.ts +69 -0
  931. package/src/utils/__tests__/auth-utils.unit.test.ts +70 -0
  932. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +317 -0
  933. package/src/utils/__tests__/cn.unit.test.ts +34 -0
  934. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +480 -0
  935. package/src/utils/__tests__/dynamicUtils.unit.test.ts +322 -0
  936. package/src/utils/__tests__/formatDate.unit.test.ts +109 -0
  937. package/src/utils/__tests__/formatting.unit.test.ts +66 -0
  938. package/src/utils/__tests__/index.unit.test.ts +251 -0
  939. package/src/utils/__tests__/lazyLoad.unit.test.tsx +309 -0
  940. package/src/utils/__tests__/organisationContext.unit.test.ts +192 -0
  941. package/src/utils/__tests__/performanceBudgets.unit.test.ts +259 -0
  942. package/src/utils/__tests__/permissionTypes.unit.test.ts +250 -0
  943. package/src/utils/__tests__/permissionUtils.unit.test.ts +362 -0
  944. package/src/utils/__tests__/sanitization.unit.test.ts +346 -0
  945. package/src/utils/__tests__/schemaUtils.unit.test.ts +441 -0
  946. package/src/utils/__tests__/secureDataAccess.unit.test.ts +334 -0
  947. package/src/utils/__tests__/secureErrors.unit.test.ts +377 -0
  948. package/src/utils/__tests__/secureStorage.unit.test.ts +293 -0
  949. package/src/utils/__tests__/security.unit.test.ts +127 -0
  950. package/src/utils/__tests__/securityMonitor.unit.test.ts +280 -0
  951. package/src/utils/__tests__/sessionTracking.unit.test.ts +370 -0
  952. package/src/utils/__tests__/validation.unit.test.ts +84 -0
  953. package/src/utils/__tests__/validationUtils.unit.test.ts +571 -0
  954. package/src/utils/appConfig.ts +47 -0
  955. package/src/utils/appIdResolver.ts +130 -0
  956. package/src/utils/appNameResolver.ts +190 -0
  957. package/src/utils/audit.ts +127 -0
  958. package/src/utils/auth-utils.ts +96 -0
  959. package/src/utils/bundleAnalysis.ts +129 -0
  960. package/src/utils/cn.ts +7 -0
  961. package/src/utils/debugLogger.ts +46 -0
  962. package/src/utils/deviceFingerprint.ts +215 -0
  963. package/src/utils/dynamicUtils.ts +105 -0
  964. package/src/utils/formatting.ts +77 -0
  965. package/src/utils/index.ts +145 -0
  966. package/src/utils/lazyLoad.tsx +44 -0
  967. package/src/utils/organisationContext.ts +135 -0
  968. package/src/utils/performanceBenchmark.ts +64 -0
  969. package/src/utils/performanceBudgets.ts +111 -0
  970. package/src/utils/permissionTypes.ts +37 -0
  971. package/src/utils/permissionUtils.ts +31 -0
  972. package/src/utils/print/PrintDataProcessor.ts +390 -0
  973. package/src/utils/print/__tests__/PrintDataProcessor.unit.test.ts +219 -0
  974. package/src/utils/print/__tests__/usePrintOptimization.unit.test.tsx +353 -0
  975. package/src/utils/print/examples/PrintUtilitiesShowcase.tsx +397 -0
  976. package/src/utils/print/index.ts +29 -0
  977. package/src/utils/print/types.ts +196 -0
  978. package/src/utils/print/usePrintOptimization.ts +272 -0
  979. package/src/utils/sanitization.ts +264 -0
  980. package/src/utils/schemaUtils.ts +37 -0
  981. package/src/utils/secureDataAccess.ts +361 -0
  982. package/src/utils/secureErrors.ts +79 -0
  983. package/src/utils/secureStorage.ts +244 -0
  984. package/src/utils/security.ts +156 -0
  985. package/src/utils/securityMonitor.ts +45 -0
  986. package/src/utils/sessionTracking.ts +170 -0
  987. package/src/utils/storage/README.md +348 -0
  988. package/src/utils/storage/__tests__/config.unit.test.ts +206 -0
  989. package/src/utils/storage/__tests__/helpers.unit.test.ts +646 -0
  990. package/src/utils/storage/__tests__/index.unit.test.ts +167 -0
  991. package/src/utils/storage/__tests__/types.unit.test.ts +441 -0
  992. package/src/utils/storage/config.ts +100 -0
  993. package/src/utils/storage/helpers.ts +359 -0
  994. package/src/utils/storage/index.ts +36 -0
  995. package/src/utils/storage/types.ts +90 -0
  996. package/src/utils/validation.ts +111 -0
  997. package/src/utils/validationUtils.ts +120 -0
  998. package/src/validation/__tests__/common.unit.test.ts +101 -0
  999. package/src/validation/__tests__/csrf.unit.test.ts +302 -0
  1000. package/src/validation/__tests__/passwordSchema.unit.test.ts +98 -0
  1001. package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +466 -0
  1002. package/src/validation/common.ts +53 -0
  1003. package/src/validation/csrf.ts +214 -0
  1004. package/src/validation/index.ts +43 -0
  1005. package/src/validation/passwordSchema.ts +125 -0
  1006. package/src/validation/sanitization.ts +96 -0
  1007. package/src/validation/schemaUtils.ts +42 -0
  1008. package/src/validation/sqlInjectionProtection.ts +242 -0
  1009. package/src/validation/user.ts +34 -0
@@ -0,0 +1,1308 @@
1
+ export { b as UnifiedAuthContextType, U as UnifiedAuthProvider, a as UnifiedAuthProviderProps, u as useUnifiedAuth } from './UnifiedAuthProvider-w66zSCUf.js';
2
+ export { A as Alert, r as AlertDescription, q as AlertTitle, s as Avatar, u as AvatarFallback, t as AvatarImage, B as Button, g as ButtonProps, C as Card, m as CardActions, b6 as CardActionsProps, l as CardContent, k as CardDescription, i as CardFooter, h as CardHeader, n as CardProps, j as CardTitle, v as Checkbox, aX as DefaultPublicErrorFallback, D as Dialog, H as DialogBody, z as DialogClose, E as DialogContent, b9 as DialogContentProps, M as DialogDescription, be as DialogDescriptionProps, J as DialogFooter, bc as DialogFooterProps, G as DialogHeader, bb as DialogHeaderProps, x as DialogOverlay, ba as DialogOverlayProps, w as DialogPortal, b7 as DialogProps, bf as DialogSize, K as DialogTitle, bd as DialogTitleProps, y as DialogTrigger, b8 as DialogTriggerProps, aq as ErrorBoundary, bi as ErrorBoundaryProps, bj as ErrorBoundaryState, aS as EventLogo, aT as EventLogoCompact, aU as EventLogoLarge, b2 as EventLogoProps, as as EventSelector, av as FileUpload, aw as FileUploadProps, af as Footer, ag as FooterProps, ab as Form, bg as FormProps, ae as Header, I as Input, o as InputProps, L as Label, p as LabelProps, ar as LoadingSpinner, ac as LoginForm, ad as LoginFormProps, aj as NavigationItem, ah as NavigationMenu, ai as NavigationMenuProps, at as OrganisationSelector, bh as OrganisationSelectorProps, am as PaceAppLayout, an as PaceAppLayoutProps, ao as PaceLoginPage, ap as PaceLoginPageProps, au as PasswordResetForm, P as Progress, aV as PublicErrorBoundary, b3 as PublicErrorBoundaryProps, b4 as PublicErrorBoundaryState, a_ as PublicLoadingSkeleton, aY as PublicLoadingSpinner, aZ as PublicLoadingSpinnerFullPage, b5 as PublicLoadingSpinnerProps, aR as PublicPageContextChecker, aP as PublicPageDebugger, aQ as PublicPageDiagnostic, aO as PublicPageFooter, b1 as PublicPageFooterProps, aK as PublicPageHeader, b0 as PublicPageHeaderProps, aI as PublicPageLayout, a$ as PublicPageLayoutProps, aL as PublicPageProvider, N as Select, T as SelectContent, O as SelectGroup, V as SelectItem, U as SelectLabel, W as SelectSeparator, R as SelectTrigger, Q as SelectValue, az as Table, aB as TableBody, aC as TableCaption, aD as TableCell, aE as TableFooter, aF as TableHead, aA as TableHeader, aG as TableRow, X as Toast, Z as ToastAction, a4 as ToastActionElement, a2 as ToastClose, a1 as ToastDescription, a5 as ToastProps, _ as ToastProvider, a0 as ToastTitle, $ as ToastViewport, Y as Toaster, a6 as Tooltip, a8 as TooltipContent, a9 as TooltipProvider, aa as TooltipRoot, a7 as TooltipTrigger, bk as UseStorageOptions, bl as UseStorageReturn, ak as UserMenu, aW as useErrorBoundary, ay as useFileUpload, aN as useIsPublicPage, aJ as usePublicPageContext, aM as usePublicPageProviderContext, ax as useStorage, a3 as useToast } from './PublicLoadingSpinner-DztrzuJr.js';
3
+ export { D as DataTable, a as DataTableProps } from './DataTable-BHlzyKZP.js';
4
+ export { A as AggregateConfig, D as DataRecord, e as DataTableAction, a as DataTableColumn, f as DataTableToolbarButton, E as EmptyStateConfig, G as GetRowId } from './types-CInEi-ng.js';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import React__default, { ReactNode, ComponentType } from 'react';
7
+ import { FieldValues, FieldPath, UseFormReturn } from 'react-hook-form';
8
+ import '@supabase/supabase-js';
9
+ import './unified-CM7T0aTK.js';
10
+ import '@radix-ui/react-label';
11
+ import '@radix-ui/react-avatar';
12
+ import '@radix-ui/react-checkbox';
13
+ import '@radix-ui/react-progress';
14
+ import '@radix-ui/react-dialog';
15
+ import '@radix-ui/react-toast';
16
+ import '@radix-ui/react-tooltip';
17
+ import 'zod';
18
+ import './organisation-CO3Sh3_D.js';
19
+ import '@tanstack/react-table';
20
+
21
+ interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
22
+ /**
23
+ * Field name
24
+ */
25
+ name: TName;
26
+ /**
27
+ * Field label
28
+ */
29
+ label?: string;
30
+ /**
31
+ * Field type
32
+ */
33
+ type?: string;
34
+ /**
35
+ * Placeholder text
36
+ */
37
+ placeholder?: string;
38
+ /**
39
+ * Additional props for the input
40
+ */
41
+ inputProps?: React__default.InputHTMLAttributes<HTMLInputElement>;
42
+ /**
43
+ * Validation rules
44
+ */
45
+ validation?: {
46
+ required?: boolean;
47
+ pattern?: {
48
+ value: RegExp;
49
+ message: string;
50
+ };
51
+ minLength?: {
52
+ value: number;
53
+ message: string;
54
+ };
55
+ maxLength?: {
56
+ value: number;
57
+ message: string;
58
+ };
59
+ };
60
+ /**
61
+ * Custom render function
62
+ */
63
+ render?: ({ field }: {
64
+ field: any;
65
+ }) => React__default.ReactElement;
66
+ /**
67
+ * Test ID
68
+ */
69
+ 'data-testid'?: string;
70
+ /**
71
+ * Class name
72
+ */
73
+ className?: string;
74
+ }
75
+ /**
76
+ * FormField component for React Hook Form integration
77
+ *
78
+ * @template TFieldValues - The type of form field values
79
+ * @template TName - The type of the field name (must be a valid field path)
80
+ * @param props - Form field configuration and validation
81
+ * @returns JSX.Element - The rendered form field with validation
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * <FormField
86
+ * name="email"
87
+ * label="Email"
88
+ * type="email"
89
+ * validation={{
90
+ * required: true,
91
+ * pattern: {
92
+ * value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
93
+ * message: "Please enter a valid email address"
94
+ * }
95
+ * }}
96
+ * />
97
+ * ```
98
+ */
99
+ declare function FormField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, label, type, placeholder, inputProps, validation, render, 'data-testid': testId, className, }: FormFieldProps<TFieldValues, TName>): react_jsx_runtime.JSX.Element;
100
+
101
+ /**
102
+ * @file FormErrorSummary Component
103
+ * @package @jmruthers/pace-core
104
+ * @module Components/Form
105
+ * @since 0.1.0
106
+ *
107
+ * A form error summary component that displays validation errors in a user-friendly format.
108
+ * Provides a centralized location for users to see all form errors at once.
109
+ *
110
+ * Features:
111
+ * - Displays all form errors in one place
112
+ * - Configurable error display format
113
+ * - Optional field name display
114
+ * - Accessible error presentation
115
+ * - Consistent styling with Alert component
116
+ * - Automatic error filtering
117
+ * - Responsive design
118
+ *
119
+ * @example
120
+ * ```tsx
121
+ * // Basic error summary
122
+ * <FormErrorSummary errors={formErrors} />
123
+ *
124
+ * // With custom title
125
+ * <FormErrorSummary
126
+ * errors={formErrors}
127
+ * title="Please correct the following issues:"
128
+ * />
129
+ *
130
+ * // Show field names with errors
131
+ * <FormErrorSummary
132
+ * errors={formErrors}
133
+ * showFieldNames={true}
134
+ * />
135
+ *
136
+ * // In a form with React Hook Form
137
+ * const { formState: { errors } } = useForm();
138
+ *
139
+ * <Form onSubmit={handleSubmit}>
140
+ * <FormField name="email" label="Email" />
141
+ * <FormField name="password" label="Password" />
142
+ * <FormErrorSummary errors={errors} />
143
+ * <Button type="submit">Submit</Button>
144
+ * </Form>
145
+ * ```
146
+ *
147
+ * @accessibility
148
+ * - Uses Alert component for consistent accessibility
149
+ * - Proper heading hierarchy with h3
150
+ * - List structure for error items
151
+ * - Screen reader friendly error announcements
152
+ * - High contrast support via Alert component
153
+ *
154
+ * @dependencies
155
+ * - Alert component for consistent styling
156
+ * - React 18+ - Component framework
157
+ * - Tailwind CSS - Styling
158
+ */
159
+ interface FormErrorSummaryProps {
160
+ /** Form validation errors object */
161
+ errors?: Record<string, any>;
162
+ /** Title displayed above the error list */
163
+ title?: string;
164
+ /** Whether to show field names alongside error messages */
165
+ showFieldNames?: boolean;
166
+ }
167
+ /**
168
+ * FormErrorSummary component for displaying form validation errors
169
+ *
170
+ * This component provides a user-friendly way to display all form errors
171
+ * in one centralized location, improving the user experience by making
172
+ * it clear what needs to be fixed.
173
+ *
174
+ * @param props - Component configuration
175
+ * @param props.errors - Form validation errors object
176
+ * @param props.title - Title displayed above the error list
177
+ * @param props.showFieldNames - Whether to show field names with errors
178
+ * @returns JSX.Element - The rendered error summary or null if no errors
179
+ */
180
+ declare function FormErrorSummary({ errors, title, showFieldNames }: FormErrorSummaryProps): react_jsx_runtime.JSX.Element | null;
181
+
182
+ /**
183
+ * @file FormLiveRegion Component
184
+ * @package @jmruthers/pace-core
185
+ * @module Components/Form
186
+ * @since 0.1.0
187
+ *
188
+ * An accessible live region component for form validation announcements.
189
+ * Provides real-time feedback to screen readers about form validation states
190
+ * and error messages, improving accessibility for users with assistive technologies.
191
+ *
192
+ * Features:
193
+ * - Real-time form validation announcements
194
+ * - Configurable politeness levels (polite/assertive)
195
+ * - Customizable delay timing
196
+ * - Field-level and form-level announcements
197
+ * - Success message customization
198
+ * - Automatic error counting and field identification
199
+ * - Accessibility compliant with ARIA live regions
200
+ * - Integration with React Hook Form
201
+ *
202
+ * @example
203
+ * ```tsx
204
+ * // Basic live region
205
+ * const { control, formState } = useForm();
206
+ *
207
+ * <Form onSubmit={handleSubmit}>
208
+ * <FormField name="email" label="Email" />
209
+ * <FormField name="password" label="Password" />
210
+ * <FormLiveRegion form={{ control, formState }} />
211
+ * <Button type="submit">Submit</Button>
212
+ * </Form>
213
+ *
214
+ * // With custom configuration
215
+ * <FormLiveRegion
216
+ * form={{ control, formState }}
217
+ * politeness="assertive"
218
+ * delay={1000}
219
+ * successMessage="Your form was submitted successfully!"
220
+ * enableFieldAnnouncements={true}
221
+ * />
222
+ *
223
+ * // In a complex form
224
+ * function ComplexForm() {
225
+ * const methods = useForm({
226
+ * defaultValues: { name: '', email: '', message: '' }
227
+ * });
228
+ *
229
+ * return (
230
+ * <FormProvider {...methods}>
231
+ * <form onSubmit={methods.handleSubmit(onSubmit)}>
232
+ * <FormField name="name" label="Name" />
233
+ * <FormField name="email" label="Email" />
234
+ * <FormField name="message" label="Message" />
235
+ * <FormLiveRegion
236
+ * form={methods}
237
+ * politeness="polite"
238
+ * delay={300}
239
+ * />
240
+ * <Button type="submit">Send Message</Button>
241
+ * </form>
242
+ * </FormProvider>
243
+ * );
244
+ * }
245
+ * ```
246
+ *
247
+ * @accessibility
248
+ * - ARIA live region for screen reader announcements
249
+ * - Configurable politeness levels for different message types
250
+ * - Automatic error counting and field identification
251
+ * - Non-intrusive validation feedback
252
+ * - WCAG 2.1 AA compliant
253
+ * - Screen reader friendly error announcements
254
+ *
255
+ * @dependencies
256
+ * - react-hook-form - Form state management
257
+ * - React 18+ - Hooks and effects
258
+ * - Tailwind CSS - Styling
259
+ */
260
+
261
+ /**
262
+ * Props for the FormLiveRegion component
263
+ */
264
+ interface FormLiveRegionProps<T extends FieldValues> {
265
+ /** React Hook Form instance */
266
+ form: UseFormReturn<T>;
267
+ /** ARIA live region politeness level */
268
+ politeness?: 'polite' | 'assertive';
269
+ /** Delay before announcing messages (in ms) */
270
+ delay?: number;
271
+ /** Custom success message */
272
+ successMessage?: string;
273
+ /** Custom class name */
274
+ className?: string;
275
+ /** Enable field-level validation announcements */
276
+ enableFieldAnnouncements?: boolean;
277
+ }
278
+ /**
279
+ * FormLiveRegion component for accessible form validation announcements
280
+ */
281
+ declare function FormLiveRegion<T extends FieldValues>({ form, politeness, delay, successMessage, className, enableFieldAnnouncements }: FormLiveRegionProps<T>): React__default.ReactElement;
282
+
283
+ /**
284
+ * @file FormFieldset Component
285
+ * @package @jmruthers/pace-core
286
+ * @module Components/Form
287
+ * @since 0.1.0
288
+ *
289
+ * A form fieldset component that groups related form fields together with a legend
290
+ * and optional description. Provides semantic structure and accessibility for form sections.
291
+ *
292
+ * Features:
293
+ * - Semantic fieldset grouping for related form fields
294
+ * - Accessible legend with required indicator
295
+ * - Optional description text with proper ARIA association
296
+ * - Consistent styling with design system
297
+ * - Forwarded ref support
298
+ * - Customizable styling via className
299
+ * - Required field indication
300
+ * - Responsive design
301
+ *
302
+ * @example
303
+ * ```tsx
304
+ * // Basic fieldset
305
+ * <FormFieldset legend="Personal Information">
306
+ * <FormField name="firstName" label="First Name" />
307
+ * <FormField name="lastName" label="Last Name" />
308
+ * <FormField name="email" label="Email" />
309
+ * </FormFieldset>
310
+ *
311
+ * // Fieldset with description
312
+ * <FormFieldset
313
+ * legend="Contact Details"
314
+ * description="We'll use this information to contact you about your order"
315
+ * >
316
+ * <FormField name="phone" label="Phone Number" />
317
+ * <FormField name="address" label="Address" />
318
+ * </FormFieldset>
319
+ *
320
+ * // Required fieldset
321
+ * <FormFieldset
322
+ * legend="Account Settings"
323
+ * required={true}
324
+ * description="These settings are required for account creation"
325
+ * >
326
+ * <FormField name="username" label="Username" required />
327
+ * <FormField name="password" label="Password" type="password" required />
328
+ * </FormFieldset>
329
+ *
330
+ * // With custom styling
331
+ * <FormFieldset
332
+ * legend="Preferences"
333
+ * className="bg-sec-50 border-sec-200"
334
+ * >
335
+ * <FormField name="newsletter" label="Subscribe to newsletter" type="checkbox" />
336
+ * <FormField name="notifications" label="Enable notifications" type="checkbox" />
337
+ * </FormFieldset>
338
+ * ```
339
+ *
340
+ * @accessibility
341
+ * - Proper semantic HTML with fieldset and legend
342
+ * - ARIA describedby association for descriptions
343
+ * - Required field indication with asterisk
344
+ * - Screen reader friendly structure
345
+ * - Keyboard navigation support
346
+ * - WCAG 2.1 AA compliant
347
+ *
348
+ * @dependencies
349
+ * - React 18+ - Component framework and hooks
350
+ * - Tailwind CSS - Styling
351
+ * - cn utility - Class name merging
352
+ */
353
+
354
+ interface FormFieldsetProps extends React__default.FieldsetHTMLAttributes<HTMLFieldSetElement> {
355
+ /** The legend text for the fieldset */
356
+ legend: string;
357
+ /** Optional description text below the legend */
358
+ description?: string;
359
+ /** Whether the fieldset contains required fields */
360
+ required?: boolean;
361
+ /** Form fields to group within the fieldset */
362
+ children: React__default.ReactNode;
363
+ }
364
+ /**
365
+ * FormFieldset component for grouping related form fields
366
+ *
367
+ * This component provides semantic grouping for form fields with proper
368
+ * accessibility support and consistent styling. Use it to organize
369
+ * related form inputs into logical sections.
370
+ *
371
+ * @param props - Component configuration
372
+ * @param props.legend - The legend text for the fieldset
373
+ * @param props.description - Optional description text
374
+ * @param props.required - Whether the fieldset contains required fields
375
+ * @param props.children - Form fields to group
376
+ * @param ref - Forwarded ref to the fieldset element
377
+ * @returns JSX.Element - The rendered fieldset with legend and fields
378
+ */
379
+ declare const FormFieldset: React__default.ForwardRefExoticComponent<FormFieldsetProps & React__default.RefAttributes<HTMLFieldSetElement>>;
380
+
381
+ interface SuperAdminGuardProps {
382
+ children: React__default.ReactNode;
383
+ fallback?: React__default.ReactNode;
384
+ showDebugInfo?: boolean;
385
+ }
386
+ /**
387
+ * Super Admin Guard Component
388
+ *
389
+ * Renders children only if the current user is a super admin.
390
+ * Provides a fallback for non-super admin users.
391
+ *
392
+ * @param children - Content to render for super admins
393
+ * @param fallback - Content to render for non-super admins (optional)
394
+ * @param showDebugInfo - Whether to show debug information (optional)
395
+ */
396
+ declare function SuperAdminGuard({ children, fallback, showDebugInfo }: SuperAdminGuardProps): react_jsx_runtime.JSX.Element;
397
+ /**
398
+ * Super Admin Badge Component
399
+ *
400
+ * Shows a visual indicator when the current user is a super admin.
401
+ */
402
+ declare function SuperAdminBadge(): react_jsx_runtime.JSX.Element | null;
403
+ /**
404
+ * Super Admin Debug Panel
405
+ *
406
+ * Shows debug information about the current user's permissions.
407
+ * Only visible to super admins and in development mode.
408
+ */
409
+ declare function SuperAdminDebugPanel(): react_jsx_runtime.JSX.Element | null;
410
+
411
+ /**
412
+ * @file PrintLayout Types
413
+ * @package @jmruthers/pace-core
414
+ * @module PrintLayout
415
+ * @since 0.4.38
416
+ *
417
+ * Type definitions for PrintLayout component and related utilities.
418
+ */
419
+
420
+ type PageSize = 'A4' | 'A3' | 'A5';
421
+ type Orientation = 'portrait' | 'landscape';
422
+ interface PrintLayoutProps {
423
+ children: ReactNode;
424
+ orientation?: Orientation;
425
+ pageSize?: PageSize;
426
+ showHeader?: boolean;
427
+ showFooter?: boolean;
428
+ firstPageHeader?: ReactNode;
429
+ subsequentPageHeader?: ReactNode;
430
+ className?: string;
431
+ }
432
+ interface PrintLayoutContextType {
433
+ isFirstPage: boolean;
434
+ pageSize: PageSize;
435
+ orientation: Orientation;
436
+ hasFirstPageHeader: boolean;
437
+ hasSubsequentPageHeader: boolean;
438
+ }
439
+
440
+ /**
441
+ * PrintLayout component provides a print-optimized base layout with support for
442
+ * different page sizes, orientations, and header management.
443
+ */
444
+ declare function PrintLayout({ children, orientation, pageSize, showHeader, showFooter, firstPageHeader, subsequentPageHeader, className, ...props }: PrintLayoutProps): react_jsx_runtime.JSX.Element;
445
+
446
+ interface PrintLayoutProviderProps {
447
+ children: React__default.ReactNode;
448
+ pageSize: PageSize;
449
+ orientation: Orientation;
450
+ hasFirstPageHeader: boolean;
451
+ hasSubsequentPageHeader: boolean;
452
+ }
453
+ declare function PrintLayoutProvider({ children, pageSize, orientation, hasFirstPageHeader, hasSubsequentPageHeader, }: PrintLayoutProviderProps): react_jsx_runtime.JSX.Element;
454
+ declare function usePrintLayout(): PrintLayoutContextType;
455
+
456
+ /**
457
+ * @file PrintHeader Types
458
+ * @package @jmruthers/pace-core
459
+ * @module PrintHeader
460
+ * @since 0.4.38
461
+ *
462
+ * Type definitions for PrintHeader and PrintCoverHeader components.
463
+ */
464
+
465
+ interface PrintBranding {
466
+ logo?: string;
467
+ companyName?: string;
468
+ projectName?: string;
469
+ version?: string;
470
+ tagline?: string;
471
+ }
472
+ interface PrintMetadata {
473
+ label: string;
474
+ value: string;
475
+ icon?: ComponentType<{
476
+ className?: string;
477
+ }>;
478
+ }
479
+ interface PrintHeaderProps {
480
+ title: string;
481
+ subtitle?: string;
482
+ branding?: PrintBranding;
483
+ metadata?: PrintMetadata[];
484
+ printDate?: boolean;
485
+ className?: string;
486
+ }
487
+ interface PrintCoverHeaderProps extends PrintHeaderProps {
488
+ coverStyle?: boolean;
489
+ logoSize?: 'small' | 'medium' | 'large';
490
+ titleSize?: 'small' | 'medium' | 'large' | 'xl';
491
+ showDivider?: boolean;
492
+ backgroundImage?: string;
493
+ backgroundColor?: string;
494
+ }
495
+
496
+ /**
497
+ * PrintHeader component provides flexible branding and metadata display for print layouts.
498
+ */
499
+ declare function PrintHeader({ title, subtitle, branding, metadata, printDate, className, }: PrintHeaderProps): react_jsx_runtime.JSX.Element;
500
+
501
+ /**
502
+ * PrintCoverHeader component provides a cover-style header design for first pages.
503
+ */
504
+ declare function PrintCoverHeader({ title, subtitle, branding, metadata, printDate, coverStyle, logoSize, titleSize, showDivider, backgroundImage, backgroundColor, className, }: PrintCoverHeaderProps): react_jsx_runtime.JSX.Element;
505
+
506
+ /**
507
+ * @file PrintText Types
508
+ * @package @jmruthers/pace-core
509
+ * @module PrintText
510
+ * @since 0.4.38
511
+ *
512
+ * Type definitions for PrintText component.
513
+ */
514
+
515
+ type PrintTextVariant = 'heading' | 'subheading' | 'body' | 'caption' | 'small';
516
+ type PrintTextWeight = 'normal' | 'medium' | 'semibold' | 'bold';
517
+ type PrintTextColor = 'primary' | 'secondary' | 'muted' | 'accent';
518
+ interface PrintTextProps {
519
+ children: ReactNode;
520
+ variant?: PrintTextVariant;
521
+ weight?: PrintTextWeight;
522
+ color?: PrintTextColor;
523
+ printOptimized?: boolean;
524
+ className?: string;
525
+ as?: 'p' | 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
526
+ }
527
+
528
+ /**
529
+ * PrintText component provides print-optimized typography with consistent styling.
530
+ */
531
+ declare function PrintText({ children, variant, weight, color, printOptimized, className, as: Component, ...props }: PrintTextProps): react_jsx_runtime.JSX.Element;
532
+
533
+ /**
534
+ * @file PrintDataTable Types
535
+ * @package @jmruthers/pace-core
536
+ * @module PrintDataTable
537
+ * @since 0.4.38
538
+ *
539
+ * Type definitions for PrintDataTable component and related utilities.
540
+ */
541
+
542
+ type PrintColumnAlign = 'left' | 'center' | 'right';
543
+ type PrintBreakType = 'avoid' | 'auto' | 'always';
544
+ type PrintHeaderStyle = 'solid' | 'outline';
545
+ type PrintRowStyle = 'striped' | 'solid' | 'bordered';
546
+ type PrintCellPadding = 'compact' | 'normal' | 'spacious';
547
+ interface PrintColumn$1 {
548
+ key: string;
549
+ header: string;
550
+ width?: string | number;
551
+ align?: PrintColumnAlign;
552
+ render?: (value: any, row: any) => ReactNode;
553
+ groupable?: boolean;
554
+ sortable?: boolean;
555
+ printBreak?: PrintBreakType;
556
+ }
557
+ interface PrintGrouping {
558
+ enabled: boolean;
559
+ groupBy: string;
560
+ groupHeader?: (group: string) => ReactNode;
561
+ }
562
+ interface PrintTableStyling {
563
+ headerStyle?: PrintHeaderStyle;
564
+ rowStyle?: PrintRowStyle;
565
+ cellPadding?: PrintCellPadding;
566
+ }
567
+ interface PrintDataTableProps {
568
+ data: any[];
569
+ columns: PrintColumn$1[];
570
+ title?: string;
571
+ showTitle?: boolean;
572
+ grouping?: PrintGrouping;
573
+ styling?: PrintTableStyling;
574
+ printOptimized?: boolean;
575
+ className?: string;
576
+ }
577
+ interface PrintTableGroupProps {
578
+ groupKey: string;
579
+ groupData: any[];
580
+ columns: PrintColumn$1[];
581
+ groupHeader?: (group: string) => ReactNode;
582
+ styling?: PrintTableStyling;
583
+ printOptimized?: boolean;
584
+ }
585
+ interface PrintTableRowProps {
586
+ row: any;
587
+ columns: PrintColumn$1[];
588
+ styling?: PrintTableStyling;
589
+ printOptimized?: boolean;
590
+ isEven?: boolean;
591
+ }
592
+
593
+ /**
594
+ * PrintDataTable component provides print-optimized table rendering with grouping support.
595
+ */
596
+ declare function PrintDataTable({ data, columns, title, showTitle, grouping, styling, printOptimized, className, ...props }: PrintDataTableProps): react_jsx_runtime.JSX.Element;
597
+
598
+ /**
599
+ * PrintTableGroup component renders a group of table rows with optional group header.
600
+ */
601
+ declare function PrintTableGroup({ groupKey, groupData, columns, groupHeader, styling, printOptimized, }: PrintTableGroupProps): react_jsx_runtime.JSX.Element;
602
+
603
+ /**
604
+ * PrintTableRow component renders a single table row with styling and print optimization.
605
+ */
606
+ declare function PrintTableRow({ row, columns, styling, printOptimized, isEven, }: PrintTableRowProps): react_jsx_runtime.JSX.Element;
607
+
608
+ /**
609
+ * @file PrintCard Types
610
+ * @package @jmruthers/pace-core
611
+ * @module PrintCard
612
+ * @since 0.4.38
613
+ *
614
+ * Type definitions for PrintCard component.
615
+ */
616
+
617
+ interface PrintCardProps {
618
+ /** Card content */
619
+ children: ReactNode;
620
+ /** Card title */
621
+ title?: string;
622
+ /** Card subtitle */
623
+ subtitle?: string;
624
+ /** Card variant */
625
+ variant?: 'default' | 'outlined' | 'filled' | 'elevated';
626
+ /** Card size */
627
+ size?: 'sm' | 'md' | 'lg' | 'xl';
628
+ /** Card layout */
629
+ layout?: 'vertical' | 'horizontal' | 'compact';
630
+ /** Show card border */
631
+ showBorder?: boolean;
632
+ /** Card background color */
633
+ backgroundColor?: 'white' | 'gray' | 'primary' | 'secondary' | 'accent';
634
+ /** Card text color */
635
+ textColor?: 'primary' | 'secondary' | 'muted' | 'accent' | 'destructive';
636
+ /** Print optimization */
637
+ printOptimized?: boolean;
638
+ /** Custom CSS classes */
639
+ className?: string;
640
+ /** Additional props */
641
+ [key: string]: any;
642
+ }
643
+ interface PrintCardHeaderProps {
644
+ /** Header content */
645
+ children: ReactNode;
646
+ /** Header title */
647
+ title?: string;
648
+ /** Header subtitle */
649
+ subtitle?: string;
650
+ /** Header actions */
651
+ actions?: ReactNode;
652
+ /** Header alignment */
653
+ align?: 'left' | 'center' | 'right';
654
+ /** Print optimization */
655
+ printOptimized?: boolean;
656
+ /** Custom CSS classes */
657
+ className?: string;
658
+ /** Additional props */
659
+ [key: string]: any;
660
+ }
661
+ interface PrintCardContentProps {
662
+ /** Content */
663
+ children: ReactNode;
664
+ /** Content padding */
665
+ padding?: 'none' | 'sm' | 'md' | 'lg';
666
+ /** Print optimization */
667
+ printOptimized?: boolean;
668
+ /** Custom CSS classes */
669
+ className?: string;
670
+ /** Additional props */
671
+ [key: string]: any;
672
+ }
673
+ interface PrintCardFooterProps {
674
+ /** Footer content */
675
+ children: ReactNode;
676
+ /** Footer alignment */
677
+ align?: 'left' | 'center' | 'right';
678
+ /** Print optimization */
679
+ printOptimized?: boolean;
680
+ /** Custom CSS classes */
681
+ className?: string;
682
+ /** Additional props */
683
+ [key: string]: any;
684
+ }
685
+ interface PrintCardImageProps {
686
+ /** Image source */
687
+ src: string;
688
+ /** Image alt text */
689
+ alt: string;
690
+ /** Image width */
691
+ width?: string | number;
692
+ /** Image height */
693
+ height?: string | number;
694
+ /** Image aspect ratio */
695
+ aspectRatio?: 'square' | 'portrait' | 'landscape' | 'auto';
696
+ /** Image object fit */
697
+ objectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
698
+ /** Print optimization */
699
+ printOptimized?: boolean;
700
+ /** Custom CSS classes */
701
+ className?: string;
702
+ /** Additional props */
703
+ [key: string]: any;
704
+ }
705
+ interface PrintCardGridProps {
706
+ /** Grid items */
707
+ children: ReactNode;
708
+ /** Number of columns */
709
+ columns?: 1 | 2 | 3 | 4 | 5 | 6;
710
+ /** Column gap */
711
+ gap?: 'sm' | 'md' | 'lg' | 'xl';
712
+ /** Row gap */
713
+ rowGap?: 'sm' | 'md' | 'lg' | 'xl';
714
+ /** Print optimization */
715
+ printOptimized?: boolean;
716
+ /** Custom CSS classes */
717
+ className?: string;
718
+ /** Additional props */
719
+ [key: string]: any;
720
+ }
721
+ type PrintCardVariant = 'default' | 'outlined' | 'filled' | 'elevated';
722
+ type PrintCardSize = 'sm' | 'md' | 'lg' | 'xl';
723
+ type PrintCardLayout = 'vertical' | 'horizontal' | 'compact';
724
+ type PrintCardBackgroundColor = 'white' | 'gray' | 'primary' | 'secondary' | 'accent';
725
+ type PrintCardTextColor = 'primary' | 'secondary' | 'muted' | 'accent' | 'destructive';
726
+ type PrintCardAlignment = 'left' | 'center' | 'right';
727
+ type PrintCardPadding = 'none' | 'sm' | 'md' | 'lg';
728
+ type PrintCardAspectRatio = 'square' | 'portrait' | 'landscape' | 'auto';
729
+ type PrintCardObjectFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
730
+ type PrintCardGap = 'sm' | 'md' | 'lg' | 'xl';
731
+
732
+ declare function PrintCard({ children, title, subtitle, variant, size, layout, showBorder, backgroundColor, textColor, printOptimized, className, ...props }: PrintCardProps): react_jsx_runtime.JSX.Element;
733
+
734
+ declare function PrintCardHeader({ children, title, subtitle, actions, align, printOptimized, className, ...props }: PrintCardHeaderProps): react_jsx_runtime.JSX.Element;
735
+
736
+ declare function PrintCardContent({ children, padding, printOptimized, className, ...props }: PrintCardContentProps): react_jsx_runtime.JSX.Element;
737
+
738
+ declare function PrintCardFooter({ children, align, printOptimized, className, ...props }: PrintCardFooterProps): react_jsx_runtime.JSX.Element;
739
+
740
+ declare function PrintCardImage({ src, alt, width, height, aspectRatio, objectFit, printOptimized, className, ...props }: PrintCardImageProps): react_jsx_runtime.JSX.Element;
741
+
742
+ declare function PrintCardGrid({ children, columns, gap, rowGap, printOptimized, className, ...props }: PrintCardGridProps): react_jsx_runtime.JSX.Element;
743
+
744
+ /**
745
+ * @file PrintSection Types
746
+ * @package @jmruthers/pace-core
747
+ * @module PrintSection
748
+ * @since 0.4.38
749
+ *
750
+ * Type definitions for PrintSection component.
751
+ */
752
+
753
+ interface PrintSectionProps {
754
+ /** Section content */
755
+ children: ReactNode;
756
+ /** Section title */
757
+ title?: string;
758
+ /** Section subtitle */
759
+ subtitle?: string;
760
+ /** Section layout */
761
+ layout?: 'single' | 'two-column' | 'three-column' | 'four-column';
762
+ /** Column gap */
763
+ gap?: 'sm' | 'md' | 'lg' | 'xl';
764
+ /** Section spacing */
765
+ spacing?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
766
+ /** Show section border */
767
+ showBorder?: boolean;
768
+ /** Section background */
769
+ background?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
770
+ /** Print optimization */
771
+ printOptimized?: boolean;
772
+ /** Custom CSS classes */
773
+ className?: string;
774
+ /** Additional props */
775
+ [key: string]: any;
776
+ }
777
+ interface PrintSectionHeaderProps {
778
+ /** Header content */
779
+ children: ReactNode;
780
+ /** Header title */
781
+ title?: string;
782
+ /** Header subtitle */
783
+ subtitle?: string;
784
+ /** Header level */
785
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
786
+ /** Header alignment */
787
+ align?: 'left' | 'center' | 'right';
788
+ /** Show divider line */
789
+ showDivider?: boolean;
790
+ /** Print optimization */
791
+ printOptimized?: boolean;
792
+ /** Custom CSS classes */
793
+ className?: string;
794
+ /** Additional props */
795
+ [key: string]: any;
796
+ }
797
+ interface PrintSectionContentProps {
798
+ /** Content */
799
+ children: ReactNode;
800
+ /** Content padding */
801
+ padding?: 'none' | 'sm' | 'md' | 'lg';
802
+ /** Content background */
803
+ background?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
804
+ /** Print optimization */
805
+ printOptimized?: boolean;
806
+ /** Custom CSS classes */
807
+ className?: string;
808
+ /** Additional props */
809
+ [key: string]: any;
810
+ }
811
+ interface PrintColumnProps {
812
+ /** Column content */
813
+ children: ReactNode;
814
+ /** Column width */
815
+ width?: 'auto' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' | 'full';
816
+ /** Column alignment */
817
+ align?: 'left' | 'center' | 'right';
818
+ /** Column vertical alignment */
819
+ verticalAlign?: 'top' | 'middle' | 'bottom';
820
+ /** Column padding */
821
+ padding?: 'none' | 'sm' | 'md' | 'lg';
822
+ /** Print optimization */
823
+ printOptimized?: boolean;
824
+ /** Custom CSS classes */
825
+ className?: string;
826
+ /** Additional props */
827
+ [key: string]: any;
828
+ }
829
+ interface PrintDividerProps {
830
+ /** Divider style */
831
+ style?: 'solid' | 'dashed' | 'dotted' | 'thick';
832
+ /** Divider color */
833
+ color?: 'default' | 'muted' | 'primary' | 'secondary' | 'accent';
834
+ /** Divider thickness */
835
+ thickness?: 'thin' | 'medium' | 'thick';
836
+ /** Divider spacing */
837
+ spacing?: 'none' | 'sm' | 'md' | 'lg';
838
+ /** Print optimization */
839
+ printOptimized?: boolean;
840
+ /** Custom CSS classes */
841
+ className?: string;
842
+ /** Additional props */
843
+ [key: string]: any;
844
+ }
845
+ type PrintSectionLayout = 'single' | 'two-column' | 'three-column' | 'four-column';
846
+ type PrintSectionGap = 'sm' | 'md' | 'lg' | 'xl';
847
+ type PrintSectionSpacing = 'none' | 'sm' | 'md' | 'lg' | 'xl';
848
+ type PrintSectionBackground = 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
849
+ type PrintSectionAlignment = 'left' | 'center' | 'right';
850
+ type PrintSectionPadding = 'none' | 'sm' | 'md' | 'lg';
851
+ type PrintColumnWidth = 'auto' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' | 'full';
852
+ type PrintVerticalAlignment = 'top' | 'middle' | 'bottom';
853
+ type PrintDividerStyle = 'solid' | 'dashed' | 'dotted' | 'thick';
854
+ type PrintDividerColor = 'default' | 'muted' | 'primary' | 'secondary' | 'accent';
855
+ type PrintDividerThickness = 'thin' | 'medium' | 'thick';
856
+
857
+ declare function PrintSection({ children, title, subtitle, layout, gap, spacing, showBorder, background, printOptimized, className, ...props }: PrintSectionProps): react_jsx_runtime.JSX.Element;
858
+
859
+ declare function PrintSectionHeader({ children, title, subtitle, level, align, showDivider, printOptimized, className, ...props }: PrintSectionHeaderProps): react_jsx_runtime.JSX.Element;
860
+
861
+ declare function PrintSectionContent({ children, padding, background, printOptimized, className, ...props }: PrintSectionContentProps): react_jsx_runtime.JSX.Element;
862
+
863
+ declare function PrintColumn({ children, width, align, verticalAlign, padding, printOptimized, className, ...props }: PrintColumnProps): react_jsx_runtime.JSX.Element;
864
+
865
+ declare function PrintDivider({ style, color, thickness, spacing, printOptimized, className, ...props }: PrintDividerProps): react_jsx_runtime.JSX.Element;
866
+
867
+ /**
868
+ * @file PrintButton Types
869
+ * @package @jmruthers/pace-core
870
+ * @module PrintButton
871
+ * @since 0.4.38
872
+ *
873
+ * Type definitions for PrintButton component.
874
+ */
875
+
876
+ interface PrintButtonProps {
877
+ /** Button content */
878
+ children: ReactNode;
879
+ /** Button variant */
880
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
881
+ /** Button size */
882
+ size?: 'sm' | 'md' | 'lg' | 'xl';
883
+ /** Button shape */
884
+ shape?: 'default' | 'rounded' | 'pill' | 'square';
885
+ /** Button state */
886
+ state?: 'default' | 'loading' | 'disabled';
887
+ /** Print functionality */
888
+ printFunction?: 'print' | 'printSelection' | 'printPage' | 'printElement';
889
+ /** Print selector (for printSelection and printElement) */
890
+ printSelector?: string;
891
+ /** Print options */
892
+ printOptions?: PrintOptions;
893
+ /** Click handler */
894
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
895
+ /** Print callback */
896
+ onPrint?: (success: boolean, error?: Error) => void;
897
+ /** Print start callback */
898
+ onPrintStart?: () => void;
899
+ /** Print end callback */
900
+ onPrintEnd?: () => void;
901
+ /** Show print icon */
902
+ showIcon?: boolean;
903
+ /** Custom icon */
904
+ icon?: ReactNode;
905
+ /** Icon position */
906
+ iconPosition?: 'left' | 'right';
907
+ /** Full width */
908
+ fullWidth?: boolean;
909
+ /** Print optimization */
910
+ printOptimized?: boolean;
911
+ /** Custom CSS classes */
912
+ className?: string;
913
+ /** Additional props */
914
+ [key: string]: any;
915
+ }
916
+ interface PrintOptions {
917
+ /** Print media query */
918
+ mediaQuery?: string;
919
+ /** Print stylesheet URL */
920
+ stylesheetUrl?: string;
921
+ /** Print title */
922
+ title?: string;
923
+ /** Print margins */
924
+ margins?: {
925
+ top?: string;
926
+ right?: string;
927
+ bottom?: string;
928
+ left?: string;
929
+ };
930
+ /** Print orientation */
931
+ orientation?: 'portrait' | 'landscape';
932
+ /** Print scale */
933
+ scale?: number;
934
+ /** Print background graphics */
935
+ backgroundGraphics?: boolean;
936
+ /** Print color adjustment */
937
+ colorAdjust?: 'economy' | 'exact';
938
+ /** Print page ranges */
939
+ pageRanges?: string;
940
+ /** Print copies */
941
+ copies?: number;
942
+ /** Print collate */
943
+ collate?: boolean;
944
+ /** Print duplex */
945
+ duplex?: 'simplex' | 'duplex' | 'duplex-short-edge' | 'duplex-long-edge';
946
+ }
947
+ interface PrintButtonGroupProps {
948
+ /** Button group children */
949
+ children: ReactNode;
950
+ /** Button group orientation */
951
+ orientation?: 'horizontal' | 'vertical';
952
+ /** Button group spacing */
953
+ spacing?: 'none' | 'sm' | 'md' | 'lg';
954
+ /** Button group alignment */
955
+ align?: 'left' | 'center' | 'right' | 'stretch';
956
+ /** Print optimization */
957
+ printOptimized?: boolean;
958
+ /** Custom CSS classes */
959
+ className?: string;
960
+ /** Additional props */
961
+ [key: string]: any;
962
+ }
963
+ interface PrintToolbarProps {
964
+ /** Toolbar children */
965
+ children: ReactNode;
966
+ /** Toolbar position */
967
+ position?: 'top' | 'bottom' | 'fixed';
968
+ /** Toolbar alignment */
969
+ align?: 'left' | 'center' | 'right';
970
+ /** Show toolbar on print */
971
+ showOnPrint?: boolean;
972
+ /** Print optimization */
973
+ printOptimized?: boolean;
974
+ /** Custom CSS classes */
975
+ className?: string;
976
+ /** Additional props */
977
+ [key: string]: any;
978
+ }
979
+ type PrintButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
980
+ type PrintButtonSize = 'sm' | 'md' | 'lg' | 'xl';
981
+ type PrintButtonShape = 'default' | 'rounded' | 'pill' | 'square';
982
+ type PrintButtonState = 'default' | 'loading' | 'disabled';
983
+ type PrintFunction = 'print' | 'printSelection' | 'printPage' | 'printElement';
984
+ type IconPosition = 'left' | 'right';
985
+ type PrintToolbarPosition = 'top' | 'bottom' | 'fixed';
986
+ type PrintToolbarAlign = 'left' | 'center' | 'right';
987
+
988
+ declare function PrintButton({ children, variant, size, shape, state, printFunction, printSelector, printOptions, onClick, onPrint, onPrintStart, onPrintEnd, showIcon, icon, iconPosition, fullWidth, printOptimized, className, ...props }: PrintButtonProps): react_jsx_runtime.JSX.Element;
989
+
990
+ declare function PrintButtonGroup({ children, orientation, spacing, align, printOptimized, className, ...props }: PrintButtonGroupProps): react_jsx_runtime.JSX.Element;
991
+
992
+ declare function PrintToolbar({ children, position, align, showOnPrint, printOptimized, className, ...props }: PrintToolbarProps): react_jsx_runtime.JSX.Element;
993
+
994
+ /**
995
+ * @file PrintGrid Types
996
+ * @package @jmruthers/pace-core
997
+ * @module PrintGrid
998
+ * @since 0.4.38
999
+ *
1000
+ * Type definitions for PrintGrid component.
1001
+ */
1002
+
1003
+ interface PrintGridProps {
1004
+ /** Grid content */
1005
+ children: ReactNode;
1006
+ /** Grid columns */
1007
+ columns?: 1 | 2 | 3 | 4 | 5 | 6 | 12;
1008
+ /** Grid gap */
1009
+ gap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1010
+ /** Grid row gap */
1011
+ rowGap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1012
+ /** Grid column gap */
1013
+ columnGap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1014
+ /** Grid alignment */
1015
+ align?: 'start' | 'center' | 'end' | 'stretch';
1016
+ /** Grid justify */
1017
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
1018
+ /** Print-specific columns */
1019
+ printColumns?: 1 | 2 | 3 | 4 | 5 | 6 | 12;
1020
+ /** Print-specific gap */
1021
+ printGap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1022
+ /** Print-specific row gap */
1023
+ printRowGap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1024
+ /** Print-specific column gap */
1025
+ printColumnGap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1026
+ /** Print optimization */
1027
+ printOptimized?: boolean;
1028
+ /** Custom CSS classes */
1029
+ className?: string;
1030
+ /** Additional props */
1031
+ [key: string]: any;
1032
+ }
1033
+ interface PrintGridItemProps {
1034
+ /** Grid item content */
1035
+ children: ReactNode;
1036
+ /** Grid item column span */
1037
+ colSpan?: 1 | 2 | 3 | 4 | 5 | 6 | 12 | 'full';
1038
+ /** Grid item row span */
1039
+ rowSpan?: 1 | 2 | 3 | 4 | 5 | 6 | 'full';
1040
+ /** Grid item column start */
1041
+ colStart?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 'auto';
1042
+ /** Grid item row start */
1043
+ rowStart?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 'auto';
1044
+ /** Grid item alignment */
1045
+ align?: 'start' | 'center' | 'end' | 'stretch';
1046
+ /** Grid item justify */
1047
+ justify?: 'start' | 'center' | 'end' | 'stretch';
1048
+ /** Print-specific column span */
1049
+ printColSpan?: 1 | 2 | 3 | 4 | 5 | 6 | 12 | 'full';
1050
+ /** Print-specific row span */
1051
+ printRowSpan?: 1 | 2 | 3 | 4 | 5 | 6 | 'full';
1052
+ /** Print-specific column start */
1053
+ printColStart?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 'auto';
1054
+ /** Print-specific row start */
1055
+ printRowStart?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 'auto';
1056
+ /** Print optimization */
1057
+ printOptimized?: boolean;
1058
+ /** Custom CSS classes */
1059
+ className?: string;
1060
+ /** Additional props */
1061
+ [key: string]: any;
1062
+ }
1063
+ interface PrintGridContainerProps {
1064
+ /** Container content */
1065
+ children: ReactNode;
1066
+ /** Container max width */
1067
+ maxWidth?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full';
1068
+ /** Container padding */
1069
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1070
+ /** Container margin */
1071
+ margin?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'auto';
1072
+ /** Container background */
1073
+ background?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
1074
+ /** Print optimization */
1075
+ printOptimized?: boolean;
1076
+ /** Custom CSS classes */
1077
+ className?: string;
1078
+ /** Additional props */
1079
+ [key: string]: any;
1080
+ }
1081
+ interface PrintGridBreakpointProps {
1082
+ /** Breakpoint content */
1083
+ children: ReactNode;
1084
+ /** Breakpoint size */
1085
+ size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl';
1086
+ /** Breakpoint columns */
1087
+ columns?: 1 | 2 | 3 | 4 | 5 | 6 | 12;
1088
+ /** Breakpoint gap */
1089
+ gap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1090
+ /** Print optimization */
1091
+ printOptimized?: boolean;
1092
+ /** Custom CSS classes */
1093
+ className?: string;
1094
+ /** Additional props */
1095
+ [key: string]: any;
1096
+ }
1097
+ type PrintGridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 12;
1098
+ type PrintGridGap = 'none' | 'sm' | 'md' | 'lg' | 'xl';
1099
+ type PrintGridAlign = 'start' | 'center' | 'end' | 'stretch';
1100
+ type PrintGridJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
1101
+ type PrintGridItemSpan = 1 | 2 | 3 | 4 | 5 | 6 | 12 | 'full';
1102
+ type PrintGridItemStart = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 'auto';
1103
+ type PrintGridMaxWidth = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full';
1104
+ type PrintGridPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
1105
+ type PrintGridMargin = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'auto';
1106
+ type PrintGridBackground = 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
1107
+ type PrintGridBreakpointSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
1108
+
1109
+ declare function PrintGrid({ children, columns, gap, rowGap, columnGap, align, justify, printColumns, printGap, printRowGap, printColumnGap, printOptimized, className, ...props }: PrintGridProps): react_jsx_runtime.JSX.Element;
1110
+
1111
+ declare function PrintGridItem({ children, colSpan, rowSpan, colStart, rowStart, align, justify, printColSpan, printRowSpan, printColStart, printRowStart, printOptimized, className, ...props }: PrintGridItemProps): react_jsx_runtime.JSX.Element;
1112
+
1113
+ declare function PrintGridContainer({ children, maxWidth, padding, margin, background, printOptimized, className, ...props }: PrintGridContainerProps): react_jsx_runtime.JSX.Element;
1114
+
1115
+ declare function PrintGridBreakpoint({ children, size, columns, gap, printOptimized, className, ...props }: PrintGridBreakpointProps): react_jsx_runtime.JSX.Element;
1116
+
1117
+ /**
1118
+ * @file PrintFooter Types
1119
+ * @package @jmruthers/pace-core
1120
+ * @module PrintFooter
1121
+ * @since 0.4.38
1122
+ *
1123
+ * Type definitions for PrintFooter component.
1124
+ */
1125
+
1126
+ interface PrintFooterProps {
1127
+ /** Footer content */
1128
+ children?: ReactNode;
1129
+ /** Footer text */
1130
+ text?: string;
1131
+ /** Footer position */
1132
+ position?: 'fixed' | 'absolute' | 'relative' | 'sticky';
1133
+ /** Footer alignment */
1134
+ align?: 'left' | 'center' | 'right' | 'between' | 'around' | 'evenly';
1135
+ /** Show page numbers */
1136
+ showPageNumbers?: boolean;
1137
+ /** Page number format */
1138
+ pageNumberFormat?: '1' | '1 of 5' | 'Page 1' | 'Page 1 of 5' | '1/5' | 'custom';
1139
+ /** Custom page number template */
1140
+ pageNumberTemplate?: string;
1141
+ /** Page number position */
1142
+ pageNumberPosition?: 'left' | 'center' | 'right';
1143
+ /** Show total pages */
1144
+ showTotalPages?: boolean;
1145
+ /** Footer background */
1146
+ background?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
1147
+ /** Footer border */
1148
+ showBorder?: boolean;
1149
+ /** Footer padding */
1150
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1151
+ /** Footer margin */
1152
+ margin?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1153
+ /** Footer height */
1154
+ height?: 'auto' | 'sm' | 'md' | 'lg' | 'xl';
1155
+ /** Print optimization */
1156
+ printOptimized?: boolean;
1157
+ /** Custom CSS classes */
1158
+ className?: string;
1159
+ /** Additional props */
1160
+ [key: string]: any;
1161
+ }
1162
+ interface PrintPageNumberProps {
1163
+ /** Page number content */
1164
+ children?: ReactNode;
1165
+ /** Page number format */
1166
+ format?: '1' | '1 of 5' | 'Page 1' | 'Page 1 of 5' | '1/5' | 'custom';
1167
+ /** Custom page number template */
1168
+ template?: string;
1169
+ /** Page number position */
1170
+ position?: 'left' | 'center' | 'right';
1171
+ /** Show total pages */
1172
+ showTotal?: boolean;
1173
+ /** Current page */
1174
+ currentPage?: number;
1175
+ /** Total pages */
1176
+ totalPages?: number;
1177
+ /** Print optimization */
1178
+ printOptimized?: boolean;
1179
+ /** Custom CSS classes */
1180
+ className?: string;
1181
+ /** Additional props */
1182
+ [key: string]: any;
1183
+ }
1184
+ interface PrintFooterContentProps {
1185
+ /** Footer content */
1186
+ children: ReactNode;
1187
+ /** Content alignment */
1188
+ align?: 'left' | 'center' | 'right';
1189
+ /** Content padding */
1190
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
1191
+ /** Print optimization */
1192
+ printOptimized?: boolean;
1193
+ /** Custom CSS classes */
1194
+ className?: string;
1195
+ /** Additional props */
1196
+ [key: string]: any;
1197
+ }
1198
+ interface PrintFooterInfoProps {
1199
+ /** Footer info content */
1200
+ children: ReactNode;
1201
+ /** Info alignment */
1202
+ align?: 'left' | 'center' | 'right';
1203
+ /** Info background */
1204
+ background?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
1205
+ /** Info border */
1206
+ showBorder?: boolean;
1207
+ /** Print optimization */
1208
+ printOptimized?: boolean;
1209
+ /** Custom CSS classes */
1210
+ className?: string;
1211
+ /** Additional props */
1212
+ [key: string]: any;
1213
+ }
1214
+ type PrintFooterPosition = 'fixed' | 'absolute' | 'relative' | 'sticky';
1215
+ type PrintFooterAlign = 'left' | 'center' | 'right' | 'between' | 'around' | 'evenly';
1216
+ type PrintPageNumberFormat = '1' | '1 of 5' | 'Page 1' | 'Page 1 of 5' | '1/5' | 'custom';
1217
+ type PrintPageNumberPosition = 'left' | 'center' | 'right';
1218
+ type PrintFooterBackground = 'transparent' | 'white' | 'gray' | 'primary' | 'secondary';
1219
+ type PrintFooterPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
1220
+ type PrintFooterMargin = 'none' | 'sm' | 'md' | 'lg' | 'xl';
1221
+ type PrintFooterHeight = 'auto' | 'sm' | 'md' | 'lg' | 'xl';
1222
+ type PrintFooterContentAlign = 'left' | 'center' | 'right';
1223
+ type PrintFooterInfoAlign = 'left' | 'center' | 'right';
1224
+
1225
+ declare function PrintFooter({ children, text, position, align, showPageNumbers, pageNumberFormat, pageNumberTemplate, pageNumberPosition, showTotalPages, background, showBorder, padding, margin, height, printOptimized, className, ...props }: PrintFooterProps): react_jsx_runtime.JSX.Element;
1226
+
1227
+ declare function PrintPageNumber({ children, format, template, position, showTotal, currentPage, totalPages, printOptimized, className, ...props }: PrintPageNumberProps): react_jsx_runtime.JSX.Element;
1228
+
1229
+ declare function PrintFooterContent({ children, align, padding, printOptimized, className, ...props }: PrintFooterContentProps): react_jsx_runtime.JSX.Element;
1230
+
1231
+ declare function PrintFooterInfo({ children, align, background, showBorder, printOptimized, className, ...props }: PrintFooterInfoProps): react_jsx_runtime.JSX.Element;
1232
+
1233
+ /**
1234
+ * @file PrintPageBreak Types
1235
+ * @package @jmruthers/pace-core
1236
+ * @module PrintPageBreak
1237
+ * @since 0.4.38
1238
+ *
1239
+ * Type definitions for PrintPageBreak component.
1240
+ */
1241
+
1242
+ interface PrintPageBreakProps {
1243
+ /** Page break type */
1244
+ type?: 'before' | 'after' | 'avoid' | 'auto' | 'always' | 'left' | 'right';
1245
+ /** Page break strength */
1246
+ strength?: 'weak' | 'normal' | 'strong';
1247
+ /** Show visual indicator */
1248
+ showIndicator?: boolean;
1249
+ /** Custom indicator content */
1250
+ indicator?: ReactNode;
1251
+ /** Page break label */
1252
+ label?: string;
1253
+ /** Page break description */
1254
+ description?: string;
1255
+ /** Print optimization */
1256
+ printOptimized?: boolean;
1257
+ /** Custom CSS classes */
1258
+ className?: string;
1259
+ /** Additional props */
1260
+ [key: string]: any;
1261
+ }
1262
+ interface PrintPageBreakGroupProps {
1263
+ /** Group content */
1264
+ children: ReactNode;
1265
+ /** Group page break type */
1266
+ type?: 'before' | 'after' | 'avoid' | 'auto' | 'always' | 'left' | 'right';
1267
+ /** Group page break strength */
1268
+ strength?: 'weak' | 'normal' | 'strong';
1269
+ /** Group label */
1270
+ label?: string;
1271
+ /** Group description */
1272
+ description?: string;
1273
+ /** Print optimization */
1274
+ printOptimized?: boolean;
1275
+ /** Custom CSS classes */
1276
+ className?: string;
1277
+ /** Additional props */
1278
+ [key: string]: any;
1279
+ }
1280
+ interface PrintPageBreakIndicatorProps {
1281
+ /** Indicator content */
1282
+ children?: ReactNode;
1283
+ /** Indicator type */
1284
+ type?: 'line' | 'dotted' | 'dashed' | 'text' | 'icon';
1285
+ /** Indicator color */
1286
+ color?: 'default' | 'primary' | 'secondary' | 'muted' | 'accent';
1287
+ /** Indicator size */
1288
+ size?: 'sm' | 'md' | 'lg';
1289
+ /** Print optimization */
1290
+ printOptimized?: boolean;
1291
+ /** Custom CSS classes */
1292
+ className?: string;
1293
+ /** Additional props */
1294
+ [key: string]: any;
1295
+ }
1296
+ type PrintPageBreakType = 'before' | 'after' | 'avoid' | 'auto' | 'always' | 'left' | 'right';
1297
+ type PrintPageBreakStrength = 'weak' | 'normal' | 'strong';
1298
+ type PrintPageBreakIndicatorType = 'line' | 'dotted' | 'dashed' | 'text' | 'icon';
1299
+ type PrintPageBreakIndicatorColor = 'default' | 'primary' | 'secondary' | 'muted' | 'accent';
1300
+ type PrintPageBreakIndicatorSize = 'sm' | 'md' | 'lg';
1301
+
1302
+ declare function PrintPageBreak({ type, strength, showIndicator, indicator, label, description, printOptimized, className, ...props }: PrintPageBreakProps): react_jsx_runtime.JSX.Element;
1303
+
1304
+ declare function PrintPageBreakIndicator({ children, type, color, size, printOptimized, className, ...props }: PrintPageBreakIndicatorProps): react_jsx_runtime.JSX.Element;
1305
+
1306
+ declare function PrintPageBreakGroup({ children, type, strength, label, description, printOptimized, className, ...props }: PrintPageBreakGroupProps): react_jsx_runtime.JSX.Element;
1307
+
1308
+ export { FormErrorSummary, type FormErrorSummaryProps, FormField, type FormFieldProps, FormFieldset, type FormFieldsetProps, FormLiveRegion, type FormLiveRegionProps, type IconPosition, type Orientation, type PageSize, type PrintBranding, type PrintBreakType, PrintButton, PrintButtonGroup, type PrintButtonGroupProps, type PrintButtonProps, type PrintButtonShape, type PrintButtonSize, type PrintButtonState, type PrintButtonVariant, PrintCard, type PrintCardAlignment, type PrintCardAspectRatio, type PrintCardBackgroundColor, PrintCardContent, type PrintCardContentProps, PrintCardFooter, type PrintCardFooterProps, type PrintCardGap, PrintCardGrid, type PrintCardGridProps, PrintCardHeader, type PrintCardHeaderProps, PrintCardImage, type PrintCardImageProps, type PrintCardLayout, type PrintCardObjectFit, type PrintCardPadding, type PrintCardProps, type PrintCardSize, type PrintCardTextColor, type PrintCardVariant, type PrintCellPadding, PrintColumn, type PrintColumnAlign, type PrintColumnProps, type PrintColumnWidth, PrintCoverHeader, type PrintCoverHeaderProps, PrintDataTable, type PrintDataTableProps, PrintDivider, type PrintDividerColor, type PrintDividerProps, type PrintDividerStyle, type PrintDividerThickness, PrintFooter, type PrintFooterAlign, type PrintFooterBackground, PrintFooterContent, type PrintFooterContentAlign, type PrintFooterContentProps, type PrintFooterHeight, PrintFooterInfo, type PrintFooterInfoAlign, type PrintFooterInfoProps, type PrintFooterMargin, type PrintFooterPadding, type PrintFooterPosition, type PrintFooterProps, type PrintFunction, PrintGrid, type PrintGridAlign, type PrintGridBackground, PrintGridBreakpoint, type PrintGridBreakpointProps, type PrintGridBreakpointSize, type PrintGridColumns, PrintGridContainer, type PrintGridContainerProps, type PrintGridGap, PrintGridItem, type PrintGridItemProps, type PrintGridItemSpan, type PrintGridItemStart, type PrintGridJustify, type PrintGridMargin, type PrintGridMaxWidth, type PrintGridPadding, type PrintGridProps, type PrintGrouping, PrintHeader, type PrintHeaderProps, type PrintHeaderStyle, PrintLayout, type PrintLayoutContextType, type PrintLayoutProps, PrintLayoutProvider, type PrintMetadata, type PrintOptions, PrintPageBreak, PrintPageBreakGroup, type PrintPageBreakGroupProps, PrintPageBreakIndicator, type PrintPageBreakIndicatorColor, type PrintPageBreakIndicatorProps, type PrintPageBreakIndicatorSize, type PrintPageBreakIndicatorType, type PrintPageBreakProps, type PrintPageBreakStrength, type PrintPageBreakType, PrintPageNumber, type PrintPageNumberFormat, type PrintPageNumberPosition, type PrintPageNumberProps, type PrintRowStyle, PrintSection, type PrintSectionAlignment, type PrintSectionBackground, PrintSectionContent, type PrintSectionContentProps, type PrintSectionGap, PrintSectionHeader, type PrintSectionHeaderProps, type PrintSectionLayout, type PrintSectionPadding, type PrintSectionProps, type PrintSectionSpacing, PrintTableGroup, type PrintTableGroupProps, PrintTableRow, type PrintTableRowProps, type PrintTableStyling, PrintText, type PrintTextColor, type PrintTextProps, type PrintTextVariant, type PrintTextWeight, PrintToolbar, type PrintToolbarAlign, type PrintToolbarPosition, type PrintToolbarProps, type PrintVerticalAlignment, SuperAdminBadge, SuperAdminDebugPanel, SuperAdminGuard, type SuperAdminGuardProps, usePrintLayout };