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
Thanks for reporting a bug! Please provide a **Minimal Reproducible Example** (MRE). This is the *most important* part. The easier it is for us to reproduce the bug, the faster we can fix it. Search for similar issues before submitting.
10
+
11
+
- type: dropdown
12
+
id: component
13
+
attributes:
14
+
label: Component
15
+
description: Which part of Shiny is affected?
16
+
options:
17
+
- UI (ui.*)
18
+
- Server (server.*)
19
+
- Reactive Programming
20
+
- Input/Output Bindings
21
+
- Session Management
22
+
- Deployment
23
+
- Documentation
24
+
- Installation
25
+
- Other
26
+
validations:
27
+
required: true
28
+
29
+
- type: dropdown
30
+
id: severity
31
+
attributes:
32
+
label: Severity
33
+
options:
34
+
- P0 - Critical (crash/unusable)
35
+
- P1 - High (major feature broken)
36
+
- P2 - Medium (workaround exists)
37
+
- P3 - Low (minor inconvenience)
38
+
validations:
39
+
required: true
40
+
41
+
- type: input
42
+
id: version
43
+
attributes:
44
+
label: Shiny Version
45
+
description: '`shiny --version`'
46
+
placeholder: ex. 1.2.1
47
+
validations:
48
+
required: true
49
+
50
+
- type: input
51
+
id: python-version
52
+
attributes:
53
+
label: Python Version
54
+
description: '`python --version`'
55
+
placeholder: ex. 3.10.6
56
+
validations:
57
+
required: true
58
+
59
+
- type: textarea
60
+
id: minimal-example
61
+
attributes:
62
+
label: Minimal Reproducible Example
63
+
description: |
64
+
A *minimal*, self-contained app demonstrating the issue. Remove unrelated code. We should be able to copy, paste, and run it.
65
+
66
+
Template:
67
+
68
+
```python
69
+
from shiny import App, render, ui
70
+
71
+
app_ui = ui.page_fluid()
72
+
def server(input, output, session):
73
+
pass
74
+
app = App(app_ui, server)
75
+
```
76
+
render: python
77
+
validations:
78
+
required: true
79
+
80
+
- type: textarea
81
+
id: behavior
82
+
attributes:
83
+
label: Behavior
84
+
description: Describe what *is* happening and what you *expected* to happen.
85
+
placeholder: |
86
+
Current: When I click..., the app freezes.
87
+
Expected: The plot should update without freezing.
88
+
validations:
89
+
required: true
90
+
91
+
- type: textarea
92
+
id: errors
93
+
attributes:
94
+
label: Error Messages (if any)
95
+
description: Copy and paste any errors/tracebacks.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+17-5Lines changed: 17 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [UNRELEASED]
9
9
10
+
### Breaking changes
11
+
12
+
* The navbar-related style options of `ui.page_navbar()` and `ui.navset_bar()` have been consolidated into a single `navbar_options` argument that pairs with a new `ui.navbar_options()` helper. Using the direct `position`, `bg`, `inverse`, `collapsible`, and `underline` arguments will continue to work with a deprecation message.
13
+
14
+
Related to this change, `ui.navset_bar()` now defaults to using `underline=True` so that it uses the same set of default `ui.navbar_options()` as the page variant. In `ui.navbar_options()`, `inverse` is replaced by `theme`, which takes values `"light"` (dark text on a **light** background), `"dark"` (light text on a **dark** background), or `"auto"` (follow page settings).
15
+
10
16
### New features
11
17
12
18
* Added a new `ui.MarkdownStream()` component for performantly streaming in chunks of markdown/html strings into the UI. This component is primarily useful for text-based generative AI where responses are received incrementally. (#1782)
@@ -16,27 +22,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
22
* Add a `data-suggestion` attribute to an HTML element, and set the value to the input suggestion text (e.g., `<span data-suggestion="Suggestion value">Suggestion link</span>`)
17
23
* To auto-submit the suggestion when clicked by the user, include the `.submit` class or the `data-suggestion-submit="true"` attribute on the HTML element. Alternatively, use Cmd/Ctrl + click to auto-submit any suggestion or Alt/Opt + click to apply any suggestion to the chat input without submitting.
18
24
19
-
* Added a new `.add_sass_layer_file()` method to `ui.Theme` that supports reading a Sass file with layer boundary comments, e.g. `/*-- scss:defaults --*/`. This format [is supported by Quarto](https://quarto.org/docs/output-formats/html-themes-more.html#bootstrap-bootswatch-layering) and makes it easier to store Sass rules and declarations that need to be woven into Shiny's Sass Bootstrap files. (#1790)
20
-
21
-
* The `ui.Chat()` component gains the following:
25
+
* The `ui.Chat()` component also gains the following:
22
26
* The `.on_user_submit()` decorator method now passes the user input to the decorated function. This makes it a bit easier to access the user input. See the new templates (mentioned below) for examples. (#1801)
27
+
* The assistant icon is now configurable via `ui.chat_ui()` (or the `ui.Chat.ui()` method in Shiny Express) or for individual messages in the `.append_message()` and `.append_message_stream()` methods of `ui.Chat()`. (#1853)
23
28
* A new `get_latest_stream_result()` method was added for an easy way to access the final result of the stream when it completes. (#1846)
24
29
* The `.append_message_stream()` method now returns the `reactive.extended_task` instance that it launches. (#1846)
30
+
* The `ui.Chat()` component's `.update_user_input()` method gains `submit` and `focus` options that allow you to submit the input on behalf of the user and to choose whether the input receives focus after the update. (#1851)
25
31
26
32
*`shiny create` includes new and improved `ui.Chat()` template options. Most of these templates leverage the new [`{chatlas}` package](https://posit-dev.github.io/chatlas/), our opinionated approach to interfacing with various LLM. (#1806)
27
33
34
+
* Added a new `expect_max_height()` method to the Valuebox controllers to check the maximum height of a value box (#1816)
35
+
28
36
* Client data values (e.g., url info, output sizes/styles, etc.) can now be accessed in the server-side Python code via `session.clientdata`. For example, `session.clientdata.url_search()` reactively reads the URL search parameters. (#1832)
29
37
30
38
* Available `input` ids can now be listed via `dir(input)`. This also works on the new `session.clientdata` object. (#1832)
31
39
32
-
*The `ui.Chat()`component's `.update_user_input()` method gains `submit` and `focus` options that allow you to submit the input on behalf of the user and to choose whether the input receives focus after the update. (#1851)
40
+
*Added a new `.add_sass_layer_file()`method to `ui.Theme` that supports reading a Sass file with layer boundary comments, e.g. `/*-- scss:defaults --*/`. This format [is supported by Quarto](https://quarto.org/docs/output-formats/html-themes-more.html#bootstrap-bootswatch-layering) and makes it easier to store Sass rules and declarations that need to be woven into Shiny's Sass Bootstrap files. (#1790)
33
41
34
-
* The assistant icons is now configurable via `ui.chat_ui()` (or the `ui.Chat.ui()` method in Shiny Express) or for individual messages in the `.append_message()` and `.append_message_stream()` methods of `ui.Chat()`. (#1853)
42
+
*`ui.input_text()`, `ui.input_text_area()`, `ui.input_numeric()` and `ui.input_password()` all gain an `update_on` option. `update_on="change"` is the default and previous behavior, where the input value updates immediately whenever the value changes. With `update_on="blur"`, the input value will update only when the text input loses focus or when the user presses Enter (or Cmd/Ctrl + Enter for `ui.input_text_area()`). (#1874)
43
+
44
+
*`shiny.pytest.create_app_fixture(app)` gained support for multiple app file paths when creating your test fixture. If multiple file paths are given, it will behave as a parameterized fixture value and execute the test for each app path. (#1869)
35
45
36
46
### Bug fixes
37
47
38
48
*`ui.Chat()` now correctly handles new `ollama.chat()` return value introduced in `ollama` v0.4. (#1787)
39
49
50
+
* Updated `expect_height()` for Valuebox controllers to check the height property instead of max-height. (#1816)
51
+
40
52
### Changes
41
53
42
54
* The Shiny Core component `shiny.ui.Chat()` no longer has a `.ui()` method. This method
0 commit comments