Skip to content

feat: add base elements $$find and $$findAll methods#3741

Open
ala-n wants to merge 4 commits intomainfrom
feat/find-api
Open

feat: add base elements $$find and $$findAll methods#3741
ala-n wants to merge 4 commits intomainfrom
feat/find-api

Conversation

@ala-n
Copy link
Copy Markdown
Collaborator

@ala-n ala-n commented Apr 15, 2026

No description provided.

@ala-n ala-n requested review from a team April 15, 2026 01:15
@ala-n ala-n self-assigned this Apr 15, 2026
@ala-n ala-n requested review from abarmina, Copilot, fshovchko and yadamskaya and removed request for a team April 15, 2026 01:15
@ala-n ala-n added feature New feature needs review The PR is waiting for review labels Apr 15, 2026
@ala-n ala-n added this to the ⚡ESL: 6.0.0 Major release milestone Apr 15, 2026
@qltysh
Copy link
Copy Markdown

qltysh bot commented Apr 15, 2026

Qlty

Coverage Impact

⬆️ Merging this pull request will increase total coverage on main by 0.03%.

Modified Files with Diff Coverage (22)

RatingFile% DiffUncovered Line #s
Coverage rating: A Coverage rating: A
packages/esl/src/esl-share/core/esl-share.ts100.0%
Coverage rating: A Coverage rating: A
...rc/esl-carousel/plugin/autoplay/esl-carousel.autoplay.mixin.ts100.0%
Coverage rating: F Coverage rating: F
...ages/esl/src/esl-carousel/plugin/nav/esl-carousel.nav.mixin.ts0.0%46
Coverage rating: C Coverage rating: C
packages/esl/src/esl-panel-group/core/esl-panel-group.ts100.0%
Coverage rating: F Coverage rating: F
packages/esl/src/esl-footnotes/core/esl-note.ts0.0%204
Coverage rating: A Coverage rating: A
packages/esl/src/esl-trigger/core/esl-trigger.ts100.0%
Coverage rating: F Coverage rating: F
...ages/esl/src/esl-carousel/plugin/dots/esl-carousel.nav.dots.ts0.0%124
Coverage rating: A Coverage rating: A
packages/esl/src/esl-line-clamp/core/esl-line-clamp-toggler.ts100.0%
Coverage rating: F Coverage rating: F
packages/esl/src/esl-footnotes/core/esl-footnotes.ts0.0%37
Coverage rating: B Coverage rating: B
packages/esl/src/esl-carousel/core/esl-carousel.ts100.0%
Coverage rating: B Coverage rating: B
packages/esl/src/esl-alert/core/esl-alert.ts50.0%76
Coverage rating: A Coverage rating: A
packages/esl/src/esl-trigger/core/esl-base-trigger.ts100.0%
Coverage rating: A Coverage rating: A
packages/esl/src/esl-base-element/core/esl-base-element.ts100.0%
Coverage rating: C Coverage rating: C
packages/esl/src/esl-media/core/esl-media.ts100.0%
Coverage rating: F Coverage rating: F
packages/esl/src/esl-media/control/esl-media-control-mixin.ts0.0%36
Coverage rating: A Coverage rating: A
packages/esl/src/esl-related-target/core/esl-related-target.ts100.0%
Coverage rating: F Coverage rating: F
...rc/esl-carousel/plugin/relation/esl-carousel.relation.mixin.ts0.0%37
Coverage rating: A Coverage rating: A
packages/esl/src/esl-mixin-element/ui/esl-mixin-element.ts100.0%
Coverage rating: A Coverage rating: A
packages/esl/src/esl-animate/core/esl-animate.ts100.0%
Coverage rating: F Coverage rating: F
packages/esl/src/esl-carousel/plugin/info/esl-carousel.info.ts0.0%38
Coverage rating: D Coverage rating: D
packages/esl/src/esl-image/core/esl-image.ts100.0%
Coverage rating: C Coverage rating: C
packages/esl/src/esl-popup/core/esl-popup.ts100.0%
Total74.2%
🤖 Increase coverage with AI coding...

In the `feat/find-api` branch, add test coverage for this new code:

