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. ###
bs4DashPage/dashboardPage - navbar
param becomes
header
. - Remove old_school
,
sidebar_mini
, sidebar_collapsed
,
controlbar_collapsed
, controlbar_overlay
,
enable_preloader
, loading_duration
and
loading_background
. These parameters move to
dashboardSidebar, controlbar … - New freshTheme
parameter
to pass {fresh}
powered themes. - New options
parameter to configure AdminLTE3. - New 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)