Skip to content

feat(scrollbar): independent scrollbar implimentation (#DS-3176) - #1798

Draft
artembelik wants to merge 14 commits into
mainfrom
feat/DS-3176
Draft

feat(scrollbar): independent scrollbar implimentation (#DS-3176)#1798
artembelik wants to merge 14 commits into
mainfrom
feat/DS-3176

Conversation

@artembelik

Copy link
Copy Markdown
Contributor

No description provided.

@artembelik artembelik self-assigned this Jul 29, 2026
@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit d902ab2):

https://koobiq-next--prs-1798-c68u4be9.web.app

(expires Thu, 06 Aug 2026 13:01:42 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@artembelik

Copy link
Copy Markdown
Contributor Author

/approve-snapshots

@github-actions

Copy link
Copy Markdown

🔄 Updating snapshots.

@github-actions

Copy link
Copy Markdown

🚨 Failed to update snapshots.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@artembelik

Copy link
Copy Markdown
Contributor Author

/approve-snapshots

@github-actions

Copy link
Copy Markdown

🔄 Updating snapshots.

@github-actions

Copy link
Copy Markdown

✅ Snapshots updated!

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@artembelik

Copy link
Copy Markdown
Contributor Author

/approve-snapshots

@github-actions

Copy link
Copy Markdown

🔄 Updating snapshots.

@github-actions

Copy link
Copy Markdown

✅ Snapshots updated!

@artembelik
artembelik requested a review from Copilot August 3, 2026 07:32
@artembelik
artembelik marked this pull request as ready for review August 3, 2026 07:32

Copilot AI left a comment

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.

Pull request overview

This PR introduces a new internal (“private”) scrollbar implementation (KbqScrollbar) that renders custom track/thumb UI without relying on the external overlayscrollbars library, and migrates KbqContentPanel to use it. It also wires up API extraction/paths for a nested entry point and adds docs/e2e coverage for the new scrollbar behavior.

Changes:

  • Added @koobiq/components/scrollbar/private entry point (paths + ng-package) and API extractor support for nested entrypoints.
  • Implemented the new dependency-free scrollbar directive, styles, unit tests, and Playwright e2e coverage.
  • Updated content-panel (and its docs/e2e) to use the new private scrollbar instead of the overlayscrollbars-based component.

Reviewed changes

Copilot reviewed 34 out of 37 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tsconfig.json Adds TS path alias for @koobiq/components/scrollbar/private.
tools/public_api_guard/components/scrollbar-private.api.md New API guard snapshot for the private scrollbar entry point.
tools/public_api_guard/components/content-panel.api.md Updates API snapshot due to content-panel referencing the private scrollbar entry point.
tools/cspell-locales/ru.json Adds RU spelling exceptions for new scrollbar-related terminology.
tools/api-extractor/config.json Adds scrollbar/private to API extractor component list.
tools/api-extractor/api-extractor.ts Flattens nested entrypoint name for api.md report file naming.
packages/e2e/routes.ts Registers new private scrollbar e2e routes/components and keeps existing scrollbar e2e route.
packages/docs-examples/example-module.ts Adds new docs examples (AG Grid + private scrollbar examples) and updates example routing map.
packages/docs-examples/components/scrollbar/private-scrollbar-visibility/private-scrollbar-visibility-example.ts New docs example for private scrollbar visibility modes.
packages/docs-examples/components/scrollbar/private-scrollbar-virtual-scroll/private-scrollbar-virtual-scroll-example.ts New docs example showing virtual-scroll delegation.
packages/docs-examples/components/scrollbar/private-scrollbar-scroll-to/private-scrollbar-scroll-to-example.ts New docs example for programmatic scrolling APIs.
packages/docs-examples/components/scrollbar/private-scrollbar-rtl/private-scrollbar-rtl-example.ts New docs example for RTL behavior.
packages/docs-examples/components/scrollbar/private-scrollbar-native/private-scrollbar-native-example.ts New docs example for native fallback via provider config.
packages/docs-examples/components/scrollbar/private-scrollbar-disable-interaction/private-scrollbar-disable-interaction-example.ts New docs example for disabling drag/click interactions independently.
packages/docs-examples/components/scrollbar/index.ts Exports and registers new private scrollbar docs examples in the scrollbar examples module.
packages/components/scrollbar/scrollbar.ru.md Adds a “programmatic control” section hook for scrollbar docs.
packages/components/scrollbar/scrollbar.en.md Adds a “programmatic control” section hook for scrollbar docs.
packages/components/scrollbar/private/scrollbar.ts Adds the new independent scrollbar directive implementation and related types/providers.
packages/components/scrollbar/private/scrollbar.spec.ts Adds comprehensive Jest unit tests for the private scrollbar directive.
packages/components/scrollbar/private/scrollbar.scss Adds styles/tokens for the private scrollbar track/thumb UI.
packages/components/scrollbar/private/scrollbar.module.ts Adds an NgModule wrapper exporting the private scrollbar directives.
packages/components/scrollbar/private/public-api.ts Defines the private scrollbar entry point public exports.
packages/components/scrollbar/private/ng-package.json Adds packaging config for the nested scrollbar/private entry point.
packages/components/scrollbar/private/index.ts Entry-point barrel exporting public-api.
packages/components/scrollbar/private/e2e.ts Adds e2e demo components for private scrollbar scenarios.
packages/components/scrollbar/private/e2e.playwright-spec.ts Adds Playwright specs validating private scrollbar rendering and interactions.
packages/components/scrollbar/examples.scrollbar.ru.md Replaces old placeholder with detailed RU docs examples for the private scrollbar.
packages/components/scrollbar/examples.scrollbar.en.md Replaces old placeholder with detailed EN docs examples for the private scrollbar.
packages/components/content-panel/e2e.playwright-spec.ts Updates selectors to match the new scroll viewport structure (.kbq-private-scrollbar-viewport).
packages/components/content-panel/content-panel.ts Migrates content-panel body/container to kbqScrollbar directive usage.
packages/components/content-panel/content-panel.ru.md Removes overlayscrollbars dependency note (content-panel no longer uses it).
packages/components/content-panel/content-panel.en.md Removes overlayscrollbars dependency note (content-panel no longer uses it).
packages/components-dev/scrollbar/template.html Simplifies dev app template to render the docs examples block.
packages/components-dev/scrollbar/styles.scss Updates dev app layout styling.
packages/components-dev/scrollbar/module.ts Replaces custom dev examples with imports/rendering of docs examples components.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/components/scrollbar/private/scrollbar.ts
Comment thread packages/components/scrollbar/private/scrollbar.ts
@artembelik

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

# Conflicts:
#	tools/cspell-locales/ru.json

Copilot AI commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Resolved the merge conflict in tools/cspell-locales/ru.json — both скроллеру (from main) and скроллить (from this branch) are now included in the word list. Merge commit: d902ab2.

@artembelik
artembelik marked this pull request as draft August 3, 2026 14:31
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.

3 participants