From 7b4f32350611b960e2d4cec5f611bba047a22482 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 14:18:10 -0500 Subject: [PATCH 01/66] `shiny.ui.sidebar` supports `SidebarOpen` and is now a thin wrapper around `Sidebar` class Also `Sidebar` can now tagify itself --- shiny/ui/_sidebar.py | 230 ++++++++++++++++++++++++++++--------------- 1 file changed, 152 insertions(+), 78 deletions(-) diff --git a/shiny/ui/_sidebar.py b/shiny/ui/_sidebar.py index 90de9507a..709cb7ee0 100644 --- a/shiny/ui/_sidebar.py +++ b/shiny/ui/_sidebar.py @@ -2,7 +2,8 @@ import random import warnings -from typing import TYPE_CHECKING, Literal, Optional, cast +from dataclasses import dataclass +from typing import TYPE_CHECKING, Literal, Optional, cast, get_args from htmltools import ( HTML, @@ -40,6 +41,42 @@ "panel_main", ) +SidebarOpenValues = Literal["desktop", "open", "closed", "always"] +""" +The possible values for the `open` parameter in :func:`~shiny.ui.sidebar`. + +* `"desktop"`: the sidebar starts open on desktop screen, closed on mobile +* `"open"`: the sidebar starts open +* `"closed"`: the sidebar starts closed +* `"always"`: the sidebar is always open and cannot be closed +""" + + +@dataclass +class SidebarOpen: + """ + The initial state of the sidebar. + + TODO garrick-docs: Document this. + """ + + desktop: SidebarOpen._VALUES_TYPE = "open" + mobile: SidebarOpen._VALUES_TYPE = "closed" + + _VALUES_TYPE = Literal["open", "closed", "always"] + _VALUES: tuple[SidebarOpen._VALUES_TYPE, ...] = ("open", "closed", "always") + + @classmethod + def _from_string(cls, open: SidebarOpenValues) -> SidebarOpen: + if open == "desktop": + return cls(desktop="open", mobile="closed") + elif open in cls._VALUES: + return cls(desktop=open, mobile=open) + else: + raise ValueError( + f"`open` must be one of {', '.join(cls._VALUES)}, or 'desktop'" + ) + @no_example() class Sidebar: @@ -50,6 +87,8 @@ class Sidebar: class directly. Instead, supply the :func:`~shiny.ui.sidebar` object to :func:`~shiny.ui.layout_sidebar`. + TODO: garrick-docs: update after class restructuring + Attributes ---------- tag @@ -97,32 +136,110 @@ class directly. Instead, supply the :func:`~shiny.ui.sidebar` object to def __init__( self, - tag: Tag, - collapse_tag: Optional[Tag], - position: Literal["left", "right"], - open: Literal["desktop", "open", "closed", "always"], - width: CssUnit, - max_height_mobile: Optional[str | float], - color_fg: Optional[str], - color_bg: Optional[str], + children: tuple[TagChild | TagAttrs, ...], + attributes: dict[str, TagAttrValue], + width: CssUnit = 250, + position: Literal["left", "right"] = "left", + open: SidebarOpenValues | SidebarOpen = "desktop", + id: Optional[str] = None, + title: TagChild | str = None, + color: dict[Literal["fg", "bg"], Optional[str]] = {}, + class_: Optional[str] = None, + max_height_mobile: Optional[str | float] = None, + gap: Optional[CssUnit] = None, + padding: Optional[CssUnit | list[CssUnit]] = None, ): - self.tag = tag - self.collapse_tag = collapse_tag - self.position = position + if not isinstance(open, SidebarOpen): + open = SidebarOpen._from_string(open) + + if isinstance(title, (str, int, float)): + title = tags.header(str(title), class_="sidebar-title") + + if id is not None: + if not isinstance(id, str): + raise ValueError("`id` must be a single string") + if isinstance(id, str) and len(id) == 0: + raise ValueError("`id` must be a non-empty string") + + self.id = id + self.title = title + self.class_ = class_ + self.gap = as_css_unit(gap) + self.padding = as_css_padding(padding) self.open = open + self.position = position self.width = width self.max_height_mobile = max_height_mobile - self.color_fg = color_fg - self.color_bg = color_bg + self.color = color + self.attributes = attributes + self.children = children - # The `Sidebar` class should use it's fields, not this method - def tagify(self) -> Tag: - """ - Not implemented - """ - # Similar to `NavMenu.tagify()` - raise NotImplementedError( - "`Sidebar` objects must be handled by `layout_sidebar(*args)`." + def _resolved_sidebar_id(self) -> Optional[str]: + if self.id is not None: + return resolve_id_or_none(self.id) + if not (self.open.desktop == "always" and self.open.mobile == "always"): + return None + + # Provide a random id when sidebar is collapsible for accessibility reasons + return f"bslib_sidebar_{random.randint(1000, 10000)}" + + def _collapse_tag(self) -> Tag: + is_expanded = self.open.desktop == "open" or self.open.mobile == "open" + + return tags.button( + _collapse_icon(), + class_="collapse-toggle", + type="button", + title="Toggle sidebar", + aria_expanded="true" if is_expanded else "false", + aria_controls=resolve_id_or_none(self.id), + ) + + def _sidebar_tag(self) -> Tag: + is_hidden_initially = ( + self.open.desktop == "closed" or self.open.mobile == "closed" + ) + + return tags.aside( + { + "id": self._resolved_sidebar_id(), + "class": "sidebar", + "hidden": "true" if is_hidden_initially else None, + }, + # If the user provided an id, we make the sidebar an input to report state + {"class": "bslib-sidebar-input"} if self.id is not None else None, + div( + { + "class": "sidebar-content bslib-gap-spacing", + "style": css( + gap=self.gap, + padding=self.padding, + ), + }, + self.title, + *self.children, + **self.attributes, + ), + class_=self.class_, + ) + + def tagify(self) -> TagList: + max_height_mobile = self.max_height_mobile + + if max_height_mobile is not None and self.open.mobile != "always": + warnings.warn( + "The `shiny.ui.sidebar(max_height_mobile=)` argument only applies to " + + "the sidebar when `open` is `'always'` on mobile, but " + + f"`open` is `'{self.open.mobile}'`. " + + "The `max_height_mobile` argument will be ignored.", + # `stacklevel=2`: Refers to the caller of `sidebar()` + stacklevel=2, + ) + max_height_mobile = None + + return TagList( + self._sidebar_tag(), + self._collapse_tag(), ) @@ -131,15 +248,16 @@ def sidebar( *args: TagChild | TagAttrs, width: CssUnit = 250, position: Literal["left", "right"] = "left", - open: Literal["desktop", "open", "closed", "always"] = "desktop", + open: SidebarOpenValues | SidebarOpen = "desktop", id: Optional[str] = None, title: TagChild | str = None, bg: Optional[str] = None, fg: Optional[str] = None, - class_: Optional[str] = None, # TODO-future; Consider using `**kwargs` instead + class_: Optional[str] = None, max_height_mobile: Optional[str | float] = None, gap: Optional[CssUnit] = None, padding: Optional[CssUnit | list[CssUnit]] = None, + **kwargs: TagAttrValue, ) -> Sidebar: # See [this article](https://rstudio.github.io/bslib/articles/sidebars.html) # to learn more. @@ -226,20 +344,7 @@ def sidebar( * :func:`~shiny.ui.navset_card_tab` * :func:`~shiny.ui.navset_card_pill` """ - # TODO-future; validate `open`, bg, fg, class_, max_height_mobile - - if max_height_mobile is not None and open != "always": - warnings.warn( - "The `shiny.ui.sidebar(max_height_mobile=)` argument only applies to the sidebar when `open = 'always'`. The `max_height_mobile` argument will be ignored.", - # `stacklevel=2`: Refers to the caller of `sidebar()` - stacklevel=2, - ) - max_height_mobile = None - - if id is None and open != "always": - # but always provide id when collapsible for accessibility reasons - id = f"bslib_sidebar_{random.randint(1000, 10000)}" - resolved_id = resolve_id_or_none(id) + # TODO-future; validate bg, fg, class_ # TODO-future; implement # if fg is None and bg is not None: @@ -247,50 +352,19 @@ def sidebar( # if bg is None and fg is not None: # bg = get_color_contrast(fg) - if isinstance(title, (str, int, float)): - title = tags.header(str(title), class_="sidebar-title") - - collapse_tag = None - if open != "always": - collapse_tag = tags.button( - _collapse_icon(), - class_="collapse-toggle", - type="button", - title="Toggle sidebar", - aria_expanded=trinary(open in ["open", "desktop"]), - aria_controls=resolved_id, - ) - - tag = tags.aside( - div( - title, - { - "class": "sidebar-content bslib-gap-spacing", - "style": css( - gap=as_css_unit(gap), - padding=as_css_padding(padding), - ), - }, - *args, - ), - {"class": "bslib-sidebar-input"} if resolved_id is not None else None, - { - "class": "sidebar", - "hidden": True if (open in ["closed", "desktop"]) else None, - }, - id=resolved_id, - class_=class_, - ) - return Sidebar( - tag=tag, - collapse_tag=collapse_tag, + children=args, + attributes=kwargs, + width=width, position=position, open=open, - width=width, + id=id, + title=title, + color={"bg": bg, "fg": fg}, + class_=class_, max_height_mobile=max_height_mobile, - color_fg=fg, - color_bg=bg, + gap=gap, + padding=padding, ) From 40b842566c5202286b37503eb92f0590dc2d3472 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 14:31:04 -0500 Subject: [PATCH 02/66] `sidebar(open=)` might not be user-provided --- shiny/ui/_sidebar.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/shiny/ui/_sidebar.py b/shiny/ui/_sidebar.py index 709cb7ee0..ae1c8a004 100644 --- a/shiny/ui/_sidebar.py +++ b/shiny/ui/_sidebar.py @@ -67,7 +67,10 @@ class SidebarOpen: _VALUES: tuple[SidebarOpen._VALUES_TYPE, ...] = ("open", "closed", "always") @classmethod - def _from_string(cls, open: SidebarOpenValues) -> SidebarOpen: + def _from_string(cls, open: str) -> SidebarOpen: + if not isinstance(open, str) or len(open) == 0: + raise ValueError("`open` must be a non-empty string") + if open == "desktop": return cls(desktop="open", mobile="closed") elif open in cls._VALUES: @@ -140,7 +143,7 @@ def __init__( attributes: dict[str, TagAttrValue], width: CssUnit = 250, position: Literal["left", "right"] = "left", - open: SidebarOpenValues | SidebarOpen = "desktop", + open: Optional[SidebarOpenValues | SidebarOpen] = None, id: Optional[str] = None, title: TagChild | str = None, color: dict[Literal["fg", "bg"], Optional[str]] = {}, @@ -149,9 +152,6 @@ def __init__( gap: Optional[CssUnit] = None, padding: Optional[CssUnit | list[CssUnit]] = None, ): - if not isinstance(open, SidebarOpen): - open = SidebarOpen._from_string(open) - if isinstance(title, (str, int, float)): title = tags.header(str(title), class_="sidebar-title") @@ -166,7 +166,7 @@ def __init__( self.class_ = class_ self.gap = as_css_unit(gap) self.padding = as_css_padding(padding) - self.open = open + self._open = open self.position = position self.width = width self.max_height_mobile = max_height_mobile @@ -174,6 +174,16 @@ def __init__( self.attributes = attributes self.children = children + @property + def open(self) -> SidebarOpen: + if isinstance(self._open, SidebarOpen): + return self._open + + if self._open is None: + return SidebarOpen() + + return SidebarOpen._from_string(self._open) + def _resolved_sidebar_id(self) -> Optional[str]: if self.id is not None: return resolve_id_or_none(self.id) From e1c408a3d8d0c3040d7a4876a6090553fb472a01 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 14:43:32 -0500 Subject: [PATCH 03/66] layout_sidebar: Update to use new bslib features and improved Sidebar class --- shiny/ui/_sidebar.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/shiny/ui/_sidebar.py b/shiny/ui/_sidebar.py index ae1c8a004..338a7d375 100644 --- a/shiny/ui/_sidebar.py +++ b/shiny/ui/_sidebar.py @@ -168,7 +168,7 @@ def __init__( self.padding = as_css_padding(padding) self._open = open self.position = position - self.width = width + self.width = as_css_unit(width) self.max_height_mobile = max_height_mobile self.color = color self.attributes = attributes @@ -468,7 +468,6 @@ def layout_sidebar( main = div( { "class": f"main{' bslib-gap-spacing' if fillable else ''}", - "" "style": css( gap=as_css_unit(gap), padding=as_css_padding(padding), @@ -480,33 +479,33 @@ def layout_sidebar( if fillable: main = as_fillable_container(main) - max_height_mobile = sidebar.max_height_mobile or ( - "250px" if height is None else "50%" - ) - res = div( {"class": "bslib-sidebar-layout bslib-mb-spacing"}, {"class": "sidebar-right"} if sidebar.position == "right" else None, - {"class": "sidebar-collapsed"} if sidebar.open == "closed" else None, + {"class": "sidebar-collapsed"} if sidebar.open.desktop == "closed" else None, main, - sidebar.tag, - sidebar.collapse_tag, + sidebar, components_dependency(), _sidebar_init_js(), data_bslib_sidebar_init="true", - data_bslib_sidebar_open=sidebar.open, + data_open_desktop=sidebar.open.desktop, + data_open_mobile=sidebar.open.mobile, + data_collapsible_mobile="true" if sidebar.open.mobile != "always" else "false", + data_collapsible_desktop=( + "true" if sidebar.open.desktop != "always" else "false" + ), data_bslib_sidebar_border=trinary(border), data_bslib_sidebar_border_radius=trinary(border_radius), style=css_no_sub( **{ - "--_sidebar-width": as_css_unit(sidebar.width), - "--_sidebar-bg": sidebar.color_bg, - "--_sidebar-fg": sidebar.color_fg, + "--_sidebar-width": sidebar.width, + "--_sidebar-bg": sidebar.color["bg"], + "--_sidebar-fg": sidebar.color["fg"], "--_main-fg": fg, "--_main-bg": bg, "--bs-card-border-color": border_color, "height": as_css_unit(height), - "--_mobile-max-height": as_css_unit(max_height_mobile), + "--_mobile-max-height": sidebar.max_height_mobile, }, ), ) From ebc2198c72f7a5932994af12e42d0eb82a3d3e5e Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 16:22:22 -0500 Subject: [PATCH 04/66] export ui.SidebarOpen --- shiny/ui/__init__.py | 2 ++ shiny/ui/_sidebar.py | 1 + 2 files changed, 3 insertions(+) diff --git a/shiny/ui/__init__.py b/shiny/ui/__init__.py index 3142e3fc2..5bb5b1fd1 100644 --- a/shiny/ui/__init__.py +++ b/shiny/ui/__init__.py @@ -148,6 +148,7 @@ from ._progress import Progress from ._sidebar import ( Sidebar, + SidebarOpen, layout_sidebar, panel_main, panel_sidebar, @@ -179,6 +180,7 @@ "help_text", # _sidebar "Sidebar", + "SidebarOpen", "sidebar", "layout_sidebar", "update_sidebar", diff --git a/shiny/ui/_sidebar.py b/shiny/ui/_sidebar.py index 338a7d375..acee06819 100644 --- a/shiny/ui/_sidebar.py +++ b/shiny/ui/_sidebar.py @@ -33,6 +33,7 @@ __all__ = ( "Sidebar", + "SidebarOpen", "sidebar", "layout_sidebar", "update_sidebar", From e534609d533392b2825a966fb23668237e360013 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 17:08:01 -0500 Subject: [PATCH 05/66] Add a dynamic example (currently unused) --- .../api-examples/sidebar/app-core-dynamic.py | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 shiny/api-examples/sidebar/app-core-dynamic.py diff --git a/shiny/api-examples/sidebar/app-core-dynamic.py b/shiny/api-examples/sidebar/app-core-dynamic.py new file mode 100644 index 000000000..061f5304d --- /dev/null +++ b/shiny/api-examples/sidebar/app-core-dynamic.py @@ -0,0 +1,90 @@ +from shiny import App, Inputs, Outputs, Session, render, ui + +app_ui = ui.page_fluid( + ui.card( + ui.card_header("ui.sidebar() Settings"), + ui.layout_column_wrap( + ui.input_select( + "desktop", + label="Desktop", + choices=["open", "closed", "always"], + selected="open", + ), + ui.input_select( + "mobile", + label="Mobile", + choices=["open", "closed", "always"], + selected="closed", + ), + ui.input_select( + "position", label="Position", choices=["left", "right"], selected="left" + ), + width="100px", + ), + ), + ui.layout_column_wrap( + ui.card( + ui._card.card_body( + ui.output_ui("sidebar_dynamic", fill=True, fillable=True), class_="p-0" + ), + ), + ui.card( + ui.card_header("Sidebar Layout Code"), + ui.output_code("sidebar_code"), + ), + width="500px", + ), +) + + +def server(input: Inputs, output: Outputs, session: Session): + @render.ui + def sidebar_dynamic(): + return ui.layout_sidebar( + ui.sidebar( + ui.markdown( + f""" + **Desktop**: {input.desktop()} + + **Mobile**: {input.mobile()} + + **Position**: {input.position()} + """ + ), + title="Settings", + id="sidebar_dynamic", + open=ui.SidebarOpen(input.desktop(), input.mobile()), + position=input.position(), + ), + ui.h2("Dynamic sidebar"), + ui.output_text_verbatim("state_dynamic"), + ) + + @render.text + def state_dynamic(): + return f"input.sidebar_dynamic(): {input.sidebar_dynamic()}" + + @render.code + def sidebar_code(): + if input.desktop() == input.mobile(): + open = f'"{input.desktop()}"' + elif input.desktop() == "open" and input.mobile() == "closed": + open = '"desktop"' + else: + open = f'ui.SidebarOpen(desktop="{input.desktop()}", mobile="{input.mobile()}")' + + return f"""\ +ui.layout_sidebar( + ui.sidebar( + "Sidebar content...", + title="Sidebar title", + id="sidebar_id", + open={open}, + position="{input.position()}" + ), + "Main content...", +) +""" + + +app = App(app_ui, server) From ada1d6308c39c01859a18e93176957eee4d135a3 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 17:24:18 -0500 Subject: [PATCH 06/66] Use `render.code` in Express example --- shiny/api-examples/sidebar/app-express.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shiny/api-examples/sidebar/app-express.py b/shiny/api-examples/sidebar/app-express.py index 17e80bb47..9e61720b8 100644 --- a/shiny/api-examples/sidebar/app-express.py +++ b/shiny/api-examples/sidebar/app-express.py @@ -7,7 +7,7 @@ with ui.sidebar(id="sidebar_left", open="desktop"): "Left sidebar content" - @render.text + @render.code def state_left(): return f"input.sidebar_left(): {input.sidebar_left()}" @@ -17,7 +17,7 @@ def state_left(): with ui.sidebar(id="sidebar_right", position="right", open="desktop"): "Right sidebar content" - @render.text + @render.code def state_right(): return f"input.sidebar_right(): {input.sidebar_right()}" @@ -27,7 +27,7 @@ def state_right(): with ui.sidebar(id="sidebar_closed", open="closed"): "Closed sidebar content" - @render.text + @render.code def state_closed(): return f"input.sidebar_closed(): {input.sidebar_closed()}" @@ -37,6 +37,6 @@ def state_closed(): with ui.sidebar(id="sidebar_always", open="always"): "Always sidebar content" - @render.text + @render.code def state_always(): return f"input.sidebar_always(): {input.sidebar_always()}" From fe912c063eac1f46ed78fd0e2cc53b41bc153ef0 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 17:25:25 -0500 Subject: [PATCH 07/66] Update shiny.express.ui.sidebar signature --- shiny/express/ui/_cm_components.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/shiny/express/ui/_cm_components.py b/shiny/express/ui/_cm_components.py index b030c2c35..26758a46a 100644 --- a/shiny/express/ui/_cm_components.py +++ b/shiny/express/ui/_cm_components.py @@ -13,6 +13,7 @@ from ...ui._card import CardItem from ...ui._layout_columns import BreakpointsUser from ...ui._navs import NavMenu, NavPanel, NavSet, NavSetBar, NavSetCard +from ...ui._sidebar import SidebarOpen, SidebarOpenValues from ...ui.css import CssUnit from .._recall_context import RecallContextManager @@ -44,13 +45,13 @@ def sidebar( *, width: CssUnit = 250, position: Literal["left", "right"] = "left", - open: Literal["desktop", "open", "closed", "always"] = "always", + open: SidebarOpenValues | SidebarOpen = SidebarOpen("open", "always"), id: Optional[str] = None, title: TagChild | str = None, bg: Optional[str] = None, fg: Optional[str] = None, - class_: Optional[str] = None, # TODO-future; Consider using `**kwargs` instead - max_height_mobile: Optional[str | float] = "auto", + class_: Optional[str] = None, + max_height_mobile: Optional[str | float] = None, gap: Optional[CssUnit] = None, padding: Optional[CssUnit | list[CssUnit]] = None, ) -> RecallContextManager[ui.Sidebar]: @@ -59,6 +60,8 @@ def sidebar( This function wraps :func:`~shiny.ui.sidebar`. + TODO garrick-docs: update from shiny.ui docs + Parameters ---------- width From dbd7fa73acb3bbb9cdacd0596d0393041e0afbec Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 20:37:27 -0500 Subject: [PATCH 08/66] `shiny.express.ui.sidebar()` now takes kwargs --- shiny/express/ui/_cm_components.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shiny/express/ui/_cm_components.py b/shiny/express/ui/_cm_components.py index 26758a46a..1a32cf59a 100644 --- a/shiny/express/ui/_cm_components.py +++ b/shiny/express/ui/_cm_components.py @@ -54,6 +54,7 @@ def sidebar( max_height_mobile: Optional[str | float] = None, gap: Optional[CssUnit] = None, padding: Optional[CssUnit | list[CssUnit]] = None, + **kwargs: TagAttrValue, ) -> RecallContextManager[ui.Sidebar]: """ Context manager for sidebar element @@ -127,6 +128,7 @@ def sidebar( max_height_mobile=max_height_mobile, gap=gap, padding=padding, + **kwargs, ), ) From 2a189f94b1cea8b0b8b314e40a9cf4ef66cb726e Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Wed, 14 Feb 2024 20:44:05 -0500 Subject: [PATCH 09/66] update bslib again --- scripts/htmlDependencies.R | 2 +- shiny/www/shared/_version.json | 2 +- shiny/www/shared/bootstrap/_version.json | 4 ++-- ...cVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff | Bin 74544 -> 77444 bytes shiny/www/shared/bslib/_version.json | 2 +- .../shared/bslib/components/components.css | 2 +- .../shared/bslib/components/components.min.js | 4 ++-- .../bslib/components/components.min.js.map | 6 +++--- shiny/www/shared/htmltools/_version.json | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/htmlDependencies.R b/scripts/htmlDependencies.R index 01837ec7c..579dffb93 100755 --- a/scripts/htmlDependencies.R +++ b/scripts/htmlDependencies.R @@ -12,7 +12,7 @@ message("Installing GitHub packages: bslib, shiny, htmltools") withr::local_temp_libpaths() ignore <- capture.output({ pak::pkg_install(c( - "rstudio/bslib@py-shiny-v0.7.0", + "rstudio/bslib@main", "rstudio/shiny@main", "cran::htmltools" )) diff --git a/shiny/www/shared/_version.json b/shiny/www/shared/_version.json index 9582c34a7..9ff2f4298 100644 --- a/shiny/www/shared/_version.json +++ b/shiny/www/shared/_version.json @@ -1,5 +1,5 @@ { "note!": "This file is auto-generated by scripts/htmlDependencies.R", "package": "shiny", - "version": "Github (rstudio/shiny@f71f1256b8ed1ee133c5aea281bbc750a379460c)" + "version": "Github (rstudio/shiny@6760c318184535185e5050aefe29e658e8710ef0)" } diff --git a/shiny/www/shared/bootstrap/_version.json b/shiny/www/shared/bootstrap/_version.json index 1c52f672d..e9b72d088 100644 --- a/shiny/www/shared/bootstrap/_version.json +++ b/shiny/www/shared/bootstrap/_version.json @@ -1,7 +1,7 @@ { "note!": "This file is auto-generated by scripts/htmlDependencies.R", - "shiny_version": "Github (rstudio/shiny@f71f1256b8ed1ee133c5aea281bbc750a379460c)", - "bslib_version": "Github (rstudio/bslib@63dc94a1c89f338c5805a458101e600dcaf371a7)", + "shiny_version": "Github (rstudio/shiny@6760c318184535185e5050aefe29e658e8710ef0)", + "bslib_version": "Github (rstudio/bslib@13357888d018b00d8f209b84e3f627dcdc567e64)", "htmltools_version": "CRAN (R 4.3.1)", "bootstrap_version": "5.3.1" } diff --git a/shiny/www/shared/bootstrap/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff b/shiny/www/shared/bootstrap/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff index faa63a6c3ada2c52f8b342dbc7692077197f3b79..94cf7cbdc52ae6fd41d1f4ab028dfdc10e6c969b 100644 GIT binary patch literal 77444 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%0AN6$zwM(wF+Q2yc}ewEQDJS9i#i`%8W*mg_KMP` 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 literal 74544 zcmZU418`|#t3IJe2 z0011$=wLC$;z}w)008zZ003MK0DzCbC*PFIDbX_l0QmktM%8|xpCTAUqogdT{KKvO z$l^cH)ZG_mG_o%0A0I`|1hv^UZQ@=$H0FY7%GO25exru@C|9Z&w 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

