@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.
- package/dist/{PublicLoadingSpinner-BQXD1fbO.d.ts → PublicLoadingSpinner-Dx5c2g3S.d.ts} +9 -3
- package/dist/{chunk-EWMXLDIX.js → chunk-VJJNZKHO.js} +22 -4
- package/dist/chunk-VJJNZKHO.js.map +1 -0
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +34 -21
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UseEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +7 -5
- package/package.json +1 -1
- package/src/components/Header/Header.tsx +52 -15
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +4 -0
- package/src/components/PaceAppLayout/README.md +30 -0
- 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-
|
|
4555
|
+
//# sourceMappingURL=chunk-VJJNZKHO.js.map
|