Skip to contents

modBrowse 0.9.0

Major Changes

Bootstrap 5 Migration

  • BREAKING CHANGE: Migrated from Bootstrap 4 (bs4Dash) to Bootstrap 5 (bslib).
    • Removed dependency on bs4Dash package.
    • All UI components now use bslib equivalents.
    • Updated tooltip API to match bslib conventions.

Improvements

Dark Mode Support

  • BREAKING CHANGE: Removed Bootstrap 4 backward compatibility (.dark-mode selector).
  • Now exclusively uses Bootstrap 5 dark mode standard (html[data-bs-theme="dark"]).
  • Improved dark mode compatibility across all components.
  • Fixed hardcoded colors that broke dark mode theming.
  • Enhanced contrast for collection label badges in dark mode.

Code Quality

  • Replaced hardcoded colors with CSS variables for better maintainability.
  • Extracted inline styles to CSS classes.
  • Created reusable helper functions for duplicate code patterns.
  • Simplified SVG placeholder URL encoding logic.
  • Added comprehensive error handling for badge asset fallback.

CSS Architecture

  • Introduced CSS variables for consistent theming.
  • Removed legacy .box selectors from bs4Dash era.
  • Added dedicated CSS files for component-specific styles.
  • Created --modbrowse-accent-rgb CSS variable for theme customization.

Bug Fixes

  • Fixed badge asset fallback logic with proper error handling.
  • Corrected tooltip placement and functionality with shinyNextUI components.
  • Resolved CSS selector specificity issues.

Internal Changes

  • Added .onLoad() function documentation for badge asset fallback.
  • Created utils-badges.R with shared badge rendering functions.
  • Improved code organization and modularity.
  • Updated GitHub Copilot instructions to reflect new dependencies.

Migration Guide

For developers upgrading from versions < 0.9.0:

  1. Update Dependencies: Remove bs4Dash from your package dependencies and add bslib.
  2. Update UI Components:
    • Replace bs4Dash::box() with bslib::card().
    • Update tooltip calls from tooltip(element, title=) to tooltip(trigger=element, text).
  3. CSS Updates: Review any custom CSS that targets bs4Dash-specific classes.
  4. Dark Mode: Test your application with both dark mode selectors to ensure compatibility.

Known Issues

  • Visual regression testing across all browsers pending.
  • Some advanced tooltip features may require additional configuration.

Contributors

  • Bobby Fatemi (@bobby) - Primary developer and migration lead

modBrowse 0.9.1

Improvements

  • Migrated to {artshiny} for shared UI components (wait_art_html()).
  • Updated AGENTS.md documentation structure.

Bug Fixes

  • Fixed bslib::tooltip() API usage across module components.
  • Corrected spacing and overflow issues in modBrowse layout.

modBrowse 0.9.2

Maintenance

  • Reorganized test files to tests/testthat/legacy/ folder.
  • Updated GitHub Actions workflows for consistency across platform packages.
  • Standardized package installation commands to use {pak}.

modBrowse 0.9.3

Documentation Modernization

This release modernizes all package documentation to meet Artalytics standards, matching the quality bar established by {modGallery}. Future agents can use this documentation to fully understand and maintain the package without external context.

New Features

Documentation

  • Added complete roxygen documentation to all exported functions with:

    • Explicit @description blocks explaining purpose and usage context
    • Quality @param documentation (Type + Format + Source + Purpose pattern)
    • @family tags for pkgdown reference grouping
    • @return documentation with structure details
    • @examples with \dontrun{} wrappers
  • Created pkgdown site configuration (_pkgdown.yml) using {templ.pkgdown}.

  • Added three comprehensive vignettes:

    • modBrowse.qmd - Get Started guide with ecosystem context
    • developer-guide.qmd - Full integration workflow and customization
    • module-architecture.qmd - Internal design and extension points
  • Rewrote README.md with:

    • Environment variables section (inherited from {artcore})
    • Quick example with reactive data setup
    • Package hierarchy diagram
    • Key features list
    • Documentation links
  • Created new AGENTS.md following {modGallery} pattern with:

    • Shiny module package requirements checklist
    • Sub-module documentation
    • Reactive data structure reference
    • Environment variable verification guidance

Internal

  • Enhanced internal function documentation (@noRd with developer context).
  • Added TODO comments for future naming convention standardization.

Breaking Changes

None. This release is documentation-only with newly exported helpers.

For Future Agents

This release establishes the modernization pattern for other mod* packages. Key files to study: _pkgdown.yml, AGENTS.md, vignettes/, and roxygen blocks in R/*.R. The documentation is designed to fully onboard a new agent to “code owner, maintainer, expert, and lead developer” status using only content within this repository.