{"id":13734458,"url":"https://github.com/juba/shinyglide","last_synced_at":"2025-03-17T10:07:49.897Z","repository":{"id":35019892,"uuid":"187533479","full_name":"juba/shinyglide","owner":"juba","description":"Glide.js component for Shiny apps","archived":false,"fork":false,"pushed_at":"2024-08-30T11:12:41.000Z","size":2065,"stargazers_count":91,"open_issues_count":3,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-15T00:46:03.116Z","etag":null,"topics":["glide","r","shiny"],"latest_commit_sha":null,"homepage":"https://juba.github.io/shinyglide/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juba.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-19T22:14:20.000Z","updated_at":"2025-02-07T01:32:04.000Z","dependencies_parsed_at":"2024-11-15T02:32:51.491Z","dependency_job_id":"0eb281bd-e570-4675-93cc-858fe0d8e631","html_url":"https://github.com/juba/shinyglide","commit_stats":{"total_commits":224,"total_committers":4,"mean_commits":56.0,"dds":0.1116071428571429,"last_synced_commit":"89b773d216e4df9ce2091facbec1cbc3a0deb057"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juba%2Fshinyglide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juba%2Fshinyglide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juba%2Fshinyglide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juba%2Fshinyglide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juba","download_url":"https://codeload.github.com/juba/shinyglide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244014136,"owners_count":20383715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["glide","r","shiny"],"created_at":"2024-08-03T03:00:56.045Z","updated_at":"2025-03-17T10:07:49.826Z","avatar_url":"https://github.com/juba.png","language":"R","funding_links":[],"categories":["UI Components","R"],"sub_categories":["Animation Effects"],"readme":"# shinyglide\n\n\u003c!-- badges: start --\u003e\n\n[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)\n[![CRAN status](https://www.r-pkg.org/badges/version-ago/shinyglide)](https://cran.r-project.org/package=shinyglide)\n[![CRAN downloads](https://cranlogs.r-pkg.org/badges/shinyglide)](https://cran.r-project.org/package=shinyglide)\n[![R build status](https://github.com/juba/shinyglide/workflows/R-CMD-check/badge.svg)](https://github.com/juba/shinyglide/actions)\n\n\u003c!-- badges: end --\u003e\n\n`shinyglide` is an R package which provides carousel-like or assistant-like components to [shiny](https://shiny.rstudio.com) applications, thanks to the [Glide](https://glidejs.com) JavaScript library.\n\nIt allows to create this sort of app:\n\n![presentation](man/figures/shinyglide_presentation.gif)\n\nOr can be integrated into an existing app to create an \"assistant-like\" interface:\n\n![modal](man/figures/shinyglide_modal.gif)\n\n## Features\n\n-   Responsive, navigation by mouse, keyboard, swiping\n-   Controls are completely customizable\n-   _Next_ and _Back_ controls can be disabled until an input condition is met (same syntax as `shiny::conditionalPanel`)\n-   \"Screens\" can be generated or hidden depending on user inputs. Loading time are taken into accounts (disabled _Next_ button and customizable animation)\n-   Integration with Shiny modal dialogs\n-   Multiple glides per app\n\n## Installation\n\nYou can install the stable version with :\n\n```r\ninstall.packages(\"shinyglide\")\n```\n\nAnd the development version with :\n\n```r\nremotes::install_github(\"juba/shinyglide\")\n```\n\n## Usage\n\nA `shinyglide` component is created with the `glide()` function. This component is then divided intro _screens_ with the `screen()` function.\n\nHere is the code of a very basic app :\n\n```{r}\nlibrary(shiny)\nlibrary(shinyglide)\n\nui \u003c- fixedPage(style = \"max-width: 500px;\",\n  titlePanel(\"Simple shinyglide app\"),\n\n  glide(\n    height = \"350px\",\n    screen(\n      p(\"This is a very simple shinyglide application.\"),\n      p(\"Please click on Next to go to the next screen.\")\n    ),\n    screen(\n      p(\"Please choose a value.\"),\n      numericInput(\"n\", \"n\", value = 10, min = 10)\n    ),\n    screen(\n      p(\"And here is the result.\"),\n      plotOutput(\"plot\")\n    )\n  )\n)\n\n\nserver \u003c- function(input, output, session) {\n\n  output$plot \u003c- renderPlot({\n    hist(\n      rnorm(input$n),\n      main = paste(\"n =\", input$n),\n      xlab = \"\"\n    )\n  })\n\n}\n\nshinyApp(ui, server)\n\n```\n\nFor more information, see the three available vignettes :\n\n-   [Introduction to shinyglide](https://juba.github.io/shinyglide/articles/a_introduction.html)\n-   [Conditional controls and screen output](https://juba.github.io/shinyglide/articles/b_conditionals.html)\n-   [Custom controls](https://juba.github.io/shinyglide/articles/c_custom_controls.html)\n\n## Development notes\n\nThis package uses [packer](https://github.com/JohnCoene/packer) to manage JavaScript source code and dependencies. If you want to modify it, you'll need a working installation of [Node.js](https://nodejs.org/en/).\n\nAfter cloning this repository, run the following in a terminal at the project root :\n\n```sh\nnpm install\n```\n\nThen, if you modify the JavaScript code in `srcjs`, you'll have to run the following command to bundle and update the widget JavaScript code :\n\n```r\npacker::bundle_dev()\n```\n\nIf you want to ship a minimized production version, use :\n\n```r\npacker::bundle_prod()\n```\n\n## Credits\n\n-   [Glide](https://glidejs.com/) JavaScript library, by [Jędrzej Chałubek](https://github.com/jedrzejchalubek)\n-   [packer](https://github.com/JohnCoene/packer) package by [John Coene](https://twitter.com/jdatap)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuba%2Fshinyglide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuba%2Fshinyglide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuba%2Fshinyglide/lists"}