## -----------------------------------------------------------------------------
#| include: false
library(shinyelectron)

# Helper: render a directory tree from a bundled demo, stripped of any ANSI
# colour codes and with the absolute path swapped for the suite name.
print_demo_tree <- function(suite_dir) {
  root <- system.file(paste0("demos/", suite_dir), package = "shinyelectron")
  output <- capture.output(fs::dir_tree(root))
  output <- cli::ansi_strip(output)
  output[1] <- paste0(suite_dir, "/")
  cat(c("```", output, "```"), sep = "\n")
}

# Helper: render a file from a bundled demo as a fenced code block.
print_demo_file <- function(rel_path, lang = "") {
  path <- system.file(paste0("demos/", rel_path), package = "shinyelectron")
  cat(c(paste0("```", lang),
        readLines(path),
        "```"),
      sep = "\n")
}


## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
print_demo_tree("demo-r-app-suite")


## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
print_demo_tree("demo-py-app-suite")


## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
print_demo_file("demo-r-app-suite/_shinyelectron.yml", lang = "yaml")


## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
print_demo_file("demo-py-app-suite/_shinyelectron.yml", lang = "yaml")


## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
print_demo_file("demo-py-app-suite/requirements.txt")


## -----------------------------------------------------------------------------
#| eval: false
# library(shinyelectron)
# 
# # Export the bundled R demo suite
# r_suite <- example_app("suite")
# export(appdir = r_suite, destdir = "output-r-suite")
# 
# # Export a Python suite from your own project
# export(appdir = "path/to/my-py-suite", destdir = "output-py-suite")


## -----------------------------------------------------------------------------
#| eval: false
# # Minimal example: create suite structure, then export
# export(appdir = "my-suite", destdir = "my-suite-output")

