Shiny 0.9.0
Breaking Changes
-
@render.data_framereturn values ofDataTableandDataGridhad their parameter ofrow_selection: Literal["single", "multiple"]become deprecated. Please useselection_mode="row"orselection_mode="rows"instead. (#1198) -
The
col_widthsargument ofui.layout_columns()now sets thesmbreakpoint by default, rather than themdbreakpoint. For example,col_widths=(12, 6, 6)is now equivalent to{"sm": (12, 6, 6)}rather than{"md": (12, 6, 6)}. (#1222)
New features
-
Sessionobjects now have aset_message_handler(name, fn)method that allows you to register a message handler function that will be called when a request message with the given name is received from the client (viaShiny.shinyapp.makeRequest()(JS)). (#1253) -
Experimental:
@render.data_framereturn values ofDataTableandDataGridsupporteditable=Trueto enable editing of the data table cells. (#1198) -
ui.card()andui.value_box()now take anidargument that, when provided, is used to report the full screen state of the card or value box to the server. For example, when usingui.card(id = "my_card", full_screen = TRUE)you can determine if the card is currently in full screen mode by reading the boolean value ofinput.my_card_full_screen(). (#1215, #1266) -
Added support for using
shiny.expressin Quarto Dashboards. (#1217) -
ui.value_box(),ui.layout_columns()andui.layout_column_wrap()now all havemin_heightandmax_heightarguments. These are useful in filling layouts, likeui.page_fillable(),ui.page_sidebar(fillable=True)orui.page_navbar(fillable=True). For example, you can useui.layout_columns(min_height=300, max_height=500)to ensure that a set of items (likely arranged in a row of columns) are always between 300 and 500 pixels tall. (#1223) -
Added an error console which displays errors in the browser's UI. This is enabled by default when running applications locally, and can be disabled with
shiny run --no-dev-mode. It is not enabled for applications that are deployed to a server. (#1060) -
shiny createwas updated to include some additional templates as well as an option to choose from the new templates website. (#1273, #1277, #1274) -
shiny.express.ui.page_opts()now accepts additional keyword arguments that are passed to the underlying page layout chosen byshiny.ui.page_auto(). (#1314)
Bug fixes
-
On Windows, Shiny Express app files are now read in as UTF-8. (#1203)
-
input_dark_mode()now accepts astyleargument that can be used to customize the appearance and position of the dark mode toggle switch. (#1207) -
Calling
ui.update_selectize()withchoicesandselectednow clears the current selection before updating the choices and selected value. (#1221) -
Fixed an issue that could happen with a
ui.card()orui.value_box()that is rendered dynamically via@render.uiwhen an updated card replaces a card that the user has expanded into full screen mode. Now the full screen state is reset for the new card or value box. If you want to update a card without potentially exiting the full-screen mode, update specific parts of the card usingui.output_ui()orui.output_text(). (#1221) -
ui.layout_columns()now correctly applies therow_heightsat thexsbreakpoint, if supplied. (#1222) -
ui.panel_conditional()now adds the.shiny-panel-conditionalclass to the<div>element wrapping the conditional panel contents. (#1257) -
ui.panel_conditional()no longer results in unwanted double padding when the parent container usesgapfor spacing multiple elements (e.g., when used inui.layout_columns(),ui.page_fillable(), etc). (#1266) -
Error messages now use
var(--bs-danger)instead ofvar(--bs-danger-text-emphasis)for the text color. (#1266)
Other changes
- The fill CSS used by fillable containers (i.e. when
fillable=True) now uses a CSS cascade layer namedhtmltoolsto reduce the precedence order of the fill CSS. (#1228)