Skip to content

feat: add sidebar toggle to package code browser#2352

Open
jfernsio wants to merge 5 commits intonpmx-dev:mainfrom
jfernsio:add-splitpane-functionality
Open

feat: add sidebar toggle to package code browser#2352
jfernsio wants to merge 5 commits intonpmx-dev:mainfrom
jfernsio:add-splitpane-functionality

Conversation

@jfernsio
Copy link
Copy Markdown

🔗 Linked issue

Resolves #2058

🧭 Context

The package code browser previously had a fixed file tree sidebar that took up space even when not needed. This change adds a simple toggle to show/hide the sidebar, giving users better control over screen space on the code page

📚 Description

I implemented a sidebar toggle for the package code browser instead of full resizability. The toggle is simple, persistent, and matches the existing UI patterns.

Changes made:

  • Added a reactive computed property that integrates with settings.sidebar.collapsed to remember the user's sidebar visibility preference across visits.
  • Added a toggle button in the code page header (visible on medium screens and up, where the sidebar normally appears).
  • Updated the sidebar to use v-show for conditional visibility based on the toggle state.
  • Used Lucide icons: sidebar-open when collapsed, sidebar-close when expanded.
  • Added translation keys for "Show sidebar" and "Hide sidebar" in the English locale file.

Before :

image

After :

image image image

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 31, 2026

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

Project Deployment Actions Updated (UTC)
docs.npmx.dev Ready Ready Preview, Comment Apr 2, 2026 0:39am
npmx.dev Error Error Apr 2, 2026 0:39am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
npmx-lunaria Ignored Ignored Apr 2, 2026 0:39am

Request Review

@github-actions
Copy link
Copy Markdown

Hello! Thank you for opening your first PR to npmx, @jfernsio! 🚀

Here’s what will happen next:

  1. Our GitHub bots will run to check your changes.
    If they spot any issues you will see some error messages on this PR.
    Don’t hesitate to ask any questions if you’re not sure what these mean!

  2. In a few minutes, you’ll be able to see a preview of your changes on Vercel

  3. One or more of our maintainers will take a look and may ask you to make changes.
    We try to be responsive, but don’t worry if this takes a few days.

@github-actions
Copy link
Copy Markdown

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
i18n/locales/en.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 31, 2026

📝 Walkthrough

Walkthrough

Adds a persisted sidebar collapse state to the package code viewer by introducing a reactive isSidebarCollapsed (backed by useSettings().settings.value.sidebar.collapsed) with getter/setter logic and a toggleSidebar() function that updates settings. The desktop file-tree <aside> now has id="file-tree-sidebar" and its visibility is controlled with v-show="!isSidebarCollapsed". A desktop-only header row was added above the file content containing a sidebar toggle button (with aria-controls, dynamic aria-label, and aria-expanded), a markdown view-mode tab selector when applicable, breadcrumbs, and right-side actions (copy permalink, copy file content, raw link).

Suggested reviewers

  • danielroe
  • serhalp
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The PR description clearly relates to the changeset, describing a sidebar toggle implementation for the package code browser with context and specific changes made.
Linked Issues check ✅ Passed The PR implements a sidebar toggle (show/hide functionality) which partially addresses issue #2058's request for splitpane functionality to allow users to control sidebars and screen space.
Out of Scope Changes check ✅ Passed All changes are in-scope, focusing on the sidebar toggle feature for the package code page without introducing unrelated modifications.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

Copy link
Copy Markdown
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.

🧹 Nitpick comments (1)
app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue (1)

389-390: Use global focus-visible styling for this button instead of inline utility classes.

On Line 389, focus-visible:outline-accent/70 should be removed to follow the project’s shared button/select focus pattern.

Suggested diff
-              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors focus-visible:outline-accent/70 rounded"
+              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors rounded"

Based on learnings, focus-visible styling for button/select should be applied globally via app/assets/main.css, not per-element utility classes.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 21d559b3-820f-46e9-91d7-648a9ccb385a

📥 Commits

Reviewing files that changed from the base of the PR and between 8d9fa5c and 60a722b.

📒 Files selected for processing (2)
  • app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue
  • i18n/locales/en.json

>
<div class="flex items-center gap-2">
<!-- Sidebar toggle button -->
<button
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Consider adding aria-expanded and aria-controls to this button

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

sure will add those 👍

Copy link
Copy Markdown
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.

🧹 Nitpick comments (1)
app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue (1)

390-390: Use global focus-visible styling for this button.

Please remove the inline focus-visible:outline-accent/70 utility from this <button> and rely on the global button focus-visible rule for consistency.

