From f391d9d4e63c854bd91ab7dd3441b79795d5ca60 Mon Sep 17 00:00:00 2001 From: Rohan Chakraborty Date: Tue, 29 Sep 2026 15:48:26 +0530 Subject: [PATCH 1/2] fix: [code-block] stop adding a hidden line to maxLines The collapsed trigger covered the bottom of the code, so the root passed maxLines + 1 and rendered a hidden extra line. Without a trigger, maxLines={5} showed 6 lines. The collapsed trigger now sits in normal flow and the code drops its bottom padding while collapsed. --- .../code-block/__tests__/code-block.test.tsx | 16 ++++++++++++++++ .../components/code-block/code-block-misc.tsx | 2 +- .../components/code-block/code-block-root.tsx | 2 +- .../components/code-block/code-block.module.css | 6 +++--- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/raystack/components/code-block/__tests__/code-block.test.tsx b/packages/raystack/components/code-block/__tests__/code-block.test.tsx index 5c3963689..6ef0090a9 100644 --- a/packages/raystack/components/code-block/__tests__/code-block.test.tsx +++ b/packages/raystack/components/code-block/__tests__/code-block.test.tsx @@ -186,5 +186,21 @@ describe('CodeBlock', () => { expect(screen.getByText('Show Code')).toBeInTheDocument(); }); + + it('renders maxLines lines when collapsed', () => { + const { container } = render( + + ); + + expect( + container.querySelectorAll('[data-slot="code-block-line"]') + ).toHaveLength(2); + }); + + it('hides collapse trigger when code fits in maxLines', () => { + render(); + + expect(screen.queryByText('Show Code')).not.toBeInTheDocument(); + }); }); }); diff --git a/packages/raystack/components/code-block/code-block-misc.tsx b/packages/raystack/components/code-block/code-block-misc.tsx index b96e93717..d87b2d031 100644 --- a/packages/raystack/components/code-block/code-block-misc.tsx +++ b/packages/raystack/components/code-block/code-block-misc.tsx @@ -80,7 +80,7 @@ export function CodeBlockCollapseTrigger({ const canCollapse = maxLines && maxLines > 0; const lineCount = code?.split('\n').length ?? 0; - if (!canCollapse || lineCount < maxLines) return null; + if (!canCollapse || lineCount <= maxLines) return null; return (