Skip to content

Conversation

@dwgray
Copy link
Member

@dwgray dwgray commented Jun 23, 2025

Describe the PR

  • document the different was to programmatically change tabs
  • add examples
  • update migration guide to reflect the changes to models
  • clean up
  • update parity report
  • list changed event as deprecated and add some notes to the migration guide about our guidelines for deprecated
  • clean up out of date notyetimplemented and notyetdocumented comments
  • move to show for the examples that can be implemented that way

closes #2383 (by marking the final sub-issue as deprecated)

Small replication

A small replication or video walkthrough can help demonstrate the changes made. This is optional, but can help observe the intended changes. A mentioned issue that contains a replication also works.

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

  • New Features

    • Added new demos showcasing advanced tab controls, including activation via model and exposed methods, and demonstrating lazy and unmount-lazy tab content behavior.
    • Introduced support for unmounting lazy tab content when inactive.
  • Documentation

    • Updated tab component documentation to clarify lazy loading, unmounting behavior, keyboard navigation, and programmatic tab activation.
    • Expanded the migration guide with deprecation criteria, event handling clarifications, and updated tab usage details.
    • Enhanced tree-shaking guidance with recommendations for CSS and JavaScript optimization and explicit component imports.
  • Style

    • Simplified alert visibility syntax in tab demos for improved readability.
  • Refactor

    • Adjusted tab component property definitions for improved maintainability.

@bolt-new-by-stackblitz
Copy link

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 23, 2025

Walkthrough

This set of changes introduces new Vue demo components for various tab control scenarios, updates tab documentation and migration guides, and modifies how the unmountLazy prop is handled in the BTab component data. The documentation and demos now reflect improved lazy tab mounting/unmounting behavior and new tab activation control methods.

Changes

File(s) Change Summary
apps/docs/src/data/components/tabs.data.ts Refactored: unmountLazy prop is now included via showHideProps spread, not explicitly defined.
apps/docs/src/docs/components/demo/TabsActiveModelControl.vue,
TabsExposedMethodControl.vue,
TabsUnmountLazy.vue
Added new Vue demo components for tab activation via model, exposed methods, and lazy unmounting.
apps/docs/src/docs/components/demo/TabsModelControl.vue Enhanced: Added id-based tab selection and dual v-model binding for tab index and id.
apps/docs/src/docs/components/demo/TabsLazy.vue,
TabsLazyAll.vue
Simplified alert visibility: replaced :model-value="true" with show attribute on <BAlert>.
apps/docs/src/docs/components/tabs.md Updated documentation: clarified lazy/unmounting behavior, keyboard navigation, and activation APIs.
apps/docs/src/docs/migration-guide.md Expanded migration guide: added deprecation policy, clarified events and tab model handling.
apps/docs/src/docs.md Expanded tree-shaking documentation with guidance on CSS and exposed methods imports.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant BTabs
    participant BTab

    User->>BTabs: Interact with tab controls (button, model, method)
    BTabs->>BTab: Activate tab (by index or id)
    BTab-->>BTabs: Emits active state change
    BTabs-->>User: Updates displayed active tab and info
Loading
sequenceDiagram
    participant User
    participant BTabs
    participant BTab

    User->>BTab: Switches to lazy tab
    BTab->>BTab: Mounts content (if not already mounted)
    User->>BTab: Switches away from lazy tab
    BTab->>BTab: Unmounts content (if unmountLazy is set)
Loading

Assessment against linked issues

Objective Addressed Explanation
Implement unmountLazy on BTab and use useShowHide (2383)
Update documentation to clarify lazy/unmounting behavior and keyboard navigation (2383)
Add demos for external tab control (model, exposed methods, unmountLazy) (2383)
Add id-based tab selection and dual v-model for BTabs (2383)
Implement changed event for BTabs (2383) The changed event is marked as deprecated in docs, but there is no implementation added.

Assessment against linked issues: Out-of-scope changes

