Skip to content

doc(BTooltip): Parity pass #2762

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

dwgray
Copy link
Member

@dwgray dwgray commented Jun 26, 2025

Describe the PR

  • Ported the documentation for tooltips
  • Filled out the component reference (mostly by sharing the BPopover component reference
  • Updated the migration guide
  • Updated the parity spreadsheet.

This fixes #2101

Small replication

n/a

PR checklist

What kind of change does this PR introduce? (check at least one)

  • Bugfix 🐛 - fix(...)
  • Feature - feat(...)
  • ARIA accessibility - fix(...)
  • Documentation update - docs(...)
  • Other (please describe)

The PR fulfills these requirements:

  • Pull request title and all commits follow the Conventional Commits convention or has an override in this pull request body This is very important, as the CHANGELOG is generated from these messages, and determines the next version type. Pull requests that do not follow conventional commits or do not have an override will be denied

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Introduced comprehensive Tooltip documentation with detailed guides, demos, and usage examples.
    • Added multiple new Tooltip demo components showcasing various features such as interactive tooltips, positioning, triggers, styling, and programmatic control.
  • Documentation

    • Expanded migration guide for Tooltip, detailing new props, deprecated features, and behavioral changes.
    • Improved Popover documentation with clearer references and corrected links.
    • Corrected minor textual issues in form input documentation.
  • Refactor

    • Centralized and standardized popover and tooltip prop/event definitions for improved consistency and maintainability.
    • Updated Popover component metadata to use shared utility references.
  • Chores

    • Added shared utility functions for popover-like components to streamline documentation and component metadata.

Copy link

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

Copy link

coderabbitai bot commented Jun 26, 2025

"""

Walkthrough

This update introduces a new shared utility module for popover-related component props and emits, centralizing their definitions for use in both Popover and Tooltip documentation and demos. It refactors existing Popover metadata to use these utilities, adds comprehensive Tooltip documentation, and introduces multiple new Tooltip demo components.

Changes

Files/Groups Change Summary
apps/docs/src/data/components/popover.data.ts Refactored to use shared popover prop and emit utilities, replacing explicit inline definitions.
apps/docs/src/data/components/tooltip.data.ts Added new module exporting Tooltip component metadata using shared popover utilities and an interactive prop.
apps/docs/src/utils/popover-shared.ts, apps/docs/src/utils/index.ts Introduced new shared utility module for popover props/emits and exported its functions.
apps/docs/src/docs/components/demo/PopoverExposed.vue Changed import of BPopover from type-only to direct component import.
apps/docs/src/docs/components/demo/PopoverOverview.vue Reordered a button using v-b-popover within its group.
apps/docs/src/docs/components/demo/PopoverStyles.vue Removed the show attribute from <BPopover>.
apps/docs/src/docs/components/demo/Tooltip*.vue Added multiple new Tooltip demo components covering content, custom class, exposed methods, interactivity, v-model, overview, positioning, initial open state, styles, triggers, and variants.
apps/docs/src/docs/components/popover.md Updated documentation: clarified composable usage, fixed links, and made minor grammar corrections.
apps/docs/src/docs/components/tooltip.md Rewrote and expanded Tooltip documentation with detailed sections, demos, and best practices.
apps/docs/src/docs/migration-guide.md Expanded Tooltip migration notes with details on prop changes, deprecations, and behavioral differences.

Sequence Diagram(s)

sequenceDiagram
    participant DocsPage
    participant SharedUtils
    participant PopoverData
    participant TooltipData

    DocsPage->>PopoverData: Load Popover component reference
    PopoverData->>SharedUtils: popoverSharedProps('popover'), popoverSharedEmits('popover')
    SharedUtils-->>PopoverData: Return shared props/emits
    DocsPage->>TooltipData: Load Tooltip component reference
    TooltipData->>SharedUtils: popoverSharedProps('tooltip'), popoverSharedEmits('tooltip')
    SharedUtils-->>TooltipData: Return shared props/emits
    TooltipData-->>DocsPage: Tooltip metadata (with interactive prop)
    PopoverData-->>DocsPage: Popover metadata
Loading

Assessment against linked issues

Objective Addressed Explanation
Document the BTooltip component thoroughly, including its props, events, slots, and usage (#2101)

Assessment against linked issues: Out-of-scope changes

No out-of-scope changes identified.

Possibly related PRs

  • bootstrap-vue-next/bootstrap-vue-next#2701: Expands and documents popover props and emits explicitly in popover.data.ts, which are now abstracted into shared utilities in this PR—directly related by file and logic.

Poem

In the docs a new breeze blows,
Shared popover props now compose!
Tooltips sparkle, demos bloom,
Centralized logic clears the room.
With every slot and trigger bright,
The rabbit hops in pure delight—
Unified, the code feels just right! 🐇✨
"""


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b0fc53c and e8bdf1e.

📒 Files selected for processing (1)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/src/docs/components/tooltip.md
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

pkg-pr-new bot commented Jun 26, 2025

bsvn-vite-ts

npm i https://pkg.pr.new/bootstrap-vue-next/bootstrap-vue-next@2762
npm i https://pkg.pr.new/bootstrap-vue-next/bootstrap-vue-next/@bootstrap-vue-next/nuxt@2762

commit: e8bdf1e

Copy link

@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: 6

🧹 Nitpick comments (11)
apps/docs/src/utils/popover-shared.ts (1)

73-73: Fix typo in description.

"scrool" should be "scroll".

-      'Disables automatic closing on click outside or scrool out of view. Overrides `close-on-hide`'
+      'Disables automatic closing on click outside or scroll out of view. Overrides `close-on-hide`'
apps/docs/src/docs/components/demo/TooltipStyles.vue (1)

3-3: Consider removing unnecessary flex container.

Since there's only one tooltip in this demo, the d-flex gap-2 classes are unnecessary and could be simplified to just a div or removed entirely.

-  <div class="d-flex gap-2">
+  <div>
apps/docs/src/docs/components/demo/TooltipVariant.vue (1)

3-3: Consider removing unnecessary flex container.

Similar to other single-tooltip demos, the d-flex gap-2 classes are unnecessary since there's only one tooltip element.

-  <div class="d-flex gap-2">
+  <div>
apps/docs/src/docs/components/demo/TooltipContent.vue (1)

4-4: Fix typo in tooltip title.

There's a spelling error: "Tootip" should be "Tooltip".

-    <BTooltip title="Tootip Title via Property">
+    <BTooltip title="Tooltip Title via Property">
apps/docs/src/docs/components/demo/TooltipPositioning.vue (1)

82-84: Fix formatting of closing tags.

The closing tags are formatted inconsistently. Consider improving readability.

-      </BCol></BRow
-    ></BContainer
-  >
+      </BCol>
+    </BRow>
+  </BContainer>
apps/docs/src/docs/components/demo/TooltipCloseOnHide.vue (1)

30-34: Consider the DOM query selector robustness.

The hardcoded selector '#app > nav' works for the current documentation site structure but could be brittle if the navigation markup changes. For a demo component, this is probably acceptable, but consider if a more resilient approach might be beneficial.

apps/docs/src/docs/migration-guide.md (1)

802-803: Fix missing comma for better readability.

The sentence would read more clearly with a comma after "default".

-`BTooltip` is noninteractive by default unlike in BootstrapVue. This provides for a smoother user
+`BTooltip` is noninteractive by default, unlike in BootstrapVue. This provides for a smoother user
apps/docs/src/docs/components/tooltip.md (4)

21-23: Fix repeated “tootlip/Tootlips” misspellings

Spelling errors undermine professionalism and hurt search indexing.

- Tootlips rely on the 3rd party library ...
- ... where in the DOM the tootlip is rendered.
+ Tooltips rely on the 3rd-party library …
+ … where in the DOM the tooltip is rendered.

78-78: Minor wording tweak for clarity

“… when the mouse is over it or focus is in it …”

Replace “in” with “on” or “within” for idiomatic English:

- … when the mouse is over it or focus is in it …
+ … when the mouse is over it or focus is within it …

35-35: Use the correct abbreviation “i.e.”

- A string with querySelector. (ie. '#toolbar > div:first-child')
+ A string with querySelector (i.e. `#toolbar > div:first-child`)

110-111: Spelling & wording in custom-class section

  1. tootliptooltip
  2. Remove extraneous “to”
-Custom classes can be applied to the tootlip using the `title-class` prop and to or `body-class` prop
+Custom classes can be applied to the tooltip using the `title-class` or `body-class` prop
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 02be37d and a5d122f.

📒 Files selected for processing (22)
  • apps/docs/src/data/components/popover.data.ts (2 hunks)
  • apps/docs/src/data/components/tooltip.data.ts (1 hunks)
  • apps/docs/src/docs/components/demo/PopoverExposed.vue (1 hunks)
  • apps/docs/src/docs/components/demo/PopoverOverview.vue (1 hunks)
  • apps/docs/src/docs/components/demo/PopoverStyles.vue (0 hunks)
  • apps/docs/src/docs/components/demo/TooltipCloseOnHide.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipContent.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipCustomClass.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipExposed.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipInteractive.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipModel.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipOverview.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipPositioning.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipStartOpen.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipStyles.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipTriggers.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipVariant.vue (1 hunks)
  • apps/docs/src/docs/components/popover.md (4 hunks)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
  • apps/docs/src/docs/migration-guide.md (2 hunks)
  • apps/docs/src/utils/index.ts (1 hunks)
  • apps/docs/src/utils/popover-shared.ts (1 hunks)
💤 Files with no reviewable changes (1)
  • apps/docs/src/docs/components/demo/PopoverStyles.vue
🧰 Additional context used
🧠 Learnings (21)
📓 Common learnings
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
apps/docs/src/docs/components/demo/PopoverOverview.vue (4)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:425-430
Timestamp: 2025-05-28T07:32:45.658Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex synchronization within sortTabs() is necessary and correct. When sorting tabs by DOM position, indices change, so activeIndex must be updated immediately to maintain consistency with activeId. This is not an unwanted side effect but a required consequence of the sorting operation.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/docs/components/demo/TooltipContent.vue (1)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/docs/components/demo/TooltipStyles.vue (2)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: unstoppablecarl
PR: bootstrap-vue-next/bootstrap-vue-next#2671
File: packages/bootstrap-vue-next/src/components/BToast/_toast.scss:1-3
Timestamp: 2025-04-27T17:30:42.045Z
Learning: In global SCSS files for bootstrap-vue-next, `:deep()` combinator should not be used as it only works in Vue's scoped style blocks. Standard CSS/SCSS selectors should be used instead.
apps/docs/src/docs/components/popover.md (5)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: unstoppablecarl
PR: bootstrap-vue-next/bootstrap-vue-next#2671
File: packages/bootstrap-vue-next/src/components/BToast/_toast.scss:1-3
Timestamp: 2025-04-27T17:30:42.045Z
Learning: In global SCSS files for bootstrap-vue-next, `:deep()` combinator should not be used as it only works in Vue's scoped style blocks. Standard CSS/SCSS selectors should be used instead.
apps/docs/src/docs/components/demo/PopoverExposed.vue (8)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: unstoppablecarl
PR: bootstrap-vue-next/bootstrap-vue-next#2671
File: packages/bootstrap-vue-next/src/components/BToast/_toast.scss:1-3
Timestamp: 2025-04-27T17:30:42.045Z
Learning: In global SCSS files for bootstrap-vue-next, `:deep()` combinator should not be used as it only works in Vue's scoped style blocks. Standard CSS/SCSS selectors should be used instead.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:425-430
Timestamp: 2025-05-28T07:32:45.658Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex synchronization within sortTabs() is necessary and correct. When sorting tabs by DOM position, indices change, so activeIndex must be updated immediately to maintain consistency with activeId. This is not an unwanted side effect but a required consequence of the sorting operation.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
apps/docs/src/docs/components/demo/TooltipInteractive.vue (2)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
apps/docs/src/docs/components/demo/TooltipVariant.vue (1)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/docs/components/demo/TooltipCustomClass.vue (1)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/docs/components/demo/TooltipStartOpen.vue (1)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/docs/components/demo/TooltipTriggers.vue (1)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
apps/docs/src/data/components/tooltip.data.ts (4)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
apps/docs/src/data/components/popover.data.ts (6)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: unstoppablecarl
PR: bootstrap-vue-next/bootstrap-vue-next#2671
File: packages/bootstrap-vue-next/src/components/BToast/_toast.scss:1-3
Timestamp: 2025-04-27T17:30:42.045Z
Learning: In global SCSS files for bootstrap-vue-next, `:deep()` combinator should not be used as it only works in Vue's scoped style blocks. Standard CSS/SCSS selectors should be used instead.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
apps/docs/src/docs/components/demo/TooltipModel.vue (2)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
apps/docs/src/docs/components/demo/TooltipOverview.vue (2)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
apps/docs/src/docs/components/demo/TooltipPositioning.vue (2)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
apps/docs/src/docs/components/demo/TooltipCloseOnHide.vue (3)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
apps/docs/src/docs/components/demo/TooltipExposed.vue (4)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
apps/docs/src/docs/migration-guide.md (7)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: unstoppablecarl
PR: bootstrap-vue-next/bootstrap-vue-next#2671
File: packages/bootstrap-vue-next/src/components/BToast/_toast.scss:1-3
Timestamp: 2025-04-27T17:30:42.045Z
Learning: In global SCSS files for bootstrap-vue-next, `:deep()` combinator should not be used as it only works in Vue's scoped style blocks. Standard CSS/SCSS selectors should be used instead.
apps/docs/src/utils/popover-shared.ts (3)
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
apps/docs/src/docs/components/tooltip.md (5)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
🧬 Code Graph Analysis (1)
apps/docs/src/utils/popover-shared.ts (3)
apps/docs/src/utils/index.ts (5)
  • popoverSharedProps (10-10)
  • showHideProps (8-8)
  • pick (4-4)
  • buildCommonProps (3-3)
  • popoverSharedEmits (10-10)
packages/bootstrap-vue-next/src/types/ComponentProps.ts (1)
  • BTooltipProps (1324-1326)
apps/docs/src/types/index.ts (2)
  • PropertyReference (13-18)
  • EmitArgReference (5-5)
🪛 LanguageTool
apps/docs/src/docs/migration-guide.md

[uncategorized] ~802-~802: Possible missing comma found.
Context: ... prop. BTooltip is noninteractive by default unlike in BootstrapVue. This provides f...

(AI_HYDRA_LEO_MISSING_COMMA)

apps/docs/src/docs/components/tooltip.md

[uncategorized] ~25-~25: Possible missing comma found.
Context: ...d. Set the inline prop to improve the positioning see the [Floating UI docs](https://floa...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~35-~35: The abbreviation “i.e.” (= that is) requires two periods.
Context: ...ponent) - A string with querySelector. (ie. '#toolbar > div:first-child') - A refer...

(I_E)


[uncategorized] ~78-~78: The preposition “on” seems more likely in this position than the preposition “in”.
Context: ...n when the mouse is over it or focus is in it, allowing users to interact with its...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION_IN_ON)


