Skip to content

Conversation

@Wallgau
Copy link
Collaborator

@Wallgau Wallgau commented Nov 27, 2025

In the context of having a progessive refactor parallel to the existing one, This PR is adding a sliding container panel that slides in from the right side of the screen. The new implementation won't affect current implementation but will be used to continue implementing the new playground with small PR and progressive refactor, once everything is in then we can switch to new playground. IMPORTANT: Current implementation parts are commented out and slide container is put there for review and will be reverted to preserve current implementation when approved before merging to avoid affecting the current implementation.

  • Reusable SlidingContainer component with resizable and fullscreen support
  • PlaygroundButtonSliding component that toggles the sliding container
  • Zustand store for managing sliding container state (open/closed, width, fullscreen)
  • FlowPageSlidingContainerContent component for playground panel content
  • Integration with existing FlowPage layout and keyboard shortcuts

Summary by CodeRabbit

  • New Features
    • Replaced the playground modal interface with a resizable sliding side panel featuring fullscreen functionality and adjustable width settings. The new interactive panel allows you to optimize your workspace layout and content visibility while maintaining seamless access to all existing features, controls, and keyboard shortcuts for a more personalized experience.

✏️ Tip: You can customize this high-level summary in your review settings.

@Wallgau Wallgau requested a review from Adam-Aghili November 27, 2025 16:18
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 27, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This pull request introduces a new sliding container feature to replace the modal-based playground button interaction. It adds new reusable components for a resizable side panel, state management via Zustand, and integrates the sliding container into the flow toolbar and main page layout. The Chat-W keyboard shortcut behavior is updated to toggle the sliding container instead of the IOModal.

Changes

Cohort / File(s) Summary
Sliding Container Core
src/frontend/src/customization/components/custom-sliding-container.tsx
New SlidingContainer component rendering a resizable side panel with mouse-driven resize logic, fullscreen support, configurable width clamping, and smooth transitions.
State Management
src/frontend/src/customization/stores/sliding-container-store.ts
New Zustand store managing isOpen, width, and isFullscreen states with toggle functions and width clamping (300–80% of window width, default 400px).
Sliding Container UI Components
src/frontend/src/customization/components/custom-playground-button-sliding.tsx, src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx
New PlaygroundButtonSliding component with conditional rendering based on hasIO prop; new FlowPageSlidingContainerContent component providing a fullscreen-toggle header for the sliding container.
Flow Toolbar Updates
src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx, src/frontend/src/components/core/flowToolbarComponent/index.tsx
Replaces PlaygroundButton with PlaygroundButtonSliding; updates handleChatWShortcut to toggle the sliding container via toggleSlidingContainer store hook instead of opening/closing IOModal when hasIO is true.
FlowPage Integration
src/frontend/src/pages/FlowPage/index.tsx
Imports and integrates SlidingContainer, FlowPageSlidingContainerContent, and useSlidingContainerStore; wraps main content in flex layout and conditionally renders sliding container alongside page content when hasIO is true.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Verify the keyboard shortcut logic change in handleChatWShortcut is correct and does not break existing IOModal behavior for other code paths
  • Confirm resize and fullscreen state logic in SlidingContainer and store handle edge cases (e.g., window resize, rapid toggling)
  • Review width clamping calculations and transition timing behavior during resize vs. state changes
  • Validate that FlowPage layout flex structure maintains proper spacing and overflow behavior

Suggested labels

lgtm

Suggested reviewers

  • mfortman11
  • Cristhianzl

Pre-merge checks and finishing touches