uY7Q&`>v9`%Zn!OJQ{7=={DN{ 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.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border="true"]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius="true"]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen="true"]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,0.15);margin:0.2rem 0.4rem;padding:0.55rem !important;font-size:.8rem;cursor:pointer;opacity:0.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen="false"]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media (max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:0.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:0.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.bslib-grid{--_item-column-span: 1;display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid>*{grid-column:auto/span var(--_item-column-span, 1)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media (min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media (min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media (min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media (min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media (min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}bslib-layout-columns.bslib-grid{--_item-column-span: 6}bslib-layout-columns[hidden-until-init]>*{display:none}@media (max-width: 767.98px){bslib-layout-columns:where(.bslib-grid)>*{grid-column:1 / -1}}@media (max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important}}@media (min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media (max-width: 575.98px){.bslib-flow-mobile>.html-fill-item{flex:0 0 auto}.bslib-flow-mobile.bslib-page-sidebar>.html-fill-item,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-item{flex:1 1 auto}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout>.main>.html-fill-item,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout>.main>.html-fill-item{flex:0 0 auto}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout:not(.sidebar-right)>.main,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout:not(.sidebar-right)>.main{padding-left:var(--_padding-icon);padding-top:var(--_padding)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout:not(.sidebar-right)>.collapse-toggle,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout:not(.sidebar-right)>.collapse-toggle{left:calc(var(--_icon-size) / 2)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout.sidebar-right>.main,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout.sidebar-right>.main{padding-right:var(--_padding-icon)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout.sidebar-right>.collapse-toggle,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout.sidebar-right>.collapse-toggle{right:calc(var(--_icon-size) / 2)}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border="true"]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius="true"]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}:root{--bslib-page-sidebar-title-bg: #202020;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.5rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}.bslib-sidebar-layout{--_transition-duration: 0;--_transition-easing-x: var(--bslib-sidebar-transition-easing-x, cubic-bezier(0.8, 0.78, 0.22, 1.07));--_border: var(--bslib-sidebar-border, var(--bs-card-border-width, var(--bs-border-width)) solid var(--bs-card-border-color, var(--bs-border-color-translucent)));--_border-radius: var(--bslib-sidebar-border-radius, var(--bs-border-radius));--_vert-border: var(--bslib-sidebar-vert-border, var(--_border));--_sidebar-width: var(--bslib-sidebar-width, 250px);--_sidebar-bg: var(--bslib-sidebar-bg, rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05));--_sidebar-fg: var(--bslib-sidebar-fg, var(--bs-emphasis-color, black));--_main-fg: var(--bslib-sidebar-main-fg, var(--bs-card-color, var(--bs-body-color)));--_main-bg: var(--bslib-sidebar-main-bg, transparent);--_toggle-bg: var(--bslib-sidebar-toggle-bg, rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1));--_padding: var(--bslib-sidebar-padding, calc(var(--bslib-spacer) * 1.5));--_icon-size: var(--bslib-sidebar-icon-size, var(--bslib-spacer, 1rem));--_icon-button-size: var(--bslib-sidebar-icon-button-size, calc(var(--_icon-size, 1rem) * 2));--_padding-icon: calc(var(--_icon-button-size, 2rem) * 1.5);--_toggle-border-radius: var(--bslib-collapse-toggle-border-radius, var(--bs-border-radius, 3px));--_toggle-transform: var(--bslib-collapse-toggle-transform, 0deg);--_toggle-transition-easing: var(--bslib-sidebar-toggle-transition-easing, cubic-bezier(1, 0, 0, 1));--_toggle-right-transform: var(--bslib-collapse-toggle-right-transform, 180deg);--_toggle-position-y: calc(var(--_js-toggle-count-this-side, 0) * calc(var(--_icon-size) + var(--_padding)) + var(--_icon-size, 1rem) / 2);--_toggle-position-x: calc(-2.5 * var(--_icon-size) - var(--bs-card-border-width, 1px));--_mobile-max-height: var(--bslib-sidebar-mobile-max-height, var(--bslib-sidebar-max-height-mobile));--_sidebar-mobile-opacity: var(--bslib-sidebar-mobile-opacity);--_sidebar-mobile-max-width: var(--bslib-sidebar-mobile-max-width);--_sidebar-mobile-box-shadow: var(--bslib-sidebar-mobile-box-shadow);--_column-main: minmax(0, 1fr);--_toggle-collective-height: calc(calc(var(--_icon-button-size) + 0.5em) * var(--_js-toggle-count-max-side, 1));display:grid !important;grid-template-columns:Min(calc(100% - var(--_padding-icon)), var(--_sidebar-width)) var(--_column-main);position:relative;transition:grid-template-columns ease-in-out var(--_transition-duration);border:var(--_border);border-radius:var(--_border-radius)}.bslib-sidebar-layout.transitioning{--_transition-duration: max(var(--bslib-sidebar-transition-duration, 300ms), 5ms)}@media (prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout,.html-fill-container>.bslib-sidebar-layout.html-fill-item{min-height:var(--_toggle-collective-height)}.bslib-sidebar-layout[data-bslib-sidebar-border="false"]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius="false"]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1 / 2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2 / 3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--_padding);transition:padding var(--_transition-easing-x) var(--_transition-duration);color:var(--_main-fg);background-color:var(--_main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1 / 2;width:100%;border-right:var(--_vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--_sidebar-fg);background-color:var(--_sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--_padding);padding-top:var(--_padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1 * var(--_padding));margin-right:calc(-1 * var(--_padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1 * var(--_padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open="always"]>.sidebar>.sidebar-content{padding-top:var(--_padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1 / 2;grid-column:1 / 2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--_icon-size));top:calc(var(--_icon-size, 1rem) / 2);border:none;border-radius:var(--_toggle-border-radius);height:var(--_icon-button-size, 2rem);width:var(--_icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--_sidebar-fg);background-color:unset;transition:color var(--_transition-easing-x) var(--_transition-duration),top var(--_transition-easing-x) var(--_transition-duration),right var(--_transition-easing-x) var(--_transition-duration),left var(--_transition-easing-x) var(--_transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--_toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:0.8;width:var(--_icon-size);height:var(--_icon-size);transform:rotateY(var(--_toggle-transform));transition:transform var(--_toggle-transition-easing) var(--_transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--_border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--_column-main) Min(calc(100% - var(--_padding-icon)), var(--_sidebar-width))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1 / 2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2 / 3;border-right:none;border-left:var(--_vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2 / 3;left:var(--_icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--_toggle-right-transform))}.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}.bslib-sidebar-layout.sidebar-collapsed{--_toggle-transform: 180deg;--_toggle-right-transform: 0deg;--_vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit;padding-left:var(--_padding-icon);padding-right:var(--_padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--_main-fg);top:var(--_toggle-position-y);right:var(--_toggle-position-x)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:var(--_toggle-position-x);right:unset}@media (max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open="desktop"]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1 / 3}.bslib-sidebar-layout[data-bslib-sidebar-open="always"]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open="always"]>.sidebar{max-height:var(--_mobile-max-height);overflow-y:auto;border-top:var(--_vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]):not(.sidebar-collapsed)>.sidebar,.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).transitioning>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]):not(.sidebar-collapsed)>.collapse-toggle,.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).transitioning>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]):not(.sidebar-right)>.collapse-toggle{left:var(--_icon-size);right:unset}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).sidebar-right>.collapse-toggle{right:var(--_icon-size);left:unset}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"])>.sidebar{opacity:var(--_sidebar-mobile-opacity, 1);max-width:var(--_sidebar-mobile-max-width, 100%);box-shadow:var(--_sidebar-mobile-box-shadow)}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]):not(.sidebar-right)>.sidebar{margin-right:auto}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).sidebar-right>.sidebar{margin-left:auto}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open="always"])>.main{padding-top:var(--_toggle-collective-height);padding-left:var(--_padding);padding-right:var(--_padding)}}.bslib-value-box{container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fff);--bslib-value-box-border-color-default: var(--bs-card-border-color, var(--bs-border-color-translucent));color:var(--bslib-value-box-color, var(--bs-body-color));background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen="true"] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:'\00a0 '}.bslib-value-box .value-box-value{font-size:calc(1.325rem + .9vw);margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}@media (min-width: 1200px){.bslib-value-box .value-box-value{font-size:2rem}}.bslib-value-box .value-box-value:empty::after{content:'\00a0 '}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen="true"] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen="true"] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen="true"]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen="true"]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen="true"] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen="true"]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen="true"]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen="true"] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen="true"] .value-box-grid .value-box-showcase{padding:1rem} +.accordion .accordion-header{font-size:calc(1.325rem + .9vw);margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media (min-width: 1200px){.accordion .accordion-header{font-size:2rem}}.accordion .accordion-icon:not(:empty){margin-right:0.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen="true"]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border="true"]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius="true"]){border-top-left-radius:0;border-top-right-radius:0}.bslib-card[data-full-screen="true"]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,0.15);margin:0.2rem 0.4rem;padding:0.55rem !important;font-size:.8rem;cursor:pointer;opacity:0;z-index:1070}.card:hover>*>.bslib-full-screen-enter,.card:focus-within>*>.bslib-full-screen-enter{opacity:0.6}.card:hover>*>.bslib-full-screen-enter:hover,.card:hover>*>.bslib-full-screen-enter:focus,.card:focus-within>*>.bslib-full-screen-enter:hover,.card:focus-within>*>.bslib-full-screen-enter:focus{opacity:1}.card[data-full-screen="false"]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .bslib-full-screen-enter{display:none !important}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:0.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:0.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}@media (max-width: 575.98px){.bslib-card[data-full-screen="true"]{inset:2.5rem 0.5rem 0.5rem}.bslib-full-screen-exit{top:0.75rem;margin-right:1.25rem}}.bslib-grid{--_item-column-span: 1;display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid>*{grid-column:auto/span var(--_item-column-span, 1)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media (min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media (min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media (min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media (min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media (min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}bslib-layout-columns.bslib-grid{--_item-column-span: 6}bslib-layout-columns[hidden-until-init]>*{display:none}@media (max-width: 767.98px){bslib-layout-columns:where(.bslib-grid)>*{grid-column:1 / -1}}@media (max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important}}@media (min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media (max-width: 575.98px){.bslib-flow-mobile>.html-fill-item{flex:0 0 auto}.bslib-flow-mobile.bslib-page-sidebar>.html-fill-item,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-item{flex:1 1 auto}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout>.main>.html-fill-item,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout>.main>.html-fill-item{flex:0 0 auto}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout:not(.sidebar-right)>.main,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout:not(.sidebar-right)>.main{padding-left:var(--_padding-icon);padding-top:var(--_padding)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout:not(.sidebar-right)>.collapse-toggle,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout:not(.sidebar-right)>.collapse-toggle{left:calc(var(--_icon-size) / 2)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout.sidebar-right>.main,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout.sidebar-right>.main{padding-right:var(--_padding-icon)}.bslib-flow-mobile.bslib-page-sidebar>.bslib-sidebar-layout.sidebar-right>.collapse-toggle,.bslib-flow-mobile.bslib-page-navbar.has-page-sidebar>.html-fill-container>.bslib-sidebar-layout.sidebar-right>.collapse-toggle{right:calc(var(--_icon-size) / 2)}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border="true"]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius="true"]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}:root{--bslib-page-sidebar-title-bg: #202020;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.5rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}.bslib-sidebar-layout{--_transition-duration: 0;--_transition-easing-x: var(--bslib-sidebar-transition-easing-x, cubic-bezier(0.8, 0.78, 0.22, 1.07));--_border: var(--bslib-sidebar-border, var(--bs-card-border-width, var(--bs-border-width)) solid var(--bs-card-border-color, var(--bs-border-color-translucent)));--_border-radius: var(--bslib-sidebar-border-radius, var(--bs-border-radius));--_vert-border: var(--bslib-sidebar-vert-border, var(--_border));--_sidebar-width: var(--bslib-sidebar-width, 250px);--_sidebar-bg: var(--bslib-sidebar-bg, rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05));--_sidebar-fg: var(--bslib-sidebar-fg, var(--bs-emphasis-color, black));--_main-fg: var(--bslib-sidebar-main-fg, var(--bs-card-color, var(--bs-body-color)));--_main-bg: var(--bslib-sidebar-main-bg, transparent);--_toggle-bg: var(--bslib-sidebar-toggle-bg, rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1));--_padding: var(--bslib-sidebar-padding, calc(var(--bslib-spacer) * 1.5));--_icon-size: var(--bslib-sidebar-icon-size, var(--bslib-spacer, 1rem));--_icon-button-size: var(--bslib-sidebar-icon-button-size, calc(var(--_icon-size, 1rem) * 2));--_padding-icon: calc(var(--_icon-button-size, 2rem) * 1.5);--_toggle-border-radius: var(--bslib-collapse-toggle-border-radius, var(--bs-border-radius, 3px));--_toggle-transform: var(--bslib-collapse-toggle-transform, 0deg);--_toggle-transition-easing: var(--bslib-sidebar-toggle-transition-easing, cubic-bezier(1, 0, 0, 1));--_toggle-right-transform: var(--bslib-collapse-toggle-right-transform, 180deg);--_toggle-position-y: calc(var(--_js-toggle-count-this-side, 0) * calc(var(--_icon-size) + var(--_padding)) + var(--_icon-size, 1rem) / 2);--_toggle-position-x: calc(-2.5 * var(--_icon-size) - var(--bs-card-border-width, 1px));--_mobile-max-height: var(--bslib-sidebar-mobile-max-height, var(--bslib-sidebar-max-height-mobile));--_sidebar-mobile-opacity: var(--bslib-sidebar-mobile-opacity);--_sidebar-mobile-max-width: var(--bslib-sidebar-mobile-max-width);--_sidebar-mobile-box-shadow: var(--bslib-sidebar-mobile-box-shadow);--_column-main: minmax(0, 1fr);--_toggle-collective-height: calc(calc(var(--_icon-button-size) + 0.5em) * var(--_js-toggle-count-max-side, 1));display:grid !important;grid-template-columns:Min(calc(100% - var(--_padding-icon)), var(--_sidebar-width)) var(--_column-main);position:relative;transition:grid-template-columns ease-in-out var(--_transition-duration);border:var(--_border);border-radius:var(--_border-radius)}.bslib-sidebar-layout.transitioning{--_transition-duration: max(var(--bslib-sidebar-transition-duration, 300ms), 5ms)}@media (prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout,.html-fill-container>.bslib-sidebar-layout.html-fill-item{min-height:var(--_toggle-collective-height)}.bslib-sidebar-layout[data-bslib-sidebar-border="false"]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius="false"]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1 / 2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2 / 3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--_padding);transition:padding var(--_transition-easing-x) var(--_transition-duration);color:var(--_main-fg);background-color:var(--_main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1 / 2;width:100%;border-right:var(--_vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--_sidebar-fg);background-color:var(--_sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--_padding);padding-top:var(--_padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1 * var(--_padding));margin-right:calc(-1 * var(--_padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1 * var(--_padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout>.collapse-toggle{grid-row:1 / 2;grid-column:1 / 2;z-index:1000;display:inline-flex;align-items:center;position:absolute;right:calc(var(--_icon-size));top:calc(var(--_icon-size, 1rem) / 2);border:none;border-radius:var(--_toggle-border-radius);height:var(--_icon-button-size, 2rem);width:var(--_icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--_sidebar-fg);background-color:unset;transition:color var(--_transition-easing-x) var(--_transition-duration),top var(--_transition-easing-x) var(--_transition-duration),right var(--_transition-easing-x) var(--_transition-duration),left var(--_transition-easing-x) var(--_transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--_toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:0.8;width:var(--_icon-size);height:var(--_icon-size);transform:rotateY(var(--_toggle-transform));transition:transform var(--_toggle-transition-easing) var(--_transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--_border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--_column-main) Min(calc(100% - var(--_padding-icon)), var(--_sidebar-width))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1 / 2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2 / 3;border-right:none;border-left:var(--_vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2 / 3;left:var(--_icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--_toggle-right-transform))}.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}.bslib-sidebar-layout.sidebar-collapsed{--_toggle-transform: 180deg;--_toggle-right-transform: 0deg;--_vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit;padding-left:var(--_padding-icon);padding-right:var(--_padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--_main-fg);top:var(--_toggle-position-y);right:var(--_toggle-position-x)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:var(--_toggle-position-x);right:unset}.bslib-sidebar-layout{--bslib-sidebar-js-window-size: desktop}@media (max-width: 575.98px){.bslib-sidebar-layout{--bslib-sidebar-js-window-size: mobile}}@media (min-width: 576px){.bslib-sidebar-layout[data-collapsible-desktop="false"]{--_padding-icon: var(--_padding)}.bslib-sidebar-layout[data-collapsible-desktop="false"]>.collapse-toggle{display:none}.bslib-sidebar-layout[data-collapsible-desktop="false"]>.sidebar[hidden]{display:block !important}.bslib-sidebar-layout[data-collapsible-desktop="false"]>.sidebar[hidden]>.sidebar-content{display:flex !important}}@media (max-width: 575.98px){.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1 / 3}.bslib-sidebar-layout[data-collapsible-mobile="true"]{grid-template-columns:100% 0}.bslib-sidebar-layout[data-collapsible-mobile="true"]:not(.sidebar-collapsed)>.sidebar,.bslib-sidebar-layout[data-collapsible-mobile="true"].transitioning>.sidebar{z-index:1045}.bslib-sidebar-layout[data-collapsible-mobile="true"]:not(.sidebar-collapsed)>.collapse-toggle,.bslib-sidebar-layout[data-collapsible-mobile="true"].transitioning>.collapse-toggle{z-index:1045}.bslib-sidebar-layout[data-collapsible-mobile="true"]:not(.sidebar-right)>.collapse-toggle{left:var(--_icon-size);right:unset}.bslib-sidebar-layout[data-collapsible-mobile="true"].sidebar-right>.collapse-toggle{right:var(--_icon-size);left:unset}.bslib-sidebar-layout[data-collapsible-mobile="true"]>.sidebar{opacity:var(--_sidebar-mobile-opacity, 1);max-width:var(--_sidebar-mobile-max-width, 100%);box-shadow:var(--_sidebar-mobile-box-shadow);margin:0}.bslib-sidebar-layout[data-collapsible-mobile="true"]:not(.sidebar-right)>.sidebar{margin-right:auto}.bslib-sidebar-layout[data-collapsible-mobile="true"].sidebar-right>.sidebar{margin-left:auto}.bslib-sidebar-layout[data-collapsible-mobile="true"].sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout[data-collapsible-mobile="true"].sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout[data-collapsible-mobile="true"].sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout[data-collapsible-mobile="true"]>.main{padding-top:var(--_toggle-collective-height);padding-left:var(--_padding);padding-right:var(--_padding)}}@media (max-width: 575.98px){.bslib-sidebar-layout[data-collapsible-mobile="false"]{display:block !important;--_padding-icon: var(--_padding);--_vert-border: var(--_border)}.bslib-sidebar-layout[data-collapsible-mobile="false"]>.sidebar[hidden]{display:block !important}.bslib-sidebar-layout[data-collapsible-mobile="false"]>.sidebar[hidden]>.sidebar-content{display:flex !important}.bslib-sidebar-layout[data-collapsible-mobile="false"]>.sidebar{max-height:var(--_mobile-max-height);overflow-y:auto;border-top:var(--_vert-border)}.bslib-sidebar-layout[data-collapsible-mobile="false"]>.collapse-toggle{display:none}}.bslib-value-box{container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fff);--bslib-value-box-border-color-default: var(--bs-card-border-color, var(--bs-border-color-translucent));color:var(--bslib-value-box-color, var(--bs-body-color));background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen="true"] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:'\00a0 '}.bslib-value-box .value-box-value{font-size:calc(1.325rem + .9vw);margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}@media (min-width: 1200px){.bslib-value-box .value-box-value{font-size:2rem}}.bslib-value-box .value-box-value:empty::after{content:'\00a0 '}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen="true"] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen="true"] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen="true"]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen="true"]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen="true"] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen="true"]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen="true"]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen="true"] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen="true"] .value-box-grid .value-box-showcase{padding:1rem} diff --git a/shiny/www/shared/bslib/components/components.min.js b/shiny/www/shared/bslib/components/components.min.js index b2cf46fff..a77d2df14 100644 --- a/shiny/www/shared/bslib/components/components.min.js +++ b/shiny/www/shared/bslib/components/components.min.js @@ -1,5 +1,5 @@ /*! bslib 0.6.1.9001 | (c) 2012-2024 RStudio, PBC. | License: MIT + file LICENSE */ -"use strict";(()=>{var b=(r,e)=>()=>(r&&(e=r(r=0)),e);var j=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var x=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var f=(r,e,t)=>(x(r,e,"read from private field"),t?t.call(r):e.get(r)),w=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)};var I=(r,e,t)=>(x(r,e,"access private method"),t);var u=(r,e,t)=>new Promise((n,s)=>{var i=o=>{try{d(t.next(o))}catch(h){s(h)}},c=o=>{try{d(t.throw(o))}catch(h){s(h)}},d=o=>o.done?n(o.value):Promise.resolve(o.value).then(i,c);d((t=t.apply(r,e)).next())});function y(r,e){window.Shiny&&Shiny.inputBindings.register(new r,"bslib."+e)}function T(r,e){return Object.prototype.hasOwnProperty.call(r,e)&&r[e]!==void 0}function z(r){let e=["a[href]","area[href]","button","details summary","input","iframe","select","textarea",'[contentEditable=""]','[contentEditable="true"]','[contentEditable="TRUE"]',"[tabindex]"],t=[':not([tabindex="-1"])',":not([disabled])"],n=e.map(i=>i+t.join("")),s=r.querySelectorAll(n.join(", "));return Array.from(s)}function E(...r){return u(this,null,function*(){if(!window.Shiny)throw new Error("This function must be called in a Shiny app.");return Shiny.renderContentAsync?yield Shiny.renderContentAsync.apply(null,r):yield Shiny.renderContent.apply(null,r)})}var m,v=b(()=>{"use strict";m=window.Shiny?Shiny.InputBinding:class{}});var A,N=b(()=>{"use strict";v();A=class extends m{find(e){return $(e).find(".accordion.bslib-accordion-input")}getValue(e){let n=this._getItemInfo(e).filter(s=>s.isOpen()).map(s=>s.value);return n.length===0?null:n}subscribe(e,t){$(e).on("shown.bs.collapse.accordionInputBinding hidden.bs.collapse.accordionInputBinding",function(n){t(!0)})}unsubscribe(e){$(e).off(".accordionInputBinding")}receiveMessage(e,t){return u(this,null,function*(){let n=t.method;if(n==="set")this._setItems(e,t);else if(n==="open")this._openItems(e,t);else if(n==="close")this._closeItems(e,t);else if(n==="remove")this._removeItem(e,t);else if(n==="insert")yield this._insertItem(e,t);else if(n==="update")yield this._updateItem(e,t);else throw new Error(`Method not yet implemented: ${n}`)})}_setItems(e,t){let n=this._getItemInfo(e),s=this._getValues(e,n,t.values);n.forEach(i=>{s.indexOf(i.value)>-1?i.show():i.hide()})}_openItems(e,t){let n=this._getItemInfo(e),s=this._getValues(e,n,t.values);n.forEach(i=>{s.indexOf(i.value)>-1&&i.show()})}_closeItems(e,t){let n=this._getItemInfo(e),s=this._getValues(e,n,t.values);n.forEach(i=>{s.indexOf(i.value)>-1&&i.hide()})}_insertItem(e,t){return u(this,null,function*(){let n=this._findItem(e,t.target);n||(n=t.position==="before"?e.firstElementChild:e.lastElementChild);let s=t.panel;if(n?yield E(n,s,t.position==="before"?"beforeBegin":"afterEnd"):yield E(e,s),this._isAutoClosing(e)){let i=$(s.html).attr("data-value");$(e).find(`[data-value="${i}"] .accordion-collapse`).attr("data-bs-parent","#"+e.id)}})}_removeItem(e,t){let n=this._getItemInfo(e).filter(i=>t.target.indexOf(i.value)>-1),s=Shiny==null?void 0:Shiny.unbindAll;n.forEach(i=>{s&&s(i.item),i.item.remove()})}_updateItem(e,t){return u(this,null,function*(){let n=this._findItem(e,t.target);if(!n)throw new Error(`Unable to find an accordion_panel() with a value of ${t.target}`);if(T(t,"value")&&(n.dataset.value=t.value),T(t,"body")){let i=n.querySelector(".accordion-body");yield E(i,t.body)}let s=n.querySelector(".accordion-header");if(T(t,"title")){let i=s.querySelector(".accordion-title");yield E(i,t.title)}if(T(t,"icon")){let i=s.querySelector(".accordion-button > .accordion-icon");yield E(i,t.icon)}})}_getItemInfo(e){return Array.from(e.querySelectorAll(":scope > .accordion-item")).map(n=>this._getSingleItemInfo(n))}_getSingleItemInfo(e){let t=e.querySelector(".accordion-collapse"),n=()=>$(t).hasClass("show");return{item:e,value:e.dataset.value,isOpen:n,show:()=>{n()||$(t).collapse("show")},hide:()=>{n()&&$(t).collapse("hide")}}}_getValues(e,t,n){let s=n!==!0?n:t.map(c=>c.value);return this._isAutoClosing(e)&&(s=s.slice(s.length-1,s.length)),s}_findItem(e,t){return e.querySelector(`[data-value="${t}"]`)}_isAutoClosing(e){return e.classList.contains("autoclose")}};y(A,"accordion")});var L,O=b(()=>{"use strict";L=class{constructor(){this.resizeObserverEntries=[],this.resizeObserver=new ResizeObserver(e=>{let t=new Event("resize");if(window.dispatchEvent(t),!window.Shiny)return;let n=[];for(let s of e)s.target instanceof HTMLElement&&s.target.querySelector(".shiny-bound-output")&&s.target.querySelectorAll(".shiny-bound-output").forEach(i=>{if(n.includes(i))return;let{binding:c,onResize:d}=$(i).data("shinyOutputBinding");if(!c||!c.resize)return;let o=i.shinyResizeObserver;if(o&&o!==this||(o||(i.shinyResizeObserver=this),d(i),n.push(i),!i.classList.contains("shiny-plot-output")))return;let h=i.querySelector('img:not([width="100%"])');h&&h.setAttribute("width","100%")})})}observe(e){this.resizeObserver.observe(e),this.resizeObserverEntries.push(e)}unobserve(e){let t=this.resizeObserverEntries.indexOf(e);t<0||(this.resizeObserver.unobserve(e),this.resizeObserverEntries.splice(t,1))}flush(){this.resizeObserverEntries.forEach(e=>{document.body.contains(e)||this.unobserve(e)})}}});var a,g,k=b(()=>{"use strict";v();O();a=class{constructor(e){var t;e.removeAttribute(a.attr.ATTR_INIT),(t=e.querySelector(`script[${a.attr.ATTR_INIT}]`))==null||t.remove(),this.card=e,a.instanceMap.set(e,this),a.shinyResizeObserver.observe(this.card),this._addEventListeners(),this.overlay=this._createOverlay(),this._exitFullScreenOnEscape=this._exitFullScreenOnEscape.bind(this),this._trapFocusExit=this._trapFocusExit.bind(this)}enterFullScreen(e){var t;e&&e.preventDefault(),document.addEventListener("keydown",this._exitFullScreenOnEscape,!1),document.addEventListener("keydown",this._trapFocusExit,!0),this.card.setAttribute(a.attr.ATTR_FULL_SCREEN,"true"),document.body.classList.add(a.attr.CLASS_HAS_FULL_SCREEN),this.card.insertAdjacentElement("beforebegin",this.overlay.container),(!this.card.contains(document.activeElement)||(t=document.activeElement)!=null&&t.classList.contains(a.attr.CLASS_FULL_SCREEN_ENTER))&&(this.card.setAttribute("tabindex","-1"),this.card.focus())}exitFullScreen(){document.removeEventListener("keydown",this._exitFullScreenOnEscape,!1),document.removeEventListener("keydown",this._trapFocusExit,!0),this.overlay.container.remove(),this.card.setAttribute(a.attr.ATTR_FULL_SCREEN,"false"),this.card.removeAttribute("tabindex"),document.body.classList.remove(a.attr.CLASS_HAS_FULL_SCREEN)}_addEventListeners(){let e=this.card.querySelector(`:scope > * > .${a.attr.CLASS_FULL_SCREEN_ENTER}`);e&&e.addEventListener("click",t=>this.enterFullScreen(t))}_exitFullScreenOnEscape(e){if(!(e.target instanceof HTMLElement))return;let t=["select[open]","input[aria-expanded='true']"];e.target.matches(t.join(", "))||e.key==="Escape"&&this.exitFullScreen()}_trapFocusExit(e){if(!(e instanceof KeyboardEvent)||e.key!=="Tab")return;let t=e.target===this.card,n=e.target===this.overlay.anchor,s=this.card.contains(e.target),i=()=>{e.preventDefault(),e.stopImmediatePropagation()};if(!(s||t||n)){i(),this.card.focus();return}let c=z(this.card).filter(C=>!C.classList.contains(a.attr.CLASS_FULL_SCREEN_ENTER));if(!(c.length>0)){i(),this.overlay.anchor.focus();return}if(t)return;let o=c[c.length-1],h=e.target===o;if(n&&e.shiftKey){i(),o.focus();return}if(h&&!e.shiftKey){i(),this.overlay.anchor.focus();return}}_createOverlay(){let e=document.createElement("div");e.id=a.attr.ID_FULL_SCREEN_OVERLAY,e.onclick=this.exitFullScreen.bind(this);let t=this._createOverlayCloseAnchor();return e.appendChild(t),{container:e,anchor:t}}_createOverlayCloseAnchor(){let e=document.createElement("a");return e.classList.add(a.attr.CLASS_FULL_SCREEN_EXIT),e.tabIndex=0,e.onclick=()=>this.exitFullScreen(),e.onkeydown=t=>{(t.key==="Enter"||t.key===" ")&&this.exitFullScreen()},e.innerHTML=this._overlayCloseHtml(),e}_overlayCloseHtml(){return"Close "}static getInstance(e){return a.instanceMap.get(e)}static initializeAllCards(e=!0){if(document.readyState==="loading"){a.onReadyScheduled||(a.onReadyScheduled=!0,document.addEventListener("DOMContentLoaded",()=>{a.initializeAllCards(!1)}));return}e&&a.shinyResizeObserver.flush();let t=`.${a.attr.CLASS_CARD}[${a.attr.ATTR_INIT}]`;if(!document.querySelector(t))return;document.querySelectorAll(t).forEach(s=>new a(s))}},g=a;g.attr={ATTR_INIT:"data-bslib-card-init",CLASS_CARD:"bslib-card",ATTR_FULL_SCREEN:"data-full-screen",CLASS_HAS_FULL_SCREEN:"bslib-has-full-screen",CLASS_FULL_SCREEN_ENTER:"bslib-full-screen-enter",CLASS_FULL_SCREEN_EXIT:"bslib-full-screen-exit",ID_FULL_SCREEN_OVERLAY:"bslib-full-screen-overlay"},g.shinyResizeObserver=new L,g.instanceMap=new WeakMap,g.onReadyScheduled=!1;window.bslib=window.bslib||{};window.bslib.Card=g});var l,p,_,U=b(()=>{"use strict";v();O();l=class{constructor(e){var s;l.instanceMap.set(e,this),this.layout={container:e,main:e.querySelector(":scope > .main"),sidebar:e.querySelector(":scope > .sidebar"),toggle:e.querySelector(":scope > .collapse-toggle")};let t=this.layout.sidebar.querySelector(":scope > .sidebar-content > .accordion");t&&((s=t==null?void 0:t.parentElement)==null||s.classList.add("has-accordion"),t.classList.add("accordion-flush")),this.layout.toggle&&(this._initEventListeners(),this._initSidebarCounters(),this._initDesktop()),l.shinyResizeObserver.observe(this.layout.main),e.removeAttribute("data-bslib-sidebar-init");let n=e.querySelector(":scope > script[data-bslib-sidebar-init]");n&&e.removeChild(n)}get isClosed(){return this.layout.container.classList.contains(l.classes.COLLAPSE)}static getInstance(e){return l.instanceMap.get(e)}static initCollapsibleAll(e=!0){if(document.readyState==="loading"){l.onReadyScheduled||(l.onReadyScheduled=!0,document.addEventListener("DOMContentLoaded",()=>{l.initCollapsibleAll(!1)}));return}let t=`.${l.classes.LAYOUT}[data-bslib-sidebar-init]`;if(!document.querySelector(t))return;e&&l.shinyResizeObserver.flush(),document.querySelectorAll(t).forEach(s=>new l(s))}_initEventListeners(){var t;let{toggle:e}=this.layout;e.addEventListener("click",n=>{n.preventDefault(),this.toggle("toggle")}),(t=e.querySelector(".collapse-icon"))==null||t.addEventListener("transitionend",()=>this._finalizeState())}_initSidebarCounters(){let{container:e}=this.layout,t=`.${l.classes.LAYOUT}> .main > .${l.classes.LAYOUT}:not([data-bslib-sidebar-open="always"])`;if(!(e.querySelector(t)===null))return;function s(o){return o=o?o.parentElement:null,o&&o.classList.contains("main")&&(o=o.parentElement),o&&o.classList.contains(l.classes.LAYOUT)?o:null}let i=[e],c=s(e);for(;c;)i.unshift(c),c=s(c);let d={left:0,right:0};i.forEach(function(o){let C=o.classList.contains("sidebar-right")?d.right++:d.left++;o.style.setProperty("--_js-toggle-count-this-side",C.toString()),o.style.setProperty("--_js-toggle-count-max-side",Math.max(d.right,d.left).toString())})}_initDesktop(){var s;let{container:e}=this.layout;if(((s=e.dataset.bslibSidebarOpen)==null?void 0:s.trim())!=="desktop")return;let n=window.getComputedStyle(e).getPropertyValue("--bslib-sidebar-js-init-collapsed").trim()==="true"?"close":"open";this.toggle(n,!0)}toggle(e,t=!1){typeof e=="undefined"&&(e="toggle");let{container:n,sidebar:s}=this.layout,i=this.isClosed;if(["open","close","toggle"].indexOf(e)===-1)throw new Error(`Unknown method ${e}`);if(e==="toggle"&&(e=i?"open":"close"),i&&e==="close"||!i&&e==="open"){t&&this._finalizeState();return}e==="open"&&(s.hidden=!1),n.classList.toggle(l.classes.TRANSITIONING,!t),n.classList.toggle(l.classes.COLLAPSE),t&&this._finalizeState()}_finalizeState(){let{container:e,sidebar:t,toggle:n}=this.layout;e.classList.remove(l.classes.TRANSITIONING),t.hidden=this.isClosed,n.setAttribute("aria-expanded",this.isClosed?"false":"true");let s=new CustomEvent("bslib.sidebar",{bubbles:!0,detail:{open:!this.isClosed}});t.dispatchEvent(s),$(t).trigger("toggleCollapse.sidebarInputBinding"),$(t).trigger(this.isClosed?"hidden":"shown")}},p=l;p.shinyResizeObserver=new L,p.classes={LAYOUT:"bslib-sidebar-layout",COLLAPSE:"sidebar-collapsed",TRANSITIONING:"transitioning"},p.onReadyScheduled=!1,p.instanceMap=new WeakMap;_=class extends m{find(e){return $(e).find(`.${p.classes.LAYOUT} > .bslib-sidebar-input`)}getValue(e){let t=p.getInstance(e.parentElement);return t?!t.isClosed:!1}setValue(e,t){let n=t?"open":"close";this.receiveMessage(e,{method:n})}subscribe(e,t){$(e).on("toggleCollapse.sidebarInputBinding",function(n){t(!0)})}unsubscribe(e){$(e).off(".sidebarInputBinding")}receiveMessage(e,t){let n=p.getInstance(e.parentElement);n&&n.toggle(t.method)}};y(_,"sidebar");window.bslib=window.bslib||{};window.bslib.Sidebar=p});var S,M,H,F,R,q=b(()=>{"use strict";v();R=class extends m{constructor(){super(...arguments);w(this,H);w(this,S,new WeakMap);w(this,M,new WeakMap)}find(t){return $(t).find(".bslib-task-button")}getValue(t){var n;return{value:(n=f(this,S).get(t))!=null?n:0,autoReset:t.hasAttribute("data-auto-reset")}}getType(){return"bslib.taskbutton"}subscribe(t,n){f(this,M).has(t)&&this.unsubscribe(t);let s=()=>{var i;f(this,S).set(t,((i=f(this,S).get(t))!=null?i:0)+1),n(!0),I(this,H,F).call(this,t,"busy")};f(this,M).set(t,s),t.addEventListener("click",s)}unsubscribe(t){let n=f(this,M).get(t);n&&t.removeEventListener("click",n)}receiveMessage(s,i){return u(this,arguments,function*(t,{state:n}){I(this,H,F).call(this,t,n)})}};S=new WeakMap,M=new WeakMap,H=new WeakSet,F=function(t,n){t.disabled=n==="busy";let s=t.querySelector("bslib-switch-inline");s&&(s.case=n)};y(R,"task-button")});function B(r){if(window.Shiny)for(let[e,t]of Object.entries(r))Shiny.addCustomMessageHandler(e,t)}var D=b(()=>{"use strict"});var Y=j(V=>{N();k();U();q();v();D();var W={"bslib.toggle-input-binary":r=>u(V,null,function*(){let e=document.getElementById(r.id);e||console.warn("[bslib.toggle-input-binary] No element found",r);let t=$(e).data("shiny-input-binding");if(!(t instanceof m)){console.warn("[bslib.toggle-input-binary] No input binding found",r);return}let n=r.value;typeof n=="undefined"&&(n=!t.getValue(e)),yield t.receiveMessage(e,{value:n})})};window.Shiny&&B(W);function P(){let r=document.createElement("div");r.innerHTML=` +"use strict";(()=>{var m=(r,e)=>()=>(r&&(e=r(r=0)),e);var V=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var F=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var f=(r,e,t)=>(F(r,e,"read from private field"),t?t.call(r):e.get(r)),C=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)};var I=(r,e,t)=>(F(r,e,"access private method"),t);var u=(r,e,t)=>new Promise((n,i)=>{var s=o=>{try{d(t.next(o))}catch(h){i(h)}},c=o=>{try{d(t.throw(o))}catch(h){i(h)}},d=o=>o.done?n(o.value):Promise.resolve(o.value).then(s,c);d((t=t.apply(r,e)).next())});function y(r,e){window.Shiny&&Shiny.inputBindings.register(new r,"bslib."+e)}function T(r,e){return Object.prototype.hasOwnProperty.call(r,e)&&r[e]!==void 0}function x(r){let e=["a[href]","area[href]","button","details summary","input","iframe","select","textarea",'[contentEditable=""]','[contentEditable="true"]','[contentEditable="TRUE"]',"[tabindex]"],t=[':not([tabindex="-1"])',":not([disabled])"],n=e.map(s=>s+t.join("")),i=r.querySelectorAll(n.join(", "));return Array.from(i)}function v(...r){return u(this,null,function*(){if(!window.Shiny)throw new Error("This function must be called in a Shiny app.");return Shiny.renderContentAsync?yield Shiny.renderContentAsync.apply(null,r):yield Shiny.renderContent.apply(null,r)})}var b,E=m(()=>{"use strict";b=window.Shiny?Shiny.InputBinding:class{}});var _,k=m(()=>{"use strict";E();_=class extends b{find(e){return $(e).find(".accordion.bslib-accordion-input")}getValue(e){let n=this._getItemInfo(e).filter(i=>i.isOpen()).map(i=>i.value);return n.length===0?null:n}subscribe(e,t){$(e).on("shown.bs.collapse.accordionInputBinding hidden.bs.collapse.accordionInputBinding",function(n){t(!0)})}unsubscribe(e){$(e).off(".accordionInputBinding")}receiveMessage(e,t){return u(this,null,function*(){let n=t.method;if(n==="set")this._setItems(e,t);else if(n==="open")this._openItems(e,t);else if(n==="close")this._closeItems(e,t);else if(n==="remove")this._removeItem(e,t);else if(n==="insert")yield this._insertItem(e,t);else if(n==="update")yield this._updateItem(e,t);else throw new Error(`Method not yet implemented: ${n}`)})}_setItems(e,t){let n=this._getItemInfo(e),i=this._getValues(e,n,t.values);n.forEach(s=>{i.indexOf(s.value)>-1?s.show():s.hide()})}_openItems(e,t){let n=this._getItemInfo(e),i=this._getValues(e,n,t.values);n.forEach(s=>{i.indexOf(s.value)>-1&&s.show()})}_closeItems(e,t){let n=this._getItemInfo(e),i=this._getValues(e,n,t.values);n.forEach(s=>{i.indexOf(s.value)>-1&&s.hide()})}_insertItem(e,t){return u(this,null,function*(){let n=this._findItem(e,t.target);n||(n=t.position==="before"?e.firstElementChild:e.lastElementChild);let i=t.panel;if(n?yield v(n,i,t.position==="before"?"beforeBegin":"afterEnd"):yield v(e,i),this._isAutoClosing(e)){let s=$(i.html).attr("data-value");$(e).find(`[data-value="${s}"] .accordion-collapse`).attr("data-bs-parent","#"+e.id)}})}_removeItem(e,t){let n=this._getItemInfo(e).filter(s=>t.target.indexOf(s.value)>-1),i=Shiny==null?void 0:Shiny.unbindAll;n.forEach(s=>{i&&i(s.item),s.item.remove()})}_updateItem(e,t){return u(this,null,function*(){let n=this._findItem(e,t.target);if(!n)throw new Error(`Unable to find an accordion_panel() with a value of ${t.target}`);if(T(t,"value")&&(n.dataset.value=t.value),T(t,"body")){let s=n.querySelector(".accordion-body");yield v(s,t.body)}let i=n.querySelector(".accordion-header");if(T(t,"title")){let s=i.querySelector(".accordion-title");yield v(s,t.title)}if(T(t,"icon")){let s=i.querySelector(".accordion-button > .accordion-icon");yield v(s,t.icon)}})}_getItemInfo(e){return Array.from(e.querySelectorAll(":scope > .accordion-item")).map(n=>this._getSingleItemInfo(n))}_getSingleItemInfo(e){let t=e.querySelector(".accordion-collapse"),n=()=>$(t).hasClass("show");return{item:e,value:e.dataset.value,isOpen:n,show:()=>{n()||$(t).collapse("show")},hide:()=>{n()&&$(t).collapse("hide")}}}_getValues(e,t,n){let i=n!==!0?n:t.map(c=>c.value);return this._isAutoClosing(e)&&(i=i.slice(i.length-1,i.length)),i}_findItem(e,t){return e.querySelector(`[data-value="${t}"]`)}_isAutoClosing(e){return e.classList.contains("autoclose")}};y(_,"accordion")});var L,A=m(()=>{"use strict";L=class{constructor(){this.resizeObserverEntries=[],this.resizeObserver=new ResizeObserver(e=>{let t=new Event("resize");if(window.dispatchEvent(t),!window.Shiny)return;let n=[];for(let i of e)i.target instanceof HTMLElement&&i.target.querySelector(".shiny-bound-output")&&i.target.querySelectorAll(".shiny-bound-output").forEach(s=>{if(n.includes(s))return;let{binding:c,onResize:d}=$(s).data("shinyOutputBinding");if(!c||!c.resize)return;let o=s.shinyResizeObserver;if(o&&o!==this||(o||(s.shinyResizeObserver=this),d(s),n.push(s),!s.classList.contains("shiny-plot-output")))return;let h=s.querySelector('img:not([width="100%"])');h&&h.setAttribute("width","100%")})})}observe(e){this.resizeObserver.observe(e),this.resizeObserverEntries.push(e)}unobserve(e){let t=this.resizeObserverEntries.indexOf(e);t<0||(this.resizeObserver.unobserve(e),this.resizeObserverEntries.splice(t,1))}flush(){this.resizeObserverEntries.forEach(e=>{document.body.contains(e)||this.unobserve(e)})}}});var a,g,N=m(()=>{"use strict";E();A();a=class{constructor(e){var t;e.removeAttribute(a.attr.ATTR_INIT),(t=e.querySelector(`script[${a.attr.ATTR_INIT}]`))==null||t.remove(),this.card=e,a.instanceMap.set(e,this),a.shinyResizeObserver.observe(this.card),this._addEventListeners(),this.overlay=this._createOverlay(),this._exitFullScreenOnEscape=this._exitFullScreenOnEscape.bind(this),this._trapFocusExit=this._trapFocusExit.bind(this)}enterFullScreen(e){var t;e&&e.preventDefault(),this.card.id&&this.overlay.anchor.setAttribute("aria-controls",this.card.id),document.addEventListener("keydown",this._exitFullScreenOnEscape,!1),document.addEventListener("keydown",this._trapFocusExit,!0),this.card.setAttribute(a.attr.ATTR_FULL_SCREEN,"true"),document.body.classList.add(a.attr.CLASS_HAS_FULL_SCREEN),this.card.insertAdjacentElement("beforebegin",this.overlay.container),(!this.card.contains(document.activeElement)||(t=document.activeElement)!=null&&t.classList.contains(a.attr.CLASS_FULL_SCREEN_ENTER))&&(this.card.setAttribute("tabindex","-1"),this.card.focus()),this._emitFullScreenEvent(!0)}exitFullScreen(){document.removeEventListener("keydown",this._exitFullScreenOnEscape,!1),document.removeEventListener("keydown",this._trapFocusExit,!0),this.overlay.container.remove(),this.card.setAttribute(a.attr.ATTR_FULL_SCREEN,"false"),this.card.removeAttribute("tabindex"),document.body.classList.remove(a.attr.CLASS_HAS_FULL_SCREEN),this._emitFullScreenEvent(!1)}_emitFullScreenEvent(e){let t=new CustomEvent("bslib.card",{bubbles:!0,detail:{fullScreen:e}});this.card.dispatchEvent(t)}_addEventListeners(){let e=this.card.querySelector(`:scope > * > .${a.attr.CLASS_FULL_SCREEN_ENTER}`);e&&e.addEventListener("click",t=>this.enterFullScreen(t))}_exitFullScreenOnEscape(e){if(!(e.target instanceof HTMLElement))return;let t=["select[open]","input[aria-expanded='true']"];e.target.matches(t.join(", "))||e.key==="Escape"&&this.exitFullScreen()}_trapFocusExit(e){if(!(e instanceof KeyboardEvent)||e.key!=="Tab")return;let t=e.target===this.card,n=e.target===this.overlay.anchor,i=this.card.contains(e.target),s=()=>{e.preventDefault(),e.stopImmediatePropagation()};if(!(i||t||n)){s(),this.card.focus();return}let c=x(this.card).filter(H=>!H.classList.contains(a.attr.CLASS_FULL_SCREEN_ENTER));if(!(c.length>0)){s(),this.overlay.anchor.focus();return}if(t)return;let o=c[c.length-1],h=e.target===o;if(n&&e.shiftKey){s(),o.focus();return}if(h&&!e.shiftKey){s(),this.overlay.anchor.focus();return}}_createOverlay(){let e=document.createElement("div");e.id=a.attr.ID_FULL_SCREEN_OVERLAY,e.onclick=this.exitFullScreen.bind(this);let t=this._createOverlayCloseAnchor();return e.appendChild(t),{container:e,anchor:t}}_createOverlayCloseAnchor(){let e=document.createElement("a");return e.classList.add(a.attr.CLASS_FULL_SCREEN_EXIT),e.tabIndex=0,e.setAttribute("aria-expanded","true"),e.setAttribute("aria-label","Close card"),e.setAttribute("role","button"),e.onclick=t=>{this.exitFullScreen(),t.stopPropagation()},e.onkeydown=t=>{(t.key==="Enter"||t.key===" ")&&this.exitFullScreen()},e.innerHTML=this._overlayCloseHtml(),e}_overlayCloseHtml(){return"Close "}static getInstance(e){return a.instanceMap.get(e)}static initializeAllCards(e=!0){if(document.readyState==="loading"){a.onReadyScheduled||(a.onReadyScheduled=!0,document.addEventListener("DOMContentLoaded",()=>{a.initializeAllCards(!1)}));return}e&&a.shinyResizeObserver.flush();let t=`.${a.attr.CLASS_CARD}[${a.attr.ATTR_INIT}]`;if(!document.querySelector(t))return;document.querySelectorAll(t).forEach(i=>new a(i))}},g=a;g.attr={ATTR_INIT:"data-bslib-card-init",CLASS_CARD:"bslib-card",ATTR_FULL_SCREEN:"data-full-screen",CLASS_HAS_FULL_SCREEN:"bslib-has-full-screen",CLASS_FULL_SCREEN_ENTER:"bslib-full-screen-enter",CLASS_FULL_SCREEN_EXIT:"bslib-full-screen-exit",ID_FULL_SCREEN_OVERLAY:"bslib-full-screen-overlay"},g.shinyResizeObserver=new L,g.instanceMap=new WeakMap,g.onReadyScheduled=!1;window.bslib=window.bslib||{};window.bslib.Card=g});var l,p,O,U=m(()=>{"use strict";E();A();l=class{constructor(e){this.windowSize="";var i;l.instanceMap.set(e,this),this.layout={container:e,main:e.querySelector(":scope > .main"),sidebar:e.querySelector(":scope > .sidebar"),toggle:e.querySelector(":scope > .collapse-toggle")};let t=this.layout.sidebar.querySelector(":scope > .sidebar-content > .accordion");t&&((i=t==null?void 0:t.parentElement)==null||i.classList.add("has-accordion"),t.classList.add("accordion-flush")),this._initSidebarCounters(),this._initSidebarState(),(this._isCollapsible("desktop")||this._isCollapsible("mobile"))&&this._initEventListeners(),l.shinyResizeObserver.observe(this.layout.main),e.removeAttribute("data-bslib-sidebar-init");let n=e.querySelector(":scope > script[data-bslib-sidebar-init]");n&&e.removeChild(n)}get isClosed(){return this.layout.container.classList.contains(l.classes.COLLAPSE)}static getInstance(e){return l.instanceMap.get(e)}_isCollapsible(e="desktop"){let{container:t}=this.layout,n=e==="desktop"?"collapsibleDesktop":"collapsibleMobile",i=t.dataset[n];return i===void 0?!0:i.trim().toLowerCase()!=="false"}static initCollapsibleAll(e=!0){if(document.readyState==="loading"){l.onReadyScheduled||(l.onReadyScheduled=!0,document.addEventListener("DOMContentLoaded",()=>{l.initCollapsibleAll(!1)}));return}let t=`.${l.classes.LAYOUT}[data-bslib-sidebar-init]`;if(!document.querySelector(t))return;e&&l.shinyResizeObserver.flush(),document.querySelectorAll(t).forEach(i=>new l(i))}_initEventListeners(){var t;let{toggle:e}=this.layout;e.addEventListener("click",n=>{n.preventDefault(),this.toggle("toggle")}),(t=e.querySelector(".collapse-icon"))==null||t.addEventListener("transitionend",()=>this._finalizeState()),!(this._isCollapsible("desktop")&&this._isCollapsible("mobile"))&&window.addEventListener("resize",()=>this._handleWindowResizeEvent())}_initSidebarCounters(){let{container:e}=this.layout,t=`.${l.classes.LAYOUT}> .main > .${l.classes.LAYOUT}:not([data-bslib-sidebar-open="always"])`;if(!(e.querySelector(t)===null))return;function i(o){return o=o?o.parentElement:null,o&&o.classList.contains("main")&&(o=o.parentElement),o&&o.classList.contains(l.classes.LAYOUT)?o:null}let s=[e],c=i(e);for(;c;)s.unshift(c),c=i(c);let d={left:0,right:0};s.forEach(function(o){let H=o.classList.contains("sidebar-right")?d.right++:d.left++;o.style.setProperty("--_js-toggle-count-this-side",H.toString()),o.style.setProperty("--_js-toggle-count-max-side",Math.max(d.right,d.left).toString())})}_getWindowSize(){let{container:e}=this.layout;return window.getComputedStyle(e).getPropertyValue("--bslib-sidebar-js-window-size").trim()}_initialToggleState(){var i,s;let{container:e}=this.layout,t=this.windowSize==="desktop"?"openDesktop":"openMobile",n=(s=(i=e.dataset[t])==null?void 0:i.trim())==null?void 0:s.toLowerCase();return n===void 0||["open","always"].includes(n)?"open":["close","closed"].includes(n)?"close":"open"}_initSidebarState(){this.windowSize=this._getWindowSize();let e=this._initialToggleState();this.toggle(e,!0)}_handleWindowResizeEvent(){let e=this._getWindowSize();!e||e==this.windowSize||this._initSidebarState()}toggle(e,t=!1){typeof e=="undefined"&&(e="toggle");let{container:n,sidebar:i}=this.layout,s=this.isClosed;if(["open","close","toggle"].indexOf(e)===-1)throw new Error(`Unknown method ${e}`);if(e==="toggle"&&(e=s?"open":"close"),s&&e==="close"||!s&&e==="open"){t&&this._finalizeState();return}e==="open"&&(i.hidden=!1),n.classList.toggle(l.classes.TRANSITIONING,!t),n.classList.toggle(l.classes.COLLAPSE),t&&this._finalizeState()}_finalizeState(){let{container:e,sidebar:t,toggle:n}=this.layout;e.classList.remove(l.classes.TRANSITIONING),t.hidden=this.isClosed,n.setAttribute("aria-expanded",this.isClosed?"false":"true");let i=new CustomEvent("bslib.sidebar",{bubbles:!0,detail:{open:!this.isClosed}});t.dispatchEvent(i),$(t).trigger("toggleCollapse.sidebarInputBinding"),$(t).trigger(this.isClosed?"hidden":"shown")}},p=l;p.shinyResizeObserver=new L,p.classes={LAYOUT:"bslib-sidebar-layout",COLLAPSE:"sidebar-collapsed",TRANSITIONING:"transitioning"},p.onReadyScheduled=!1,p.instanceMap=new WeakMap;O=class extends b{find(e){return $(e).find(`.${p.classes.LAYOUT} > .bslib-sidebar-input`)}getValue(e){let t=p.getInstance(e.parentElement);return t?!t.isClosed:!1}setValue(e,t){let n=t?"open":"close";this.receiveMessage(e,{method:n})}subscribe(e,t){$(e).on("toggleCollapse.sidebarInputBinding",function(n){t(!0)})}unsubscribe(e){$(e).off(".sidebarInputBinding")}receiveMessage(e,t){let n=p.getInstance(e.parentElement);n&&n.toggle(t.method)}};y(O,"sidebar");window.bslib=window.bslib||{};window.bslib.Sidebar=p});var S,M,w,z,R,q=m(()=>{"use strict";E();R=class extends b{constructor(){super(...arguments);C(this,w);C(this,S,new WeakMap);C(this,M,new WeakMap)}find(t){return $(t).find(".bslib-task-button")}getValue(t){var n;return{value:(n=f(this,S).get(t))!=null?n:0,autoReset:t.hasAttribute("data-auto-reset")}}getType(){return"bslib.taskbutton"}subscribe(t,n){f(this,M).has(t)&&this.unsubscribe(t);let i=()=>{var s;f(this,S).set(t,((s=f(this,S).get(t))!=null?s:0)+1),n(!0),I(this,w,z).call(this,t,"busy")};f(this,M).set(t,i),t.addEventListener("click",i)}unsubscribe(t){let n=f(this,M).get(t);n&&t.removeEventListener("click",n)}receiveMessage(i,s){return u(this,arguments,function*(t,{state:n}){I(this,w,z).call(this,t,n)})}};S=new WeakMap,M=new WeakMap,w=new WeakSet,z=function(t,n){t.disabled=n==="busy";let i=t.querySelector("bslib-switch-inline");i&&(i.case=n)};y(R,"task-button")});function B(r){if(window.Shiny)for(let[e,t]of Object.entries(r))Shiny.addCustomMessageHandler(e,t)}var D=m(()=>{"use strict"});var Y=V(P=>{k();N();U();q();E();D();var j={"bslib.toggle-input-binary":r=>u(P,null,function*(){let e=document.getElementById(r.id);e||console.warn("[bslib.toggle-input-binary] No element found",r);let t=$(e).data("shiny-input-binding");if(!(t instanceof b)){console.warn("[bslib.toggle-input-binary] No input binding found",r);return}let n=r.value;typeof n=="undefined"&&(n=!t.getValue(e)),yield t.receiveMessage(e,{value:n})})};window.Shiny&&B(j);function W(){let r=document.createElement("div");r.innerHTML=` `,document.body.appendChild(r.children[0])}document.readyState==="complete"?P():document.addEventListener("DOMContentLoaded",P)});Y();})(); + `,document.body.appendChild(r.children[0])}document.readyState==="complete"?W():document.addEventListener("DOMContentLoaded",W)});Y();})(); //# sourceMappingURL=components.min.js.map diff --git a/shiny/www/shared/bslib/components/components.min.js.map b/shiny/www/shared/bslib/components/components.min.js.map index c56b0620d..9fbab5c3c 100644 --- a/shiny/www/shared/bslib/components/components.min.js.map +++ b/shiny/www/shared/bslib/components/components.min.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../srcts/src/components/_utils.ts", "../../../srcts/src/components/accordion.ts", "../../../srcts/src/components/_shinyResizeObserver.ts", "../../../srcts/src/components/card.ts", "../../../srcts/src/components/sidebar.ts", "../../../srcts/src/components/taskButton.ts", "../../../srcts/src/components/_shinyAddCustomMessageHandlers.ts", "../../../srcts/src/components/index.ts"], - "sourcesContent": ["import type { HtmlDep } from \"rstudio-shiny/srcts/types/src/shiny/render\";\n\nimport type { InputBinding as InputBindingType } from \"rstudio-shiny/srcts/types/src/bindings/input\";\n\n// Exclude undefined from T\ntype NotUndefined = T extends undefined ? never : T;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst InputBinding = (\n window.Shiny ? Shiny.InputBinding : class {}\n) as typeof InputBindingType;\n\nfunction registerBinding(\n inputBindingClass: new () => InputBindingType,\n name: string\n): void {\n if (window.Shiny) {\n Shiny.inputBindings.register(new inputBindingClass(), \"bslib.\" + name);\n }\n}\n\n// Return true if the key exists on the object and the value is not undefined.\n//\n// This method is mainly used in input bindings' `receiveMessage` method.\n// Since we know that the values are sent by Shiny via `{jsonlite}`,\n// then we know that there are no `undefined` values. `null` is possible, but not `undefined`.\nfunction hasDefinedProperty<\n Prop extends keyof X,\n X extends { [key: string]: any }\n>(\n obj: X,\n prop: Prop\n): obj is X & { [key in NonNullable]: NotUndefined } {\n return (\n Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined\n );\n}\n\n// TODO: Shiny should trigger resize events when the output\n// https://github.com/rstudio/shiny/pull/3682\nfunction doWindowResizeOnElementResize(el: HTMLElement): void {\n if ($(el).data(\"window-resize-observer\")) {\n return;\n }\n const resizeEvent = new Event(\"resize\");\n const ro = new ResizeObserver(() => {\n window.dispatchEvent(resizeEvent);\n });\n ro.observe(el);\n $(el).data(\"window-resize-observer\", ro);\n}\n\nfunction getAllFocusableChildren(el: HTMLElement): HTMLElement[] {\n // Cross-referenced with https://allyjs.io/data-tables/focusable.html\n const base = [\n \"a[href]\",\n \"area[href]\",\n \"button\",\n \"details summary\",\n \"input\",\n \"iframe\",\n \"select\",\n \"textarea\",\n '[contentEditable=\"\"]',\n '[contentEditable=\"true\"]',\n '[contentEditable=\"TRUE\"]',\n \"[tabindex]\",\n ];\n const modifiers = [':not([tabindex=\"-1\"])', \":not([disabled])\"];\n const selectors = base.map((b) => b + modifiers.join(\"\"));\n const focusable = el.querySelectorAll(selectors.join(\", \"));\n return Array.from(focusable) as HTMLElement[];\n}\n\nasync function shinyRenderContent(\n ...args: Parameters\n): ReturnType {\n if (!window.Shiny) {\n throw new Error(\"This function must be called in a Shiny app.\");\n }\n if (Shiny.renderContentAsync) {\n return await Shiny.renderContentAsync.apply(null, args);\n } else {\n return await Shiny.renderContent.apply(null, args);\n }\n}\n\nexport {\n InputBinding,\n registerBinding,\n hasDefinedProperty,\n doWindowResizeOnElementResize,\n getAllFocusableChildren,\n shinyRenderContent,\n};\nexport type { HtmlDep };\n", "import type { HtmlDep } from \"./_utils\";\nimport {\n InputBinding,\n registerBinding,\n hasDefinedProperty,\n shinyRenderContent,\n} from \"./_utils\";\n\ntype AccordionItem = {\n item: HTMLElement;\n value: string;\n isOpen: () => boolean;\n show: () => void;\n hide: () => void;\n};\n\ntype HTMLContent = {\n html: string;\n deps?: HtmlDep[];\n};\n\ntype SetMessage = {\n method: \"set\";\n values: string[];\n};\n\ntype OpenMessage = {\n method: \"open\";\n values: string[] | true;\n};\n\ntype CloseMessage = {\n method: \"close\";\n values: string[] | true;\n};\n\ntype InsertMessage = {\n method: \"insert\";\n panel: HTMLContent;\n target: string;\n position: \"after\" | \"before\";\n};\n\ntype RemoveMessage = {\n method: \"remove\";\n target: string[];\n};\n\ntype UpdateMessage = {\n method: \"update\";\n target: string;\n value: string;\n body: HTMLContent;\n title: HTMLContent;\n icon: HTMLContent;\n};\n\ntype MessageData =\n | CloseMessage\n | InsertMessage\n | OpenMessage\n | RemoveMessage\n | SetMessage\n | UpdateMessage;\n\nclass AccordionInputBinding extends InputBinding {\n find(scope: HTMLElement) {\n return $(scope).find(\".accordion.bslib-accordion-input\");\n }\n\n getValue(el: HTMLElement): string[] | null {\n const items = this._getItemInfo(el);\n const selected = items.filter((x) => x.isOpen()).map((x) => x.value);\n return selected.length === 0 ? null : selected;\n }\n\n subscribe(el: HTMLElement, callback: (x: boolean) => void) {\n $(el).on(\n \"shown.bs.collapse.accordionInputBinding hidden.bs.collapse.accordionInputBinding\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function (event) {\n callback(true);\n }\n );\n }\n\n unsubscribe(el: HTMLElement) {\n $(el).off(\".accordionInputBinding\");\n }\n\n async receiveMessage(el: HTMLElement, data: MessageData) {\n const method = data.method;\n if (method === \"set\") {\n this._setItems(el, data);\n } else if (method === \"open\") {\n this._openItems(el, data);\n } else if (method === \"close\") {\n this._closeItems(el, data);\n } else if (method === \"remove\") {\n this._removeItem(el, data);\n } else if (method === \"insert\") {\n await this._insertItem(el, data);\n } else if (method === \"update\") {\n await this._updateItem(el, data);\n } else {\n throw new Error(`Method not yet implemented: ${method}`);\n }\n }\n\n protected _setItems(el: HTMLElement, data: SetMessage) {\n const items = this._getItemInfo(el);\n const vals = this._getValues(el, items, data.values);\n items.forEach((x) => {\n vals.indexOf(x.value) > -1 ? x.show() : x.hide();\n });\n }\n\n protected _openItems(el: HTMLElement, data: OpenMessage) {\n const items = this._getItemInfo(el);\n const vals = this._getValues(el, items, data.values);\n items.forEach((x) => {\n if (vals.indexOf(x.value) > -1) x.show();\n });\n }\n\n protected _closeItems(el: HTMLElement, data: CloseMessage) {\n const items = this._getItemInfo(el);\n const vals = this._getValues(el, items, data.values);\n items.forEach((x) => {\n if (vals.indexOf(x.value) > -1) x.hide();\n });\n }\n\n protected async _insertItem(el: HTMLElement, data: InsertMessage) {\n let targetItem = this._findItem(el, data.target);\n\n // If no target was specified, or the target was not found, then default\n // to the first or last item, depending on the position\n if (!targetItem) {\n targetItem = (\n data.position === \"before\" ? el.firstElementChild : el.lastElementChild\n ) as HTMLElement;\n }\n\n const panel = data.panel;\n\n // If there is still no targetItem, then there are no items in the accordion\n if (targetItem) {\n await shinyRenderContent(\n targetItem,\n panel,\n data.position === \"before\" ? \"beforeBegin\" : \"afterEnd\"\n );\n } else {\n await shinyRenderContent(el, panel);\n }\n\n // Need to add a reference to the parent id that makes autoclose to work\n if (this._isAutoClosing(el)) {\n const val = $(panel.html).attr(\"data-value\");\n $(el)\n .find(`[data-value=\"${val}\"] .accordion-collapse`)\n .attr(\"data-bs-parent\", \"#\" + el.id);\n }\n }\n\n protected _removeItem(el: HTMLElement, data: RemoveMessage) {\n const targetItems = this._getItemInfo(el).filter(\n (x) => data.target.indexOf(x.value) > -1\n );\n\n const unbindAll = Shiny?.unbindAll;\n\n targetItems.forEach((x) => {\n if (unbindAll) unbindAll(x.item);\n x.item.remove();\n });\n }\n\n protected async _updateItem(el: HTMLElement, data: UpdateMessage) {\n const target = this._findItem(el, data.target);\n\n if (!target) {\n throw new Error(\n `Unable to find an accordion_panel() with a value of ${data.target}`\n );\n }\n\n if (hasDefinedProperty(data, \"value\")) {\n target.dataset.value = data.value;\n }\n\n if (hasDefinedProperty(data, \"body\")) {\n const body = target.querySelector(\".accordion-body\") as HTMLElement; // always exists\n await shinyRenderContent(body, data.body);\n }\n\n const header = target.querySelector(\".accordion-header\") as HTMLElement; // always exists\n\n if (hasDefinedProperty(data, \"title\")) {\n const title = header.querySelector(\".accordion-title\") as HTMLElement; // always exists\n await shinyRenderContent(title, data.title);\n }\n\n if (hasDefinedProperty(data, \"icon\")) {\n const icon = header.querySelector(\n \".accordion-button > .accordion-icon\"\n ) as HTMLElement; // always exists\n await shinyRenderContent(icon, data.icon);\n }\n }\n\n protected _getItemInfo(el: HTMLElement): AccordionItem[] {\n const items = Array.from(\n el.querySelectorAll(\":scope > .accordion-item\")\n ) as HTMLElement[];\n return items.map((x) => this._getSingleItemInfo(x));\n }\n\n protected _getSingleItemInfo(x: HTMLElement): AccordionItem {\n const collapse = x.querySelector(\".accordion-collapse\") as HTMLElement;\n const isOpen = () => $(collapse).hasClass(\"show\");\n return {\n item: x,\n value: x.dataset.value as string,\n isOpen: isOpen,\n show: () => {\n if (!isOpen()) $(collapse).collapse(\"show\");\n },\n hide: () => {\n if (isOpen()) $(collapse).collapse(\"hide\");\n },\n };\n }\n\n protected _getValues(\n el: HTMLElement,\n items: AccordionItem[],\n values: string[] | true\n ): string[] {\n let vals = values !== true ? values : items.map((x) => x.value);\n const autoclose = this._isAutoClosing(el);\n if (autoclose) {\n vals = vals.slice(vals.length - 1, vals.length);\n }\n return vals;\n }\n\n protected _findItem(el: HTMLElement, value: string): HTMLElement | null {\n return el.querySelector(`[data-value=\"${value}\"]`);\n }\n\n protected _isAutoClosing(el: HTMLElement): boolean {\n return el.classList.contains(\"autoclose\");\n }\n}\n\nregisterBinding(AccordionInputBinding, \"accordion\");\n", "/**\n * A resize observer that ensures Shiny outputs resize during or just after\n * their parent container size changes. Useful, in particular, for sidebar\n * transitions or for full-screen card transitions.\n *\n * @class ShinyResizeObserver\n * @typedef {ShinyResizeObserver}\n */\nclass ShinyResizeObserver {\n /**\n * The actual ResizeObserver instance.\n * @private\n * @type {ResizeObserver}\n */\n private resizeObserver: ResizeObserver;\n /**\n * An array of elements that are currently being watched by the Resize\n * Observer.\n *\n * @details\n * We don't currently have lifecycle hooks that allow us to unobserve elements\n * when they are removed from the DOM. As a result, we need to manually check\n * that the elements we're watching still exist in the DOM. This array keeps\n * track of the elements we're watching so that we can check them later.\n * @private\n * @type {HTMLElement[]}\n */\n private resizeObserverEntries: HTMLElement[];\n\n /**\n * Watch containers for size changes and ensure that Shiny outputs and\n * htmlwidgets within resize appropriately.\n *\n * @details\n * The ShinyResizeObserver is used to watch the containers, such as Sidebars\n * and Cards for size changes, in particular when the sidebar state is toggled\n * or the card body is expanded full screen. It performs two primary tasks:\n *\n * 1. Dispatches a `resize` event on the window object. This is necessary to\n * ensure that Shiny outputs resize appropriately. In general, the window\n * resizing is throttled and the output update occurs when the transition\n * is complete.\n * 2. If an output with a resize method on the output binding is detected, we\n * directly call the `.onResize()` method of the binding. This ensures that\n * htmlwidgets transition smoothly. In static mode, htmlwidgets does this\n * already.\n *\n * @note\n * This resize observer also handles race conditions in some complex\n * fill-based layouts with multiple outputs (e.g., plotly), where shiny\n * initializes with the correct sizing, but in-between the 1st and last\n * renderValue(), the size of the output containers can change, meaning every\n * output but the 1st gets initialized with the wrong size during their\n * renderValue(). Then, after the render phase, shiny won't know to trigger a\n * resize since all the widgets will return to their original size (and thus,\n * Shiny thinks there isn't any resizing to do). The resize observer works\n * around this by ensuring that the output is resized whenever its container\n * size changes.\n * @constructor\n */\n constructor() {\n this.resizeObserverEntries = [];\n this.resizeObserver = new ResizeObserver((entries) => {\n const resizeEvent = new Event(\"resize\");\n window.dispatchEvent(resizeEvent);\n\n // the rest of this callback is only relevant in Shiny apps\n if (!window.Shiny) return;\n\n const resized = [] as HTMLElement[];\n\n for (const entry of entries) {\n if (!(entry.target instanceof HTMLElement)) continue;\n if (!entry.target.querySelector(\".shiny-bound-output\")) continue;\n\n entry.target\n .querySelectorAll(\".shiny-bound-output\")\n .forEach((el) => {\n if (resized.includes(el)) return;\n\n const { binding, onResize } = $(el).data(\"shinyOutputBinding\");\n if (!binding || !binding.resize) return;\n\n // if this output is owned by another observer, skip it\n const owner = (el as any).shinyResizeObserver;\n if (owner && owner !== this) return;\n // mark this output as owned by this shinyResizeObserver instance\n if (!owner) (el as any).shinyResizeObserver = this;\n\n // trigger immediate resizing of outputs with a resize method\n onResize(el);\n // only once per output and resize event\n resized.push(el);\n\n // set plot images to 100% width temporarily during the transition\n if (!el.classList.contains(\"shiny-plot-output\")) return;\n const img = el.querySelector(\n 'img:not([width=\"100%\"])'\n );\n if (img) img.setAttribute(\"width\", \"100%\");\n });\n }\n });\n }\n\n /**\n * Observe an element for size changes.\n * @param {HTMLElement} el - The element to observe.\n */\n observe(el: HTMLElement): void {\n this.resizeObserver.observe(el);\n this.resizeObserverEntries.push(el);\n }\n\n /**\n * Stop observing an element for size changes.\n * @param {HTMLElement} el - The element to stop observing.\n */\n unobserve(el: HTMLElement): void {\n const idxEl = this.resizeObserverEntries.indexOf(el);\n if (idxEl < 0) return;\n\n this.resizeObserver.unobserve(el);\n this.resizeObserverEntries.splice(idxEl, 1);\n }\n\n /**\n * This method checks that we're not continuing to watch elements that no\n * longer exist in the DOM. If any are found, we stop observing them and\n * remove them from our array of observed elements.\n *\n * @private\n * @static\n */\n flush(): void {\n this.resizeObserverEntries.forEach((el) => {\n if (!document.body.contains(el)) this.unobserve(el);\n });\n }\n}\n\nexport { ShinyResizeObserver };\n", "import { getAllFocusableChildren } from \"./_utils\";\nimport { ShinyResizeObserver } from \"./_shinyResizeObserver\";\n\n/**\n * The overlay element that is placed behind the card when expanded full screen.\n *\n * @interface CardFullScreenOverlay\n * @typedef {CardFullScreenOverlay}\n */\ninterface CardFullScreenOverlay {\n /**\n * The full screen overlay container.\n * @type {HTMLDivElement}\n */\n container: HTMLDivElement;\n /**\n * The anchor element used to close the full screen overlay.\n * @type {HTMLAnchorElement}\n */\n anchor: HTMLAnchorElement;\n}\n\n/**\n * The bslib card component class.\n *\n * @class Card\n * @typedef {Card}\n */\nclass Card {\n /**\n * The card container element.\n * @private\n * @type {HTMLElement}\n */\n private card: HTMLElement;\n /**\n * The card's full screen overlay element. We create this element once and add\n * and remove it from the DOM as needed (this simplifies focus management\n * while in full screen mode).\n * @private\n * @type {CardFullScreenOverlay}\n */\n private overlay: CardFullScreenOverlay;\n\n /**\n * Key bslib-specific classes and attributes used by the card component.\n * @private\n * @static\n * @type {{ ATTR_INIT: string; CLASS_CARD: string; CLASS_FULL_SCREEN: string; CLASS_HAS_FULL_SCREEN: string; CLASS_FULL_SCREEN_ENTER: string; CLASS_FULL_SCREEN_EXIT: string; ID_FULL_SCREEN_OVERLAY: string; }}\n */\n private static attr = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ATTR_INIT: \"data-bslib-card-init\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CLASS_CARD: \"bslib-card\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ATTR_FULL_SCREEN: \"data-full-screen\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CLASS_HAS_FULL_SCREEN: \"bslib-has-full-screen\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CLASS_FULL_SCREEN_ENTER: \"bslib-full-screen-enter\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CLASS_FULL_SCREEN_EXIT: \"bslib-full-screen-exit\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ID_FULL_SCREEN_OVERLAY: \"bslib-full-screen-overlay\",\n };\n\n /**\n * A Shiny-specific resize observer that ensures Shiny outputs in within the\n * card resize appropriately.\n * @private\n * @type {ShinyResizeObserver}\n * @static\n */\n private static shinyResizeObserver = new ShinyResizeObserver();\n\n /**\n * Creates an instance of a bslib Card component.\n *\n * @constructor\n * @param {HTMLElement} card\n */\n constructor(card: HTMLElement) {\n // remove initialization attribute and script\n card.removeAttribute(Card.attr.ATTR_INIT);\n card\n .querySelector(`script[${Card.attr.ATTR_INIT}]`)\n ?.remove();\n\n this.card = card;\n Card.instanceMap.set(card, this);\n\n // Let Shiny know to trigger resize when the card size changes\n // TODO: shiny could/should do this itself (rstudio/shiny#3682)\n Card.shinyResizeObserver.observe(this.card);\n\n this._addEventListeners();\n this.overlay = this._createOverlay();\n\n // bind event handler methods to this card instance\n this._exitFullScreenOnEscape = this._exitFullScreenOnEscape.bind(this);\n this._trapFocusExit = this._trapFocusExit.bind(this);\n }\n\n /**\n * Enter the card's full screen mode, either programmatically or via an event\n * handler. Full screen mode is activated by adding a class to the card that\n * positions it absolutely and expands it to fill the viewport. In addition,\n * we add a full screen overlay element behind the card and we trap focus in\n * the expanded card while in full screen mode.\n *\n * @param {?Event} [event]\n */\n enterFullScreen(event?: Event): void {\n if (event) event.preventDefault();\n\n document.addEventListener(\"keydown\", this._exitFullScreenOnEscape, false);\n\n // trap focus in the fullscreen container, listening for Tab key on the\n // capture phase so we have the best chance of preventing other handlers\n document.addEventListener(\"keydown\", this._trapFocusExit, true);\n\n this.card.setAttribute(Card.attr.ATTR_FULL_SCREEN, \"true\");\n document.body.classList.add(Card.attr.CLASS_HAS_FULL_SCREEN);\n this.card.insertAdjacentElement(\"beforebegin\", this.overlay.container);\n\n // Set initial focus on the card, if not already\n if (\n !this.card.contains(document.activeElement) ||\n document.activeElement?.classList.contains(\n Card.attr.CLASS_FULL_SCREEN_ENTER\n )\n ) {\n this.card.setAttribute(\"tabindex\", \"-1\");\n this.card.focus();\n }\n }\n\n /**\n * Exit full screen mode. This removes the full screen overlay element,\n * removes the full screen class from the card, and removes the keyboard event\n * listeners that were added when entering full screen mode.\n */\n exitFullScreen(): void {\n document.removeEventListener(\n \"keydown\",\n this._exitFullScreenOnEscape,\n false\n );\n document.removeEventListener(\"keydown\", this._trapFocusExit, true);\n\n // Remove overlay and remove full screen classes from card\n this.overlay.container.remove();\n this.card.setAttribute(Card.attr.ATTR_FULL_SCREEN, \"false\");\n this.card.removeAttribute(\"tabindex\");\n document.body.classList.remove(Card.attr.CLASS_HAS_FULL_SCREEN);\n }\n\n /**\n * Adds general card-specific event listeners.\n * @private\n */\n private _addEventListeners(): void {\n const btnFullScreen = this.card.querySelector(\n `:scope > * > .${Card.attr.CLASS_FULL_SCREEN_ENTER}`\n );\n if (!btnFullScreen) return;\n btnFullScreen.addEventListener(\"click\", (ev) => this.enterFullScreen(ev));\n }\n\n /**\n * An event handler to exit full screen mode when the Escape key is pressed.\n * @private\n * @param {KeyboardEvent} event\n */\n private _exitFullScreenOnEscape(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLElement)) return;\n // If the user is in the middle of a select input choice, don't exit\n const selOpenSelectInput = [\"select[open]\", \"input[aria-expanded='true']\"];\n if (event.target.matches(selOpenSelectInput.join(\", \"))) return;\n\n if (event.key === \"Escape\") {\n this.exitFullScreen();\n }\n }\n\n /**\n * An event handler to trap focus within the card when in full screen mode.\n *\n * @description\n * This keyboard event handler ensures that tab focus stays within the card\n * when in full screen mode. When the card is first expanded,\n * we move focus to the card element itself. If focus somehow leaves the card,\n * we returns focus to the card container.\n *\n * Within the card, we handle only tabbing from the close anchor or the last\n * focusable element and only when tab focus would have otherwise left the\n * card. In those cases, we cycle focus to the last focusable element or back\n * to the anchor. If the card doesn't have any focusable elements, we move\n * focus to the close anchor.\n *\n * @note\n * Because the card contents may change, we check for focusable elements\n * every time the handler is called.\n *\n * @private\n * @param {KeyboardEvent} event\n */\n private _trapFocusExit(event: KeyboardEvent): void {\n if (!(event instanceof KeyboardEvent)) return;\n if (event.key !== \"Tab\") return;\n\n const isFocusedContainer = event.target === this.card;\n const isFocusedAnchor = event.target === this.overlay.anchor;\n const isFocusedWithin = this.card.contains(event.target as Node);\n\n const stopEvent = () => {\n event.preventDefault();\n event.stopImmediatePropagation();\n };\n\n if (!(isFocusedWithin || isFocusedContainer || isFocusedAnchor)) {\n // If focus is outside the card, return to the card\n stopEvent();\n this.card.focus();\n return;\n }\n\n // Check focusables every time because the card contents may have changed\n // but exclude the full screen enter button from this list of elements\n const focusableElements = getAllFocusableChildren(this.card).filter(\n (el) => !el.classList.contains(Card.attr.CLASS_FULL_SCREEN_ENTER)\n );\n const hasFocusableElements = focusableElements.length > 0;\n\n // We need to handle five cases:\n // 1. The card has no focusable elements --> focus the anchor\n // 2. Focus is on the card container (do nothing, natural tab order)\n // 3. Focus is on the anchor and the user pressed Tab + Shift (backwards)\n // -> Move to the last focusable element (end of card)\n // 4. Focus is on the last focusable element and the user pressed Tab\n // (forwards) -> Move to the anchor (top of card)\n // 5. otherwise we don't interfere\n\n if (!hasFocusableElements) {\n // case 1\n stopEvent();\n this.overlay.anchor.focus();\n return;\n }\n\n // case 2\n if (isFocusedContainer) return;\n\n const lastFocusable = focusableElements[focusableElements.length - 1];\n const isFocusedLast = event.target === lastFocusable;\n\n if (isFocusedAnchor && event.shiftKey) {\n stopEvent();\n lastFocusable.focus();\n return;\n }\n\n if (isFocusedLast && !event.shiftKey) {\n stopEvent();\n this.overlay.anchor.focus();\n return;\n }\n }\n\n /**\n * Creates the full screen overlay.\n * @private\n * @returns {CardFullScreenOverlay}\n */\n private _createOverlay(): CardFullScreenOverlay {\n const container = document.createElement(\"div\");\n container.id = Card.attr.ID_FULL_SCREEN_OVERLAY;\n container.onclick = this.exitFullScreen.bind(this);\n\n const anchor = this._createOverlayCloseAnchor();\n container.appendChild(anchor);\n\n return { container, anchor };\n }\n\n /**\n * Creates the anchor element used to exit the full screen mode.\n * @private\n * @returns {HTMLAnchorElement}\n */\n private _createOverlayCloseAnchor(): HTMLAnchorElement {\n const anchor = document.createElement(\"a\");\n anchor.classList.add(Card.attr.CLASS_FULL_SCREEN_EXIT);\n anchor.tabIndex = 0;\n anchor.onclick = () => this.exitFullScreen();\n anchor.onkeydown = (ev) => {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n this.exitFullScreen();\n }\n };\n anchor.innerHTML = this._overlayCloseHtml();\n\n return anchor;\n }\n\n /**\n * Returns the HTML for the close icon.\n * @private\n * @returns {string}\n */\n private _overlayCloseHtml(): string {\n return (\n \"Close \" +\n \"\" +\n \"\"\n );\n }\n\n /**\n * The registry of card instances and their associated DOM elements.\n * @private\n * @static\n * @type {WeakMap}\n */\n private static instanceMap: WeakMap = new WeakMap();\n\n /**\n * Returns the card instance associated with the given element, if any.\n * @public\n * @static\n * @param {HTMLElement} el\n * @returns {(Card | undefined)}\n */\n public static getInstance(el: HTMLElement): Card | undefined {\n return Card.instanceMap.get(el);\n }\n\n /**\n * If cards are initialized before the DOM is ready, we re-schedule the\n * initialization to occur on DOMContentLoaded.\n * @private\n * @static\n * @type {boolean}\n */\n private static onReadyScheduled = false;\n\n /**\n * Initializes all cards that require initialization on the page, or schedules\n * initialization if the DOM is not yet ready.\n * @public\n * @static\n * @param {boolean} [flushResizeObserver=true]\n */\n public static initializeAllCards(flushResizeObserver = true): void {\n if (document.readyState === \"loading\") {\n if (!Card.onReadyScheduled) {\n Card.onReadyScheduled = true;\n document.addEventListener(\"DOMContentLoaded\", () => {\n Card.initializeAllCards(false);\n });\n }\n return;\n }\n\n if (flushResizeObserver) {\n // Trigger a recheck of observed cards to unobserve non-existent cards\n Card.shinyResizeObserver.flush();\n }\n\n const initSelector = `.${Card.attr.CLASS_CARD}[${Card.attr.ATTR_INIT}]`;\n if (!document.querySelector(initSelector)) {\n // no cards to initialize\n return;\n }\n\n const cards = document.querySelectorAll(initSelector);\n cards.forEach((card) => new Card(card as HTMLElement));\n }\n}\n\n// attach Sidebar class to window for global usage\n(window as any).bslib = (window as any).bslib || {};\n(window as any).bslib.Card = Card;\n\nexport { Card };\n", "import { InputBinding, registerBinding } from \"./_utils\";\nimport { ShinyResizeObserver } from \"./_shinyResizeObserver\";\n\n/**\n * Methods for programmatically toggling the state of the sidebar. These methods\n * describe the desired state of the sidebar: `\"close\"` and `\"open\"` transition\n * the sidebar to the desired state, unless the sidebar is already in that\n * state. `\"toggle\"` transitions the sidebar to the state opposite of its\n * current state.\n * @typedef {SidebarToggleMethod}\n */\ntype SidebarToggleMethod = \"close\" | \"open\" | \"toggle\";\n\n/**\n * Data received by the input binding's `receiveMessage` method.\n * @typedef {SidebarMessageData}\n */\ntype SidebarMessageData = {\n method: SidebarToggleMethod;\n};\n\n/**\n * The DOM elements that make up the sidebar. `main`, `sidebar`, and `toggle`\n * are all direct children of `container` (in that order).\n * @interface SidebarComponents\n * @typedef {SidebarComponents}\n */\ninterface SidebarComponents {\n /**\n * The `layout_sidebar()` parent container, with class\n * `Sidebar.classes.LAYOUT`.\n * @type {HTMLElement}\n */\n container: HTMLElement;\n /**\n * The main content area of the sidebar layout.\n * @type {HTMLElement}\n */\n main: HTMLElement;\n /**\n * The sidebar container of the sidebar layout.\n * @type {HTMLElement}\n */\n sidebar: HTMLElement;\n /**\n * The toggle button that is used to toggle the sidebar state.\n * @type {HTMLElement}\n */\n toggle: HTMLElement;\n}\n\n/**\n * The bslib sidebar component class. This class is only used for collapsible\n * sidebars.\n *\n * @class Sidebar\n * @typedef {Sidebar}\n */\nclass Sidebar {\n /**\n * The DOM elements that make up the sidebar, see `SidebarComponents`.\n * @private\n * @type {SidebarComponents}\n */\n private layout: SidebarComponents;\n\n /**\n * A Shiny-specific resize observer that ensures Shiny outputs in the main\n * content areas of the sidebar resize appropriately.\n * @private\n * @type {ShinyResizeObserver}\n * @static\n */\n private static shinyResizeObserver = new ShinyResizeObserver();\n\n /**\n * Creates an instance of a collapsible bslib Sidebar.\n * @constructor\n * @param {HTMLElement} container\n */\n constructor(container: HTMLElement) {\n Sidebar.instanceMap.set(container, this);\n this.layout = {\n container,\n main: container.querySelector(\":scope > .main\") as HTMLElement,\n sidebar: container.querySelector(\":scope > .sidebar\") as HTMLElement,\n toggle: container.querySelector(\n \":scope > .collapse-toggle\"\n ) as HTMLElement,\n } as SidebarComponents;\n\n const sideAccordion = this.layout.sidebar.querySelector(\n \":scope > .sidebar-content > .accordion\"\n );\n if (sideAccordion) {\n // Add `.has-accordion` class to `.sidebar-content` container\n sideAccordion?.parentElement?.classList.add(\"has-accordion\");\n sideAccordion.classList.add(\"accordion-flush\");\n }\n\n if (this.layout.toggle) {\n this._initEventListeners();\n this._initSidebarCounters();\n this._initDesktop();\n }\n\n // Start watching the main content area for size changes to ensure Shiny\n // outputs resize appropriately during sidebar transitions.\n Sidebar.shinyResizeObserver.observe(this.layout.main);\n\n container.removeAttribute(\"data-bslib-sidebar-init\");\n const initScript = container.querySelector(\n \":scope > script[data-bslib-sidebar-init]\"\n );\n if (initScript) {\n container.removeChild(initScript);\n }\n }\n\n /**\n * Read the current state of the sidebar. Note that, when calling this method,\n * the sidebar may be transitioning into the state returned by this method.\n *\n * @description\n * The sidebar state works as follows, starting from the open state. When the\n * sidebar is closed:\n * 1. We add both the `COLLAPSE` and `TRANSITIONING` classes to the sidebar.\n * 2. The sidebar collapse begins to animate. On desktop devices, and where it\n * is supported, we transition the `grid-template-columns` property of the\n * sidebar layout. On mobile, the sidebar is hidden immediately. In both\n * cases, the collapse icon rotates and we use this rotation to determine\n * when the transition is complete.\n * 3. If another sidebar state toggle is requested while closing the sidebar,\n * we remove the `COLLAPSE` class and the animation immediately starts to\n * reverse.\n * 4. When the `transition` is complete, we remove the `TRANSITIONING` class.\n * @readonly\n * @type {boolean}\n */\n get isClosed(): boolean {\n return this.layout.container.classList.contains(Sidebar.classes.COLLAPSE);\n }\n\n /**\n * Static classes related to the sidebar layout or state.\n * @public\n * @static\n * @readonly\n * @type {{ LAYOUT: string; COLLAPSE: string; TRANSITIONING: string; }}\n */\n public static readonly classes = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n LAYOUT: \"bslib-sidebar-layout\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n COLLAPSE: \"sidebar-collapsed\",\n // eslint-disable-next-line @typescript-eslint/naming-convention\n TRANSITIONING: \"transitioning\",\n };\n\n /**\n * If sidebars are initialized before the DOM is ready, we re-schedule the\n * initialization to occur on DOMContentLoaded.\n * @private\n * @static\n * @type {boolean}\n */\n private static onReadyScheduled = false;\n /**\n * A map of initialized sidebars to their respective Sidebar instances.\n * @private\n * @static\n * @type {WeakMap}\n */\n private static instanceMap: WeakMap = new WeakMap();\n\n /**\n * Given a sidebar container, return the Sidebar instance associated with it.\n * @public\n * @static\n * @param {HTMLElement} el\n * @returns {(Sidebar | undefined)}\n */\n public static getInstance(el: HTMLElement): Sidebar | undefined {\n return Sidebar.instanceMap.get(el);\n }\n\n /**\n * Initialize all collapsible sidebars on the page.\n * @public\n * @static\n * @param {boolean} [flushResizeObserver=true] When `true`, we remove\n * non-existent elements from the ResizeObserver. This is required\n * periodically to prevent memory leaks. To avoid over-checking, we only flush\n * the ResizeObserver when initializing sidebars after page load.\n */\n public static initCollapsibleAll(flushResizeObserver = true): void {\n if (document.readyState === \"loading\") {\n if (!Sidebar.onReadyScheduled) {\n Sidebar.onReadyScheduled = true;\n document.addEventListener(\"DOMContentLoaded\", () => {\n Sidebar.initCollapsibleAll(false);\n });\n }\n return;\n }\n\n const initSelector = `.${Sidebar.classes.LAYOUT}[data-bslib-sidebar-init]`;\n if (!document.querySelector(initSelector)) {\n // no sidebars to initialize\n return;\n }\n\n if (flushResizeObserver) Sidebar.shinyResizeObserver.flush();\n\n const containers = document.querySelectorAll(initSelector);\n containers.forEach((container) => new Sidebar(container as HTMLElement));\n }\n\n /**\n * Initialize event listeners for the sidebar toggle button.\n * @private\n */\n private _initEventListeners(): void {\n const { toggle } = this.layout;\n\n toggle.addEventListener(\"click\", (ev) => {\n ev.preventDefault();\n this.toggle(\"toggle\");\n });\n\n // Remove the transitioning class when the transition ends. We watch the\n // collapse toggle icon because it's guaranteed to transition, whereas the\n // sidebar doesn't animate on mobile (or in browsers where animating\n // grid-template-columns is not supported).\n toggle\n .querySelector(\".collapse-icon\")\n ?.addEventListener(\"transitionend\", () => this._finalizeState());\n }\n\n /**\n * Initialize nested sidebar counters.\n *\n * @description\n * This function walks up the DOM tree, adding CSS variables to each direct\n * parent sidebar layout that count the layout's position in the stack of\n * nested layouts. We use these counters to keep the collapse toggles from\n * overlapping. Note that always-open sidebars that don't have collapse\n * toggles break the chain of nesting.\n * @private\n */\n private _initSidebarCounters(): void {\n const { container } = this.layout;\n\n const selectorChildLayouts =\n `.${Sidebar.classes.LAYOUT}` +\n \"> .main > \" +\n `.${Sidebar.classes.LAYOUT}:not([data-bslib-sidebar-open=\"always\"])`;\n\n const isInnermostLayout =\n container.querySelector(selectorChildLayouts) === null;\n\n if (!isInnermostLayout) {\n // There are sidebar layouts nested within this layout; defer to children\n return;\n }\n\n function nextSidebarParent(el: HTMLElement | null): HTMLElement | null {\n el = el ? el.parentElement : null;\n if (el && el.classList.contains(\"main\")) {\n // .bslib-sidebar-layout > .main > .bslib-sidebar-layout\n el = el.parentElement;\n }\n if (el && el.classList.contains(Sidebar.classes.LAYOUT)) {\n return el;\n }\n return null;\n }\n\n const layouts = [container];\n let parent = nextSidebarParent(container);\n\n while (parent) {\n // Add parent to front of layouts array, so we sort outer -> inner\n layouts.unshift(parent);\n parent = nextSidebarParent(parent);\n }\n\n const count = { left: 0, right: 0 };\n layouts.forEach(function (x: HTMLElement): void {\n const isRight = x.classList.contains(\"sidebar-right\");\n const thisCount = isRight ? count.right++ : count.left++;\n x.style.setProperty(\"--_js-toggle-count-this-side\", thisCount.toString());\n x.style.setProperty(\n \"--_js-toggle-count-max-side\",\n Math.max(count.right, count.left).toString()\n );\n });\n }\n\n /**\n * Initialize the sidebar's initial state when `open = \"desktop\"`.\n * @private\n */\n private _initDesktop(): void {\n const { container } = this.layout;\n // If sidebar is marked open='desktop'...\n if (container.dataset.bslibSidebarOpen?.trim() !== \"desktop\") {\n return;\n }\n\n // then close sidebar on mobile\n const initCollapsed = window\n .getComputedStyle(container)\n .getPropertyValue(\"--bslib-sidebar-js-init-collapsed\");\n\n const initState = initCollapsed.trim() === \"true\" ? \"close\" : \"open\";\n this.toggle(initState, true);\n }\n\n /**\n * Toggle the sidebar's open/closed state.\n * @public\n * @param {SidebarToggleMethod | undefined} method Whether to `\"open\"`,\n * `\"close\"` or `\"toggle\"` the sidebar. If `.toggle()` is called without an\n * argument, it will toggle the sidebar's state.\n * @param {boolean} [immediate=false] If `true`, the sidebar state will be\n * set immediately, without a transition. This is primarily used when the\n * sidebar is initialized.\n */\n public toggle(\n method: SidebarToggleMethod | undefined,\n immediate = false\n ): void {\n if (typeof method === \"undefined\") {\n method = \"toggle\";\n }\n\n const { container, sidebar } = this.layout;\n const isClosed = this.isClosed;\n\n if ([\"open\", \"close\", \"toggle\"].indexOf(method) === -1) {\n throw new Error(`Unknown method ${method}`);\n }\n\n if (method === \"toggle\") {\n method = isClosed ? \"open\" : \"close\";\n }\n\n if ((isClosed && method === \"close\") || (!isClosed && method === \"open\")) {\n // nothing to do, sidebar is already in the desired state\n if (immediate) this._finalizeState();\n return;\n }\n\n if (method === \"open\") {\n // unhide sidebar immediately when opening,\n // otherwise the sidebar is hidden on transitionend\n sidebar.hidden = false;\n }\n\n // If not immediate, add the .transitioning class to the sidebar for smooth\n // transitions. This class is removed when the transition ends.\n container.classList.toggle(Sidebar.classes.TRANSITIONING, !immediate);\n container.classList.toggle(Sidebar.classes.COLLAPSE);\n\n if (immediate) {\n // When transitioning, state is finalized on transitionend, otherwise we\n // need to manually and immediately finalize the state.\n this._finalizeState();\n }\n }\n\n /**\n * When the sidebar open/close transition ends, finalize the sidebar's state.\n * @private\n */\n private _finalizeState(): void {\n const { container, sidebar, toggle } = this.layout;\n container.classList.remove(Sidebar.classes.TRANSITIONING);\n sidebar.hidden = this.isClosed;\n toggle.setAttribute(\"aria-expanded\", this.isClosed ? \"false\" : \"true\");\n\n // Send browser-native event with updated sidebar state\n const event = new CustomEvent(\"bslib.sidebar\", {\n bubbles: true,\n detail: { open: !this.isClosed },\n });\n sidebar.dispatchEvent(event);\n\n // Trigger Shiny input and output binding events\n $(sidebar).trigger(\"toggleCollapse.sidebarInputBinding\");\n $(sidebar).trigger(this.isClosed ? \"hidden\" : \"shown\");\n }\n}\n\n/**\n * A Shiny input binding for a sidebar.\n * @class SidebarInputBinding\n * @typedef {SidebarInputBinding}\n * @extends {InputBinding}\n */\nclass SidebarInputBinding extends InputBinding {\n find(scope: HTMLElement) {\n return $(scope).find(`.${Sidebar.classes.LAYOUT} > .bslib-sidebar-input`);\n }\n\n getValue(el: HTMLElement): boolean {\n const sb = Sidebar.getInstance(el.parentElement as HTMLElement);\n if (!sb) return false;\n return !sb.isClosed;\n }\n\n setValue(el: HTMLElement, value: boolean): void {\n const method = value ? \"open\" : \"close\";\n this.receiveMessage(el, { method });\n }\n\n subscribe(el: HTMLElement, callback: (x: boolean) => void) {\n $(el).on(\n \"toggleCollapse.sidebarInputBinding\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function (event) {\n callback(true);\n }\n );\n }\n\n unsubscribe(el: HTMLElement) {\n $(el).off(\".sidebarInputBinding\");\n }\n\n receiveMessage(el: HTMLElement, data: SidebarMessageData) {\n const sb = Sidebar.getInstance(el.parentElement as HTMLElement);\n if (sb) sb.toggle(data.method);\n }\n}\n\nregisterBinding(SidebarInputBinding, \"sidebar\");\n\n// attach Sidebar class to window for global usage\n(window as any).bslib = (window as any).bslib || {};\n(window as any).bslib.Sidebar = Sidebar;\n", "import { InputBinding, registerBinding } from \"./_utils\";\nimport type { BslibSwitchInline } from \"./webcomponents/switch\";\n\ntype TaskButtonMessage = {\n state: string;\n};\n\n/**\n * This is a Shiny input binding for `bslib::input_task_button()`. It is not a\n * web component, though one of its children is . The\n * reason it is not a web component is because it is primarily a button, and I\n * wanted to use the native