[uncategorized] ~97-~97: Possible missing comma found.
Context: ...er can be set via the title or body props or the title and default slots. <<...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~104-~104: Possible missing comma found.
Context: ...recedence over the body and default slots and the slots (as always) take preceden...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build
🔇 Additional comments (25)
apps/docs/src/utils/popover-shared.ts (2)

17-160: LGTM on comprehensive prop definitions.

The shared props object provides thorough coverage of popover/tooltip functionality with detailed descriptions and proper typing. The dynamic string replacement approach is clever for component-specific documentation.


160-160: I’m digging into the prop‐type definitions to confirm whether BTooltipProps aligns with BvnComponentProps['BPopover']. Let’s extract their declarations:

#!/bin/bash
# Find tooltip/​popover prop interfaces or type aliases
rg 'interface BTooltipProps' -A5
rg 'type BTooltipProps' -A5
rg 'interface BPopoverProps' -A5
rg 'type BPopoverProps' -A5
rg 'interface BvnComponentProps' -A5
rg 'type BvnComponentProps' -A5
apps/docs/src/utils/index.ts (1)

10-10: LGTM on the export additions.

The new exports follow the existing pattern and properly expose the shared utilities for use in other parts of the documentation system.

apps/docs/src/docs/components/demo/PopoverOverview.vue (1)

