@eintrek/erp-shell 0.1.48 → 0.1.50

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.
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { type ShellChrome } from "./chrome";
2
+ import { type ShellChrome, type WorkspaceHeaderTone } from "./chrome";
3
3
  /**
4
4
  * Shape the shell needs from an organization to wire the URL `[code]` segment
5
5
  * back to the active org id. Hosts already keep richer types around — this is
@@ -46,6 +46,11 @@ export interface AppLayoutShellProps {
46
46
  selectOrganizationUrl: string;
47
47
  /** Which look the chrome takes — see `ShellChrome`. Default "brand". */
48
48
  chrome?: ShellChrome;
49
+ /**
50
+ * The workspace top bar: the app's gradient ("brand", default) or a white
51
+ * bar in the theme's own ink ("light"). Ignored by the brand chrome.
52
+ */
53
+ workspaceHeader?: WorkspaceHeaderTone;
49
54
  /**
50
55
  * Right-hand end of the top bar (workspace chrome): typically the
51
56
  * organisation switcher and a help button.
@@ -69,4 +74,4 @@ export interface AppLayoutShellProps {
69
74
  * an erp-shell bump — domain components must NOT add their own root padding
70
75
  * or content gets indented twice.
71
76
  */
72
- export declare function AppLayoutShell({ children, sidebar, loadingComponent, breadcrumb, permissionProvider, organizationId, setOrganizationId, organizations, signInUrl, selectOrganizationUrl, chrome, headerEnd, mobileBrand, }: AppLayoutShellProps): import("react/jsx-runtime").JSX.Element;
77
+ export declare function AppLayoutShell({ children, sidebar, loadingComponent, breadcrumb, permissionProvider, organizationId, setOrganizationId, organizations, signInUrl, selectOrganizationUrl, chrome, workspaceHeader, headerEnd, mobileBrand, }: AppLayoutShellProps): import("react/jsx-runtime").JSX.Element;
@@ -29,6 +29,8 @@ export interface AppSidebarProps {
29
29
  bottom?: React.ReactNode;
30
30
  /** Which look — match the `chrome` given to AppLayoutShell. */
31
31
  chrome?: ShellChrome;
32
+ /** See NavMain: light a one-line item while its module is active. */
33
+ highlightActiveModule?: boolean;
32
34
  className?: string;
33
35
  }
34
- export declare function AppSidebar({ modules, tools, activeModule, orgCode, approvalCounts, closeOnNavigation, header, footer, bottom, chrome, className, }: AppSidebarProps): import("react/jsx-runtime").JSX.Element | null;
36
+ export declare function AppSidebar({ modules, tools, activeModule, orgCode, approvalCounts, closeOnNavigation, highlightActiveModule, header, footer, bottom, chrome, className, }: AppSidebarProps): import("react/jsx-runtime").JSX.Element | null;
@@ -22,3 +22,13 @@ export type ShellChrome = "brand" | "workspace";
22
22
  * white as the fallback, so the brand chrome looks exactly as before.
23
23
  */
24
24
  export declare const WORKSPACE_HEADER_VARS: React.CSSProperties;
25
+ /**
26
+ * The top bar of the workspace chrome.
27
+ *
28
+ * - "brand" (default): the app's gradient with white ink — how Platform looks.
29
+ * - "light": a white bar with a hairline under it and the theme's own ink,
30
+ * as in the Peoplx design (12 Oct 2026). Colours come from theme tokens, so
31
+ * dark mode follows.
32
+ */
33
+ export type WorkspaceHeaderTone = "brand" | "light";
34
+ export declare const WORKSPACE_LIGHT_HEADER_VARS: React.CSSProperties;
@@ -17,5 +17,11 @@ export interface NavMainProps {
17
17
  approvalCounts?: Record<string, number>;
18
18
  /** Workspace chrome draws icons, group headings and badges. */
19
19
  chrome?: ShellChrome;
20
+ /**
21
+ * Light a one-line item (no sub-items) whenever it is the active module —
22
+ * `item.isActive` — not only on its own URL. For an app whose module pages
23
+ * are tabs on the page rather than sub-items here.
24
+ */
25
+ highlightActiveModule?: boolean;
20
26
  }
21
- export declare function NavMain({ items, orgCode, closeOnNavigation, approvalCounts, chrome, }: NavMainProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function NavMain({ items, orgCode, closeOnNavigation, approvalCounts, chrome, highlightActiveModule, }: NavMainProps): import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eintrek/erp-shell",
3
- "version": "0.1.48",
3
+ "version": "0.1.50",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Shared frontend platform for ERP apps — HTTP client, providers, navigation, hooks.",