@kolkrabbi/kol-framework 0.31.0 → 0.31.1

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/SideNav.jsx +10 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-framework",
3
- "version": "0.31.0",
3
+ "version": "0.31.1",
4
4
  "description": "KOL app shell — sidenav, layout, theme toggle, footer, heroes + brand color layer. SideNav takes nav data as props so the tree stays app-local.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/SideNav.jsx CHANGED
@@ -344,16 +344,22 @@ function SideNavInner({
344
344
  * THE single collapse/resize control — click toggles, drag resizes,
345
345
  * snap-to-default on release, Home/Enter/Space on the keyboard. */}
346
346
 
347
- <div className="kol-sidenav-scroll flex-1 flex flex-col justify-between overflow-y-auto pt-4 pb-4 [scrollbar-width:thin]">
347
+ {/* ONLY the tree scrolls (fxr's re-measure, 2026-08-28): the theme slot
348
+ * and the pinned rows used to sit inside this region, so on a 26-row
349
+ * collapsed tree they scrolled off below the footer — "pinned" only
350
+ * held while the tree was shorter than the rail. They are the block
351
+ * after it now, above the footer, the tree scrolling underneath. */}
352
+ <div className="kol-sidenav-scroll flex-1 overflow-y-auto pt-4 pb-4 [scrollbar-width:thin]">
348
353
  <nav aria-label="Sections">
349
354
  <ul className="kol-sidenav-tree flex flex-col gap-[2px]">
350
355
  {navTree.map(renderCat)}
351
356
  </ul>
352
357
  </nav>
358
+ </div>
353
359
 
354
- {/* hop-bare carries its own gutter padding; collapsed falls back to
355
- `icon` — a full-width label can't sit in the collapsed rail. */}
356
- <div>
360
+ {/* hop-bare carries its own gutter padding; collapsed falls back to
361
+ `icon` — a full-width label can't sit in the collapsed rail. */}
362
+ <div className="pb-4">
357
363
  {themeToggle && (
358
364
  <div className="kol-sidenav-theme-slot flex">
359
365
  <ThemeToggle variant={collapsed ? 'icon' : 'hop-bare'} size="md" />
@@ -366,7 +372,6 @@ function SideNavInner({
366
372
  <ul className="kol-sidenav-tree flex flex-col gap-[2px]">{bottomItems.map(renderCat)}</ul>
367
373
  </nav>
368
374
  )}
369
- </div>
370
375
  </div>
371
376
 
372
377
  {footer !== false && footer !== null && (