15-22: LGTM on the element reordering.

The reordering of the BButton with v-b-popover directive doesn't affect functionality and likely improves the visual flow of the demo.

apps/docs/src/docs/components/demo/PopoverExposed.vue (1)

42-42: LGTM on the import change.

Changing from a type-only import to the actual component import is necessary for the component to function properly. The direct import path from bootstrap-vue-next/components/BPopover is appropriate for this use case.

apps/docs/src/docs/components/popover.md (4)

7-8: LGTM on the composable clarification.

Adding the "composable" label clarifies the nature of usePopoverController and improves documentation clarity.


18-18: LGTM on the URL correction.

Correcting the floating-ui URL from /docs to / ensures users reach the correct documentation.


58-58: LGTM on removing redundant phrase.

Removing "by default" improves the sentence flow without losing meaning.


89-89: LGTM on the directive link correction.

Correcting the link from /docs/directives/popover to /docs/directives/bpopover ensures proper navigation to the directive documentation.

apps/docs/src/docs/components/demo/TooltipStyles.vue (1)

4-11: CSS custom properties usage looks good.

The demonstration of styling tooltips with CSS custom properties is clear and follows Bootstrap's CSS variable conventions properly. The tooltip content with HTML markup is also appropriate for showing rich content support.

apps/docs/src/docs/components/demo/TooltipStartOpen.vue (1)

