You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+37-15Lines changed: 37 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,79 +8,101 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
9
9
## [UNRELEASED]
10
10
11
+
### Breaking Changes
12
+
*`shiny.run` only allows positional arguments for `app`, `host`, and `port`, all other arguments must be specified with keywords.
13
+
11
14
### New features
12
15
*`shiny run` now takes `reload-includes` and `reload-excludes` to allow you to define which files trigger a reload (#780).
13
16
*`shiny.run` now passes keyword arguments to `uvicorn.run` (#780).
14
17
* The `@output` decorator is no longer required for rendering functions; `@render.xxx` decorators now register themselves automatically. You can still use `@output` explicitly if you need to set specific output options (#747).
15
18
* Added support for integration with Quarto (#746).
16
19
* Added `shiny.render.renderer_components` decorator to help create new output renderers (#621).
17
-
* Added `shiny.experimental.ui.popover()`, `update_popover()`, and `toggle_popover()` for easy creation (and server-side updating) of [Bootstrap popovers](https://getbootstrap.com/docs/5.2/components/popovers/). Popovers are similar to tooltips, but are more persistent, and should primarily be used with button-like UI elements (e.g. `input_action_button()` or icons) (#680).
20
+
* Added `shiny.experimental.ui.popover()`, `update_popover()`, and `toggle_popover()` for easy creation (and server-side updating) of [Bootstrap popovers](https://getbootstrap.com/docs/5.3/components/popovers/). Popovers are similar to tooltips, but are more persistent, and should primarily be used with button-like UI elements (e.g. `input_action_button()` or icons) (#680).
18
21
* Added CSS classes to UI input methods (#680) .
19
22
*`Session` objects can now accept an asynchronous (or synchronous) function for `.on_flush(fn=)`, `.on_flushed(fn=)`, and `.on_ended(fn=)` (#686).
20
23
*`App()` now allows `static_assets` to represent multiple paths. To do this, pass in a dictionary instead of a string (#763).
24
+
* The `showcase_layout` argument of `value_box()` now accepts one of three character values: `"left center"`, `"top right"`, `"bottom"`. (#772)
25
+
*`value_box()` now supports many new themes and styles, or fully customizable themes using the new `value_box_theme()` function. To reflect the new capabilities, we've replaced `theme_color` with a new `theme` argument. The previous argument will continue work as expected, but with a deprecation warning. (#772)
26
+
27
+
In addition to the Bootstrap theme names (`primary` ,`secondary`, etc.), you can now use the main Boostrap colors (`purple`, `blue`, `red`, etc.). You can also choose to apply the color to the background or foreground by prepending a `bg-` or `text-` prefix to the theme or color name. Finally, we've also added new gradient themes allowing you to pair any two color names as `bg-gradient-{from}-{to}` (e.g., `bg-gradient-purple-blue`).
28
+
29
+
These named color themes aren't limited to value boxes: because they're powered by small utility classes, you can use them anywhere within your bslib-powered UI.
30
+
31
+
* Added `shiny.ui.showcase_bottom()`, a new `shiny.ui.value_box()` layout that places the showcase below the value box `title` and `value`, perfect for a full-bleed plot. (#772)
21
32
22
33
### API changes
23
34
35
+
* Added `shiny.ui.navset_underline()` and `shiny.ui.navset_card_underline()` whose navigation container is similar to `shiny.ui.navset_tab()` and `shiny.ui.navset_card_tab()` respectively, but its active/focused navigation links are styled with an underline. (#772)
36
+
*`shiny.ui.layout_column_wrap(width, *args)` was rearranged to `shiny.ui.layout_column_wrap(*args, width)`. Now, `width` will default to `200px` is no value is provided. (#772)
37
+
*`shiny.ui.showcase_left_center()` and `shiny.ui.showcase_top_right()` no longer take two values for the `width` argument. Instead, they now take a single value (e.g., `width = "30%"`) representing the width of the showcase are in the value box. Furthermore, they've both gained `width_full_screen` arguments that determine the width of the showcase area when the value box is expanded to fill the screen. (#772)
38
+
39
+
24
40
* TODO-barret-API; `shiny.ui.panel_main()` and `shiny.ui.panel_sidebar()` are deprecated in favor of new API for `shiny.ui.layout_sidebar()`. Please use `shiny.ui.sidebar()` to construct a sidebar and supply it (along with the main content) to `shiny.ui.layout_sidebar(*args, **kwargs)`. (#680)
25
41
26
42
#### API relocations
27
43
28
-
*`shiny.ui`'s `navset_pill_card()` and `navset_tab_card()` have been renamed to `.navset_card_pill()` and `navset_tab_card()` respectively (#492).
44
+
*`shiny.ui`'s `navset_pill_card()` and `navset_tab_card()` have been renamed to `navset_card_pill()` and `navset_card_tab()` respectively (#492).
29
45
30
46
The following methods have been moved from `shiny.experimental.ui` and integrated into `shiny.ui` (final locations under `shiny.ui` are displayed) (#680):
*`shiny run` now respects the user provided `reload-dir` argument (#765).
79
+
*`card(wrapper=)`: A function (which returns a UI element) to call on unnamed arguments in `card(*args)` which are not already `shiny.ui.CardItem` objects.
80
+
*`card_body()`: A container for grouping related UI elements together
81
+
*`card_image()`: A general container for an image within a `shiny.ui.card`.
82
+
*`card_title()`: A general container for the "title" of a `shiny.ui.card`.
65
83
66
84
#### API removals
67
85
68
86
*`shiny.experimental.ui.FillingLayout` has been removed. (#481)
87
+
*`shiny.experimental.ui.as_width_unit()` has been made defunct. Please remove it from your code. (#772)
69
88
* Support for `min_height=`, `max_height=`, and `gap=` in `shiny.experimental.ui.as_fillable_container()` and `as_fill_item()` has been removed. (#481)
70
89
*`shiny.experimental.ui.TagCallable` has been deprecated. Its type is equivalent to `htmltools.TagFunction`. (#680)
71
-
*`shiny.eperimental.ui.as_fill_carrier()` and `shiny.eperimental.ui.is_fill_carrier()` have been deprecated. Please use `shiny.ui.fill.as_fill_item()` and `shiny.ui.fill.as_fillable_container()` or `shiny.ui.fill.is_fill_item()` and `shiny.ui.fill.is_fillable_container()` respectively in combination to achieve similar behavior. (#680)
90
+
*`shiny.experimental.ui.as_fill_carrier()` and `shiny.experimental.ui.is_fill_carrier()` have been deprecated. Please use `shiny.ui.fill.as_fill_item()` and `shiny.ui.fill.as_fillable_container()` or `shiny.ui.fill.is_fill_item()` and `shiny.ui.fill.is_fillable_container()` respectively in combination to achieve similar behavior. (#680)
72
91
73
92
### Bug fixes
74
93
94
+
*`shiny run` now respects the user provided `reload-dir` argument (#765).
75
95
* Fixed #646: Wrap bare value box value in `<p />` tags. (#668)
76
96
* Fixed #676: The `render.data_frame` selection feature was underdocumented and buggy (sometimes returning `None` as a row identifier if the pandas data frame's index had gaps in it). With this release, the selection is consistently a tuple of the 0-based row numbers of the selected rows--or `None` if no rows are selected. (#677)
77
97
* Added tests to verify that ui input methods, ui labels, ui update (value) methods, and ui output methods work within modules (#696).
78
98
* Adjusted the `@render.plot` input type to be `object` to allow for any object (if any) to be returned (#712).
99
+
* In `layout_column_wrap()`, when `width` is a CSS unit -- e.g. `width = "400px"` or `width = "25%"` -- and `fixed_width = FALSE`, `layout_column_wrap()` will ensure that the columns are at least `width` wide, unless the parent container is narrower than `width`. (#772)
79
100
80
101
### Other changes
81
102
82
-
### Breaking Changes
83
-
*`shiny.run` only allows positional arguments for `app`, `host`, and `port`, all other arguments must be specified with keywords.
103
+
*`layout_sidebar()` now uses an `<aside>` element for the sidebar's container and a `<header>` element for the sidebar title. The classes of each element remain the same, but the semantic meaning of the elements is now better reflected in the HTML markup. (#772)
104
+
*`layout_sidebar()` no longer gives the sidebar main content area the `role="main"` attribute. (#772)
105
+
* Improved the style and appearance of the button to enter full screen in `card()`s and `value_box()`es to better adapt to Bootstrap's dark mode. (#772)
Copy file name to clipboardExpand all lines: docs/_quartodoc.yml
+16-15Lines changed: 16 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ quartodoc:
19
19
- ui.page_fluid
20
20
- ui.page_fixed
21
21
- ui.page_bootstrap
22
-
- title: UI Layout
22
+
- title: UI Layouts
23
23
desc: Control the layout of multiple UI components.
24
24
contents:
25
25
- ui.sidebar
@@ -28,7 +28,6 @@ quartodoc:
28
28
- ui.card
29
29
- ui.card_header
30
30
- ui.card_footer
31
-
- ui.value_box
32
31
- ui.popover
33
32
- ui.tooltip
34
33
- ui.accordion
@@ -53,18 +52,30 @@ quartodoc:
53
52
- ui.input_password
54
53
- ui.input_action_button
55
54
- ui.input_action_link
55
+
- title: Value boxes
56
+
desc: Prominently display a value and label in a box that can be expanded to show more information.
57
+
contents:
58
+
- ui.value_box
59
+
- ui.value_box_theme
60
+
- ui.showcase_bottom
61
+
- ui.showcase_left_center
62
+
- ui.showcase_top_right
63
+
- ui.ValueBoxTheme
64
+
- ui.ShowcaseLayout
56
65
- title: Navigation (tab) panels
57
66
desc: Create segments of UI content.
58
67
contents:
59
68
- ui.nav
60
69
- ui.nav_control
61
70
- ui.nav_spacer
62
71
- ui.nav_menu
63
-
- ui.navset_tab
64
72
- ui.navset_bar
65
-
- ui.navset_card_tab
73
+
- ui.navset_tab
66
74
- ui.navset_pill
75
+
- ui.navset_underline
76
+
- ui.navset_card_tab
67
77
- ui.navset_card_pill
78
+
- ui.navset_card_underline
68
79
- ui.navset_pill_list
69
80
- ui.navset_hidden
70
81
- title: UI panels
@@ -277,21 +288,11 @@ quartodoc:
277
288
path: ExCard
278
289
summary:
279
290
name: "Card"
280
-
desc: "Cards are a common organizing unit for modern user interfaces (UI). At their core, they’re just rectangular containers with borders and padding. However, when utilized properly to group related information, they help users better digest, engage, and navigate through content."
291
+
desc: "Cards are a common organizing unit for modern user interfaces (UI). At their core, they're just rectangular containers with borders and padding. However, when utilized properly to group related information, they help users better digest, engage, and navigate through content."
281
292
flatten: true
282
293
contents:
283
294
- experimental.ui.card_body
284
295
- experimental.ui.card_title
285
296
- experimental.ui.card_image
286
297
- experimental.ui.ImgContainer
287
298
- experimental.ui.WrapperCallable
288
-
- kind: page
289
-
path: ExValueBoxes
290
-
summary:
291
-
name: "Value boxes"
292
-
desc: "Prominently display a value and label in a box that can be expanded to show more information."
0 commit comments