feat(scrollbar): independent scrollbar implimentation (#DS-3176) - #1798
feat(scrollbar): independent scrollbar implimentation (#DS-3176)#1798artembelik wants to merge 14 commits into
Conversation
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
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 |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
🚨 Failed to update snapshots. |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
✅ Snapshots updated! |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
✅ Snapshots updated! |
There was a problem hiding this comment.
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/privateentry 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.
|
@copilot resolve the merge conflicts in this pull request |
# Conflicts: # tools/cspell-locales/ru.json
No description provided.