@djangocfg/layouts 2.1.516 → 2.1.519
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/package.json +15 -15
- package/src/layouts/PublicLayout/navbars/FloatingNavbar/FloatingNavbar.tsx +5 -2
- package/src/layouts/PublicLayout/navbars/FlushNavbar/FlushNavbar.tsx +5 -2
- package/src/layouts/PublicLayout/navbars/MinimalNavbar/MinimalNavbar.tsx +5 -2
- package/src/layouts/PublicLayout/shared/NavbarShell.tsx +8 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djangocfg/layouts",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.519",
|
|
4
4
|
"description": "Simple, straightforward layout components for Next.js - import and use with props",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"layouts",
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
"check": "tsc --noEmit"
|
|
90
90
|
},
|
|
91
91
|
"peerDependencies": {
|
|
92
|
-
"@djangocfg/analytics": "^2.1.
|
|
93
|
-
"@djangocfg/api": "^2.1.
|
|
94
|
-
"@djangocfg/centrifugo": "^2.1.
|
|
95
|
-
"@djangocfg/devtools": "^2.1.
|
|
96
|
-
"@djangocfg/i18n": "^2.1.
|
|
97
|
-
"@djangocfg/ui-core": "^2.1.
|
|
92
|
+
"@djangocfg/analytics": "^2.1.519",
|
|
93
|
+
"@djangocfg/api": "^2.1.519",
|
|
94
|
+
"@djangocfg/centrifugo": "^2.1.519",
|
|
95
|
+
"@djangocfg/devtools": "^2.1.519",
|
|
96
|
+
"@djangocfg/i18n": "^2.1.519",
|
|
97
|
+
"@djangocfg/ui-core": "^2.1.519",
|
|
98
98
|
"@hookform/resolvers": "^5.2.2",
|
|
99
99
|
"consola": "^3.4.2",
|
|
100
100
|
"lucide-react": "^0.545.0",
|
|
@@ -124,14 +124,14 @@
|
|
|
124
124
|
"uuid": "^11.1.1"
|
|
125
125
|
},
|
|
126
126
|
"devDependencies": {
|
|
127
|
-
"@djangocfg/analytics": "^2.1.
|
|
128
|
-
"@djangocfg/api": "^2.1.
|
|
129
|
-
"@djangocfg/centrifugo": "^2.1.
|
|
130
|
-
"@djangocfg/devtools": "^2.1.
|
|
131
|
-
"@djangocfg/i18n": "^2.1.
|
|
132
|
-
"@djangocfg/typescript-config": "^2.1.
|
|
133
|
-
"@djangocfg/ui-core": "^2.1.
|
|
134
|
-
"@djangocfg/ui-tools": "^2.1.
|
|
127
|
+
"@djangocfg/analytics": "^2.1.519",
|
|
128
|
+
"@djangocfg/api": "^2.1.519",
|
|
129
|
+
"@djangocfg/centrifugo": "^2.1.519",
|
|
130
|
+
"@djangocfg/devtools": "^2.1.519",
|
|
131
|
+
"@djangocfg/i18n": "^2.1.519",
|
|
132
|
+
"@djangocfg/typescript-config": "^2.1.519",
|
|
133
|
+
"@djangocfg/ui-core": "^2.1.519",
|
|
134
|
+
"@djangocfg/ui-tools": "^2.1.519",
|
|
135
135
|
"@types/node": "^25.9.5",
|
|
136
136
|
"@types/react": "19.2.15",
|
|
137
137
|
"@types/react-dom": "19.2.3",
|
|
@@ -112,10 +112,13 @@ export function FloatingNavbar({ config }: FloatingNavbarProps) {
|
|
|
112
112
|
controls={config.controls}
|
|
113
113
|
outerClassName={outerClassName}
|
|
114
114
|
shapeClassName={shapeClassName}
|
|
115
|
-
shapeForState={({ scrolled, transparent }) =>
|
|
115
|
+
shapeForState={({ scrolled, transparent, menuOpen }) =>
|
|
116
116
|
cn(
|
|
117
117
|
transparent && 'transition-[background-color,backdrop-filter] duration-200 ease-out',
|
|
118
|
-
|
|
118
|
+
// Opaque unless we're a transparent bar sitting at the top with the
|
|
119
|
+
// mobile drawer closed. `menuOpen` forces the surface back so an
|
|
120
|
+
// open drawer never leaves the bar see-through over page content.
|
|
121
|
+
!transparent || scrolled || menuOpen
|
|
119
122
|
? 'bg-background/72 backdrop-blur-[10px] dark:bg-card/80'
|
|
120
123
|
: 'bg-transparent backdrop-blur-0 dark:bg-transparent',
|
|
121
124
|
)
|
|
@@ -109,10 +109,13 @@ export function FlushNavbar({ config }: FlushNavbarProps) {
|
|
|
109
109
|
controls={config.controls}
|
|
110
110
|
outerClassName={outerClassName}
|
|
111
111
|
shapeClassName={shapeClassName}
|
|
112
|
-
shapeForState={({ scrolled, transparent }) =>
|
|
112
|
+
shapeForState={({ scrolled, transparent, menuOpen }) =>
|
|
113
113
|
cn(
|
|
114
114
|
transparent && 'transition-[background-color,backdrop-filter] duration-200 ease-out',
|
|
115
|
-
|
|
115
|
+
// Opaque unless we're a transparent bar sitting at the top with the
|
|
116
|
+
// mobile drawer closed. `menuOpen` forces the surface back so an
|
|
117
|
+
// open drawer never leaves the bar see-through over page content.
|
|
118
|
+
!transparent || scrolled || menuOpen
|
|
116
119
|
? 'bg-background/72 backdrop-blur-[10px] dark:bg-card/80'
|
|
117
120
|
: 'bg-transparent backdrop-blur-0 dark:bg-transparent',
|
|
118
121
|
)
|
|
@@ -162,10 +162,13 @@ export function MinimalNavbar({ config }: MinimalNavbarProps) {
|
|
|
162
162
|
outerClassName={outerClassName}
|
|
163
163
|
shapeClassName={shapeClassName}
|
|
164
164
|
innerPadding={containerClassName}
|
|
165
|
-
shapeForState={({ scrolled }) =>
|
|
165
|
+
shapeForState={({ scrolled, menuOpen }) =>
|
|
166
166
|
cn(
|
|
167
167
|
'transition-[background-color,backdrop-filter] duration-200 ease-out',
|
|
168
|
-
|
|
168
|
+
// Transparent only at the top with the drawer closed. `menuOpen`
|
|
169
|
+
// forces the surface back so an open mobile drawer never leaves the
|
|
170
|
+
// bar see-through over page content.
|
|
171
|
+
transparent && !scrolled && !menuOpen
|
|
169
172
|
? 'bg-transparent backdrop-blur-0'
|
|
170
173
|
: 'bg-background/72 backdrop-blur-[10px] dark:bg-card/80',
|
|
171
174
|
)
|
|
@@ -123,6 +123,13 @@ interface ShapeInputs {
|
|
|
123
123
|
scrolled: boolean;
|
|
124
124
|
/** Matches `transparent` flag at the source. */
|
|
125
125
|
transparent: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* true while the mobile drawer is open. A `transparent` bar MUST go opaque
|
|
128
|
+
* here regardless of scroll position: an open drawer means the brand + close
|
|
129
|
+
* button sit over page content, and a see-through bar leaves them floating on
|
|
130
|
+
* whatever is scrolled behind — the "navbar lost its background" bug.
|
|
131
|
+
*/
|
|
132
|
+
menuOpen: boolean;
|
|
126
133
|
}
|
|
127
134
|
|
|
128
135
|
export interface NavbarShellProps {
|
|
@@ -302,7 +309,7 @@ function NavbarShellRaw(props: NavbarShellProps) {
|
|
|
302
309
|
hideNavOnScroll && hidden && !mobileMenuOpen && '-translate-y-full',
|
|
303
310
|
);
|
|
304
311
|
|
|
305
|
-
const surfaceCls = shapeForState?.({ scrolled, transparent });
|
|
312
|
+
const surfaceCls = shapeForState?.({ scrolled, transparent, menuOpen: mobileMenuOpen });
|
|
306
313
|
|
|
307
314
|
const brandNode = (
|
|
308
315
|
<div className="min-w-0 shrink-0 flex items-center">
|