Files
shiny/tools
Carson Sievert 3d66940402 Add busy indication (#4040)
* First pass at a proper state machine for managing output progress state

* `yarn build` (GitHub Actions)

* Add useBusyIndicators(), spinnerOptions(), and pulseOptions()

* Bring in new spinner defaults

* Use an actual div instead of a pseudo-element since chromium can't be trusted to show them when animated

* Revert "Use an actual div instead of a pseudo-element since chromium can't be trusted to show them when animated"

This reverts commit 6167c1dfd7.

* Embed animation inside svg (to avoid Chromium bug). Consolidate options into a singular busyIndicatorOptions()

* Add to pkgdown reference

* `devtools::document()` (GitHub Actions)

* `yarn build` (GitHub Actions)

* Bump version

* `yarn build` (GitHub Actions)

* Sync package version (GitHub Actions)

* Apply suggestions from code review

Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>

* Update snapshots

* `devtools::document()` (GitHub Actions)

* Address feedback

* Bring in more spinner type options

* fix use of fs

* Code review

* `devtools::document()` (GitHub Actions)

* Sync package version (GitHub Actions)

* Update snapshots

* Fix comments

* Make snapshot consistent cross-platform

* Fix namespace issue

* Reduce specificity of position relative

* Skip snapshot on windows; update news

* Whoops

* Scope spinner customizations to parent element by default

* Update snapshots

* Reorder spinner types

* Set a private random seed in tests

* Better id naming

---------

Co-authored-by: cpsievert <cpsievert@users.noreply.github.com>
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
2024-05-10 14:58:43 -05:00
..
2024-05-10 14:58:43 -05:00

Updating web libraries

This directory contains build tools for Shiny.

For TypeScript / JavaScript build tool descriptions, see the ./srcts folder.

Updating and patching bootstrap-datepicker

Updating

bootstrap-datepicker can be updated with the script updateBootstrapDatepicker.R.

Making a new patch

To create a new patch:

  1. Make any necessary changes to files in inst/www/shared/datepicker
  2. Do not commit your changes.
  3. Instead, create a patch with a command like git diff > tools/datepicker-patches/012-a-description.patch. Patches are applied in alphabetic order (per list.files), so you should name your patch based on the last one in tools/datepicker-patches so that it's applied last.
  4. Source updateBootstrapDatepicker.R to download the library and apply patches.
  5. Test your changes
  6. git add the new .patch and any resulting changes

Updating and patching ion.rangeSlider

Updating

ion.rangeSlider can be updated with the script updateIonRangeSlider.R. That script downloads a specific version of ion.rangeSlider and applies our patches in tools/ion.rangeSlider-patches.

Making a new patch

To create a new patch:

  1. Make any necessary changes to files in inst/www/shared/ion.rangeSlider
  2. Do not commit your changes.
  3. Instead, create a patch with a command like git diff > tools/ion.rangeSlider-patches/0004-a-description.patch. Patches are applied in alphabetic order (per list.files), so you should name your patch based on the last one in tools/ion.rangeSlider-patches so that it's applied last.
  4. Run updateIonRangeSlider.R to download the library and apply patches.
  5. Test your changes
  6. Run devtools::document().
  7. git add the new .patch and any resulting changes

Updating Font-Awesome

  1. Edit updateFontAwesome.R to use the new version, and then run it. This will download and copy the files to the relevant locations.
  2. Update the "font-awesome" htmlDependency in R/bootstrap.R to reflect the new version.
  3. Update the documentation for the icon() function in R/bootstrap.R to reflect the new version.
  4. Run devtools::document().
  5. Commit the changes.

Updating jQuery

  1. Edit updatejQuery.R to use the new version, and then run it. This will download and copy the files to the relevant locations.
  2. Update the "jquery" htmlDependency in R/shinyui.R to reflect the new version.
  3. Update the documentation for the shiny.jquery.version option in R/shiny-options.R to reflect the new version.
  4. Run devtools::document().
  5. Commit the changes.

Updating Bootstrap-Accessibility-Plugin

  1. bootstrap-accessibility-plugin can be updated with the script updateBootstrapAccessibilityPlugin.R.
  2. Edit updateBootstrapAccessibilityPlugin.R to use the new version, and then run it. This will download and copy the files to the relevant locations.
  3. Update the documentation for the bootstrapLib() function in R/bootstrap.R to reflect the new version.
  4. Run devtools::document().
  5. Commit the changes.

Updating and patching selectize

Updating

selectize and its accessibility plugin can be updated with the script updateSelectize.R. That script downloads a specific version of selectize and selectize-plugin-a11y, and applies our patches in tools/selectize-patches.

Making a new patch

To create a new patch:

  1. Make any necessary changes to files in inst/www/shared/selectize
  2. Do not commit your changes.
  3. Instead, create a patch with a command like git diff > tools/selectize-patches/000-assign-unique-id-per-option.patch. Patches are applied in alphabetic order (per list.files), so you should name your patch based on the last one in tools/selectize-patches so that it's applied last.
  4. Run updateSelectize.R to download the library and apply patches.
  5. Test your changes
  6. git add the new .patch and any resulting changes

Updating Shiny's [S]CSS

  1. Make any desired changes to source files in inst/www/shared/shiny_scss
  2. Run yarn build to generate a built shiny.min.css file
  3. Commit any changes