* fix(examples-shiny): use shiny.min.css in 08_html to avoid 404 (#4220)
* Update NEWS.md
* Minimize all the files
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Bugfix for error found when calling shiny::shinyAppTemplate without library(shiny)
* Update news
* Update NEWS.md
---------
Co-authored-by: Carson <cpsievert1@gmail.com>
* Use less expensive version of getCallNames() just for hashing
* Update R/conditions.R
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Co-authored-by: Barret Schloerke <barret@rstudio.com>
* feat: Fully reload ui/server when autoreload occurs
* chore: remove stray empty line
* chore: clean up function names and add comments
* docs: Add news item
* feat: Use {watcher} for autoreload file watching (#4185)
* feat: Use {watcher}
* chore: shikokuchuo/watcher@dev
* chore: watcher is on CRAN now
* chore: Undo air format changes
* feat: Use `shiny.autoreload.interval` for watcher latency
* chore: Simply track last time auto-reload changed
* docs: rewrite options docs for clarity
* chore: code style
* docs: global.R changes are not applied
* feat(ui/server): Autoreload also reloads global and R support files
* chore: remove outdated comment
* chore: safer comparisons
* chore: Restore legacy autoreload watcher if {watcher} not installed
* rename: autoload_r_support_if_needed()
* chore: use `rlang::is_false()`
* chore: use_build_ignore("_dev")
* fix: Fix checking if `scope` is a jquery element
Fixesrstudio/bslib#1159
* refactor: Don't check binding validity if `scope` isn't an element
* fix(insertTab): Render inserted nav html only once
* chore: Don't need to delay binding
* fix: Bind all after inserting nav controls
Output bindings require outputs to be attached to the DOM.
* chore: align comment
* chore: Add news item
* Make sure spinner is visible when htmlwidget errors are visible
* Give recalculating outputs a min-height large enough to show the spinner
* tableOutput() now gets the spinner treatment
* yarn run bundle_extras
* Forward visibility hidden for all recalculating widgets, not just those with a error message (otherwise spinner won't be visible after a req())
* Update news
* fix: Schedule modal removal for transitioning modals
* refactor: Simplify and both call and schedule modal hiding at same time
* Increment version number to 1.10.0.9000
* docs: Add NEWS entry
* Fix#4135: Plot outputs incorrectly sized inside scaled outputs
CSS zoom property affects el.getBoundingClientRect() but not
el.offsetWidth/Height. When reporting sizes of outputs from
client to server, we need to back out the CSS zoom because
those sizes are used as CSS width/height, which will be
affected by zoom.
(Note that something similar happens with CSS transforms but
we don't have a good way to deal with them)
* Squelch TS error
* `yarn build` (GitHub Actions)
* Add TODO
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
* Rebuild JS
---------
Co-authored-by: jcheng5 <jcheng5@users.noreply.github.com>
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
* refactor: Factor out message display from error handler
* feat: Add custom event for sending a client message
* feat: Report binding validity problem via event instead of throwing error
* feat: Don't need to hide shared input/output message
Now that it's not an error, it's safe to report
* refactor: Move `inDevMode()` logic into error console
* refactor: Rename `.error` --> `.event`
* feat: wrap client error message
It's otherwise hard to tell that the error is scrollable
Plus the scrolling is over the whole message rather than the part that overflows
* feat: always send client console messages to browser console as well
* chore: throw if `shiny:client-message` receives an event that isn't CustomEvent
* feat: Handle status in `showShinyClientMessage()`
* Renamed `showMessageInClientConsole()` to `showShinyClientMessage()` to improve clarity
* Added `status` argument to `showShinyClientMessage()` to allow for different message types
* refactor: Don't throw errors for duplicate IDs
Brings dev mode in line with current "prod" behavior,
where errors aren't thrown for duplciates. In both cases
we still get console or client messages.
* refactor: Clean up `status` inside `checkValidity()`
* refactor: Have `checkValidity()` handle emitting the client console event
* Limit deep stack growth
* Improvements to deep stack trace culling
- Keep around the first deep stack trace; it may have useful
information. (We may want to change this in the future to
keep the first two stack traces, or even make it an option)
- Print out an indicator that we've elided stack traces, and
how many
* Add comments
* Add NEWS item
* Add test for unlimited deep stacks
* Code review feedback
* Code review feedback
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Use head() over indexing
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Improve unit test robustness
* Remove vector indices from snapshot
* Make stack trace stripping work across deep stacks
* Pass tests
* Try passing tests again
* Rename keep_head to retain_first_n
* Remove misleading variable assignment
* Add more comments, refine dropTrivialTestFrames
* Don't call stripStackTraces if we're not stripping
* Use deep stack deduplication instead of elision
This hopefully will avoid any potential ..stacktraceon../off..
scoring issues, and will be more useful for users. The downside
is that it's still possible to have uselessly large deep stack
traces, but at least that will only happen now if you have
manually written gigantic async/promise chains by hand or maybe
did some clever metaprogramming. The coro case should be fine.
* Add coro-based unit test
* Use rlang::hash, it's much faster
* typo
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Remove unnecessary logic
* Simplify/robustify reactlog version checking test
* Warn only once on call stack digest cache miss
* Super conservatively wrap appendCallStackWithDupe in try/catch
* Use more specific attribute name
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Remove excessively cautious try/catch
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Avoid way too many promise domains being activated
Using `captureStackTraces` in wrapForContext is a bad idea, it
piles on a new domain every time a handler is bound.
* Use captureStackTraces, it means the same thing
* Update promises version requirement
* Add test for stack trace growth
* Simplify stack trace snapshot tests
The `category` column isn't a good candidate for snapshot
testing, as its contents vary depending on how the package
was loaded/installed. During devtools::test() or similar,
shiny package code shows up as 'user'. But during CI, it
doesn't show up as anything.
* Use double-tilde for strikethrough in Markdown tests
The current dev version of commonmark has disabled single tilde for strikethrough: https://github.com/r-lib/commonmark/pull/33 Using double-tilde will make it consistent with Pandoc's Markdown (where single-tilde is for subscripts).
* Skip tests if commonmark is outdated
* Revert "Skip tests if commonmark is outdated"
This reverts commit 97bee20863.
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Remove dateInput and dateRangeInput handlers for keyup and input events
This prevents spurious updates while typing, but still sends when enter is pressed, focus is lost, or the GUI is clicked (due to the remaining `changeDate` and `change` handlers).
* chore: small edits to comments and NEWS item
---------
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>