Suggested change
-              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors focus-visible:outline-accent/70 rounded"
+              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors rounded"

Based on learnings: in this repo, button:focus-visible styling is defined globally in app/assets/main.css, and per-element inline focus-visible utilities on buttons/selects should not be used.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: da83f4a1-c17f-4443-ae71-2a897b41efb9

📥 Commits

Reviewing files that changed from the base of the PR and between 60a722b and 3efdba1.

📒 Files selected for processing (1)
  • app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue

Copy link
Copy Markdown
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: 3

🧹 Nitpick comments (1)
app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue (1)

391-391: Avoid inline focus-visible utility class on buttons.

The project's global CSS applies focus-visible styling for buttons and selects via main.css. Using focus-visible:outline-accent/70 inline here is inconsistent with the established pattern.

Remove the inline utility and rely on the global rule for consistency.

♻️ Proposed fix
-              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors focus-visible:outline-accent/70 rounded"
+              class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors rounded"

Based on learnings: "In the npmx.dev project, ensure that focus-visible styling for button and select elements is implemented globally in app/assets/main.css... Do not apply per-element inline utility classes like focus-visible:outline-accent/70 on these elements in Vue templates."


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: daaff786-5c6f-44c5-89a4-67c588e76fe5

📥 Commits

Reviewing files that changed from the base of the PR and between 3efdba1 and 22fee07.

📒 Files selected for processing (1)
  • app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue

Comment on lines 362 to 370
<aside

id="file-tree-sidebar"
v-show="!isSidebarCollapsed"
class="w-64 lg:w-72 border-ie border-border shrink-0 hidden md:block bg-bg-subtle sticky top-25 self-start h-[calc(100vh-7rem)] overflow-y-auto"

class="sticky top-25 w-64 lg:w-72 hidden md:block h-[calc(100vh-10.5rem)] shrink-0 self-start bg-bg-subtle border-ie border-border"

>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Duplicate class attribute causes build failure.

The <aside> element has two class attributes (lines 366 and 368), which is invalid HTML and is causing the Storybook/Chromatic build to fail with "Duplicate attribute" error. You need to merge these into a single class attribute.

🐛 Proposed fix to merge the duplicate class attributes
       <aside
         id="file-tree-sidebar"
         v-show="!isSidebarCollapsed"
-        class="w-64 lg:w-72 border-ie border-border shrink-0 hidden md:block bg-bg-subtle sticky top-25 self-start h-[calc(100vh-7rem)] overflow-y-auto"
-
-        class="sticky top-25 w-64 lg:w-72 hidden md:block h-[calc(100vh-10.5rem)] shrink-0 self-start bg-bg-subtle border-ie border-border"
-
+        class="sticky top-25 w-64 lg:w-72 hidden md:block h-[calc(100vh-10.5rem)] shrink-0 self-start bg-bg-subtle border-ie border-border overflow-y-auto"
       >
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<aside
id="file-tree-sidebar"
v-show="!isSidebarCollapsed"
class="w-64 lg:w-72 border-ie border-border shrink-0 hidden md:block bg-bg-subtle sticky top-25 self-start h-[calc(100vh-7rem)] overflow-y-auto"
class="sticky top-25 w-64 lg:w-72 hidden md:block h-[calc(100vh-10.5rem)] shrink-0 self-start bg-bg-subtle border-ie border-border"
>
<aside
id="file-tree-sidebar"
v-show="!isSidebarCollapsed"
class="sticky top-25 w-64 lg:w-72 hidden md:block h-[calc(100vh-10.5rem)] shrink-0 self-start bg-bg-subtle border-ie border-border overflow-y-auto"
>
🧰 Tools
🪛 GitHub Actions: chromatic

[error] 368-368: Storybook build failed (plugin vite:vue). RolldownError/SyntaxError: Duplicate attribute.

Comment on lines +382 to 486

<div class="flex-1 min-w-0 self-start">
<div
class="sticky z-5 top-25 bg-bg border-b border-border px-4 py-2 flex items-center justify-between gap-2 text-nowrap overflow-x-auto max-w-full"
>
<div class="flex items-center gap-2">
<!-- Sidebar toggle button -->
<button
type="button"
class="hidden md:flex items-center justify-center w-8 h-8 text-fg-subtle hover:text-fg transition-colors focus-visible:outline-accent/70 rounded"
:aria-label="$t(isSidebarCollapsed ? 'code.show_sidebar' : 'code.hide_sidebar')"
:aria-expanded="!isSidebarCollapsed"
aria-controls="file-tree-sidebar"
@click="toggleSidebar"
>
<span
class="w-4 h-4"
:class="isSidebarCollapsed ? 'i-lucide:sidebar-open' : 'i-lucide:sidebar-close'"
aria-hidden="true"
/>
</button>