❌ Failed checks (1 error, 3 warnings)
Check name Status Explanation Resolution
Test Coverage For New Implementations ❌ Error PR introduces four substantial React components and Zustand store without corresponding unit tests despite repository having 251 existing frontend test files. Create unit tests for SlidingContainer, PlaygroundButtonSliding, FlowPageSlidingContainerContent, and sliding-container-store following established project patterns in tests directories.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Test Quality And Coverage ⚠️ Warning PR introduces ~600 lines of new production code (5 components + 1 store) with complex functionality including state management, mouse event handling, and responsive rendering, but zero test files are present. Add comprehensive unit tests for all new implementations covering: store state initialization/setters/width clamping, SlidingContainer resize logic/fullscreen behavior/accessibility, PlaygroundButtonSliding state toggling/icon changes, and FlowPageSlidingContainerContent fullscreen toggle functionality.
Test File Naming And Structure ⚠️ Warning PR introduces five new frontend components without corresponding test files following *.test.tsx naming patterns required by proper testing standards. Add *.test.tsx test files for each new component covering positive/negative scenarios, state management, and edge cases including width clamping and keyboard accessibility.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Excessive Mock Usage Warning ✅ Passed This PR introduces new components and modifications but contains no test files with mock usage. Without test files to review for excessive mocking, the check cannot identify any problematic mock design patterns.
Title check ✅ Passed The PR title clearly and concisely describes the main change: adding a sliding container for the playground panel, which is the primary objective of this changeset.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the enhancement New feature or request label Nov 27, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Nov 27, 2025

Frontend Unit Test Coverage Report

Coverage Summary

Lines Statements Branches Functions
Coverage: 15%
15.45% (4259/27563) 8.59% (1809/21035) 9.78% (594/6070)

Unit Test Results

Tests Skipped Failures Errors Time
1654 0 💤 0 ❌ 0 🔥 21.17s ⏱️

@codecov
Copy link

codecov bot commented Nov 27, 2025

Codecov Report

❌ Patch coverage is 76.31579% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 32.43%. Comparing base (96590e8) to head (6c2a16f).
⚠️ Report is 79 commits behind head on main.

Files with missing lines Patch % Lines
.../components/custom-flow-page-sliding-container.tsx 0.00% 10 Missing ⚠️
...tomization/components/custom-sliding-container.tsx 86.84% 1 Missing and 4 partials ⚠️
...rc/customization/stores/sliding-container-store.ts 83.33% 2 Missing ⚠️
...on/components/custom-playground-button-sliding.tsx 93.75% 0 Missing and 1 partial ⚠️