1-10: Clean implementation of the show prop demo.

The component correctly demonstrates how to use the show prop to display a tooltip immediately on load. The implementation is clear and follows proper Vue template conventions.

apps/docs/src/docs/components/demo/TooltipVariant.vue (1)

4-11: Good demonstration of title-class prop.

The use of title-class="text-bg-danger" effectively demonstrates how to style tooltip variants. The combination with the title prop shows a clean way to apply Bootstrap utility classes to tooltips.

apps/docs/src/docs/components/demo/TooltipInteractive.vue (1)

1-16: Excellent demonstration of interactive tooltips.

The component effectively showcases the interactive prop functionality with a practical example. The counter implementation is clean, and the TypeScript setup is appropriate. The flex layout is justified here since it spaces the counter and button elements within the tooltip.

apps/docs/src/docs/components/demo/TooltipContent.vue (1)

3-16: Great comparison of content delivery methods.

The side-by-side demonstration of title prop vs. slot content is educational and clearly shows the difference between simple text and rich HTML content capabilities. The flex layout is appropriate for displaying two tooltips together.

apps/docs/src/docs/components/demo/TooltipCustomClass.vue (1)

1-28: LGTM! Clean demonstration of custom tooltip classes.

The component effectively showcases both body-class and title-class props with clear examples. The template structure is well-organized and follows Vue SFC best practices.

