updateGlassTabsUI() for programmatic tab
switching from the server.showGlassTab() and hideGlassTab()
for dynamically showing and hiding tabs at runtime.appendGlassTab() and
removeGlassTab() for adding and removing tabs at
runtime.glassTabsUI() now validates selected
against the available glassTabPanel() values and errors
early on invalid tab ids.glassTabsServer() is
populated on first render.Opening a dropdown now closes any other open glasstabs dropdown, fixing a visual stacking issue where multiple dropdowns appeared simultaneously.
Improved widget lifecycle in dynamic UI (renderUI(),
conditionalPanel()). Widgets initialize more reliably and
clean up properly when removed.
Widgets now emit their initial value to Shiny immediately after
rendering, fixing timing issues with conditionalPanel() and
dynamic UI.
JavaScript engine refactored to use internal state instead of DOM scanning. No changes to the R API — all existing code works without modification.
Added scroll containers for long option lists, debounced search,
and .gt-loading / .gt-disabled CSS utility
classes.
glassSelect(), an animated single-select dropdown
for Shiny.updateGlassSelect() for server-side updates to
choices and selection.glassSelectValue() as a convenience reactive
helper for reading the selected value.updateGlassMultiSelect() for server-side updates
to choices, selection, and checkbox style.glassMultiSelectValue() as a convenience reactive
helper for reading selected values and active style.label support to
glassMultiSelect().all_label support to control the
trigger text shown when all choices are selected.glassSelect() and
glassMultiSelect() more closely with standard Shiny input
behavior.session$sendInputMessage() update patterns.glassMultiSelect() default behavior
where selected = NULL initializes all choices as
selected."filled"
multi-select style.glassSelect().glassSelect().updateGlassMultiSelect() and
glassMultiSelectValue().glassSelect(),
updateGlassSelect(), and
glassSelectValue().glassMultiSelect() server-side
updates and helper utilities.Initial release.
glassTabsUI() — animated glassmorphism-style tab
navigation with a sliding glass halo and transfer trace between
tabs.glassTabPanel() — defines a single tab button and its
content pane.glassTabsServer() — reactive helper that tracks the
active tab value.glass_tab_theme() — custom color theme for
glassTabsUI() with eight independent handles:
tab_text, tab_active_text,
halo_bg, halo_border, content_bg,
content_border, card_bg,
card_text."dark" (default) and "light"
presets for glassTabsUI().bs4Dash compatibility via
wrap = FALSE.glassMultiSelect() — dropdown filter with live search,
select-all with indeterminate state, and three checkbox indicator
styles: "checkbox", "check-only", and
"filled".glassFilterTags() — tag-pill display area that stays in
sync with a glassMultiSelect() automatically via
JavaScript; clicking × on a pill deselects that option.glass_select_theme() — custom color theme with four
handles: bg_color, border_color,
text_color, accent_color."dark" and "light" presets for
glassMultiSelect().show_style_switcher, show_select_all,
show_clear_all flags to hide UI chrome (all default
TRUE)."filled" style via
the hues argument (auto-assigned if omitted).useGlassTabs() — injects CSS and JavaScript via
htmltools::htmlDependency, which is deduplicated
automatically by Shiny.color-mix()), ensuring compatibility with Shiny’s embedded
browser.id.