<div
v-if="fileContent?.markdownHtml"
class="flex items-center gap-1 p-0.5 bg-bg-subtle border border-border-subtle rounded-md overflow-x-auto"
role="tablist"
aria-label="Markdown view mode selector"
>
<button
v-for="mode in markdownViewModes"
:key="mode.key"
role="tab"
class="px-2 py-1.5 font-mono text-xs rounded transition-colors duration-150 border border-solid focus-visible:outline-accent/70 inline-flex items-center gap-1.5"
:class="
markdownViewMode === mode.key
? 'bg-bg shadow text-fg border-border'
: 'text-fg-subtle hover:text-fg border-transparent'
"
:aria-selected="markdownViewMode === mode.key"
@click="markdownViewMode = mode.key"
>
<span class="inline-block h-3 w-3" :class="mode.icon" aria-hidden="true" />
{{ mode.label }}
</button>
</div>
<!-- Breadcrumb navigation -->
<nav
:aria-label="$t('code.file_path')"
class="flex items-center gap-0.5 font-mono text-sm overflow-x-auto"
dir="ltr"
>
<NuxtLink
v-if="filePath"
:to="getCurrentCodeUrlWithPath()"
class="text-fg-muted hover:text-fg transition-colors shrink-0"
>
{{ $t('code.root') }}
</NuxtLink>
<span v-else class="text-fg shrink-0">{{ $t('code.root') }}</span>
<template v-for="(crumb, i) in breadcrumbs" :key="crumb.path">
<span class="text-fg-subtle">/</span>
<NuxtLink
v-if="i < breadcrumbs.length - 1"
:to="getCurrentCodeUrlWithPath(crumb.path)"
class="text-fg-muted hover:text-fg transition-colors"
>
{{ crumb.name }}
</NuxtLink>
<span v-else class="text-fg">{{ crumb.name }}</span>
</template>
</nav>
</div>
<div class="flex items-center gap-2" v-if="isViewingFile && !isBinaryFile && fileContent">
<button
v-if="selectedLines"
type="button"
class="px-2 py-1 font-mono text-xs text-fg-muted bg-bg-subtle border border-border rounded hover:text-fg hover:border-border-hover transition-colors active:scale-95"
@click="copyPermalinkUrl"
>
{{ permalinkCopied ? $t('common.copied') : $t('code.copy_link') }}
</button>
<button
v-if="!!fileContent?.content"
type="button"
class="px-2 py-1 font-mono text-xs text-fg-muted bg-bg-subtle border border-border rounded hover:text-fg hover:border-border-hover transition-colors inline-flex items-center gap-1 capitalize"
@click="copyFileContent()"
>
<span
class="w-3 h-3"
:class="fileContentCopied ? 'i-lucide:check' : 'i-lucide:file'"
/>
{{ fileContentCopied ? $t('common.copied') : $t('common.copy') }}
</button>
<a
:href="`https://cdn.jsdelivr.net/npm/${packageName}@${version}/${filePath}`"
target="_blank"
rel="noopener noreferrer"
class="px-2 py-1 font-mono text-xs text-fg-muted bg-bg-subtle border border-border rounded hover:text-fg hover:border-border-hover transition-colors inline-flex items-center gap-1"
>
{{ $t('code.raw') }}
<span class="i-lucide:external-link w-3 h-3" />
</a>
</div>
</div>
<div class="flex-1 grid grid-rows-[auto_1fr_auto] h-full min-h-full min-w-0 self-start">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Template structure is broken — orphaned div and duplicate header components.

The new toolbar div starting at line 383 appears to be incomplete or improperly merged with the existing code. Observations:

  1. Line 383 opens <div class="flex-1 min-w-0 self-start"> but the closing </div> at line 485 ends the inner sticky toolbar, leaving the outer div unclosed.
  2. Line 486 introduces another <div class="flex-1 grid grid-rows-[auto_1fr_auto]..."> which appears to be the original structure with CodeHeader.
  3. This mismatch is causing the "Unexpected closing tag main" syntax error.

It looks like the new toolbar (lines 384-485) was intended to replace CodeHeader, but both remain in the template. You need to either:

  • Remove the new inline toolbar and keep CodeHeader, or
  • Remove CodeHeader and properly close the new structure.
🧰 Tools
🪛 GitHub Check: 💪 Type check