Code Change Explanation
Addition of deprecation policy and native events section in migration guide (apps/docs/src/docs/migration-guide.md) These documentation updates are general clarifications and not directly related to BTabs issues (#2383).

Possibly related PRs

Poem

In the garden of tabs, new features grow,
With lazy leaves that come and go.
Demos sprout for every need,
Docs refreshed for all to read.
A bunny hops with joy today—
Tab control made easy, in every way!
🐇✨


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
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (1)
apps/docs/src/docs/components/demo/TabsModelControl.vue (1)

51-54: Consider improving TypeScript typing for tabId.

The tabId ref could benefit from better TypeScript typing to indicate it can be either undefined or a string:

-import {type BTab} from 'bootstrap-vue-next'
+// Remove unused import

-const tabId = ref(undefined)
+const tabId = ref<string | undefined>(undefined)
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 30a9175 and 5773288.

📒 Files selected for processing (9)
  • apps/docs/src/data/components/tabs.data.ts (1 hunks)
  • apps/docs/src/docs/components/demo/TabsActiveModelControl.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TabsExposedMethodControl.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TabsLazy.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TabsLazyAll.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TabsModelControl.vue (2 hunks)
  • apps/docs/src/docs/components/demo/TabsUnmountLazy.vue (1 hunks)
  • apps/docs/src/docs/components/tabs.md (4 hunks)
  • apps/docs/src/docs/migration-guide.md (4 hunks)
🧰 Additional context used
🧠 Learnings (5)
apps/docs/src/docs/components/demo/TabsModelControl.vue (2)
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.
apps/docs/src/docs/migration-guide.md (1)
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/TabsActiveModelControl.vue (2)
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/TabsExposedMethodControl.vue (2)
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/tabs.md (2)
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.
🧬 Code Graph Analysis (1)
apps/docs/src/data/components/tabs.data.ts (1)
apps/docs/src/utils/index.ts (2)
  • pick (4-4)
  • showHideProps (8-8)
🪛 LanguageTool
apps/docs/src/docs/migration-guide.md

[grammar] ~43-~43: Do not use two subject personal pronouns together.
Context: ...ture is deprecated in Bbootstrap 5 - If we we believe that this functionality can as ...

(PRP_PRP)

apps/docs/src/docs/components/tabs.md

[grammar] ~85-~85: It appears that the verb form is incorrect or a word is missing.
Context: ...fault tabs variant, you may want to provided your own custom styling classes, as Boo...

(HAS_TO_APPROVED_BY)

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

41-41: Good refactoring to consolidate prop definitions.

Using the showHideProps utility with pick to include lazy and unmountLazy props improves code maintainability and ensures consistency across components that share these common properties.

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

7-8: Good simplification of alert visibility.

Replacing :model-value="true" with the simpler show attribute improves readability while maintaining the same functionality. This follows Vue best practices for boolean props.

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

5-5: Good consistency with other demo files.

The simplification from :model-value="true" to show maintains consistency with similar changes in other tab demo components while improving readability.

Also applies to: 11-11

apps/docs/src/docs/components/demo/TabsModelControl.vue (2)

6-7: Good demonstration of dual v-model binding.

The implementation correctly shows how to use both index-based (v-model:index) and id-based (v-model) tab control, which provides a comprehensive example for users.


11-33: Well-structured tab IDs for dual binding demo.

The unique id attributes on each BTab component properly support the id-based v-model binding and create a clear relationship between tab content and their identifiers.

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

37-47: Well-structured deprecation guidelines.

The new deprecation section clearly explains the criteria for marking features as deprecated, which will help users understand the library's evolution and decision-making process.


66-70: Clear explanation of native events policy.

The native events section provides good context for why certain events aren't explicitly documented, maintaining consistency between docs and code.


793-798: BTabs migration information is accurate and helpful.

The updates correctly reflect the v-model changes and deprecation of the changed event, aligning with the PR objectives.

apps/docs/src/docs/components/demo/TabsExposedMethodControl.vue (3)

1-69: Excellent demo implementation for exposed method control.

This component effectively demonstrates the new programmatic tab activation approach using exposed methods. The implementation follows Vue 3 Composition API best practices with proper TypeScript usage and template refs.


65-68: Proper use of useTemplateRef for accessing component instances.

The use of useTemplateRef correctly establishes references to tab components, enabling access to their exposed methods like .activate().


6-7: Dual v-model binding demonstrates new API effectively.

The combination of v-model:index and v-model (for ID) clearly shows how to track both tab index and ID, which aligns with the migration guide updates.

apps/docs/src/docs/components/demo/TabsActiveModelControl.vue (3)

1-66: Well-implemented demo for active model control.

This component effectively demonstrates controlling tabs via the v-model:active approach. The implementation is clean and follows Vue 3 Composition API patterns consistently.


13-34: Proper use of v-model:active for individual tab control.

Each tab correctly uses v-model:active to bind to its corresponding reactive boolean, demonstrating the granular control available with this approach.


62-65: Appropriate reactive state initialization.

The boolean refs are correctly initialized with only the first tab active, providing a clear starting state for the demo.

apps/docs/src/docs/components/tabs.md (3)

179-186: Clear clarification of lazy loading behavior.

The updated explanation of lazy loading and the new unmount-lazy prop provides much clearer guidance for users, removing the confusing bug reference and adding practical information.


222-229: Improved explanation of programmatic activation methods.

The updated text correctly describes the active boolean model approach and exposed methods, removing outdated references to .sync modifiers and improving clarity.


254-262: Excellent organization of demo examples.

The restructured examples section with three distinct approaches (v-model, active model, and exposed methods) provides comprehensive coverage of tab control mechanisms.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jun 23, 2025

bsvn-vite-ts

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

commit: a614631

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
apps/docs/src/docs.md (2)

398-404: Minor style & consistency polish for new “Tree-shaking” intro

The paragraph is clear, but wording can be tightened (“use” instead of “utilize”) and we can remove the redundant “Below are” preamble to keep docs concise.

-If you are concerned about the size of your application, you should utilize
-[tree-shaking](https://vuejs.org/guide/best-practices/performance#bundle-size-and-tree-shaking).
-Below are some pointers on optimizing tree-shaking in the context of BootstrapVueNext.
+If bundle size is a concern, take advantage of
+[tree-shaking](https://vuejs.org/guide/best-practices/performance#bundle-size-and-tree-shaking).
+The following tips focus on BootstrapVueNext.

418-426: Fix typo and streamline guidance on exposed methods

“doeing” → “doing”, drop the dangling comma, and use a single sentence for clarity.

-In order to correctly type exposed methods, you need to explicitly import them from BootstrapVueNext. When doeing this,
-import the component (not just the type) and use the full path to improve tree-shaking.
+To correctly type exposed methods, explicitly import the component (not just the type) from its full path to maximise tree-shaking.
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 33cd0d8 and a614631.

📒 Files selected for processing (4)
  • apps/docs/src/docs.md (2 hunks)
  • apps/docs/src/docs/components/demo/TabsActiveModelControl.vue (1 hunks)
  • apps/docs/src/docs/components/demo/TabsExposedMethodControl.vue (1 hunks)
  • apps/docs/src/docs/migration-guide.md (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • apps/docs/src/docs/migration-guide.md
  • apps/docs/src/docs/components/demo/TabsActiveModelControl.vue
  • apps/docs/src/docs/components/demo/TabsExposedMethodControl.vue
🧰 Additional context used
🪛 LanguageTool
apps/docs/src/docs.md

[style] ~417-~417: Consider a more concise word here.
Context: ... ### Exposed methods and tree-shaking In order to correctly type exposed methods, you nee...

(IN_ORDER_TO_PREMIUM)

@dwgray dwgray merged commit 02be37d into bootstrap-vue-next:main Jun 26, 2025
5 checks passed
xvaara added a commit to xvaara/bootstrap-vue-next that referenced this pull request Jul 29, 2025
* upstream/main:
  docs: clean up css selector
  docs: fix on-this-page when examples use header tags
  docs(migration): add component aliases guidelines (bootstrap-vue-next#2771)
  chore: upgrade dependencies and address all lint warnings (bootstrap-vue-next#2785)
  chore: release main (bootstrap-vue-next#2769)
  fix(BDropdown): prevent hydration warning in nuxt production mode (bootstrap-vue-next#2768)
  docs(BTabs): Updates based on v-model changes (bootstrap-vue-next#2760)
  docs(table): fix missing anchor in `BTableLite` and `BTableSimple` links (bootstrap-vue-next#2759)
  docs(BFormRating): Parity pass (bootstrap-vue-next#2749)
  docs: fix typo in breadcrumb documentation (bootstrap-vue-next#2756)
  docs: Fix empty-text and empty-filtered-text description as they require show-empty to be set (bootstrap-vue-next#2755)
  fix InputGroupXPend.vue
  chore: release main (bootstrap-vue-next#2748)
  feat: implement BFormRating component (bootstrap-vue-next#2744)
  chore: release main
  fix(BLink): move active class to BNavItem (bootstrap-vue-next#2747)
  feat(BDropdown): allow setting icon prop on nested BButton (bootstrap-vue-next#2746)
  fix(BToast): close BToast correctly if modelValue is changed from number to false (bootstrap-vue-next#2745)
xvaara added a commit that referenced this pull request Aug 19, 2025
…keover

* upstream/main: (21 commits)
  feat(b-form-rating): add `icon-clear` slot (#2809)
  docs: fix dead links, enable rule (#2808)
  chore: release main (#2801)
  docs: Fix navbar collapse behavior (#2802)
  docs: fix code tabs on getting started and icons pages (#2805)
  docs: fix missing data and use a stronger schema to catch missing errors (#2806)
  feat(BPopover): add explicit props for focus and hover triggers (#2795)
  fix(BNavbar): changed autoClose to noAutoClose and fix the documention mistake about it.
  fix: ssr in scrollspy
  docs: clean up css selector
  docs: fix on-this-page when examples use header tags
  docs(migration): add component aliases guidelines (#2771)
  chore: upgrade dependencies and address all lint warnings (#2785)
  chore: release main (#2769)
  fix(BDropdown): prevent hydration warning in nuxt production mode (#2768)
  docs(BTabs): Updates based on v-model changes (#2760)
  docs(table): fix missing anchor in `BTableLite` and `BTableSimple` links (#2759)
  docs(BFormRating): Parity pass (#2749)
  docs: fix typo in breadcrumb documentation (#2756)
  docs: Fix empty-text and empty-filtered-text description as they require show-empty to be set (#2755)
  ...
@coderabbitai coderabbitai bot mentioned this pull request Oct 1, 2025
6 tasks
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.

BTabs issues

2 participants