Carbon is IBM’s open source design system for products and digital experiences. With the IBM Design Language as its foundation, the system consists of working code, design tools and resources, human interface guidelines, and a vibrant community of contributors.
Set the dependency to each component with htmltools::htmlDependency:
dep_toggle <- htmltools::htmlDependency(
name = "toggle",
version = "1.0.0",
src = list(href = "https://1.www.s81c.com/common"),
script = list(type = "module", src = "carbon/web-components/tag/latest/toggle.min.js"),
stylesheet = list(href = "carbon-for-ibm-dotcom/tag/v1/latest/plex.css")
)
Set the components with the htmltools::tag:
toggle <- htmltools::tag("bx-toggle",
list(id = "toggle",
`checked-text` = "On",
`label-text` = "Toggle",
`unchecked-text` = "Off"))
Output in the ui with htmltools::attachDependencies(toggle, dep_toggle).
To process the input:
tags$script(HTML('document.getElementById("toggle").addEventListener("bx-toggle-changed", (e) => {Shiny.setInputValue("toggle", e.target.__checked)});'))
The toggle in Shiny.setInputValue("toggle", e.target.__checked) is the id to use with input$toggle in the server side. The e.target.__checked is the value of event executed by component.
