R/wa_zoomable_frame.R

Defines functions wa_zoomable_frame

Documented in wa_zoomable_frame

# Generated by tools/generate_components.R. Do not edit by hand.
# nolint start: object_usage_linter.

#' Create a `wa-zoomable-frame` component
#'
#' Generated wrapper for the Web Awesome `wa-zoomable-frame` component.
#' Generated from Web Awesome metadata.
#'
#' @param ... Child content for the component's default slot.
#' @param id Optional DOM id attribute for HTML, CSS, and JS targeting.
#' @param class Optional CSS class string.
#' @param style Optional inline CSS style string.
#' @param allowfullscreen Boolean. Default: `FALSE`. Allows fullscreen
#' mode.
#' @param dir String. Optional Web Awesome attribute.
#' @param lang String. Optional Web Awesome attribute.
#' @param loading Enumerated string. Allowed values: `eager`, `lazy`.
#' Default: `eager`. Controls iframe loading behavior.
#' @param referrerpolicy String. Controls referrer information.
#' @param sandbox String. Security restrictions for the iframe.
#' @param src String. The URL of the content to display.
#' @param srcdoc String. Inline HTML to display.
#' @param with_theme_sync Boolean. Default: `FALSE`. Enables automatic
#' theme syncing (light/dark mode and theme selector classes) from the
#' host document to the iframe.
#' @param without_controls Boolean. Default: `FALSE`. Removes the zoom
#' controls.
#' @param without_interaction Boolean. Default: `FALSE`. Disables
#' interaction when present.
#' @param zoom Number. Default: `1`. The current zoom of the frame, e.g. 0
#' = 0% and 1 = 100%.
#' @param zoom_levels String. Default: `25% 50% 75% 100% 125% 150% 175%
#' 200%`. The zoom levels to step through when using zoom controls. This
#' does not restrict programmatic changes to the zoom.
#' @param zoom_in_icon The slot that contains the zoom in icon.
#' @param zoom_out_icon The slot that contains the zoom out icon.
#'
#' @section Shiny Bindings:
#' None.
#'
#' @return An HTML tag for the component.
#'
#' @export
wa_zoomable_frame <- function(
  ...,
  id = NULL,
  class = NULL,
  style = NULL,
  allowfullscreen = NULL,
  dir = NULL,
  lang = NULL,
  loading = NULL,
  referrerpolicy = NULL,
  sandbox = NULL,
  src = NULL,
  srcdoc = NULL,
  with_theme_sync = NULL,
  without_controls = NULL,
  without_interaction = NULL,
  zoom = NULL,
  zoom_levels = NULL,
  zoom_in_icon = NULL,
  zoom_out_icon = NULL
) {
  children <- list(...)
  children <- c(
    children,
    list(
      .wa_slot(zoom_in_icon, "zoom-in-icon")
    )
  )
  children <- c(
    children,
    list(
      .wa_slot(zoom_out_icon, "zoom-out-icon")
    )
  )

  if (!is.null(loading)) {
    loading <- .wa_match_arg(
      loading,
      "loading",
      c(
        "eager",
        "lazy"
      )
    )
  }

  attrs <- .wa_normalize_attrs(
    list(
      "id" = id,
      "class" = class,
      "style" = style,
      "allowfullscreen" = allowfullscreen,
      "dir" = dir,
      "lang" = lang,
      "loading" = loading,
      "referrerpolicy" = referrerpolicy,
      "sandbox" = sandbox,
      "src" = src,
      "srcdoc" = srcdoc,
      "with-theme-sync" = with_theme_sync,
      "without-controls" = without_controls,
      "without-interaction" = without_interaction,
      "zoom" = zoom,
      "zoom-levels" = zoom_levels
    ),
    boolean_names = c(
      "allowfullscreen",
      "with-theme-sync",
      "without-controls",
      "without-interaction"
    ),
    boolean_arg_names = c(
      "allowfullscreen" = "allowfullscreen",
      "with-theme-sync" = "with_theme_sync",
      "without-controls" = "without_controls",
      "without-interaction" = "without_interaction"
    )
  )

  do.call(
    .wa_component,
    c(
      list("wa-zoomable-frame", .attrs = attrs),
      children
    )
  )
}
# nolint end

Try the shiny.webawesome package in your browser

Any scripts or data that you put into this service are public.

shiny.webawesome documentation built on April 22, 2026, 1:09 a.m.