❌ Your project status has failed because the head coverage (40.04%) is below the target coverage (60.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #10759      +/-   ##
==========================================
+ Coverage   32.40%   32.43%   +0.03%     
==========================================
  Files        1368     1372       +4     
  Lines       63412    63488      +76     
  Branches     9373     9391      +18     
==========================================
+ Hits        20551    20595      +44     
- Misses      41829    41856      +27     
- Partials     1032     1037       +5     
Flag Coverage Δ
frontend 14.26% <76.31%> (+0.18%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...on/components/custom-playground-button-sliding.tsx 93.75% <93.75%> (ø)
...rc/customization/stores/sliding-container-store.ts 83.33% <83.33%> (ø)
...tomization/components/custom-sliding-container.tsx 86.84% <86.84%> (ø)
.../components/custom-flow-page-sliding-container.tsx 0.00% <0.00%> (ø)

... and 6 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Wallgau Wallgau changed the title feat(playground): add sliding container for playground panel feat: add sliding container for playground panel Nov 27, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 27, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx (1)

11-22: Unused props after switching to PlaygroundButtonSliding.

The open and setOpen props are no longer used since PlaygroundButtonSliding manages its state via the sliding container store. When this implementation is finalized, these props should be removed from the component signature and from callers.

🧹 Nitpick comments (3)
src/frontend/src/customization/components/custom-sliding-container.tsx (2)

78-88: Consider improving resize handle discoverability.

The resize handle has a 1px width which may be difficult for users to discover and grab. While it does have a hover effect (hover:bg-primary/20), consider one of the following improvements:

  • Increase the interactive area (e.g., 4-6px) while keeping the visual indicator at 1px using padding or a pseudo-element
  • Add a visual indicator (e.g., vertical dots or grip icon) when hovering near the edge

31-60: Consider adding keyboard support for resizing.

The resize functionality is currently mouse-only. For better accessibility, consider adding keyboard controls (e.g., arrow keys) to adjust the panel width when the resize handle has focus.

src/frontend/src/customization/stores/sliding-container-store.ts (1)

24-27: Verify width behavior during window resize.

The setWidth function calculates maxWidth using window.innerWidth at the time of the call. If the user resizes the browser window to be smaller while the sliding container is open, the panel width might temporarily exceed 80% of the viewport until setWidth is called again (e.g., during a manual resize).

Consider whether this behavior is acceptable, or if you should add a window resize listener to automatically re-validate and adjust the width to stay within bounds.

Example of a window resize listener approach:

// In the store or in a component that uses the store
useEffect(() => {
  const handleResize = () => {
    const currentWidth = useSlidingContainerStore.getState().width;
    const maxWidth = window.innerWidth * MAX_WIDTH_RATIO;
    if (currentWidth > maxWidth) {
      useSlidingContainerStore.getState().setWidth(currentWidth);
    }
  };
  
  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, []);
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7524379 and 0d17be6.

📒 Files selected for processing (7)
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx (2 hunks)
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx (2 hunks)
  • src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx (1 hunks)
  • src/frontend/src/customization/components/custom-playground-button-sliding.tsx (1 hunks)
  • src/frontend/src/customization/components/custom-sliding-container.tsx (1 hunks)
  • src/frontend/src/customization/stores/sliding-container-store.ts (1 hunks)
  • src/frontend/src/pages/FlowPage/index.tsx (3 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
src/frontend/src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

src/frontend/src/**/*.{ts,tsx}: Use React 18 with TypeScript for frontend development
Use Zustand for state management

Files:

  • src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx
  • src/frontend/src/customization/components/custom-sliding-container.tsx
  • src/frontend/src/customization/components/custom-playground-button-sliding.tsx
  • src/frontend/src/customization/stores/sliding-container-store.ts
  • src/frontend/src/pages/FlowPage/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
src/frontend/src/**/*.{tsx,jsx,css,scss}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

Use Tailwind CSS for styling

Files:

  • src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx
  • src/frontend/src/customization/components/custom-sliding-container.tsx
  • src/frontend/src/customization/components/custom-playground-button-sliding.tsx
  • src/frontend/src/pages/FlowPage/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
src/frontend/src/**/*.{tsx,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

src/frontend/src/**/*.{tsx,jsx}: Implement dark mode support using the useDarkMode hook and dark store
Use Lucide React for icon components in the application

Files:

  • src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx
  • src/frontend/src/customization/components/custom-sliding-container.tsx
  • src/frontend/src/customization/components/custom-playground-button-sliding.tsx
  • src/frontend/src/pages/FlowPage/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
src/frontend/src/components/**/*.{tsx,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

src/frontend/src/components/**/*.{tsx,jsx}: Use React Flow for flow graph visualization with Node, Edge, Controls, and Background components
Use the cn() utility function for combining Tailwind CSS classes in components
Use TypeScript interfaces for defining component props in React components

Files:

  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
🧠 Learnings (8)
📚 Learning: 2025-11-24T19:46:45.790Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-11-24T19:46:45.790Z
Learning: Applies to src/frontend/src/components/**/*.{tsx,jsx} : Use React Flow for flow graph visualization with Node, Edge, Controls, and Background components

Applied to files:

  • src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx
  • src/frontend/src/pages/FlowPage/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
📚 Learning: 2025-11-24T19:46:45.790Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-11-24T19:46:45.790Z
Learning: Applies to src/frontend/src/stores/**/*.{ts,tsx} : Store state management code in stores/ directory using Zustand with typed state interfaces

Applied to files:

  • src/frontend/src/customization/stores/sliding-container-store.ts
📚 Learning: 2025-11-24T19:46:45.790Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-11-24T19:46:45.790Z
Learning: Applies to src/frontend/src/**/*.{ts,tsx} : Use Zustand for state management

Applied to files:

  • src/frontend/src/customization/stores/sliding-container-store.ts
📚 Learning: 2025-06-23T12:46:42.048Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:42.048Z
Learning: Use Zustand for state management in React components within the frontend; stores should expose both state and setter functions, and be imported via hooks (e.g., useMyStore).

Applied to files:

  • src/frontend/src/customization/stores/sliding-container-store.ts
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
📚 Learning: 2025-06-23T12:46:42.048Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:42.048Z
Learning: Dark mode support should be implemented using a dedicated Zustand store (e.g., useDarkStore), and toggled via a custom hook (e.g., useDarkMode) that exposes isDark and toggle.

Applied to files:

  • src/frontend/src/customization/stores/sliding-container-store.ts
📚 Learning: 2025-06-23T12:46:42.048Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:42.048Z
Learning: Custom React Flow node types should be implemented as memoized components, using Handle components for connection points and supporting optional icons and labels.

Applied to files:

  • src/frontend/src/pages/FlowPage/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
  • src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx
📚 Learning: 2025-11-24T19:46:45.790Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-11-24T19:46:45.790Z
Learning: Applies to src/frontend/src/components/nodes/**/*.{tsx,jsx} : Memoize custom React Flow node components using memo() to prevent unnecessary re-renders

Applied to files:

  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
📚 Learning: 2025-06-23T12:46:42.048Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:42.048Z
Learning: React Flow should be used for flow graph visualization, with nodes and edges passed as props, and changes handled via onNodesChange and onEdgesChange callbacks.

Applied to files:

  • src/frontend/src/components/core/flowToolbarComponent/index.tsx
🧬 Code graph analysis (6)
src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx (2)
src/frontend/src/customization/stores/sliding-container-store.ts (1)
  • useSlidingContainerStore (18-33)
src/frontend/src/components/common/genericIconComponent/index.tsx (1)
  • ForwardedIconComponent (15-146)
src/frontend/src/customization/components/custom-sliding-container.tsx (2)
src/frontend/src/utils/utils.ts (1)
  • cn (38-40)
src/frontend/tailwind.config.mjs (1)
  • className (476-476)
src/frontend/src/customization/components/custom-playground-button-sliding.tsx (4)
src/frontend/src/customization/feature-flags.ts (1)
  • ENABLE_PUBLISH (12-12)
src/frontend/src/constants/constants.ts (1)
  • PLAYGROUND_BUTTON_NAME (928-928)
src/frontend/src/customization/stores/sliding-container-store.ts (1)
  • useSlidingContainerStore (18-33)
src/frontend/src/components/common/genericIconComponent/index.tsx (1)
  • ForwardedIconComponent (15-146)
src/frontend/src/pages/FlowPage/index.tsx (3)
src/frontend/src/customization/stores/sliding-container-store.ts (1)
  • useSlidingContainerStore (18-33)
src/frontend/src/customization/components/custom-sliding-container.tsx (1)
  • SlidingContainer (18-92)
src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx (1)
  • FlowPageSlidingContainerContent (4-30)
src/frontend/src/components/core/flowToolbarComponent/index.tsx (2)
src/frontend/src/customization/stores/sliding-container-store.ts (1)
  • useSlidingContainerStore (18-33)
src/frontend/src/utils/utils.ts (1)
  • isThereModal (449-452)
src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx (1)
src/frontend/src/customization/components/custom-playground-button-sliding.tsx (1)
  • PlaygroundButtonSliding (18-57)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Run Frontend Tests / Determine Test Suites and Shard Distribution
  • GitHub Check: Test Starter Templates
  • GitHub Check: Run Frontend Unit Tests / Frontend Jest Unit Tests
🔇 Additional comments (8)
src/frontend/src/components/core/flowToolbarComponent/components/flow-toolbar-options.tsx (1)

28-38: LGTM!

The replacement of PlaygroundButton with PlaygroundButtonSliding is correctly implemented, properly passing the hasIO prop to control the component's behavior.

src/frontend/src/customization/components/custom-flow-page-sliding-container.tsx (1)

1-30: LGTM!

The FlowPageSlidingContainerContent component is well-structured with proper accessibility attributes (title and aria-label) and clean integration with the sliding container store. The fullscreen toggle functionality is correctly implemented.

src/frontend/src/components/core/flowToolbarComponent/index.tsx (1)

24-37: LGTM!

The keyboard shortcut handler is correctly updated to toggle the sliding container instead of the IOModal. The early return when a modal is present prevents conflicting interactions, which is consistent with other shortcut handlers in this component.

src/frontend/src/customization/components/custom-playground-button-sliding.tsx (1)

1-57: LGTM!

The PlaygroundButtonSliding component is well-implemented with proper state management via the Zustand store, clear conditional rendering based on hasIO, appropriate accessibility (tooltip for disabled state), and good testing support with data-testid attributes. The icon toggle between "Play" and "PanelRightClose" provides clear visual feedback.

src/frontend/src/customization/components/custom-sliding-container.tsx (1)

18-91: LGTM overall!

The SlidingContainer component is well-implemented with proper resize logic, smooth transitions, and correct width calculations. The mouse event handling and cleanup are properly managed, and the component correctly handles fullscreen and closed states.

src/frontend/src/customization/stores/sliding-container-store.ts (1)

18-33: LGTM overall!

The Zustand store is well-structured with a clear interface, proper state management for isOpen, width, and isFullscreen, and includes appropriate toggle functions and width clamping logic.

src/frontend/src/pages/FlowPage/index.tsx (2)

167-178: LGTM!

The sliding container state is correctly extracted from the store with proper selector usage to minimize re-renders.


193-214: LGTM!

The sliding container is properly integrated into the FlowPage layout with correct prop wiring, conditional rendering based on hasIO, and a clean flex layout pattern. The resizable functionality is enabled, and all store state is correctly passed to the SlidingContainer component.

Olfa Maslah added 3 commits November 27, 2025 11:36
Replace modal-based playground with a sliding container panel that slides
in from the right side of the screen. The new implementation includes:

- Reusable SlidingContainer component with resizable and fullscreen support
- PlaygroundButtonSliding component that toggles the sliding container
- Zustand store for managing sliding container state (open/closed, width, fullscreen)
- FlowPageSlidingContainerContent component for playground panel content
- Integration with existing FlowPage layout and keyboard shortcuts

Changes are commented out for review and will be reverted when approved
before merging to avoid affecting the current implementation.
Add comprehensive test coverage for:
- SlidingContainerStore: state management, width constraints, fullscreen toggle
- SlidingContainer: rendering, width behavior, resizing, transitions
- PlaygroundButtonSliding: button states, icon rendering, click handlers

All tests follow existing patterns using Jest and React Testing Library.
@Wallgau Wallgau force-pushed the add-slide-container branch from 36c8529 to c2bfeaf Compare November 27, 2025 16:37
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 27, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 27, 2025
Copy link
Collaborator

@Adam-Aghili Adam-Aghili left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you @Wallgau

Screen.Recording.2025-11-27.at.11.42.31.AM.mov

@github-actions github-actions bot added the lgtm This PR has been approved by a maintainer label Nov 27, 2025
Remove NOTE comments that were added for review purposes.
Clean up commented-out old implementation code.
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 27, 2025
Revert to original PlaygroundButton and IOModal implementation.
Remove sliding container code and restore original behavior.
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 27, 2025
@Wallgau Wallgau enabled auto-merge November 27, 2025 19:00
@Wallgau Wallgau closed this Dec 16, 2025
auto-merge was automatically disabled December 16, 2025 19:47

Pull request was closed

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

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants