Skip to content

feat(apollo-vertex): migrate shell sidebar to shadcn SidebarProvider with sub-nav#681

Open
petervachon wants to merge 1 commit into
mainfrom
feat/vertex-shell-sidebar
Open

feat(apollo-vertex): migrate shell sidebar to shadcn SidebarProvider with sub-nav#681
petervachon wants to merge 1 commit into
mainfrom
feat/vertex-shell-sidebar

Conversation

@petervachon
Copy link
Copy Markdown
Collaborator

What

Replaces the hand-rolled @mantine/hooks useLocalStorage-based sidebar with the shadcn SidebarProvider primitive, and rebuilds the nav rendering to support collapsible sub-navigation groups.

Behavioral changes:

  • Collapsed/expanded state now persists via a sidebar_state cookie (refresh-safe, per reviewer feedback on Creilly11235/vertex shell sidebar provider migration #577)
  • Removed bespoke NavItem component in favour of inline shadcn SidebarMenuButton / SidebarMenuSub / SidebarMenuSubButton composition
  • Parent items with subItems render as collapsible groups with a rotating chevron; clicking a parent while the sidebar is collapsed expands the sidebar and opens the group simultaneously
  • Active state is computed from useLocation — exact match for root /, prefix match for all other paths
  • ShellSidebar export renamed from Sidebar to avoid collision with the shadcn Sidebar primitive

Lines changed: ~338 additions / 167 deletions (M-sized slice)

Test plan

  • Sidebar collapses and expands via the toggle button
  • Collapsed state survives a browser refresh
  • Hovering the collapsed sidebar triggers the visual expand hint and icon scale
  • Nav items without sub-items navigate correctly; active item is highlighted
  • Nav items with sub-items expand/collapse on click; active sub-item highlights the row and marks the parent
  • Clicking a parent while sidebar is collapsed expands the sidebar and opens the group
  • Dark mode: sidebar uses correct dark tokens, no harsh whites
  • Minimal header variant still renders correctly

🤖 Generated with Claude Code

…with sub-nav

Replaces the hand-built sidebar with the shadcn SidebarProvider stack:

- shell-layout.tsx: wraps layout in SidebarProvider (with SIDEBAR_WIDTHS CSS
  vars), SidebarInset, and a mobile-only SidebarTrigger header. Fixes
  resolvedTheme check so the dark gradient background responds to the system
  theme preference. Uses useId() on the SVG noise filter to avoid duplicate
  DOM IDs when multiple shell instances render
- shell-sidebar.tsx: migrates from motion.aside + useLocalStorage to the
  shadcn Sidebar component. Open/closed state is now persisted via a
  sidebar_state cookie (refresh-safe). Adds sub-nav support via Collapsible
  with expandedItems tracking the active route on mount. Animated text labels
  use AnimatePresence + textFadeVariants instead of the old spring. Deletes
  shell-nav-item.tsx (inlined into shell-sidebar)
- shell-company.tsx: minor prop/class alignment
- registry.json: updates shell entry deps and removes shell-nav-item file ref
- Restores icon hover scale (whileHover iconHoverScale) on collapsed nav items
  that was lost during the provider migration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-design 🟢 Ready Preview, Logs May 11, 2026, 09:05:14 AM
apollo-docs 🟢 Ready Preview, Logs May 11, 2026, 09:03:14 AM
apollo-landing 🟢 Ready Preview, Logs May 11, 2026, 09:02:38 AM
apollo-ui-react 🟢 Ready Preview, Logs May 11, 2026, 09:03:56 AM
apollo-vertex 🟢 Ready Preview, Logs May 11, 2026, 09:03:48 AM

@KokoMilev KokoMilev enabled auto-merge (rebase) May 11, 2026 16:01
@github-actions github-actions Bot added the size:XL 500-999 changed lines. label May 11, 2026
@github-actions
Copy link
Copy Markdown

Dependency License Review

  • 2105 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 15 package(s) excluded (see details below)
License distribution
License Packages
MIT 1826
ISC 104
Apache-2.0 69
BSD-3-Clause 30
BSD-2-Clause 24
Copyright 2022, UiPath, all rights reserved 9
BlueOak-1.0.0 8
MPL-2.0 5
MIT OR Apache-2.0 3
MIT-0 3
Unknown 3
Unlicense 3
CC0-1.0 3
LGPL-3.0-or-later 2
(MIT OR Apache-2.0) 2
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
BSD 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
@img/sharp-libvips-linuxmusl-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
@uipath/apollo-angular-elements 5.89.0 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-core 4.35.0, 4.35.1, 4.35.2 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-fonts 1.25.8 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-icons 1.33.7 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-mui5 2.31.26, 2.31.27 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell 3.351.4 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-react 3.149.36 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-types 3.326.0 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/portal-shell-util 1.114.0 Copyright 2022, UiPath, all rights reserved UiPath first-party package
@uipath/apollo-lab 25.12.0 Unknown UiPath first-party package
@uipath/telemetry-client-web 5.1.0 Unknown UiPath first-party package
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json
hyperx 2.5.4 BSD BSD-2-Clause per LICENSE file, non-SPDX "BSD" in package.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:apollo-vertex size:XL 500-999 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant