% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/paintr-build-ui.R
\name{ptr_ui_assets}
\alias{ptr_ui_assets}
\title{Bundled CSS / JS Assets Piece for \code{ggpaintr}}
\usage{
ptr_ui_assets(css = NULL)
}
\arguments{
\item{css}{Optional character vector of paths to additional CSS files;
linked after \code{ggpaintr}'s bundled stylesheet so its rules win. See
\code{\link[=ptr_app]{ptr_app()}} for the full semantics. Defaults to \code{NULL}.}
}
\value{
A \code{\link[shiny:reexports]{shiny::tagList()}}.
}
\description{
The full \code{ggpaintr} asset bundle as a \code{\link[shiny:reexports]{shiny::tagList()}}: the
structural-layer dependency (\code{ptr_set_class} handler + stage CSS), the
cosmetic \code{ggpaintr.css} theme dependency + code-window JavaScript, and
any user override stylesheets. The CSS/JS ship as
\code{\link[htmltools:htmlDependency]{htmltools::htmlDependency()}} objects, so emitting this anywhere on a
page — even several times — yields exactly one \verb{<head>} injection of
each. The single-piece UI builders (\code{\link[=ptr_ui_plot]{ptr_ui_plot()}},
\code{\link[=ptr_ui_controls]{ptr_ui_controls()}}, ...) emit \strong{no} assets; an L3 page that composes
pieces by hand normally gets them from the page shell, or includes
this directly for a non-\code{fluidPage} root. The bundled apps and the
\verb{ptr_*_ui()} composites inject it for you.
}
\examples{
ptr_ui_assets()
}
\seealso{
\code{\link[=ptr_ui_plot]{ptr_ui_plot()}}, \code{\link[=ptr_ui_controls]{ptr_ui_controls()}}, \code{\link[=ptr_ui_toggle_code]{ptr_ui_toggle_code()}}, \code{\link[=ptr_css]{ptr_css()}}
}
