Changes in version 2026.4.28 - geom(showSelected=character()) means to opt-out of interactive legends. Thanks @ANAMASGARD. Changes in version 2026.3.8 - geom_dotplot() has been removed. Use geom_point() instead for interactive visualizations. (Fixed #289) Changes in version 2025.12.4 - update_axes: Fix issue #276 where transition duration was hardcoded to 1000ms. Now it respects the selector's duration. - Download status table now shows files, disk, and rows columns in "downloaded / total" format. Row counts display with comma separators for readability. Disk sizes show KiB or MiB units (using binary 1024 divisor, consistent with man du). Chunk sizes are calculated in R using file.size() and exported via plot.json. Changes in version 2025.12.3 - URL hash handling: Removed old window.location.hash parsing code from animint.js (issue #280). Changes in version 2025.12.2 - update_axes: Fixed issue #281 where plots did not render in Rmd. Changes in version 2025.11.17 - update_axes: Fixed issue #273 where axis tick text font-size was inconsistent between plots with and without update_axes. Previously, plots using theme_animint(update_axes="x") would lose theme(axis.text = element_text(size=...)) styling after axis updates. Changes in version 2025.10.31 - geom_point() now warns when shape parameter is set to a value other than 21, since animint2 web rendering only supports shape=21 for proper display of both color and fill aesthetics. Changes in version 2025.10.27 - geom_point() default shape changed from 19 to 21 to enable both color and fill aesthetics for more consistent static rendering. Changes in version 2025.10.23 - When using named clickSelects or showSelected, selectize menus no longer display too many values. Changes in version 2025.10.22 - geom_text(vjust!=0) warning mentions vjust support in geom_label_aligned(). Changes in version 2025.10.17 (2025-10-22) - getCommonChunk() uses default group=1 (previously 1:N which was slower). - getCommonChunk() works for geom_point() and other geoms which do not use aes(group) for display (previously common data was only returned for geoms path/polygon/ribbon). - getCommonChunk() returns common data if there is only one common variable, as long as it has at least one group with more than one row (previously at least two common variables were required). Changes in version 2025.10.10 - animint2dir() no longer has css.file argument which was never tested. Style customizations should be done using theme(). Changes in version 2025.10.9 - Improve common chunk detection, output na_group and row_in_group when there are missing values. Changes in version 2025.10.6 - Added validation for selector names to prevent browser rendering failures. Selector names (from data values used in clickSelects and showSelected) cannot contain CSS special characters like #, @, !, $, etc., as these interfere with JavaScript DOM selectors and cause blank visualizations in the browser. The compiler now stops with a clear error message identifying problematic selector names, helping users fix data issues before attempting to render. Changes in version 2025.10.3 - guide_legend(override.aes) works in a plot with both color and fill legends. Changes in version 2025.9.30 - getCommonChunk() has new atime performance test. Changes in version 2025.9.27 - Remove checkCommon() internal function, which was too slow for computing common chunk tsv file, when there were a large number of groups. Now using data table by group, which is faster and prints progress. Changes in version 2025.9.26 - animint2pages() arguments chromote_* move to animint2dir() so that we can create Capture.PNG in the context of knit_print.animint(), for pdf output. Changes in version 2025.9.16 (2025-09-22) - animint2pages() gains arguments chromote_width and chromote_height, both dimensions in pixels of browser window used to create Capture.PNG, new defaults 3000x2000 should be large enough to handle most typical data viz (previous default width was not on Ubuntu). - update_gallery() uses method="curl" when downloading Capture.PNG (this fixes previous default method which resulted in PNG with errors). Changes in version 2025.9.12 - Tooltip is hidden after clicking to de-select. Changes in version 2025.9.11 - Bugfix when meke_tallrect() is last geom, now selection menu renders. Thanks @suhaani-agarwal for the PR. Changes in version 2025.9.10 - geom_label_aligned() and aes(tooltip) now work in Rmd docs rendered to HTML. Changes in version 2025.9.9 - Multiple ggplots may now be arranged on the page via theme_animint() options colspan=2, rowspan=2, last_in_row=TRUE (meaning next ggplot occurs in next row). Backwards-compatible since old arrangement code is used when none of these options is present. Thanks to @biplab-sutradhar for contributions to the PR. Changes in version 2025.9.6 - aes(tooltip): Fixed an issue where tooltips containing newline characters (e.g. "two\nlines") caused rendering failures when combined with other aesthetics such as aes(color=...). The problem was due to TSV export with quote=FALSE, which broke parsing when fields contained newlines. The TSV writer now uses quote="auto", ensuring fields with \n are preserved correctly. On the rendering side, newline characters in tooltips are converted to
, so multi-line tooltips are now properly supported. Thanks @suhaani-agarwal for the PR. Changes in version 2025.8.16 - geom_abline(): Fixed an issue where lines extended beyond plot boundaries when update_axes() was called. The clipping logic has now been moved from pre_process() on the R side to the renderer side, ensuring that elements are correctly clipped to the plot boundaries during update_axes(). Thanks @suhaani-agarwal for the PR. Changes in version 2025.7.21 - Added geom_label_aligned(), a new geom that plots text labels with non-overlapping positioning along a specified alignment axis ("horizontal" or "vertical"). It uses quadratic programming to optimize label placement and includes options for spacing (min_distance), alignment, rounded background rectangles (label_r), disabling the background rectangle (background_rect = FALSE), etc. Thanks @suhaani-agarwal for the PR. Changes in version 2025.7.18 - animint2pages() default branch is gh-pages instead of main. - update_gallery() creates repos/* directories and removes errors.csv file if necessary. Changes in version 2025.7.10 - Added Codecov integration for both R and JavaScript tests; coverage reports now available. Thanks @suhaani-agarwal for the PR. Changes in version 2025.6.28 - geom_raster() has been removed. Thanks to @biplab-sutradhar for the PR. Changes in version 2025.6.4 - aes(tooltip = "...") now renders fast, lightweight tooltips using D3. Thanks @suhaani-agarwal for the PR. Changes in version 2025.1.28 (2025-01-28) PR#185 - Tour highlights the geom in the correct plot (instead of always the first viz on the page). PR#186 - geom_abline(): fix and vectorize pre_process() method. PR#184 - Add simple Hello world example to ?animint. - Increase text size of "a" in legend SVG. Changes in version 2025.1.25 - Tour text includes selector names for geoms with named clickSelects/showSelected. - animint2pages(chromote_sleep_seconds=NULL) is the new default (no screenshot). - knit_print.animint supports Start Tour button. Changes in version 2025.1.24 - New Start Tour widget at the bottom of each data viz, which highlights what interactions are possible with each geom. Use geom_*(title="title for geom in tour", help="details about what this geom is supposed to represent) to change what is displayed for each geom during the tour. Powered by https://driverjs.com/ Changes in version 2025.1.21 (2025-01-21) - animint(video="https://some.url") renders the link at the bottom of the data viz. - update_gallery() uses download.file() instead of git clone (faster). Changes in version 2024.11.27 - When scale_log10 changes -Inf to NA, Inf handling logic now works (previous was error, user should still fix their code to change -Inf to 0). Changes in version 2024.11.11 - if(require(maps)) in test-compiler-animation.R. Changes in version 2024.11.2 (2024-11-05) - Added [gtable] to \link{gtable} to fix new CRAN issue (\link{} targets missing package anchors). Changes in version 2024.10.10 - Updated animist.js to use classes for source links, resolving issue #145. Changes in version 2024.9.18 - Added functionality to capture screenshot in animint2pages Changes in version 2024.9.17 - @export for internal S3 methods, to quiet roxygen2::document() messages. Changes in version 2024.8.29 - animint2pages initial commit README.md uses viz title. - animint2pages gains owner argument, with default taken from gh::gh_whoami (same as before, always returns user, even when token has permissions on an org); this allows user to specify an org where the user/token has write permissions. This is used in a new test-compiler-ghpages.R, which now assumes PAT_GITHUB has Administration and Contents permissions for all repos in animint-test org, so our test code can delete the animint2pages_test_repo, create a new one, and then use animint2pages twice, to test the results of creation/update. Changes in version 2024.8.27 - Remove selenium, combine renderer tests into single CI job. Changes in version 2024.6.6 - Add chromote as headless browser for testing and remove phantomjs/firefox support Changes in version 2024.3.12 - Add validation checks for duplicate args passed geom and aes Changes in version 2024.2.4 - Add validation checks for duplicate and missing args passed to animint. Changes in version 2024.1.24 (2024-01-24) - move servr from Suggests to Imports, for more user-friendly installation / getting started for newbies (no need for separate install command for servr). - bugfix in compiler height_proportion computation, which occured in ggplots with space=free and both vertical/horizontal panels. Before the vertical panels were always the same size, now they can be different sizes. Changes in version 2023.11.21 (2023-11-21) - setDTthreads(1) in CRAN testthat.R (created from build.sh). - use servr by default when open.browser=TRUE. Changes in version 2023.11.16 - Before creating a new out.dir, do not remove old out.dir, and instead stop with an error, if out.dir already exists, but animint.js does not. Changes in version 2023.11.15 - New function animint2pages(viz,"new_github_repo") for publishing/sharing animints, replacement for animint2gist, which stopped working recently. - New option animint(source="http://path.to/source.R") which should be the URL of data viz source code, used to display a link below the rendered viz. - New function update_gallery("path/to/gallery_repo") for updating galleries such as https://animint.github.io/gallery/ - Bugfix: geom_text renders color as svg fill style (was rendering as stroke style, a regression introduced by the initial implementation of fill_off). - re-organization of animint.js in order to reduce duplication / emphasize similarities and differences between geoms. - geom rect and tile now default to color="black" instead of transparent, for consistency with other geoms (and for the case of using clickSelects, which defaults to black color for selected, and transparent for not). To get the old behavior, specify color="transparent" (for non-clickSelects). Changes in version 2023.10.6 - User-configurable selection style - fill_off. Changes in version 2023.6.11 (2023-06-14) - Remove maptools dependency. - split.x -> split_recursive to silence new CRAN check. - setDTthreads(1) in examples for CRAN. Changes in version 2023.3.14 (2023-03-14) - Changes to satisfy CRAN (import is, consistent function args, graphical-units.Rd, rm Fox book URL in stat_ellipse.Rd). - facet and plot title text size configurable via theme(strip.text, axis.text). Changes in version 2022.9.14 (2022-09-15) - Include Yufan Fei as contributor in DESCRIPTION. - Allow configurable legend/axis text size via theme. Changes in version 2022.8.31 - User-configurable selection styles, alpha_off and colour_off. Changes in version 2022.8.25 - import data.table, for faster compilation. Changes in version 2022.5.25 - Add ability to rotate geom_text labels, following ggplot2's semantics of rotation direction. Changes in version 2022.5.24 - Fixed small test regression and set up Github Actions. Neither of these is user facing. Changes in version 2022.2.2 - Default x/y axis text size increased to 16px from 11px in animint.js. - Suggest RColorBrewer to avoid CRAN NOTE "Undeclared package RColorBrewer in Rd xrefs". Changes in version 2022.1.25 (2022-01-26) - Remove geom/stat_boxplot/quantile due to errors from CRAN check. Changes in version 2020.9.18 (2020-10-20) - update moved mcmaster URL in docs. Changes in version 2020.8.19 - Move geom-specific code from saveLayer/if-else to Geom$export_animint and pre_process methods in Geom sub-classes. Changes in version 2020.7.9 - Using RSelenium 1.7.4. - Removed Defunct and Redundant code/examples. - User can test using docker to avoid incompatibility issues. - imports knitr as knit_print imported in namespace. - Use new grid::unitType() to determine unit type of margin in pt/points to line conversion. Changes in version 2020.3.2 - data.frame(stringsAsFactors=TRUE) in tests. Changes in version 2019.7.12 - Added three authors which are mentioned in Rd/R files. Changes in version 2019.7.3 (2019-07-18) - ggsave(file.path(tempdir(), f)) in examples. Changes in version 2019.7.2 - animint2dir writes to temp dir rather than user dir during examples/tests. Changes in version 2019.6.4 - bugfix for facet_grid(scales/space="free") - bugfix for update_axes with geom_abline - bugfix for graph height computation, which only showed up when there were lots of rows in the facet spec. Changes in version 2018.12.14 - animint fun, export print method. - infinite values converted to range min/max before saving tsv files. Changes in version 2018.10.4 - DEP: no longer depend on any branch of ggplot2. - train_layout from ggplot2 - R/panel.r function is now g_train_layout. train_layout from animint2 - R/z_facet.R function is the same. Both are internal functions. Changes in version 2017.08.24 - DSL: clickSelects/showSelected are now specified as parameters rather than aesthetics.