apps/docs/src/docs/components/demo/TooltipTriggers.vue (1)

1-23: LGTM! Effective demonstration of tooltip triggers.

The component clearly shows the difference between default trigger behavior and click-triggered tooltips. The implementation is clean and follows consistent patterns.

apps/docs/src/docs/components/demo/TooltipOverview.vue (1)

1-17: Excellent overview of tooltip usage patterns.

Apart from the typos, this component effectively demonstrates the three main ways to use tooltips: scoped slots, target prop, and directive. This provides valuable reference material for users.

apps/docs/src/docs/components/demo/TooltipModel.vue (1)

1-29: LGTM! Excellent demonstration of tooltip v-model binding.

The component effectively showcases how to control tooltip visibility programmatically using v-model. The implementation follows Vue 3 Composition API best practices with a clean, minimal script setup and intuitive user interaction.

apps/docs/src/docs/components/demo/TooltipPositioning.vue (1)

1-86: Excellent comprehensive positioning demo.

This component provides a complete reference for all tooltip placement options using a well-organized grid layout. The systematic approach makes it easy for users to understand all available positioning choices.

apps/docs/src/data/components/tooltip.data.ts (1)

1-41: LGTM! Well-structured component metadata.

The tooltip metadata correctly uses the shared utility pattern and properly defines the tooltip-specific interactive prop. The structure follows established conventions and TypeScript usage is appropriate.

apps/docs/src/data/components/popover.data.ts (2)

1-2: LGTM! Good refactoring to use shared utilities.

The import changes properly bring in the shared utility functions for consistent prop and emit definitions.


11-13: LGTM! Effective consolidation using shared utilities.

The refactoring to use popoverSharedProps and popoverSharedEmits reduces duplication and improves maintainability while preserving the same functionality.

apps/docs/src/docs/components/demo/TooltipExposed.vue (1)

1-48: LGTM! Well-implemented demo component.

The component correctly demonstrates programmatic tooltip control using Vue 3 Composition API. Good use of optional chaining for safe method calls and proper ref typing with InstanceType<typeof BTooltip>.

apps/docs/src/docs/components/demo/TooltipCloseOnHide.vue (1)

1-35: LGTM! Good demonstration of close-on-hide functionality.

The component effectively shows how boundary padding works with navigation elements. The reactive computation for navHeight is well-implemented.

apps/docs/src/docs/migration-guide.md (1)

802-834: LGTM! Comprehensive and well-structured migration documentation.

The BTooltip migration section thoroughly covers all the major API changes, deprecated props, and behavioral differences. The documentation will be very helpful for users migrating from BootstrapVue.

Copy link

@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: 0

♻️ Duplicate comments (1)
apps/docs/src/docs/components/tooltip.md (1)

