@jmruthers/pace-core 0.5.90 → 0.5.91

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 (114) hide show
  1. package/dist/{PublicLoadingSpinner-BQXD1fbO.d.ts → PublicLoadingSpinner-Dx5c2g3S.d.ts} +9 -3
  2. package/dist/{chunk-EWMXLDIX.js → chunk-VJJNZKHO.js} +22 -4
  3. package/dist/chunk-VJJNZKHO.js.map +1 -0
  4. package/dist/components.d.ts +1 -1
  5. package/dist/components.js +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +1 -1
  8. package/docs/api/classes/ColumnFactory.md +1 -1
  9. package/docs/api/classes/ErrorBoundary.md +1 -1
  10. package/docs/api/classes/InvalidScopeError.md +1 -1
  11. package/docs/api/classes/MissingUserContextError.md +1 -1
  12. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  13. package/docs/api/classes/PermissionDeniedError.md +1 -1
  14. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  15. package/docs/api/classes/RBACAuditManager.md +1 -1
  16. package/docs/api/classes/RBACCache.md +1 -1
  17. package/docs/api/classes/RBACEngine.md +1 -1
  18. package/docs/api/classes/RBACError.md +1 -1
  19. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  20. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  21. package/docs/api/classes/StorageUtils.md +1 -1
  22. package/docs/api/enums/FileCategory.md +1 -1
  23. package/docs/api/interfaces/AggregateConfig.md +1 -1
  24. package/docs/api/interfaces/ButtonProps.md +1 -1
  25. package/docs/api/interfaces/CardProps.md +1 -1
  26. package/docs/api/interfaces/ColorPalette.md +1 -1
  27. package/docs/api/interfaces/ColorShade.md +1 -1
  28. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  29. package/docs/api/interfaces/DataRecord.md +1 -1
  30. package/docs/api/interfaces/DataTableAction.md +1 -1
  31. package/docs/api/interfaces/DataTableColumn.md +1 -1
  32. package/docs/api/interfaces/DataTableProps.md +1 -1
  33. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  34. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  35. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  36. package/docs/api/interfaces/EventLogoProps.md +1 -1
  37. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  38. package/docs/api/interfaces/FileMetadata.md +1 -1
  39. package/docs/api/interfaces/FileReference.md +1 -1
  40. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  41. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  42. package/docs/api/interfaces/FileUploadProps.md +1 -1
  43. package/docs/api/interfaces/FooterProps.md +1 -1
  44. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  45. package/docs/api/interfaces/InputProps.md +1 -1
  46. package/docs/api/interfaces/LabelProps.md +1 -1
  47. package/docs/api/interfaces/LoginFormProps.md +1 -1
  48. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  49. package/docs/api/interfaces/NavigationContextType.md +1 -1
  50. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  51. package/docs/api/interfaces/NavigationItem.md +1 -1
  52. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  53. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  54. package/docs/api/interfaces/Organisation.md +1 -1
  55. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  56. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  57. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  58. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  59. package/docs/api/interfaces/PaceAppLayoutProps.md +34 -21
  60. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  61. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  62. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  63. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  64. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  65. package/docs/api/interfaces/PaletteData.md +1 -1
  66. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  67. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  68. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  69. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  70. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  71. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  72. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  73. package/docs/api/interfaces/RBACConfig.md +1 -1
  74. package/docs/api/interfaces/RBACLogger.md +1 -1
  75. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  76. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  77. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  78. package/docs/api/interfaces/RouteConfig.md +1 -1
  79. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  80. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  81. package/docs/api/interfaces/StorageConfig.md +1 -1
  82. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  83. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  84. package/docs/api/interfaces/StorageListOptions.md +1 -1
  85. package/docs/api/interfaces/StorageListResult.md +1 -1
  86. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  87. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  88. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  89. package/docs/api/interfaces/StyleImport.md +1 -1
  90. package/docs/api/interfaces/SwitchProps.md +1 -1
  91. package/docs/api/interfaces/ToastActionElement.md +1 -1
  92. package/docs/api/interfaces/ToastProps.md +1 -1
  93. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  94. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  95. package/docs/api/interfaces/UseEventLogoOptions.md +1 -1
  96. package/docs/api/interfaces/UseEventLogoReturn.md +1 -1
  97. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  98. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  99. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  100. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  101. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  102. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  103. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  104. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  105. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  106. package/docs/api/interfaces/UserEventAccess.md +1 -1
  107. package/docs/api/interfaces/UserMenuProps.md +1 -1
  108. package/docs/api/interfaces/UserProfile.md +1 -1
  109. package/docs/api/modules.md +7 -5
  110. package/package.json +1 -1
  111. package/src/components/Header/Header.tsx +52 -15
  112. package/src/components/PaceAppLayout/PaceAppLayout.tsx +4 -0
  113. package/src/components/PaceAppLayout/README.md +30 -0
  114. package/dist/chunk-EWMXLDIX.js.map +0 -1
