dashboardSidebar()
and dashboardControlbar()
default skin value is NULL.
This allows them to inherit from the parent dashboardPage()
dark parameter and have either
a full light or full dark skin. Therefore, it won't be possible anymore to apply a light sidebar background with the dashboardPage()
when the main theme is dark and inversely. If you want to do so, you have to set dark = NULL
, for instance:library(shiny)
library(bs4Dash)
shinyApp(
ui = dashboardPage(
dark = NULL,
header = dashboardHeader(
title = dashboardBrand(
title = "My dashboard",
color = "primary",
href = "https://adminlte.io/themes/v3",
image = "https://adminlte.io/themes/v3/dist/img/AdminLTELogo.png"
)
),
sidebar = dashboardSidebar(skin = "dark"),
body = dashboardBody(
box(status = "danger"),
box(status = "primary"),
box(status = "orange")
),
controlbar = dashboardControlbar(skin = "dark"),
title = "DashboardPage"
),
server = function(input, output) { }
)
headTitles
parameter from bs4Table()
.New navbar navigation menu.
navbarTab()
, navbarMenu()
and updateNavbarTabs()
to create navbar navigation.
This will close #108.dropdownHeader()
function to display Bootstrap 4 dropdown headers.dropdownDivider()
as it was invisible.tabItems()
has .list parameter to pass tabItem()
elements as list.tabBox()
. Increase padding for card with pills. Thanks @HugoGit39
for reporting.accordionItem()
with .list
parameter in accordion()
. Thanks @vladimirstroganov for reporting.menuItem
element) in the sidebar.help
parameter behavior in dashboardPage()
. If NULL, no icon is shown. If FALSE, icon and toggle are shown but not checked. If TRUE the toggle is checked.pagination()
and updatePagination()
. Bootstrap 4 implementation of
pagination.menuItem()
applied wrong class to any nested element that is not
a menuSubItem()
. Thanks @echoplaza for reporting.notificationItem()
href does not work.menuSubItems()
with apply() adds some extra text. Added .list
param to menuItem()
to programmatically pass menuSubItem()
as list.tabsetPanel()
renders below the list of tabPanels
when vertical = TRUE.
Changed layout to fluidRow
. Thanks @lucas-alcantara for reporting.valueBox()
and infoBox()
in the render function section.
Thanks @corderoortiz for reporting.data-toggle="tab"
when href
is not NULL in tabsetPanel()
. Thanks @veer0318 for reporting.tabsetPanel()
id's not properly generated when inserting tabs to non-empty tabset. Thanks @DarkSideOfTheMat for reporting and giving hints.{shiny}
and remove position
from tabsetPanel()
. This was long
time deprecated.bs4DashGallery()
and tabsetPanel()
. We now use bs4Dash::tabsetPanel()
.type = "hidden"
for tabsetPanel
. Fixes #248.renderMenu()
not working. See #234.list
param to tabBox()
to allow programmatically generated items, like
in tabsetPanel()
. Thanks @mtopartThis release is a patch to fix an issue preventing the release of Shiny 1.7.0.
{waiter}
package but no user impact. Thanks @JohnCoene.Patch to fix CRAN warning on Mac M1.
shiny:::processDeps
in favor of htmltools::renderTags
. Does not
impact end user.This is to align with shinydashboard and shinydashboardPlus.
navbar
param becomes header
.old_school
, sidebar_mini
, sidebar_collapsed
, controlbar_collapsed
,
controlbar_overlay
, enable_preloader
, loading_duration
and
loading_background
. These parameters move to dashboardSidebar, controlbar ...freshTheme
parameter to pass {fresh}
powered themes.options
parameter to configure AdminLTE3.preloader
to use {waiter}
as a preloading engine....
becomes left
.right_text
becomes right
.controlbarIcon
accepts shiny::icon
instead of the icon name.sidebarIcon
accepts shiny::icon
instead of the icon name.title
, titleWidth
and disable
src
becomes image
.collapsed
and overlay
.title
.inputId
to id
.inputId
becomes id
.updateControlbar
.session
is not mandatoryinputId
moved to the end.inputId
renamed to id
.collapsed
and minified
.width
.opacity
, title
, brandColor
, url
and src
.child_indent
becomes childIndent
..list
to pass programmatically generated bs4SidebarMenuItem
.href
and newTab
.icon
expects shiny::icon
.img
and text
become image
and name
, respectively.solidHeader
behavior.bs4Card()
. This is now part of
the new bs4CardSidebar()
.bs4Card()
. It is now part of the dropdownItemList()
.bs4Card()
. This is to reduce the number of parameters of cards.closable
is now FALSE for bs4Card()
.dropdownItemList
by cardDropdown
dropdownItemListItem
by cardDropdownItem
inputId
becomes id
.icon
expects shiny::icon
.solidHeader
behavior.status
becomes color
.icon
expects shiny::icon
.status
becomes color...
for subtitle
iconStatus
.href
and fill
.gradientColor
to gradient
.src
becomes image
.status
becomes color
.userBlock()
to pass on title.src
becomes image
.titleUrl
becomes href
.icon
expects shiny::icon
.tabBox()
from {shinydashboard}
badge
becomes badgeStatus
type
.shiny::icon
.labelText
by headerText
..list
and href
.align
.notificationItem()
and messageItem()
bs4Table()
API.bs4Stars()
: grade
and maxstar
, respectively become value
and grade
.listGroupItem()
, remove type
and put it in listGroup()
. src
becomes href
.status
becomes color
in blockQuote
.src
from carouselItem()
bs4Ribbon()
, status
becomes color
. Remove size
.bs4Badge()
, status
becomes color
.userMessage()
, src
becomes image
and side
becomes type
.timelineItemMedia()
, src
becomes image
.timelineItem()
, timelineStart()
and timelineEnd()
, icon
expects shiny::icon
.status
becomes color
in timelineItem()
, timelineLabel()
, timelineStart()
and timelineEnd()
.userPost()
and userPostMedia()
, src
becomes image
. Removed collapseStatus
.bs4Stars()
, status becomes color
.bs4ShowTab()
, bs4HideTab()
and bs4RemoveTab()
. shiny vanilla function should work well now.bs4TabPanel()
.bs4TabSetPanel()
becomes bs4TabsetPanel()
and is built on top of shiny::tabsetPanel
.cardProfile()
, add bordered
. src
becomes image
.cardProfileItemList()
.updatebs4TabSetPanel()
: selected takes the name of the tab instead of its index. This is more convenient (same as in shinydashboard)bs4InfoBox()
attachmentBlock()
title_url to titleUrl (to match with a new upcoming package...)descriptionBlock()
: number_color, number_icon, right_border and margin_bottom become
camel case parms (numberColor, numberIcon, rightBorder and marginBottom)descriptionBlock()
only need the name of the icon ('times') insteadbs4Jumbotron()
: btn_name becomes btnNameuserPost()
: collapse_status becomes collapseStatuseasyClose
param to boxSidebar()
to allow to close sidebar on outside-click. Thanks @predict42-patrick for the suggestion and JS code.gradient
parameter to valuebox()
.dashboardPage()
to automatically toggle all tooltips and popovers. Use
with bs4TooltipUI()
and bs4PopoverUI()
.useAutoColor()
leveraging new Shiny features and {thematic} to automatically
style plots depending on the dashboard background color.dashboardSidebar()
.dashboardPage()
.updateAccordion()
.actionButton()
is updated to provide Bootstrap 4 features.appButton()
.updateUserMessages()
.userList()
and userListItem()
.productList()
and productListItem()
.userDescription()
and userBlock()
.skinSelector
.dashboardUserItem()
, userOutput()
and renderUser()
.bs4DashBrand
for better dashboard titles.bs4ShowTab()
and bs4HideTab()
: thanks @fmmattioni for the reminder ;)bs4CardLayout()
: simplify the way to deal with bs4Card()
!bs4CloseAlert()
: programmatically close bs4Alert()
bs4Toast()
: include the builtin AdminLTE3 toasts!bs4SidebarMenuItem()
and bs4SidebarMenuSubItem()
at start.bs4DropdownMenuItem()
may act as an actionButtonbs4Card()
is maximized, the collapsible icon is hidden (does not make sense to have it)bs4CardLabel()
to add text labels in bs4Card()
bs4CardSidebar()
: access the status via input$id. Add updatebs4CardSidebar()
to toggle the card sidebarbs4PopoverServer()
, bs4PopoverUI()
, bs4TooltipUI()
and bs4TooltipServer()
bs4TabSetPanel()
: you may access the currently selected tab with input$idbs4TabSetPanel()
and bs4TabCard()
so as to select
between pills or tabs (cosmetic choice). If type is not provided, the behaviour is unchanged (pills are the default)bs4DashFooter()
bs4DashSidebar()
. Thanks @mppallantebs4DashNavbar()
. This is reintroduced by adminlte with a new css class namebs4ProgressBar()
bs4InfoBox()
to allow icon color
to be independant from the card status (https://adminlte.io/themes/v3/pages/widgets.html). Thanks @rolando-gswbs4Sortable()
is initialized each time a new sortable element is added. Fixes #198.taskItem()
.indicators
and .list
to carousel()
.insertTab()
is using more shiny vanilla elements.bs4UserMenu()
does not close when clicked inside.bs4SidebarMenu()
: to use old AdminLTE2 styling for
item selectionbs4DashControlbar()
when it is opened will close it.
To keep it open, see belowbs4DashControlbar()
: allow to block the controlbar statebs4SidebarMenuItem
to align with shinydashboardbs4TabSetPanel()
by defaultbs4TabSetPanel()
bs4TabPanel()
param order to align with shinybs4Table()
API.hidden
type is not available for bs4Dash::tabsetPanel
that uses an old version of the
shiny::tabsetPanel
. Thanks @zilch42.bs4Controlbar()
now collapse when clicked outside, clicking on an input triggering the updatebs4Controlbar()
would toggle it twice. Thanks @dwhdaisliderInput
z-index and bs4DashPage()
preloader. Thanks @analytichealth for the reportbs4DashSidebar()
url link. Thanks @pvictorbs4Alert()
bs4DropdownMenu()
examplebs4InsertTab()
bs4DashControlbar()
so that
renderUI
works. Thanks @artemklevtsovupdatebs4TabSetPanel()
with renderUI
. Thanks @jyjekbs4SidebarMenuItem()
. See https://github.com/RinteRface/bs4Dash/issues/35. Thanks @aldomannbs4DashNavbar()
since it does not exist in the new
AdminLTE versionbs4DropdownMenuItem
: change text to message, date to time. Add new params: from, src, status and type.bs4DashSidebar()
input binding to indicate the state (collapse: FALSE, open: TRUE) as well as
updatebs4Sidebar()
to programmatically toggle its statebs4Controlbar()
input binding to indicate the state (collapse: FALSE, open: TRUE) as well as
updatebs4Controlbar()
to programmatically toggle its statebs4Card()
input binding to indicate the state (collapse: FALSE, open: TRUE, maximize, closed, ...) as well as
updatebs4Card()
to programmatically toggle its statebs4InsertTab()
to programmatically insert bs4TabPanel()
in bs4TabSetPanel()
bs4RemoveTab()
to programmatically remove bs4TabPanel()
in bs4TabSetPanel()
bs4DashPage()
has a new sidebar_mini parameter. When TRUE, the sidebar has a minimum
width when collapsed (you still see icons). When false, it behaves like in shinydashboardbs4InfoBox()
can now navigate between tabs if the tabName parameter is specified. It must however correspond
to an existing bs4TabItem()
in the body!bs4ValueBox()
has a footer argument. It is different from the href parameter. Thanks @stefanfritschbs4DashSidebar()
bs4DashNavbar()
to reduce the navbar sizegetAdminLTEColors()
to preview all available color themesbs4DashSidebar()
has a fixed layout. This prevent from not seeing sidebar items
if the body contains too many elementsbs4DashPage()
has options to change the bs4Controlbar()
behavior when it expands (see controlbar_overlay)bs4SidebarMenu()
has 3 new parameters: flat (design effect), child_indent and compactbs4Card()
bs4UserMenu()
for bs4DashNavbar()
bs4Ribbon()
, a sort of enhanced label for cards or any contentbs4Quote()
, an improved blockquote tag for Bootstrap 4bs4Card()
. Thanks @analytichealthcolumn()
function from Shiny to make it work with Bootstrap 4. Thanks @federicomarinibs4DashNavbar()
background color issue.bs4DashBody()
so that when no element is in the sidebar and no tabItems
are in the body, margin between the sidebar, the controlbar is not 0bs4Jumbotron()
, do not show a button. Thanks @davidlvbbs4ProgressBar()
: remove height and width parameters. Add size parameter. This
fix the progress behaviour which was wrongbs4DashControlbarMenu()
, bs4DashControlbarItem()
and updatebs4ControlbarMenu()
updatebs4TabItems()
and updateTabItems()
to programatically update the selected
sidebar tab and the corresponding body tabupdatebs4TabSetPanel()
and updateTabsetPanel()
(aliases) to dynamically update bs4TabSetPanel()
from
the server sidebs4Card()
and bs4TabCard()
. In other words, allow full screen optionbs4SidebarMenu()
. Now by adding an id to the menu,
the user can recover the currently selected tab. Thanks @rpodcastbs4DashPage()
can also be dashboardPage()
bs4TabSetPanel()
bs4SidebarMenuSubItem()
bs4Table()
, bs4TableItems()
and bs4TableItem()
bs4SidebarMenuItem()
bs4SidebarMenuSubItem()
bs4DashSidebar()
and bs4DashControlbar()
. Thanks @jamiebonouserPost()
bs4SidebarMenuItem()
bs4TabSetPanel()
to the gallerybs4TabCard()
bs4InfoBox()
class. Thanks @henry090.bs4DashControlbar()
toggle if no bs4DashControlbar()
is given in bs4DashPage()
attachmentBlock()
image (and replace http by https)bs4TabSetPanel()
and bs4TabCard()
. bs4TabSetPanel()
can now be used independently of bs4TabCard()
.
Need to provide id argument to bs4TabCard()
.bs4DashPage()
bs4TabCard()
. Buttons visible by default. PR by @statnmapbs4DashPage()
bs4Sortable()
and all necessary javascript dependenciesuserPost()
, userPostMedia()
, userPostTagItems()
and userPostTagItem()
userMessages()
and userMessage()
descriptionBlock()
, attachmentBlock()
and cardPad()
bs4SidebarUserPanel()
cardProfile()
, cardProfileItemList()
and cardProfileItem()
bs4SocialCard()
and cardComment()
userPost()
bs4Card()
to enable or disable overflowbs4Card()
footer when footer is NULLbs4Accordion()
: click on 1 item collapse all other items in the same accordion
add an id argument.bs4DashPage()
bs4TabCard()
. Thanks @stephLHbs4DashControlbar()
. Thanks @stephLHbs4TabCard()
max-height attribute. Thanks @stephLHbs4DropdownMenu()
, add id arg to bs4DashControlbar()
PR by @bjornlindbs4TabCard()
. PR by @statnmapbs4Card()
starts on a collapsed state, the content is displayed when
uncollapsed is pressed. Thanks @stanmap for the remark. (See here for a similar issue)bs4Card()
: the collapse icon changes to + and - depending on the current collapse status.bs4DropdownMenu()
bs4TabPanel()
: handle tabName with space and with punctuation characters. Thanks @stephLHbs4TabCard()
: when the user set 2 or more active tabs at the same time, only
the first one is selectedbs4TabCard()
, as they have the same class (tab-pane).bs4Card()
bs4ValueBox()
footer is not shown when the external link is NULLbs4ValueBox()
external link opens in a new pagebs4DashPage()
to control the sidebar opening at startbs4DashGallery()
. Add a "theme" argumentionicon()
(implementation of ionicons)bs4DashNavbar()
(#7, thanks @theRcast)