from __future__ import annotations
import os
from htmltools import HTMLDependency
from . import __version__
from .ui._html_deps_py_shiny import busy_indicators_dep
def shiny_deps(include_css: bool = True) -> list[HTMLDependency]:
deps = [
HTMLDependency(
name="shiny",
version=__version__,
source={"package": "shiny", "subdir": "www/shared/"},
script={"src": "shiny.js"},
# This CSS is now rendered against default Bootstrap
stylesheet={"href": "shiny.min.css"} if include_css else None,
),
busy_indicators_dep(),
]
if os.getenv("SHINY_DEV_MODE") == "1":
deps.append(
HTMLDependency(
"shiny-devmode",
version=__version__,
head="",
)
)
return deps
def jquery_deps() -> HTMLDependency:
return HTMLDependency(
name="jquery",
version="3.6.0",
source={"package": "shiny", "subdir": "www/shared/jquery/"},
script={"src": "jquery-3.6.0.min.js"},
)
# Shiny doesn't (currently) use requirejs directly, but it does include it because a
# custom requirejs setup is need to get HTMLDependency()s (i.e., loading JS via