5-7: Still-broken composable link & wording
The directive typo is fixed, but this sentence still mixes tooltip/popover terminology and the link remains malformed.

-or [`v-b-tooltip`](/docs/directives/btooltip) directive. Popovers can also be created and programmatically controlled via the composable
-[`usePopoverController`](<(/docs/composables/useTooltipController)>)
+or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be programmatically controlled via the composable
+[`useTooltipController`](/docs/composables/useTooltipController)
🧹 Nitpick comments (5)
apps/docs/src/docs/components/tooltip.md (5)

15-21: Replace “popover” with “tooltip” & correct prop names
The overview section is for tooltips, so using “popover component” is confusing. Also, the prop is hideMargin (camel-case) and “non-interactive” needs a hyphen.

-Things to know when using the popover component:
+Things to know when using the tooltip component:

-  - HideMargin is 0
+  - `hideMargin` is `0`
-  - Tooltips are noninteractive by default.
+  - Tooltips are non-interactive by default.

25-25: Missing comma after introductory clause

-...the positioning see the [Floating UI docs]...
+...the positioning, see the [Floating UI docs]...

90-93: Tooltip-specific phrasing

Since this doc is about tooltips, “popover visibility” may confuse readers.

-To take finer control of popover visibility, you can use the ...
+To take finer control of tooltip visibility, you can use the ...

95-99: Replace “popover” with “tooltip”

-The title and body content of a popover can be set via the ...
+The content of a tooltip can be set via the ...

120-121: Incorrect component name in reactive note

-...can be changed while the popover is open.
+...can be changed while the tooltip is open.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a5d122f and e2d7732.

📒 Files selected for processing (10)
  • apps/docs/src/docs/components/demo/TooltipContent.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipOverview.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipPositioning.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipStyles.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TooltipVariant.vue (1 hunks)
  • apps/docs/src/docs/components/form-input.md (1 hunks)
  • apps/docs/src/docs/components/popover.md (6 hunks)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
  • apps/docs/src/docs/migration-guide.md (2 hunks)
  • apps/docs/src/utils/popover-shared.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • apps/docs/src/docs/components/form-input.md
🚧 Files skipped from review as they are similar to previous changes (8)
  • apps/docs/src/docs/components/demo/TooltipStyles.vue
  • apps/docs/src/docs/components/demo/TooltipContent.vue
  • apps/docs/src/docs/components/demo/TooltipVariant.vue
  • apps/docs/src/docs/components/demo/TooltipOverview.vue
  • apps/docs/src/docs/components/demo/TooltipPositioning.vue
  • apps/docs/src/docs/components/popover.md
  • apps/docs/src/docs/migration-guide.md
  • apps/docs/src/utils/popover-shared.ts
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
apps/docs/src/docs/components/tooltip.md (6)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
🪛 LanguageTool
apps/docs/src/docs/components/tooltip.md