@@ -1866,6 +1866,8 @@ interface HeaderProps {
1866
1866
  currentPath?: string;
1867
1867
  /** Custom navigation handler */
1868
1868
  onNavigate?: (item: NavigationItem) => void;
1869
+ /** URL to navigate to when logo is clicked (e.g., '/dashboard') */
1870
+ logoHref?: string;
1869
1871
  }
1870
1872
  /**
1871
1873
  * Header component for application layouts with comprehensive navigation, user management,
@@ -1876,6 +1878,7 @@ interface HeaderProps {
1876
1878
  *
1877
1879
  * Features:
1878
1880
  * - Customizable logo (URL or custom component)
1881
+ * - Clickable logo that automatically routes to dashboard (configurable via logoHref)
1879
1882
  * - Navigation menu integration with highlighting
1880
1883
  * - User menu with authentication and password management
1881
1884
  * - Event selector for multi-tenant applications
@@ -1886,7 +1889,7 @@ interface HeaderProps {
1886
1889
  * - Flexible layout with configurable sections
1887
1890
  *
1888
1891
  * @example
1889
- * Basic header with logo and navigation:
1892
+ * Basic header with logo and navigation (logo routes to /dashboard when clicked):
1890
1893
  * ```tsx
1891
1894
  * import { Header } from '@jmruthers/pace-core';
1892
1895
  * import { useNavigate, useLocation } from 'react-router-dom';
@@ -1905,6 +1908,7 @@ interface HeaderProps {
1905
1908
  * <Header
1906
1909
  * logoUrl="/company-logo.svg"
1907
1910
  * logoAlt="My Company"
1911
+ * logoHref="/dashboard"
1908
1912
  * navItems={navItems}
1909
1913
  * currentPath={location.pathname}
1910
1914
  * onNavigate={(item) => navigate(item.href)}
@@ -1961,7 +1965,7 @@ interface HeaderProps {
1961
1965
  *
1962
1966
  * @since 0.1.0
1963
1967
  */
1964
- declare function Header({ logoUrl, logoAlt, logo, navItems, user, onSignOut, onChangePassword, actions, userMenu, className, showEventSelector, showUserMenu, currentPath, onNavigate }: HeaderProps): react_jsx_runtime.JSX.Element;
1968
+ declare function Header({ logoUrl, logoAlt, logo, navItems, user, onSignOut, onChangePassword, actions, userMenu, className, showEventSelector, showUserMenu, currentPath, onNavigate, logoHref }: HeaderProps): react_jsx_runtime.JSX.Element;
1965
1969
 
1966
1970
  /**
1967
1971
  * @file Footer Component
@@ -2212,6 +2216,8 @@ interface PaceAppLayoutProps {
2212
2216
  headerActions?: React__default.ReactNode;
2213
2217
  /** Custom logo component (overrides default logo) */
2214
2218
  customLogo?: React__default.ReactNode;
2219
+ /** URL to navigate to when logo is clicked (defaults to '/dashboard') */
2220
+ logoHref?: string;
2215
2221
  /** Custom user menu component (overrides default user menu) */
2216
2222
  customUserMenu?: React__default.ReactNode;
2217
2223
  /** Custom className for the header */
