#' @title
#' Bulma Breadcrumb
#'
#' @description
#' A simple breadcrumb component to improve your navigation experience.
#'
#' [Breadcrumb](https://bulma.io/documentation/components/breadcrumb/)
#'
#' @family Bulma Components
#' @name bulma_breadcrumb
NULL
#' @describeIn bulma_breadcrumb main container
#' @param align (str) For alternative alignments, use the `is-centered`
#' and `is-right` modifiers on the breadcrumb container.
#' @param separator (str) choose between 4 additional separators: `arrow`,
#' `bullet`, `dot`, `succeeds`.
#' @param size (str) `small`, `medium`, or `large`
#' @param ... (tag) content
#' @param outer_tag,inner_tag (fun) container
#' @param outer_tag_content (tag) content to be added to the outer tag.
#' @export
bulma_breadcrumb <- function(...,
outer_tag_content = list(),
align = c("left", "centered", "right"),
separator = c("arrow", "bullet",
"dot", "succeeds"),
size = c("small", "medium", "large"),
outer_tag = tags$nav,
inner_tag = tags$ul) {
walk(tagList(...), assert_class, "bulma_breadcrumb_item")
assert_function(outer_tag)
assert_function(inner_tag)
separator <- match_arg(separator)
exec(
outer_tag,
class = "breadcrumb",
!!!outer_tag_content,
inner_tag(...)
) %>%
bulma_align(align) %>%
bulma_size(size) %>%
when(!is.null(separator), bulma_has(., glue("{separator}-separator"))) %>%
add_class("bulma_breadcrumb")
}
#' @describeIn bulma_breadcrumb breadcrumb item
#' @param active (flag) whether or not this item is active
#' @param value (string) shiny input value
#' @export
bulma_breadcrumb_item <- function(...,
value = NULL,
active = FALSE,
outer_tag = tags$li,
inner_tag = tags$a) {
assert_flag(active)
assert_function(outer_tag)
assert_function(inner_tag)
assert_string(value, null.ok = TRUE)
outer_tag(
class = "breadcrumb-item",
inner_tag(..., value = value)
) %>%
when(active, bulma_is(., "active")) %>%
add_class("bulma_breadcrumb_item")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.