jamdesk 1.1.191 → 1.1.192

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jamdesk",
3
- "version": "1.1.191",
3
+ "version": "1.1.192",
4
4
  "description": "CLI for Jamdesk — build, preview, and deploy documentation sites from MDX. Dev server with hot reload, 50+ components, OpenAPI support, AI search, and Mintlify migration",
5
5
  "keywords": [
6
6
  "jamdesk",
@@ -815,9 +815,15 @@ export function Sidebar({ config, layout = 'header-logo', tabsPosition: tabsPosi
815
815
 
816
816
  const showTopDivider = resolvedNav.externalAnchors.length > 0;
817
817
  const hasTopTabsBar = getTabsFromConfig(config, pathname || undefined).length > 1 && !showTabsInSidebar;
818
+ // `lg:max-h-full` caps the sidebar at the height of the layout row that holds
819
+ // it — LayoutWrapper has already subtracted the banner, the header and the
820
+ // tabs bar from that row. Without the cap, `self-start` sizes the <aside> to
821
+ // its content and the theme's scroller has to guess those heights off 100vh;
822
+ // the guess (57px header) was 7px short of the 64px the header actually
823
+ // renders, so the last nav item sat under the row's `lg:overflow-hidden`.
818
824
  const desktopSidebarClasses = layout === 'sidebar-logo'
819
825
  ? 'lg:fixed lg:top-[var(--jd-banner-height,0px)] lg:left-0 lg:bottom-0 lg:z-40'
820
- : 'lg:sticky lg:self-start lg:z-30 lg:flex-shrink-0';
826
+ : 'lg:sticky lg:self-start lg:max-h-full lg:z-30 lg:flex-shrink-0';
821
827
 
822
828
  return (
823
829
  <>
@@ -575,19 +575,22 @@ body[data-theme="halo"] {
575
575
  height, and its <aside> is `lg:self-start` (height = content), so without a
576
576
  cap the nav grows unbounded and never scrolls once it's taller than the
577
577
  viewport. jam and nebula both carry this exact rule; halo's full-bleed rewrite
578
- dropped it. Header is 57px tall; a top tab strip adds another 57px (114px). */
578
+ dropped it. */
579
579
  @media (min-width: 1024px) {
580
580
  body[data-theme="halo"] .sidebar-scroll {
581
581
  position: sticky !important;
582
- flex: 0 0 auto !important;
583
- }
584
- body[data-theme="halo"] .sidebar-scroll[data-has-tabs="true"] {
585
- top: 114px !important;
586
- max-height: calc(100vh - 114px - var(--jd-banner-height, 0px)) !important;
587
- }
588
- body[data-theme="halo"] .sidebar-scroll[data-has-tabs="false"] {
589
- top: 57px !important;
590
- max-height: calc(100vh - 57px - var(--jd-banner-height, 0px)) !important;
582
+ top: 0 !important;
583
+ /* Fill the layout row, which LayoutWrapper has already sized to the space
584
+ left over after the banner, the header and the tabs bar. The rule this
585
+ replaces measured those back off 100vh with the header hardcoded at 57px
586
+ it renders 64px so the scroller overran its row by exactly 7px on
587
+ every desktop viewport and the row's `lg:overflow-hidden` clipped the
588
+ last nav item. Pairs with `lg:max-h-full` on the <aside>, which caps the
589
+ (content-sized, `self-start`) sidebar at the row height without changing
590
+ how a short nav renders. */
591
+ flex: 1 1 auto !important;
592
+ min-height: 0 !important;
593
+ max-height: none !important;
591
594
  }
592
595
  }
593
596
 
@@ -721,21 +721,24 @@ body[data-theme="jam"] .sidebar-scroll .sidebar-nav-groups > div:first-child {
721
721
  }
722
722
  }
723
723
 
724
- /* Sidebar scroll container positioning for header-logo layout */
725
- /* The sidebar-scroll div needs constrained height to scroll independently */
726
- /* When tabs exist at top, sidebar needs more top offset (header 57px + tabs 57px = 114px) */
724
+ /* Sidebar scroll container height cap for the header-logo layout — REQUIRED
725
+ for a tall nav to scroll. The shared markup gives .sidebar-scroll
726
+ `overflow-y-auto` but no bounded height, so the cap has to come from here. */
727
727
  @media (min-width: 1024px) {
728
728
  body[data-theme="jam"] .sidebar-scroll {
729
729
  position: sticky !important;
730
- flex: 0 0 auto !important;
731
- }
732
- body[data-theme="jam"] .sidebar-scroll[data-has-tabs="true"] {
733
- top: 114px !important;
734
- max-height: calc(100vh - 114px - var(--jd-banner-height, 0px)) !important;
735
- }
736
- body[data-theme="jam"] .sidebar-scroll[data-has-tabs="false"] {
737
- top: 57px !important;
738
- max-height: calc(100vh - 57px - var(--jd-banner-height, 0px)) !important;
730
+ top: 0 !important;
731
+ /* Fill the layout row, which LayoutWrapper has already sized to the space
732
+ left over after the banner, the header and the tabs bar. The rule this
733
+ replaces measured those back off 100vh with the header hardcoded at 57px
734
+ it renders 64px so the scroller overran its row by exactly 7px on
735
+ every desktop viewport and the row's `lg:overflow-hidden` clipped the
736
+ last nav item. Pairs with `lg:max-h-full` on the <aside>, which caps the
737
+ (content-sized, `self-start`) sidebar at the row height without changing
738
+ how a short nav renders. */
739
+ flex: 1 1 auto !important;
740
+ min-height: 0 !important;
741
+ max-height: none !important;
739
742
  }
740
743
  }
741
744
 
@@ -214,21 +214,24 @@ body[data-theme="nebula"] .content-scroll::-webkit-scrollbar {
214
214
  display: none;
215
215
  }
216
216
 
217
- /* Sidebar scroll container positioning for header-logo layout */
218
- /* The sidebar-scroll div needs constrained height to scroll independently */
219
- /* When tabs exist at top, sidebar needs more top offset (header 57px + tabs 57px = 114px) */
217
+ /* Sidebar scroll container height cap for the header-logo layout — REQUIRED
218
+ for a tall nav to scroll. The shared markup gives .sidebar-scroll
219
+ `overflow-y-auto` but no bounded height, so the cap has to come from here. */
220
220
  @media (min-width: 1024px) {
221
221
  body[data-theme="nebula"] .sidebar-scroll {
222
222
  position: sticky !important;
223
- flex: 0 0 auto !important;
224
- }
225
- body[data-theme="nebula"] .sidebar-scroll[data-has-tabs="true"] {
226
- top: 114px !important;
227
- max-height: calc(100vh - 114px - var(--jd-banner-height, 0px)) !important;
228
- }
229
- body[data-theme="nebula"] .sidebar-scroll[data-has-tabs="false"] {
230
- top: 57px !important;
231
- max-height: calc(100vh - 57px - var(--jd-banner-height, 0px)) !important;
223
+ top: 0 !important;
224
+ /* Fill the layout row, which LayoutWrapper has already sized to the space
225
+ left over after the banner, the header and the tabs bar. The rule this
226
+ replaces measured those back off 100vh with the header hardcoded at 57px
227
+ it renders 64px so the scroller overran its row by exactly 7px on
228
+ every desktop viewport and the row's `lg:overflow-hidden` clipped the
229
+ last nav item. Pairs with `lg:max-h-full` on the <aside>, which caps the
230
+ (content-sized, `self-start`) sidebar at the row height without changing
231
+ how a short nav renders. */
232
+ flex: 1 1 auto !important;
233
+ min-height: 0 !important;
234
+ max-height: none !important;
232
235
  }
233
236
  }
234
237