[failure] 473-473:
Property 'fileContentCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 471-471:
Property 'fileContentCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 467-467:
Property 'copyFileContent' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'. Did you mean 'fileContent'?


[failure] 461-461:
Property 'permalinkCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 459-459:
Property 'copyPermalinkUrl' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 444-444:
Property 'breadcrumbs' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 441-441:
Property 'breadcrumbs' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 411-411:
Property 'markdownViewModes' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'. Did you mean 'markdownViewMode'?

Comment on lines +411 to +473
v-for="mode in markdownViewModes"
:key="mode.key"
role="tab"
class="px-2 py-1.5 font-mono text-xs rounded transition-colors duration-150 border border-solid focus-visible:outline-accent/70 inline-flex items-center gap-1.5"
:class="
markdownViewMode === mode.key
? 'bg-bg shadow text-fg border-border'
: 'text-fg-subtle hover:text-fg border-transparent'
"
:aria-selected="markdownViewMode === mode.key"
@click="markdownViewMode = mode.key"
>
<span class="inline-block h-3 w-3" :class="mode.icon" aria-hidden="true" />
{{ mode.label }}
</button>
</div>
<!-- Breadcrumb navigation -->
<nav
:aria-label="$t('code.file_path')"
class="flex items-center gap-0.5 font-mono text-sm overflow-x-auto"
dir="ltr"
>
<NuxtLink
v-if="filePath"
:to="getCurrentCodeUrlWithPath()"
class="text-fg-muted hover:text-fg transition-colors shrink-0"
>
{{ $t('code.root') }}
</NuxtLink>
<span v-else class="text-fg shrink-0">{{ $t('code.root') }}</span>
<template v-for="(crumb, i) in breadcrumbs" :key="crumb.path">
<span class="text-fg-subtle">/</span>
<NuxtLink
v-if="i < breadcrumbs.length - 1"
:to="getCurrentCodeUrlWithPath(crumb.path)"
class="text-fg-muted hover:text-fg transition-colors"
>
{{ crumb.name }}
</NuxtLink>
<span v-else class="text-fg">{{ crumb.name }}</span>
</template>
</nav>
</div>
<div class="flex items-center gap-2" v-if="isViewingFile && !isBinaryFile && fileContent">
<button
v-if="selectedLines"
type="button"
class="px-2 py-1 font-mono text-xs text-fg-muted bg-bg-subtle border border-border rounded hover:text-fg hover:border-border-hover transition-colors active:scale-95"
@click="copyPermalinkUrl"
>
{{ permalinkCopied ? $t('common.copied') : $t('code.copy_link') }}
</button>
<button
v-if="!!fileContent?.content"
type="button"
class="px-2 py-1 font-mono text-xs text-fg-muted bg-bg-subtle border border-border rounded hover:text-fg hover:border-border-hover transition-colors inline-flex items-center gap-1 capitalize"
@click="copyFileContent()"
>
<span
class="w-3 h-3"
:class="fileContentCopied ? 'i-lucide:check' : 'i-lucide:file'"
/>
{{ fileContentCopied ? $t('common.copied') : $t('common.copy') }}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Missing function and variable definitions cause type check failures.

The template references several identifiers that are not defined in the <script setup> block:

Line Missing identifier
411 markdownViewModes
441, 444 breadcrumbs
459 copyPermalinkUrl
461, 471, 473 permalinkCopied, fileContentCopied
467 copyFileContent

These are likely defined in the existing CodeHeader component that this new inline toolbar is duplicating. If you intend to keep the inline toolbar, you must define these in the script section. Otherwise, remove this duplicated toolbar and retain CodeHeader.

🧰 Tools
🪛 GitHub Check: 💪 Type check

[failure] 473-473:
Property 'fileContentCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 471-471:
Property 'fileContentCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 467-467:
Property 'copyFileContent' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'. Did you mean 'fileContent'?


[failure] 461-461:
Property 'permalinkCopied' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 459-459:
Property 'copyPermalinkUrl' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 444-444:
Property 'breadcrumbs' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 441-441:
Property 'breadcrumbs' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'.


[failure] 411-411:
Property 'markdownViewModes' does not exist on type '{ pkg: { isStale: boolean; _id: string; _rev?: string | undefined; name: string; description?: string | undefined; 'dist-tags': { latest?: string | undefined; } & Record<string, string>; ... 11 more ...; securityVersions?: PackageVersionInfo[] | undefined; } | undefined; ... 800 more ...; $npmApi: (url: string, o...'. Did you mean 'markdownViewMode'?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat]: add splitpane functionality

2 participants