[uncategorized] ~25-~25: Possible missing comma found.
Context: ...d. Set the inline prop to improve the positioning see the [Floating UI docs](https://floa...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~97-~97: Possible missing comma found.
Context: ...er can be set via the title or body props or the title and default slots. <<...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~104-~104: Possible missing comma found.
Context: ...recedence over the body and default slots and the slots (as always) take preceden...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build
🔇 Additional comments (1)
apps/docs/src/docs/components/tooltip.md (1)

67-70: Placement list looks good – conventions now correct
top-start / top-end etc. match floating-ui nomenclature.

Copy link

@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: 0

♻️ Duplicate comments (1)
apps/docs/src/docs/components/tooltip.md (1)

5-7: Fix wrong link, extra brackets & copy-paste error
The directive typo was fixed, but the following issues remain:

  1. Text still says “Popovers” although the context is tooltips.
  2. The markdown link is malformed (<(/docs/composables/useTooltipController)>).
  3. It points to a non-existent Tooltip controller; the correct composable is usePopoverController.
-or [`v-b-tooltip`](/docs/directives/btooltip) directive. Popovers can also be created and programmatically controlled via the composable
-[`usePopoverController`](<(/docs/composables/useTooltipController)>)
+or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be programmatically controlled via the composable
+[`usePopoverController`](/docs/composables/usePopoverController)
🧹 Nitpick comments (1)
apps/docs/src/docs/components/tooltip.md (1)

100-103: Minor wording & comma nits for readability

-Unlike [popover content](/docs/components/popover#content) which has a separate title and body, tooltips only
-have one place to place content. The `title` prop and slot take precedence over the `body` and `default`
-slots and the slots (as always) take precedence over the props.
+Unlike [popover content](/docs/components/popover#content), which has separate title and body areas, tooltips only
+have a single content area. The `title` prop and slot take precedence over the `body` and `default`
+slots, and the slots (as always) take precedence over the props.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e2d7732 and abef743.

📒 Files selected for processing (1)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.297Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
apps/docs/src/docs/components/tooltip.md (8)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.297Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
🪛 LanguageTool
apps/docs/src/docs/components/tooltip.md

[uncategorized] ~97-~97: Possible missing comma found.
Context: ...ip can be set via the title or body props or the title or default slots. :::...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~102-~102: Possible missing comma found.
Context: ...recedence over the body and default slots and the slots (as always) take preceden...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build
🔇 Additional comments (1)
apps/docs/src/docs/components/tooltip.md (1)

17-21: ```shell
#!/usr/bin/env bash
set -e

1. Locate the tooltip markdown file

echo "🔍 Finding tooltip.md..."
MD_FILE=$(fd --ignore-case --type f tooltip.md | head -n1)
echo "Markdown file: $MD_FILE"

2. Show the first 30 lines of the markdown for context

echo "🔍 Showing top of the markdown:"
sed -n '1,30p' "$MD_FILE"

3. Find all component files with “Tooltip” in their names

echo "🔍 Listing component files named Tooltip:"
fd --ignore-case --type f tooltip

4. For each Tooltip component file, print the first 50 lines

for f in $(fd --ignore-case --type f tooltip); do
echo "---- File: $f ----"
sed -n '1,50p' "$f"
done

5. Search codebase for margin-related props in Tooltip

echo "🔍 Searching for margin-related props in code:"
rg -C2 'margin' -g '.ts' || true


</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Copy link

@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: 0

♻️ Duplicate comments (1)
apps/docs/src/docs/components/tooltip.md (1)

5-7: Malformed link & wrong composable name still present

The anchor is wrapped in the odd <( … )> construct and it points to the non-existent useTooltipController.
This was raised earlier but has not been applied.

-or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be created and programmatically controlled via the composable
-[`usePopoverController`](<(/docs/composables/useTooltipController)>)
+or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be created and programmatically controlled via the composable
+[`usePopoverController`](/docs/composables/usePopoverController)
🧹 Nitpick comments (2)
apps/docs/src/docs/components/tooltip.md (2)

17-20: Typo: kideMarginhideMargin (or the correct prop name)

kideMargin isn’t a documented prop; it looks like a simple misspelling.

-  - kideMargin is 0
+  - hideMargin is 0

Double-check the actual prop name in BPopover to avoid confusing users.


97-103: Missing commas make the sentence hard to parse

Two quick punctuation tweaks improve readability.

-The content of a tooltip can be set via the `title` or `body` props or the `title`
-or `default` slots.
+The content of a tooltip can be set via the `title` or `body` props, or the `title`
+or `default` slots.
@@
-... over the `body` and `default` slots and the slots (as always) take precedence ...
+... over the `body` and `default` slots, and the slots (as always) take precedence ...
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between abef743 and 5e7c76b.

📒 Files selected for processing (1)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.297Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
apps/docs/src/docs/components/tooltip.md (8)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.297Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
🪛 LanguageTool
apps/docs/src/docs/components/tooltip.md

[uncategorized] ~97-~97: Possible missing comma found.
Context: ...ip can be set via the title or body props or the title or default slots. :::...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~102-~102: Possible missing comma found.
Context: ...recedence over the body and default slots and the slots (as always) take preceden...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build

Copy link

@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: 1

♻️ Duplicate comments (1)
apps/docs/src/docs/components/tooltip.md (1)

5-7: Fix incorrect composable link & stray brackets

usePopoverController is the correct composable, but the link still points to useTooltipController and is wrapped in an extra <( … )> pair.

-or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be created and programmatically controlled via the composable
-[`usePopoverController`](<(/docs/composables/useTooltipController)>)
+or [`v-b-tooltip`](/docs/directives/btooltip) directive. Tooltips can also be created and programmatically controlled via the composable
+[`usePopoverController`](/docs/composables/usePopoverController)
🧹 Nitpick comments (2)
apps/docs/src/docs/components/tooltip.md (2)

67-70: Ensure wording matches the updated placement list

You removed the obsolete *-left / *-right values—good—but line 69 still starts a new sentence with “options” after the comma, which reads awkwardly.

- options `auto`, `auto-start` and `auto-end`.
+plus the auto-placement options `auto`, `auto-start`, and `auto-end`.

97-104: Add missing commas for readability

Two compound sentences are missing commas after the first clause.

-The content of a tooltip can be set via the `title` or `body` props or the `title`
-or `default` slots.
+The content of a tooltip can be set via the `title` or `body` props, or the `title`
+or `default` slots.
@@
-have one place to place content. The `title` prop and slot take precedence over the `body` and `default`
-slots and the slots (as always) take precedence over the props.
+have one place to place content. The `title` prop and slot take precedence over the `body` and `default`
+slots, and the slots (as always) take precedence over the props.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5e7c76b and cba88b5.

📒 Files selected for processing (2)
  • apps/docs/src/docs/components/popover.md (6 hunks)
  • apps/docs/src/docs/components/tooltip.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/src/docs/components/popover.md
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.333Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
apps/docs/src/docs/components/tooltip.md (8)
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2762
File: apps/docs/src/docs/components/tooltip.md:0-0
Timestamp: 2025-06-26T19:46:19.333Z
Learning: BTooltip is a very thin wrapper around BPopover in bootstrap-vue-next. There is no separate `useTooltipController` composable - the `usePopoverController` composable can be used to programmatically control both popovers and tooltips.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:630-632
Timestamp: 2025-05-23T23:58:07.165Z
Learning: The `<NotYetImplemented/>` component in the bootstrap-vue-next documentation automatically renders text indicating "Not Yet Implemented", so additional explanatory text about features not being implemented is redundant when this component is used.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2701
File: apps/docs/src/docs/migration-guide.md:622-626
Timestamp: 2025-06-05T11:43:10.793Z
Learning: In migration guides, links to the old/previous version's documentation (like bootstrap-vue.org) are appropriate and helpful when explaining deprecated features, as they provide users with reference points for what they're migrating from.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2425
File: packages/bootstrap-vue-next/src/plugins/popoverController/index.ts:138-140
Timestamp: 2025-04-28T22:48:46.738Z
Learning: In bootstrap-vue-next, `PopoverOrchestratorParam` includes an `id` field of type `ControllerKey` through inheritance from base types. This field is declared in the `BvControllerOptions` interface and propagated through the type hierarchy.
Learnt from: dwgray
PR: bootstrap-vue-next/bootstrap-vue-next#2669
File: apps/docs/src/data/components/table.data.ts:334-336
Timestamp: 2025-04-24T20:35:48.629Z
Learning: The generic type parameter for table items should use the singular form `Item` rather than the plural `Items` to improve readability and follow TypeScript conventions. This change would primarily affect two files: `packages/bootstrap-vue-next/src/types/ComponentProps.ts` and `apps/docs/src/data/components/table.data.ts`.
Learnt from: VividLemon
PR: bootstrap-vue-next/bootstrap-vue-next#2691
File: packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts:85-86
Timestamp: 2025-05-26T17:28:35.902Z
Learning: In the `useBLinkTagResolver` function in `packages/bootstrap-vue-next/src/composables/useBLinkHelper.ts`, the `routerComponentName` parameter is required and typed as `MaybeRefOrGetter<string>`, ensuring it cannot be undefined.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:240-261
Timestamp: 2025-05-28T07:01:55.095Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the complex initialization logic with updateInitialActiveIndex and updateInitialActiveId flags is necessary for SSR compatibility. Tab initialization cannot be deferred to mounted lifecycle because tabs must be available for server-side rendering of the initial HTML state.
Learnt from: xvaara
PR: bootstrap-vue-next/bootstrap-vue-next#2716
File: packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue:384-404
Timestamp: 2025-05-28T07:57:19.915Z
Learning: In BTabs component (packages/bootstrap-vue-next/src/components/BTabs/BTabs.vue), the activeIndex and activeId watchers are intentionally designed with separation of concerns: activeIndex watcher handles activate-tab event emission and complex validation logic, while activeId watcher is kept simple for synchronization between activeId and activeIndex values only.
🪛 LanguageTool
apps/docs/src/docs/components/tooltip.md

[uncategorized] ~97-~97: Possible missing comma found.
Context: ...ip can be set via the title or body props or the title or default slots. :::...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~102-~102: Possible missing comma found.
Context: ...recedence over the body and default slots and the slots (as always) take preceden...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build

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.

Docs: BTooltip component needs to be documented
2 participants