@@ -2399,7 +2405,7 @@ interface PaceAppLayoutProps {
2399
2405
  *
2400
2406
  * @since 0.1.0
2401
2407
  */
2402
- declare function PaceAppLayout({ appName, navItems, showEventSelector, headerActions, customLogo, customUserMenu, headerClassName, showUserMenu, enforcePermissions, defaultPermission, routePermissions, permissionFallback, filterNavigationByPermissions, pageIdMapping, strictMode, enforcePagePermissions, pagePermissionFallback, auditLog, onPageAccessDenied, onStrictModeViolation, roleBasedRouting, routeConfig, fallbackRoute, onRouteAccessDenied, onRouteStrictModeViolation }: PaceAppLayoutProps): react_jsx_runtime.JSX.Element;
2408
+ declare function PaceAppLayout({ appName, navItems, showEventSelector, headerActions, customLogo, logoHref, customUserMenu, headerClassName, showUserMenu, enforcePermissions, defaultPermission, routePermissions, permissionFallback, filterNavigationByPermissions, pageIdMapping, strictMode, enforcePagePermissions, pagePermissionFallback, auditLog, onPageAccessDenied, onStrictModeViolation, roleBasedRouting, routeConfig, fallbackRoute, onRouteAccessDenied, onRouteStrictModeViolation }: PaceAppLayoutProps): react_jsx_runtime.JSX.Element;
2403
2409
 
2404
2410
  /**
2405
2411
  * @file PACE Login Page Component
@@ -1123,6 +1123,7 @@ var NavigationMenu = React9.forwardRef(({
1123
1123
  NavigationMenu.displayName = "NavigationMenu";
1124
1124
 
1125
1125
  // src/components/Header/Header.tsx
1126
+ import { Link } from "react-router-dom";
1126
1127
  import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
1127
1128
  function Header({
1128
1129
  logoUrl,
@@ -1138,20 +1139,35 @@ function Header({
1138
1139
  showEventSelector = true,
1139
1140
  showUserMenu = true,
1140
1141
  currentPath,
1141
- onNavigate
1142
+ onNavigate,
1143
+ logoHref
1142
1144
  }) {
1143
1145
  return /* @__PURE__ */ jsx12("header", { className: cn(
1144
1146
  "w-full border-b border-main-200 h-16 shadow-sm bg-main-100 ",
1145
1147
  className
1146
1148
  ), role: "banner", children: /* @__PURE__ */ jsxs8("nav", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto grid grid-cols-[auto_auto_1fr_auto] gap-4 h-full items-center", children: [
1147
- logo ? logo : logoUrl ? /* @__PURE__ */ jsx12(
1149
+ logo ? logoHref ? /* @__PURE__ */ jsx12(Link, { to: logoHref, className: "cursor-pointer hover:opacity-80 transition-opacity", children: logo }) : logo : logoUrl ? logoHref ? /* @__PURE__ */ jsx12(Link, { to: logoHref, className: "cursor-pointer hover:opacity-80 transition-opacity", children: /* @__PURE__ */ jsx12(
1150
+ "img",
1151
+ {
1152
+ src: logoUrl,
1153
+ alt: logoAlt || "Logo",
1154
+ className: "h-[2.15rem] w-auto max-w-[200px] object-contain rounded-md shadow-md bg-transparent"
1155
+ }
1156
+ ) }) : /* @__PURE__ */ jsx12(
1148
1157
  "img",
1149
1158
  {
1150
1159
  src: logoUrl,
1151
1160
  alt: logoAlt || "Logo",
1152
1161
  className: "h-[2.15rem] w-auto max-w-[200px] object-contain rounded-md shadow-md bg-transparent"
1153
1162
  }
1154
- ) : /* @__PURE__ */ jsx12(
1163
+ ) : logoHref ? /* @__PURE__ */ jsx12(Link, { to: logoHref, className: "cursor-pointer hover:opacity-80 transition-opacity", children: /* @__PURE__ */ jsx12(
1164
+ "img",
1165
+ {
1166
+ src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%23000'/%3E%3Ctext x='16' y='20' text-anchor='middle' fill='white' font-family='Arial' font-size='14' font-weight='bold'%3EL%3C/text%3E%3C/svg%3E",
1167
+ alt: logoAlt || "Logo",
1168
+ className: "h-8 w-8 shadow-md"
1169
+ }
1170
+ ) }) : /* @__PURE__ */ jsx12(
1155
1171
  "img",
1156
1172
  {
1157
1173
  src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%23000'/%3E%3Ctext x='16' y='20' text-anchor='middle' fill='white' font-family='Arial' font-size='14' font-weight='bold'%3EL%3C/text%3E%3C/svg%3E",
@@ -1227,6 +1243,7 @@ function PaceAppLayout({
1227
1243
  showEventSelector,
1228
1244
  headerActions,
1229
1245
  customLogo,
1246
+ logoHref = "/dashboard",
1230
1247
  customUserMenu,
1231
1248
  headerClassName,
1232
1249
  showUserMenu = true,
@@ -1500,6 +1517,7 @@ function PaceAppLayout({
1500
1517
  logo: customLogo || void 0,
1501
1518
  logoUrl: !customLogo ? `/${appName.toLowerCase()}_logo_wide.svg` : void 0,
1502
1519
  logoAlt: `${appName} Logo`,
1520
+ logoHref,
1503
1521
  navItems: filteredMenuItems,
1504
1522
  actions: headerActions,
1505
1523
  userMenu: customUserMenu,
@@ -4534,4 +4552,4 @@ export {
4534
4552
  PublicPageDiagnostic,
4535
4553
  PublicPageContextChecker
4536
4554
  };
4537
- //# sourceMappingURL=chunk-EWMXLDIX.js.map
4555
+ //# sourceMappingURL=chunk-VJJNZKHO.js.map