- `packages/esl/src/esl-alert/core/esl-alert.ts` -- Line 76
- `packages/esl/src/esl-carousel/plugin/dots/esl-carousel.nav.dots.ts` -- Line 124
- `packages/esl/src/esl-carousel/plugin/info/esl-carousel.info.ts` -- Line 38
- `packages/esl/src/esl-carousel/plugin/nav/esl-carousel.nav.mixin.ts` -- Line 46
- `packages/esl/src/esl-carousel/plugin/relation/esl-carousel.relation.mixin.ts` -- Line 37
- `packages/esl/src/esl-footnotes/core/esl-footnotes.ts` -- Line 37
- `packages/esl/src/esl-footnotes/core/esl-note.ts` -- Line 204
- `packages/esl/src/esl-media/control/esl-media-control-mixin.ts` -- Line 36

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds $$find / $$findAll lookup helpers to base ESL component APIs and migrates existing components to use them instead of importing ESLTraversingQuery directly.

Changes:

  • Extend ESLBaseComponent and implement $$find / $$findAll in ESLBaseElement and ESLMixinElement
  • Replace direct ESLTraversingQuery.first/all usage across multiple components/mixins with the new helpers
  • Document the new helpers in base-element and mixin-element READMEs

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
packages/ui-playground/src/core/base/plugin.ts Switch $root resolution to $$find
packages/esl/src/esl-utils/abstract/component.ts Add $$find / $$findAll to base component interface
packages/esl/src/esl-trigger/core/esl-trigger.ts Use $$find for target resolution
packages/esl/src/esl-trigger/core/esl-base-trigger.ts Use $$find for active class target resolution
packages/esl/src/esl-share/core/esl-share.ts Use $$find for container lookup
packages/esl/src/esl-scrollbar/core/esl-scrollbar.ts Use $$find for scrollbar target lookup
packages/esl/src/esl-related-target/core/esl-related-target.ts Use $$findAll for related targets lookup
packages/esl/src/esl-popup/core/esl-popup.ts Use $$find for container lookup
packages/esl/src/esl-panel-group/core/esl-panel-group.ts Use $$find for mode class target lookup
packages/esl/src/esl-mixin-element/ui/esl-mixin-element.ts Implement $$find / $$findAll on mixin base
packages/esl/src/esl-mixin-element/README.md Document $$find / $$findAll on mixins
packages/esl/src/esl-media/core/esl-media.ts Use $$find for marker/class targets
packages/esl/src/esl-media/control/esl-media-control-mixin.ts Use $$find for media target lookup
packages/esl/src/esl-line-clamp/core/esl-line-clamp-toggler.ts Use $$find for target lookup; minor boolean simplification
packages/esl/src/esl-image/core/esl-image.ts Use $$find for container class target lookup
packages/esl/src/esl-footnotes/core/esl-note.ts Use $$find for container lookup
packages/esl/src/esl-footnotes/core/esl-footnotes.ts Use $$find for scope element lookup
packages/esl/src/esl-carousel/plugin/relation/esl-carousel.relation.mixin.ts Use $$find for related carousel lookup
packages/esl/src/esl-carousel/plugin/nav/esl-carousel.nav.mixin.ts Use $$find for carousel lookup
packages/esl/src/esl-carousel/plugin/info/esl-carousel.info.ts Use $$find for carousel lookup
packages/esl/src/esl-carousel/plugin/dots/esl-carousel.nav.dots.ts Use $$find for carousel lookup
packages/esl/src/esl-carousel/plugin/autoplay/esl-carousel.autoplay.mixin.ts Use $$findAll / $$find for control/scope/blocker lookups
packages/esl/src/esl-carousel/core/esl-carousel.ts Use $$find for container lookup
packages/esl/src/esl-base-element/core/esl-base-element.ts Implement $$find / $$findAll on custom element base
packages/esl/src/esl-base-element/README.md Document $$find / $$findAll on base elements
packages/esl/src/esl-animate/core/esl-animate.ts Use $$findAll for targets lookup
packages/esl/src/esl-alert/core/esl-alert.ts Use $$find for alert target resolution
packages/esl-website/src/navigation/header/header-search.ts Use $$find for focus element lookup
packages/esl-website/src/esl-popup/esl-d-popup-game.ts Use $$find for trigger lookup; return null when absent
packages/esl-website/src/autofocus/autofocus-mixin.ts Use $$find for autofocus target lookup

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

ala-n and others added 2 commits April 15, 2026 03:20
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature needs review The PR is waiting for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants