hazo_auth 10.5.0 → 10.7.0
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/README.md +11 -5
- package/cli-src/lib/ui_shell_config.server.ts +5 -1
- package/dist/components/layouts/login/config/login_field_config.js +2 -2
- package/dist/components/layouts/register/config/register_field_config.js +2 -2
- package/dist/components/layouts/shared/components/auth_navbar.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/auth_navbar.js +2 -1
- package/dist/lib/ui_shell_config.server.d.ts +4 -0
- package/dist/lib/ui_shell_config.server.d.ts.map +1 -1
- package/dist/lib/ui_shell_config.server.js +5 -1
- package/dist/server/routes/user_management_users.d.ts +1 -1
- package/dist/server_pages/login.d.ts +8 -1
- package/dist/server_pages/login.d.ts.map +1 -1
- package/dist/server_pages/login.js +2 -2
- package/dist/server_pages/register.d.ts +8 -1
- package/dist/server_pages/register.d.ts.map +1 -1
- package/dist/server_pages/register.js +2 -2
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1620,11 +1620,11 @@ The component automatically shows/hides tabs based on the user's permissions, so
|
|
|
1620
1620
|
|
|
1621
1621
|
### Choose the UI Shell (Test Sidebar vs Standalone)
|
|
1622
1622
|
|
|
1623
|
-
By default,
|
|
1623
|
+
By default, pages render with a clean, standalone wrapper that inherits your own app shell, layout, and theme tokens. The "test workspace" sidebar (`test_sidebar`) is opt-in and intended only for this package's own demo/dev app (Storybook screenshots, quickly previewing every flow). Set this in `hazo_auth_config.ini`:
|
|
1624
1624
|
|
|
1625
1625
|
```ini
|
|
1626
1626
|
[hazo_auth__ui_shell]
|
|
1627
|
-
# Options:
|
|
1627
|
+
# Options: standalone (default) | test_sidebar
|
|
1628
1628
|
layout_mode = standalone
|
|
1629
1629
|
vertical_center = auto # 'auto' enables vertical centering when navbar is present
|
|
1630
1630
|
# Optional tweaks for the standalone header wrapper/classes:
|
|
@@ -1634,11 +1634,13 @@ vertical_center = auto # 'auto' enables vertical centering when navbar is prese
|
|
|
1634
1634
|
# standalone_content_class = mx-auto w-full max-w-4xl rounded-2xl border bg-card
|
|
1635
1635
|
```
|
|
1636
1636
|
|
|
1637
|
-
- `
|
|
1638
|
-
- `
|
|
1637
|
+
- `standalone` (default): renders the page body directly so it inherits your own app shell, layout, and theme tokens.
|
|
1638
|
+
- `test_sidebar`: keeps the developer sidebar. Opt-in only, meant for this package's own demo/dev app — do not set this in consuming apps.
|
|
1639
1639
|
- `vertical_center`: controls vertical centering of auth content (`auto` enables centering when navbar is present)
|
|
1640
1640
|
- The wrapper and content class overrides let you align spacing/borders with your design system without editing package code.
|
|
1641
1641
|
|
|
1642
|
+
**`pages/*` vs `components/layouts/*`:** The `hazo_auth/pages/*` exports (e.g. `hazo_auth/pages/login`, `/register`, etc.) are full-screen pages meant to be rendered at page root by consumers — they should not be wrapped in a fixed-width card/container. If you need an embedded/card-style form (e.g. inside a modal or a section of an existing page), use the bare `components/layouts/login` component with `layout="form_only"` instead.
|
|
1643
|
+
|
|
1642
1644
|
### Authentication Page Navbar
|
|
1643
1645
|
|
|
1644
1646
|
**The navbar now works automatically** - zero-config server page components include the navbar based on configuration without manual wrapping.
|
|
@@ -1654,7 +1656,7 @@ logo_height = 32 # Logo height in pixels
|
|
|
1654
1656
|
company_name = My Company # Company name (links to home)
|
|
1655
1657
|
home_path = / # URL for logo and company name link
|
|
1656
1658
|
home_label = Home # Label for home link
|
|
1657
|
-
show_home_link = true # Show "Home" link
|
|
1659
|
+
show_home_link = true # Show "Home" link (only used when no logo/company_name is set — see below)
|
|
1658
1660
|
background_color = # Custom background (optional)
|
|
1659
1661
|
text_color = # Custom text color (optional)
|
|
1660
1662
|
height = 64 # Navbar height in pixels
|
|
@@ -1662,6 +1664,10 @@ height = 64 # Navbar height in pixels
|
|
|
1662
1664
|
|
|
1663
1665
|
The navbar provides consistent branding across authentication pages with your company logo, name, and optional home link. It automatically vertically centers auth content when enabled.
|
|
1664
1666
|
|
|
1667
|
+
**Home link behavior:** the standalone "Home" link and your brand (logo/company name) never both render — the brand link already goes home.
|
|
1668
|
+
- `logo_path` or `company_name` set → the brand renders on the left as a link to `home_path`; the separate "Home" link is hidden, regardless of `show_home_link`.
|
|
1669
|
+
- Neither set → the "Home" link (icon + label) renders on the **left** instead, as long as `show_home_link = true`.
|
|
1670
|
+
|
|
1665
1671
|
**Zero-config usage (recommended):**
|
|
1666
1672
|
```typescript
|
|
1667
1673
|
// app/hazo_auth/login/page.tsx
|
|
@@ -27,11 +27,15 @@ export type UiShellConfig = {
|
|
|
27
27
|
/**
|
|
28
28
|
* Reads ui shell configuration controlling whether pages use the sidebar test shell
|
|
29
29
|
* or a clean standalone wrapper that inherits consumer project styling.
|
|
30
|
+
*
|
|
31
|
+
* `standalone` is the default so consuming apps get a clean wrapper out of the box.
|
|
32
|
+
* `test_sidebar` must be explicitly opted into via config and is intended for use
|
|
33
|
+
* by this package's own demo/dev app only.
|
|
30
34
|
*/
|
|
31
35
|
export function get_ui_shell_config(): UiShellConfig {
|
|
32
36
|
const section = "hazo_auth__ui_shell";
|
|
33
37
|
|
|
34
|
-
const layoutModeValue = get_config_value(section, "layout_mode", "
|
|
38
|
+
const layoutModeValue = get_config_value(section, "layout_mode", "standalone").toLowerCase();
|
|
35
39
|
const layout_mode: UiShellLayoutMode =
|
|
36
40
|
layoutModeValue === "standalone" ? "standalone" : "test_sidebar";
|
|
37
41
|
|
|
@@ -36,7 +36,7 @@ export const resolveLoginLabels = (overrides) => resolveLabels(LOGIN_LABEL_DEFAU
|
|
|
36
36
|
const LOGIN_BUTTON_PALETTE_DEFAULTS = {
|
|
37
37
|
submitBackground: "#0f172a",
|
|
38
38
|
submitText: "#ffffff",
|
|
39
|
-
cancelBorder: "
|
|
40
|
-
cancelText: "
|
|
39
|
+
cancelBorder: "hsl(var(--border))",
|
|
40
|
+
cancelText: "hsl(var(--foreground))",
|
|
41
41
|
};
|
|
42
42
|
export const resolveLoginButtonPalette = (overrides) => resolveButtonPalette(LOGIN_BUTTON_PALETTE_DEFAULTS, overrides);
|
|
@@ -54,8 +54,8 @@ export const resolveRegisterLabels = (overrides) => resolveLabels(REGISTER_LABEL
|
|
|
54
54
|
const REGISTER_BUTTON_PALETTE_DEFAULTS = {
|
|
55
55
|
submitBackground: "#0f172a",
|
|
56
56
|
submitText: "#ffffff",
|
|
57
|
-
cancelBorder: "
|
|
58
|
-
cancelText: "
|
|
57
|
+
cancelBorder: "hsl(var(--border))",
|
|
58
|
+
cancelText: "hsl(var(--foreground))",
|
|
59
59
|
};
|
|
60
60
|
export const resolveRegisterButtonPalette = (overrides) => resolveButtonPalette(REGISTER_BUTTON_PALETTE_DEFAULTS, overrides);
|
|
61
61
|
// section: password_rules
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth_navbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layouts/shared/components/auth_navbar.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,eAAe,GAAG;IAC5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,wBAAgB,UAAU,CAAC,EACzB,SAAc,EACd,UAAe,EACf,WAAgB,EAChB,YAAiB,EACjB,SAAe,EACf,UAAmB,EACnB,cAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,MAAW,EACX,SAAS,GACV,EAAE,eAAe,+
|
|
1
|
+
{"version":3,"file":"auth_navbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layouts/shared/components/auth_navbar.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,eAAe,GAAG;IAC5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,wBAAgB,UAAU,CAAC,EACzB,SAAc,EACd,UAAe,EACf,WAAgB,EAChB,YAAiB,EACjB,SAAe,EACf,UAAmB,EACnB,cAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,MAAW,EACX,SAAS,GACV,EAAE,eAAe,+BAoDjB"}
|
|
@@ -11,6 +11,7 @@ import { cn } from "../../../../lib/utils.js";
|
|
|
11
11
|
export function AuthNavbar({ logo_path = "", logo_width = 28, logo_height = 28, company_name = "", home_path = "/", home_label = "Home", show_home_link = true, background_color, text_color, height = 40, className, }) {
|
|
12
12
|
// Only show logo if logo_path is configured (non-empty)
|
|
13
13
|
const showLogo = logo_path !== "";
|
|
14
|
+
const hasBrand = showLogo || company_name !== "";
|
|
14
15
|
const navStyle = Object.assign(Object.assign({ height: `${height}px` }, (background_color && { backgroundColor: background_color })), (text_color && { color: text_color }));
|
|
15
|
-
return (
|
|
16
|
+
return (_jsx("nav", { className: cn("cls_auth_navbar flex w-full items-center justify-between border-b border-border/40 bg-background/95 px-4 backdrop-blur supports-[backdrop-filter]:bg-background/60", className), style: navStyle, "aria-label": "Authentication page navigation", children: _jsxs("div", { className: "cls_auth_navbar_brand flex items-center gap-3", children: [hasBrand && (_jsxs(Link, { href: home_path, className: "cls_auth_navbar_logo_link flex items-center gap-3", children: [showLogo && (_jsx(Image, { src: logo_path, alt: company_name ? `${company_name} logo` : "Logo", width: logo_width, height: logo_height, className: "cls_auth_navbar_logo object-contain" })), company_name && (_jsx("span", { className: "cls_auth_navbar_company_name text-lg font-semibold text-foreground", children: company_name }))] })), !hasBrand && show_home_link && (_jsxs(Link, { href: home_path, className: "cls_auth_navbar_home_link flex items-center gap-2 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground", "aria-label": `Navigate to ${home_label}`, children: [_jsx(Home, { className: "h-4 w-4", "aria-hidden": "true" }), _jsx("span", { children: home_label })] }))] }) }));
|
|
16
17
|
}
|
|
@@ -17,6 +17,10 @@ export type UiShellConfig = {
|
|
|
17
17
|
/**
|
|
18
18
|
* Reads ui shell configuration controlling whether pages use the sidebar test shell
|
|
19
19
|
* or a clean standalone wrapper that inherits consumer project styling.
|
|
20
|
+
*
|
|
21
|
+
* `standalone` is the default so consuming apps get a clean wrapper out of the box.
|
|
22
|
+
* `test_sidebar` must be explicitly opted into via config and is intended for use
|
|
23
|
+
* by this package's own demo/dev app only.
|
|
20
24
|
*/
|
|
21
25
|
export declare function get_ui_shell_config(): UiShellConfig;
|
|
22
26
|
//# sourceMappingURL=ui_shell_config.server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui_shell_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/ui_shell_config.server.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAIrB,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG9E,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,2BAA2B,EAAE,OAAO,CAAC;IACrC,+CAA+C;IAC/C,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAGF
|
|
1
|
+
{"version":3,"file":"ui_shell_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/ui_shell_config.server.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAIrB,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG9E,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,2BAA2B,EAAE,OAAO,CAAC;IACrC,+CAA+C;IAC/C,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAGF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA6DnD"}
|
|
@@ -8,10 +8,14 @@ import { get_navbar_config } from "./navbar_config.server.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* Reads ui shell configuration controlling whether pages use the sidebar test shell
|
|
10
10
|
* or a clean standalone wrapper that inherits consumer project styling.
|
|
11
|
+
*
|
|
12
|
+
* `standalone` is the default so consuming apps get a clean wrapper out of the box.
|
|
13
|
+
* `test_sidebar` must be explicitly opted into via config and is intended for use
|
|
14
|
+
* by this package's own demo/dev app only.
|
|
11
15
|
*/
|
|
12
16
|
export function get_ui_shell_config() {
|
|
13
17
|
const section = "hazo_auth__ui_shell";
|
|
14
|
-
const layoutModeValue = get_config_value(section, "layout_mode", "
|
|
18
|
+
const layoutModeValue = get_config_value(section, "layout_mode", "standalone").toLowerCase();
|
|
15
19
|
const layout_mode = layoutModeValue === "standalone" ? "standalone" : "test_sidebar";
|
|
16
20
|
const standalone_heading = get_config_value(section, "standalone_heading", "Welcome to hazo auth");
|
|
17
21
|
const standalone_description = get_config_value(section, "standalone_description", "Reuse the packaged authentication flows while inheriting your existing app shell styles.");
|
|
@@ -26,7 +26,7 @@ export declare function GET(request: NextRequest): Promise<NextResponse<{
|
|
|
26
26
|
profile_source: {} | null;
|
|
27
27
|
user_type: string | null;
|
|
28
28
|
app_user_data: Record<string, unknown> | null;
|
|
29
|
-
legal_acceptance_status: "current" | "
|
|
29
|
+
legal_acceptance_status: "current" | "none" | "outdated";
|
|
30
30
|
}[];
|
|
31
31
|
}>>;
|
|
32
32
|
/**
|
|
@@ -33,6 +33,13 @@ export type LoginPageProps = {
|
|
|
33
33
|
email?: string;
|
|
34
34
|
password?: string;
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Force-disable the package navbar for this page, so a consuming app can
|
|
38
|
+
* render its own navbar/logo around the login form instead.
|
|
39
|
+
* Only applies in `layout: "two_column"` mode (ignored in `form_only`, which
|
|
40
|
+
* never renders AuthPageShell / the navbar anyway).
|
|
41
|
+
*/
|
|
42
|
+
disableNavbar?: boolean;
|
|
36
43
|
};
|
|
37
44
|
/**
|
|
38
45
|
* Zero-config LoginPage server component
|
|
@@ -57,6 +64,6 @@ export type LoginPageProps = {
|
|
|
57
64
|
* @param props - Optional visual customization props
|
|
58
65
|
* @returns Server-rendered login page
|
|
59
66
|
*/
|
|
60
|
-
export default function LoginPage({ image_src, image_alt, image_background_color, layout, default_values, }?: LoginPageProps): import("react").JSX.Element;
|
|
67
|
+
export default function LoginPage({ image_src, image_alt, image_background_color, layout, default_values, disableNavbar, }?: LoginPageProps): import("react").JSX.Element;
|
|
61
68
|
export { LoginPage };
|
|
62
69
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/server_pages/login.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IACpC,+EAA+E;IAC/E,cAAc,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/server_pages/login.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IACpC,+EAA+E;IAC/E,cAAc,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,MAAqB,EACrB,cAAc,EACd,aAAqB,GACtB,GAAE,cAAmB,+BAuErB;AAGD,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -33,7 +33,7 @@ import { FloatingHomeLink } from "../components/layouts/shared/components/floati
|
|
|
33
33
|
* @param props - Optional visual customization props
|
|
34
34
|
* @returns Server-rendered login page
|
|
35
35
|
*/
|
|
36
|
-
export default function LoginPage({ image_src, image_alt, image_background_color, layout = "two_column", default_values, } = {}) {
|
|
36
|
+
export default function LoginPage({ image_src, image_alt, image_background_color, layout = "two_column", default_values, disableNavbar = false, } = {}) {
|
|
37
37
|
// Load configuration from INI file (with defaults including asset images)
|
|
38
38
|
const config = get_login_config();
|
|
39
39
|
// Resolve strings for heading/subheading/ctaText
|
|
@@ -69,7 +69,7 @@ export default function LoginPage({ image_src, image_alt, image_background_color
|
|
|
69
69
|
const navbar = get_navbar_config();
|
|
70
70
|
return (_jsxs(_Fragment, { children: [navbar.show_home_link && (_jsx(FloatingHomeLink, { path: navbar.home_path, label: navbar.home_label })), wrapper] }));
|
|
71
71
|
}
|
|
72
|
-
return _jsx(AuthPageShell, { children: wrapper });
|
|
72
|
+
return _jsx(AuthPageShell, { disableNavbar: disableNavbar, children: wrapper });
|
|
73
73
|
}
|
|
74
74
|
// Named export for direct imports
|
|
75
75
|
export { LoginPage };
|
|
@@ -22,6 +22,13 @@ export type RegisterPageProps = {
|
|
|
22
22
|
* TwoColumnAuthLayout so the consumer's brand chrome can wrap the form.
|
|
23
23
|
*/
|
|
24
24
|
layout?: "two_column" | "form_only";
|
|
25
|
+
/**
|
|
26
|
+
* Force-disable the package navbar for this page, so a consuming app can
|
|
27
|
+
* render its own navbar/logo around the registration form instead.
|
|
28
|
+
* Only applies in `layout: "two_column"` mode (ignored in `form_only`, which
|
|
29
|
+
* never renders AuthPageShell / the navbar anyway).
|
|
30
|
+
*/
|
|
31
|
+
disableNavbar?: boolean;
|
|
25
32
|
};
|
|
26
33
|
/**
|
|
27
34
|
* Zero-config RegisterPage server component
|
|
@@ -48,6 +55,6 @@ export type RegisterPageProps = {
|
|
|
48
55
|
* @param props - Optional visual customization props
|
|
49
56
|
* @returns Server-rendered register page
|
|
50
57
|
*/
|
|
51
|
-
export default function RegisterPage({ image_src, image_alt, image_background_color, layout, }?: RegisterPageProps): import("react").JSX.Element;
|
|
58
|
+
export default function RegisterPage({ image_src, image_alt, image_background_color, layout, disableNavbar, }?: RegisterPageProps): import("react").JSX.Element;
|
|
52
59
|
export { RegisterPage };
|
|
53
60
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/server_pages/register.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/server_pages/register.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,MAAqB,EACrB,aAAqB,GACtB,GAAE,iBAAsB,+BA2DxB;AAGD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -35,7 +35,7 @@ import { FloatingHomeLink } from "../components/layouts/shared/components/floati
|
|
|
35
35
|
* @param props - Optional visual customization props
|
|
36
36
|
* @returns Server-rendered register page
|
|
37
37
|
*/
|
|
38
|
-
export default function RegisterPage({ image_src, image_alt, image_background_color, layout = "two_column", } = {}) {
|
|
38
|
+
export default function RegisterPage({ image_src, image_alt, image_background_color, layout = "two_column", disableNavbar = false, } = {}) {
|
|
39
39
|
// Load configuration from INI file (with defaults including asset images)
|
|
40
40
|
const config = get_register_config();
|
|
41
41
|
const strings = readStrings();
|
|
@@ -63,7 +63,7 @@ export default function RegisterPage({ image_src, image_alt, image_background_co
|
|
|
63
63
|
const navbar = get_navbar_config();
|
|
64
64
|
return (_jsxs(_Fragment, { children: [navbar.show_home_link && (_jsx(FloatingHomeLink, { path: navbar.home_path, label: navbar.home_label })), wrapper] }));
|
|
65
65
|
}
|
|
66
|
-
return _jsx(AuthPageShell, { children: wrapper });
|
|
66
|
+
return _jsx(AuthPageShell, { disableNavbar: disableNavbar, children: wrapper });
|
|
67
67
|
}
|
|
68
68
|
// Named export for direct imports
|
|
69
69
|
export { RegisterPage };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_auth",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.7.0",
|
|
4
4
|
"description": "Zero-config authentication UI components for Next.js with RBAC, OAuth, scope-based multi-tenancy, and invitations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -262,14 +262,14 @@
|
|
|
262
262
|
"@radix-ui/react-switch": "^1.2.0",
|
|
263
263
|
"@radix-ui/react-tabs": "^1.1.0",
|
|
264
264
|
"@radix-ui/react-tooltip": "^1.2.0",
|
|
265
|
-
"hazo_api": "^2.
|
|
265
|
+
"hazo_api": "^2.5.1",
|
|
266
266
|
"hazo_config": "^2.4.1",
|
|
267
267
|
"hazo_connect": "^3.9.0",
|
|
268
|
-
"hazo_core": "^1.2.
|
|
268
|
+
"hazo_core": "^1.2.1",
|
|
269
269
|
"hazo_logs": "^2.1.1",
|
|
270
270
|
"hazo_notify": "^6.1.4",
|
|
271
|
-
"hazo_secure": "^1.
|
|
272
|
-
"hazo_ui": "^4.
|
|
271
|
+
"hazo_secure": "^1.3.0",
|
|
272
|
+
"hazo_ui": "^4.9.0",
|
|
273
273
|
"input-otp": "^1.4.0",
|
|
274
274
|
"lucide-react": "^0.553.0",
|
|
275
275
|
"next": "^14.0.0",
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"hazo_core": "^1.2.1",
|
|
409
409
|
"hazo_logs": "^2.1.1",
|
|
410
410
|
"hazo_notify": "^6.1.4",
|
|
411
|
-
"hazo_ui": "^4.
|
|
411
|
+
"hazo_ui": "^4.9.0",
|
|
412
412
|
"input-otp": "^1.4.0",
|
|
413
413
|
"jest": "^30.2.0",
|
|
414
414
|
"jest-environment-jsdom": "^30.0.0",
|