{
  "_id": "6abd698599f7aa8c6aa50056",
  "Package": "VizModules",
  "Title": "Flexible, Interactive 'shiny' Modules for Almost Any Plot",
  "Version": "0.5.0",
  "Authors@R": "c(person(given = \"Jared\", family = \"Andrews\", email = \"jared.andrews07@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-0780-6248\")),\nperson(given = \"Jacob\",\nfamily = \"Martin\",\nrole = c(\"aut\"),\ncomment = c(ORCID = \"0009-0007-6896-4796\"),\nemail = \"jacob@martin-email.com\"))",
  "Description": "Offers a core selection of interactivity-first 'shiny'\nmodules for many plot types meant to serve as flexible building\nblocks for applications and as the base for more complex\nmodules. These modules allow for the rapid and convenient\nconstruction of 'shiny' apps with very few lines of code and\ndecouple plotting from the underlying data. These modules allow\nfor full plot aesthetic customization by the end user through\nUI inputs. Utility functions for simple UI organization,\nautomated UI tooltips, and additional plot enhancements are\nalso provided. Includes a multi-panel figure builder app for\narranging multiple modules together in a free-form layout.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://j-andrews7.github.io/VizModules/,\nhttps://github.com/j-andrews7/VizModules",
  "Config/roxygen2/version": "8.1.0",
  "Config/pak/sysreqs": "cmake make libicu-dev libjpeg-dev libpng-dev\nlibuv1-dev libxml2-dev libssl-dev zlib1g-dev",
  "Repository": "https://j-andrews7.r-universe.dev",
  "Date/Publication": "2026-09-30 16:11:30 UTC",
  "RemoteUrl": "https://github.com/j-andrews7/vizmodules",
  "RemoteRef": "HEAD",
  "RemoteSha": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-30 19:41:42 UTC",
    "User": "root"
  },
  "Author": "Jared Andrews [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-0780-6248>),\nJacob Martin [aut] (ORCID: <https://orcid.org/0009-0007-6896-4796>)",
  "Maintainer": "Jared Andrews <jared.andrews07@gmail.com>",
  "_user": "j-andrews7",
  "_type": "src",
  "_file": "VizModules_0.5.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/32d5b4332bbd0766813df461406ae8cf501c58b3de35fd936c36ec3b232824da",
  "_filesize": 2743343,
  "_sha256": "32d5b4332bbd0766813df461406ae8cf501c58b3de35fd936c36ec3b232824da",
  "_expires": "2027-01-08T19:56:50.000Z",
  "_created": "2026-09-30T19:41:42.000Z",
  "_published": "2026-09-30T19:56:52.804Z",
  "_jobs": [
    {
      "job": 110065276099,
      "time": 387,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11122991515"
    },
    {
      "job": 110065276098,
      "time": 393,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11121522867"
    },
    {
      "job": 110065276062,
      "time": 204,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11121853859"
    },
    {
      "job": 110065276094,
      "time": 285,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11121578310"
    },
    {
      "job": 110063570156,
      "time": 263,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11122545618"
    },
    {
      "job": 110065276037,
      "time": 177,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11121782226"
    },
    {
      "job": 110065276273,
      "time": 480,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11122376902"
    },
    {
      "job": 110065276172,
      "time": 336,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11122341633"
    },
    {
      "job": 110065276199,
      "time": 339,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11122866346"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844",
  "_status": "success",
  "_upstream": "https://github.com/j-andrews7/vizmodules",
  "_commit": {
    "id": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
    "author": "Jared Andrews <jared.andrews07@gmail.com>",
    "committer": "Jared Andrews <jared.andrews07@gmail.com>",
    "message": "package updates\n",
    "time": 1790784690
  },
  "_maintainer": {
    "name": "Jared Andrews",
    "email": "jared.andrews07@gmail.com",
    "login": "j-andrews7",
    "description": "Senior Bioinformatics Research Scientist at St. Jude Children's Research Hospital",
    "uuid": 10225716,
    "orcid": "0000-0002-0780-6248"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "shiny",
      "role": "Depends"
    },
    {
      "package": "dittoViz",
      "role": "Depends"
    },
    {
      "package": "plotly",
      "role": "Depends"
    },
    {
      "package": "R",
      "version": ">= 4.5",
      "role": "Depends"
    },
    {
      "package": "shinyBS",
      "role": "Depends"
    },
    {
      "package": "plotthis",
      "version": ">= 0.13.0",
      "role": "Depends"
    },
    {
      "package": "roclang",
      "role": "Imports"
    },
    {
      "package": "colourpicker",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "DT",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "shinyjs",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "shinyjqui",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "shinyWidgets",
      "version": ">= 0.7.0",
      "role": "Imports"
    },
    {
      "package": "htmlwidgets",
      "role": "Imports"
    },
    {
      "package": "zip",
      "role": "Imports"
    },
    {
      "package": "drc",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "ComplexHeatmap",
      "role": "Suggests"
    },
    {
      "package": "InteractiveComplexHeatmap",
      "role": "Suggests"
    },
    {
      "package": "circlize",
      "role": "Suggests"
    },
    {
      "package": "grid",
      "role": "Suggests"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "j-andrews7",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-50",
      "n": 1
    },
    {
      "week": "2025-51",
      "n": 1
    },
    {
      "week": "2026-01",
      "n": 12
    },
    {
      "week": "2026-02",
      "n": 17
    },
    {
      "week": "2026-03",
      "n": 52
    },
    {
      "week": "2026-04",
      "n": 27
    },
    {
      "week": "2026-05",
      "n": 52
    },
    {
      "week": "2026-06",
      "n": 6
    },
    {
      "week": "2026-08",
      "n": 5
    },
    {
      "week": "2026-09",
      "n": 20
    },
    {
      "week": "2026-10",
      "n": 61
    },
    {
      "week": "2026-11",
      "n": 18
    },
    {
      "week": "2026-12",
      "n": 13
    },
    {
      "week": "2026-13",
      "n": 43
    },
    {
      "week": "2026-14",
      "n": 1
    },
    {
      "week": "2026-15",
      "n": 1
    },
    {
      "week": "2026-16",
      "n": 2
    },
    {
      "week": "2026-24",
      "n": 20
    },
    {
      "week": "2026-25",
      "n": 18
    },
    {
      "week": "2026-26",
      "n": 2
    },
    {
      "week": "2026-30",
      "n": 5
    },
    {
      "week": "2026-31",
      "n": 5
    },
    {
      "week": "2026-35",
      "n": 2
    },
    {
      "week": "2026-36",
      "n": 1
    },
    {
      "week": "2026-37",
      "n": 2
    },
    {
      "week": "2026-40",
      "n": 7
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-03-27"
    },
    {
      "name": "v0.1.1",
      "date": "2026-04-01"
    },
    {
      "name": "v0.2.0",
      "date": "2026-06-16"
    },
    {
      "name": "v0.3.0",
      "date": "2026-07-27"
    },
    {
      "name": "v0.4.0",
      "date": "2026-08-28"
    },
    {
      "name": "v0.5.0",
      "date": "2026-09-29"
    }
  ],
  "_topics": [
    "data-visualization",
    "modules",
    "shiny",
    "visualization"
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "j-andrews7",
      "count": 594,
      "uuid": 10225716
    },
    {
      "user": "jacob1106",
      "count": 367,
      "uuid": 67519891
    },
    {
      "user": "copilot",
      "count": 340,
      "uuid": 198982749
    }
  ],
  "_userbio": {
    "uuid": 10225716,
    "type": "user",
    "name": "Jared Andrews",
    "followers": 144,
    "description": "Senior Bioinformatics Research Scientist at St. Jude Children's Research Hospital"
  },
  "_downloads": {
    "count": 480,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/VizModules"
  },
  "_devurl": "https://github.com/j-andrews7/vizmodules",
  "_pkgdown": "https://j-andrews7.github.io/VizModules/",
  "_searchresults": 113,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/VizModules.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/j-andrews7/vizmodules",
  "_realowner": "j-andrews7",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2026-04-08"
    },
    {
      "version": "0.2.0",
      "date": "2026-06-17"
    },
    {
      "version": "0.3.0",
      "date": "2026-07-27"
    },
    {
      "version": "0.4.0",
      "date": "2026-08-29"
    },
    {
      "version": "0.5.0",
      "date": "2026-09-30"
    }
  ],
  "_exports": [
    "add_ablines",
    "add_hlines",
    "add_plot_config",
    "add_reference_lines",
    "add_vlines",
    "adjust_column_values",
    "adjusted_axis_label",
    "apply_axis_title_to_annotations",
    "apply_facet_subplot_spacing",
    "apply_legend_inputs",
    "apply_legend_styling",
    "apply_plotly_newshape",
    "apply_render_margins",
    "apply_stat_annotations",
    "apply_subplot_axis_styling",
    "apply_title_layout",
    "axis_titles_as_annotations",
    "build_facet_annotations",
    "build_facet_panel_borders",
    "build_model_row_spec",
    "clean_facet_dim",
    "collect_source_data",
    "ComplexHeatmap_HeatmapApp",
    "ComplexHeatmap_HeatmapInfoOutputUI",
    "ComplexHeatmap_HeatmapInputsUI",
    "ComplexHeatmap_HeatmapMainOutputUI",
    "ComplexHeatmap_HeatmapOutputUI",
    "ComplexHeatmap_HeatmapServer",
    "ComplexHeatmap_HeatmapStaticOutputUI",
    "ComplexHeatmap_HeatmapSubOutputUI",
    "compute_pairwise_stats",
    "create_axis_styles",
    "create_ggplot_axis_style",
    "create_source_download_handler",
    "create_stat_annotations",
    "createModuleApp",
    "dataFilterServer",
    "dataFilterUI",
    "default_palettes",
    "dittoViz_freqPlotApp",
    "dittoViz_freqPlotInputsUI",
    "dittoViz_freqPlotOutputUI",
    "dittoViz_freqPlotServer",
    "dittoViz_scatterPlotApp",
    "dittoViz_scatterPlotInputsUI",
    "dittoViz_scatterPlotOutputUI",
    "dittoViz_scatterPlotServer",
    "dittoViz_yPlotApp",
    "dittoViz_yPlotInputsUI",
    "dittoViz_yPlotOutputUI",
    "dittoViz_yPlotServer",
    "draw_to_png",
    "draw_to_svg",
    "dumbbellPlot",
    "dumbbellPlotApp",
    "dumbbellPlotInputsUI",
    "dumbbellPlotOutputUI",
    "dumbbellPlotServer",
    "empty_plot",
    "figureBuilderApp",
    "figureBuilderServer",
    "figureBuilderUI",
    "finalize_manual_edits",
    "generate_pair_strings",
    "get_default",
    "get_documentation",
    "get_model_backend",
    "heatmap_fit_width",
    "hide_input",
    "is_pure_type",
    "linePlot",
    "linePlotApp",
    "linePlotInputsUI",
    "linePlotOutputUI",
    "linePlotServer",
    "linetype_to_dash",
    "list_model_backends",
    "module_tack_ui",
    "moduleGalleryApp",
    "multiColorPicker",
    "multiDynamicInput",
    "organize_inputs",
    "parallelCoordinatesPlot",
    "parallelCoordinatesPlotApp",
    "parallelCoordinatesPlotInputsUI",
    "parallelCoordinatesPlotOutputUI",
    "parallelCoordinatesPlotServer",
    "parse_numeric_list",
    "parse_pair_strings",
    "piePlot",
    "piePlotApp",
    "piePlotInputsUI",
    "piePlotOutputUI",
    "piePlotServer",
    "plotthis_AreaPlotApp",
    "plotthis_AreaPlotInputsUI",
    "plotthis_AreaPlotOutputUI",
    "plotthis_AreaPlotServer",
    "plotthis_BarPlotApp",
    "plotthis_BarPlotInputsUI",
    "plotthis_BarPlotOutputUI",
    "plotthis_BarPlotServer",
    "plotthis_BoxPlotApp",
    "plotthis_BoxPlotInputsUI",
    "plotthis_BoxPlotOutputUI",
    "plotthis_BoxPlotServer",
    "plotthis_DensityPlotApp",
    "plotthis_DensityPlotInputsUI",
    "plotthis_DensityPlotOutputUI",
    "plotthis_DensityPlotServer",
    "plotthis_DotPlotApp",
    "plotthis_DotPlotInputsUI",
    "plotthis_DotPlotOutputUI",
    "plotthis_DotPlotServer",
    "plotthis_HistogramApp",
    "plotthis_HistogramInputsUI",
    "plotthis_HistogramOutputUI",
    "plotthis_HistogramServer",
    "plotthis_SplitBarPlotApp",
    "plotthis_SplitBarPlotInputsUI",
    "plotthis_SplitBarPlotOutputUI",
    "plotthis_SplitBarPlotServer",
    "radarPlot",
    "radarPlotApp",
    "radarPlotInputsUI",
    "radarPlotOutputUI",
    "radarPlotServer",
    "recycle_line_style",
    "register_model_backend",
    "reset_annotation_inputs",
    "reset_axes_inputs",
    "reset_axis_title_text",
    "reset_legend_inputs",
    "reset_lines_inputs",
    "reset_plotly_inputs",
    "resolve_column_targets",
    "resolve_facet_layout",
    "resolve_facet_sharing",
    "resolve_palette",
    "safe_eval_filter",
    "safe_resolve_adj_fxn",
    "setup_auto_update_logic",
    "setup_axis_range",
    "setup_group_colors",
    "setup_manual_edits",
    "setup_reactive_defaults",
    "show_input",
    "stat_bracket_y_max",
    "string_to_linetypes",
    "toggle_input_cell",
    "uniform_annotation_inputs_ui",
    "uniform_axes_inputs_ui",
    "uniform_legend_inputs_ui",
    "uniform_lines_inputs_ui",
    "uniform_plotly_inputs_ui",
    "update_viz_select",
    "updateMultiColorPicker",
    "updateMultiDynamicInput",
    "use_vizmodules_skills",
    "validate_expression",
    "viz_select_input"
  ],
  "_datasets": [
    {
      "name": "example_bar",
      "title": "Bar dataset for bar and split bar plot examples",
      "object": "example_bar",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Group",
        "Type",
        "Values",
        "Numbers",
        "Score"
      ],
      "rows": 18,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_composition",
      "title": "Example single-cell-style composition data for the freqPlot module",
      "object": "example_composition",
      "class": [
        "data.frame"
      ],
      "fields": [
        "cell_id",
        "sample",
        "condition",
        "batch",
        "cell_type",
        "n_genes",
        "percent_mito"
      ],
      "rows": 1800,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_demographics",
      "title": "Example demographics dataset",
      "object": "example_demographics",
      "class": [
        "data.frame"
      ],
      "fields": [
        "department",
        "job_level",
        "gender",
        "age",
        "salary",
        "satisfaction",
        "performance",
        "tenure_years",
        "weekly_hours",
        "work_mode",
        "employee_id"
      ],
      "rows": 500,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_heatmap_column_data",
      "title": "Example sample-metadata table for the ComplexHeatmap module",
      "object": "example_heatmap_column_data",
      "class": [
        "data.frame"
      ],
      "fields": [
        "sample",
        "condition",
        "batch",
        "library_size"
      ],
      "rows": 12,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_heatmap_matrix",
      "title": "Example gene-expression-style matrix for the ComplexHeatmap module",
      "object": "example_heatmap_matrix",
      "class": [
        "data.frame"
      ],
      "fields": [
        "gene",
        "pathway",
        "mean_expression",
        "Healthy_1",
        "Healthy_2",
        "Healthy_3",
        "Healthy_4",
        "Healthy_5",
        "Healthy_6",
        "Disease_1",
        "Disease_2",
        "Disease_3",
        "Disease_4",
        "Disease_5",
        "Disease_6"
      ],
      "rows": 30,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_iris",
      "title": "Example grouped iris dataset",
      "object": "example_iris",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Sepal.Length",
        "Sepal.Width",
        "Petal.Length",
        "Petal.Width",
        "Species",
        "Group"
      ],
      "rows": 150,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_markers",
      "title": "Example single-cell marker gene dataset for dot plots",
      "object": "example_markers",
      "class": [
        "data.frame"
      ],
      "fields": [
        "cell_type",
        "gene",
        "avg_expression",
        "pct_expressed"
      ],
      "rows": 104,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_mtcars",
      "title": "Example mtcars dataset with factors",
      "object": "example_mtcars",
      "class": [
        "data.frame"
      ],
      "fields": [
        "mpg",
        "cyl",
        "disp",
        "hp",
        "drat",
        "wt",
        "qsec",
        "vs",
        "am",
        "gear",
        "carb"
      ],
      "rows": 32,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_population",
      "title": "Example population dataset",
      "object": "example_population",
      "class": [
        "data.frame"
      ],
      "fields": [
        "year",
        "age_group",
        "count",
        "record_id"
      ],
      "rows": 400,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_rnaseq",
      "title": "Example pseudo-bulk RNA-seq dataset",
      "object": "example_rnaseq",
      "class": [
        "data.frame"
      ],
      "fields": [
        "cell_type",
        "gene",
        "condition",
        "replicate",
        "log2_cpm",
        "avg_expression",
        "neg_log10_pval"
      ],
      "rows": 288,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_sales",
      "title": "Example sales dataset",
      "object": "example_sales",
      "class": [
        "data.frame"
      ],
      "fields": [
        "region",
        "revenue",
        "year",
        "month",
        "units",
        "sale_id",
        "product_line",
        "profit"
      ],
      "rows": 720,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_school_earnings",
      "title": "Example school earnings dataset for dumbbell plots",
      "object": "example_school_earnings",
      "class": [
        "data.frame"
      ],
      "fields": [
        "School",
        "Women",
        "Men",
        "Group"
      ],
      "rows": 6,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_skills",
      "title": "Example multi-player skills dataset for radar plots",
      "object": "example_skills",
      "class": [
        "data.frame"
      ],
      "fields": [
        "category",
        "value",
        "player"
      ],
      "rows": 18,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_ablines",
      "title": "Build diagonal (abline) line shapes for a plotly figure",
      "topics": [
        "add_ablines"
      ]
    },
    {
      "page": "add_hlines",
      "title": "Build horizontal line shapes for a plotly figure",
      "topics": [
        "add_hlines"
      ]
    },
    {
      "page": "add_plot_config",
      "title": "Create default Plotly configuration",
      "topics": [
        "add_plot_config"
      ]
    },
    {
      "page": "add_reference_lines",
      "title": "Add reference lines to a plotly figure from Shiny inputs",
      "topics": [
        "add_reference_lines"
      ]
    },
    {
      "page": "add_vlines",
      "title": "Build vertical line shapes for a plotly figure",
      "topics": [
        "add_vlines"
      ]
    },
    {
      "page": "adjust_column_values",
      "title": "Adjust numeric column values in a data frame using mathematical transformations",
      "topics": [
        "adjust_column_values"
      ]
    },
    {
      "page": "adjusted_axis_label",
      "title": "Build an adjustment-aware axis label",
      "topics": [
        "adjusted_axis_label"
      ]
    },
    {
      "page": "apply_axis_title_to_annotations",
      "title": "Apply axis title font styling to shared facet axis annotations",
      "topics": [
        "apply_axis_title_to_annotations"
      ]
    },
    {
      "page": "apply_facet_subplot_spacing",
      "title": "Apply custom subplot spacing to a faceted ggplotly figure",
      "topics": [
        "apply_facet_subplot_spacing"
      ]
    },
    {
      "page": "apply_legend_inputs",
      "title": "Apply the uniform Legend inputs to a plotly figure",
      "topics": [
        "apply_legend_inputs"
      ]
    },
    {
      "page": "apply_legend_styling",
      "title": "Apply uniform legend styling to a plotly figure",
      "topics": [
        "apply_legend_styling"
      ]
    },
    {
      "page": "apply_plotly_newshape",
      "title": "Apply Plotly newshape styling from uniform Plotly inputs",
      "topics": [
        "apply_plotly_newshape"
      ]
    },
    {
      "page": "apply_render_margins",
      "title": "Apply standard render-time margin layout to a plotly figure",
      "topics": [
        "apply_render_margins"
      ]
    },
    {
      "page": "apply_stat_annotations",
      "title": "Apply statistical annotation shapes and annotations to a plotly figure",
      "topics": [
        "apply_stat_annotations"
      ]
    },
    {
      "page": "apply_subplot_axis_styling",
      "title": "Apply axis styling to all subplot axes in a plotly figure",
      "topics": [
        "apply_subplot_axis_styling"
      ]
    },
    {
      "page": "apply_title_layout",
      "title": "Apply plot title styling to a plotly figure",
      "topics": [
        "apply_title_layout"
      ]
    },
    {
      "page": "axis_titles_as_annotations",
      "title": "Convert native cartesian axis titles to draggable annotations",
      "topics": [
        "axis_titles_as_annotations"
      ]
    },
    {
      "page": "build_facet_annotations",
      "title": "Build facet subplot annotations",
      "topics": [
        "build_facet_annotations"
      ]
    },
    {
      "page": "build_facet_panel_borders",
      "title": "Build paper-anchored panel border shapes for a faceted plotly figure",
      "topics": [
        "build_facet_panel_borders"
      ]
    },
    {
      "page": "build_model_row_spec",
      "title": "Build a dynamic row_spec from registered backends",
      "topics": [
        "build_model_row_spec"
      ]
    },
    {
      "page": "clean_facet_dim",
      "title": "Clean and validate facet dimension value for lineplot module",
      "topics": [
        "clean_facet_dim"
      ]
    },
    {
      "page": "collect_source_data",
      "title": "Collect plot and source data for download",
      "topics": [
        "collect_source_data"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapApp",
      "title": "Create an example Modular ComplexHeatmap Shiny Application",
      "topics": [
        "ComplexHeatmap_HeatmapApp"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapInfoOutputUI",
      "title": "Click/brush info output UI component for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapInfoOutputUI"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapInputsUI",
      "title": "Input UI components for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapInputsUI"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapMainOutputUI",
      "title": "Main heatmap output UI component for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapMainOutputUI"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapOutputUI",
      "title": "Output UI components for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapOutputUI"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapServer",
      "title": "Server logic for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapServer"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapStaticOutputUI",
      "title": "Static (non-interactive) heatmap output UI component for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapStaticOutputUI"
      ]
    },
    {
      "page": "ComplexHeatmap_HeatmapSubOutputUI",
      "title": "Sub-heatmap output UI component for the ComplexHeatmap module",
      "topics": [
        "ComplexHeatmap_HeatmapSubOutputUI"
      ]
    },
    {
      "page": "compute_pairwise_stats",
      "title": "Compute pairwise statistical tests between groups",
      "topics": [
        "compute_pairwise_stats"
      ]
    },
    {
      "page": "create_axis_styles",
      "title": "Create Plotly axis style list",
      "topics": [
        "create_axis_styles"
      ]
    },
    {
      "page": "create_ggplot_axis_style",
      "title": "Create ggplot axis styling theme arguments",
      "topics": [
        "create_ggplot_axis_style"
      ]
    },
    {
      "page": "create_source_download_handler",
      "title": "Create download handler for plot with source data",
      "topics": [
        "create_source_download_handler"
      ]
    },
    {
      "page": "create_stat_annotations",
      "title": "Create plotly shapes and annotations for statistical test results",
      "topics": [
        "create_stat_annotations"
      ]
    },
    {
      "page": "createModuleApp",
      "title": "Create an Example Module App from Any Module Trio",
      "topics": [
        "createModuleApp"
      ]
    },
    {
      "page": "dataFilterServer",
      "title": "Server logic for the dataFilter module",
      "topics": [
        "dataFilterServer"
      ]
    },
    {
      "page": "dataFilterUI",
      "title": "UI component for the dataFilter module",
      "topics": [
        "dataFilterUI"
      ]
    },
    {
      "page": "default_palettes",
      "title": "Color palette options for palettePicker",
      "topics": [
        "default_palettes"
      ]
    },
    {
      "page": "dittoViz_freqPlotApp",
      "title": "Create an example Modular freqPlot Shiny Application",
      "topics": [
        "dittoViz_freqPlotApp"
      ]
    },
    {
      "page": "dittoViz_freqPlotInputsUI",
      "title": "Input UI components for the freqPlot module",
      "topics": [
        "dittoViz_freqPlotInputsUI"
      ]
    },
    {
      "page": "dittoViz_freqPlotOutputUI",
      "title": "Output UI components for the freqPlot module",
      "topics": [
        "dittoViz_freqPlotOutputUI"
      ]
    },
    {
      "page": "dittoViz_freqPlotServer",
      "title": "Server logic for freqPlot module",
      "topics": [
        "dittoViz_freqPlotServer"
      ]
    },
    {
      "page": "dittoViz_scatterPlotApp",
      "title": "Create an example Modular scatterPlot Shiny Application",
      "topics": [
        "dittoViz_scatterPlotApp"
      ]
    },
    {
      "page": "dittoViz_scatterPlotInputsUI",
      "title": "Input UI components for the scatterPlot module",
      "topics": [
        "dittoViz_scatterPlotInputsUI"
      ]
    },
    {
      "page": "dittoViz_scatterPlotOutputUI",
      "title": "Output UI components for the scatterPlot module",
      "topics": [
        "dittoViz_scatterPlotOutputUI"
      ]
    },
    {
      "page": "dittoViz_scatterPlotServer",
      "title": "Server logic for scatterPlot module",
      "topics": [
        "dittoViz_scatterPlotServer"
      ]
    },
    {
      "page": "dittoViz_yPlotApp",
      "title": "Create an example Modular yPlot Shiny Application",
      "topics": [
        "dittoViz_yPlotApp"
      ]
    },
    {
      "page": "dittoViz_yPlotInputsUI",
      "title": "Input UI components for the yPlot module",
      "topics": [
        "dittoViz_yPlotInputsUI"
      ]
    },
    {
      "page": "dittoViz_yPlotOutputUI",
      "title": "Output UI components for the yPlot module",
      "topics": [
        "dittoViz_yPlotOutputUI"
      ]
    },
    {
      "page": "dittoViz_yPlotServer",
      "title": "Server logic for yPlot module",
      "topics": [
        "dittoViz_yPlotServer"
      ]
    },
    {
      "page": "draw_to_png",
      "title": "Render a grid or base drawing to PNG bytes",
      "topics": [
        "draw_to_png"
      ]
    },
    {
      "page": "draw_to_svg",
      "title": "Render a grid or base drawing to a self-contained SVG fragment",
      "topics": [
        "draw_to_svg"
      ]
    },
    {
      "page": "dumbbellPlot",
      "title": "Create an Interactive Dumbbell Plot with plotly",
      "topics": [
        "dumbbellPlot"
      ]
    },
    {
      "page": "dumbbellPlotApp",
      "title": "Create a Shiny App for Dumbbell Plots",
      "topics": [
        "dumbbellPlotApp"
      ]
    },
    {
      "page": "dumbbellPlotInputsUI",
      "title": "Input UI components for the dumbbellPlot module",
      "topics": [
        "dumbbellPlotInputsUI"
      ]
    },
    {
      "page": "dumbbellPlotOutputUI",
      "title": "Output UI components for the dumbbellPlot module",
      "topics": [
        "dumbbellPlotOutputUI"
      ]
    },
    {
      "page": "dumbbellPlotServer",
      "title": "Server logic for dumbbellPlot module",
      "topics": [
        "dumbbellPlotServer"
      ]
    },
    {
      "page": "empty_plot",
      "title": "Create an empty ggplot2 plot or plotly plot with input text",
      "topics": [
        "empty_plot"
      ]
    },
    {
      "page": "example_bar",
      "title": "Bar dataset for bar and split bar plot examples",
      "topics": [
        "example_bar"
      ]
    },
    {
      "page": "example_composition",
      "title": "Example single-cell-style composition data for the freqPlot module",
      "topics": [
        "example_composition"
      ]
    },
    {
      "page": "example_demographics",
      "title": "Example demographics dataset",
      "topics": [
        "example_demographics"
      ]
    },
    {
      "page": "example_heatmap_column_data",
      "title": "Example sample-metadata table for the ComplexHeatmap module",
      "topics": [
        "example_heatmap_column_data"
      ]
    },
    {
      "page": "example_heatmap_matrix",
      "title": "Example gene-expression-style matrix for the ComplexHeatmap module",
      "topics": [
        "example_heatmap_matrix"
      ]
    },
    {
      "page": "example_iris",
      "title": "Example grouped iris dataset",
      "topics": [
        "example_iris"
      ]
    },
    {
      "page": "example_markers",
      "title": "Example single-cell marker gene dataset for dot plots",
      "topics": [
        "example_markers"
      ]
    },
    {
      "page": "example_mtcars",
      "title": "Example mtcars dataset with factors",
      "topics": [
        "example_mtcars"
      ]
    },
    {
      "page": "example_population",
      "title": "Example population dataset",
      "topics": [
        "example_population"
      ]
    },
    {
      "page": "example_rnaseq",
      "title": "Example pseudo-bulk RNA-seq dataset",
      "topics": [
        "example_rnaseq"
      ]
    },
    {
      "page": "example_sales",
      "title": "Example sales dataset",
      "topics": [
        "example_sales"
      ]
    },
    {
      "page": "example_school_earnings",
      "title": "Example school earnings dataset for dumbbell plots",
      "topics": [
        "example_school_earnings"
      ]
    },
    {
      "page": "example_skills",
      "title": "Example multi-player skills dataset for radar plots",
      "topics": [
        "example_skills"
      ]
    },
    {
      "page": "figureBuilderApp",
      "title": "Create a VizModules Figure Builder Application",
      "topics": [
        "figureBuilderApp"
      ]
    },
    {
      "page": "figureBuilderServer",
      "title": "Server logic for the Figure Builder module",
      "topics": [
        "figureBuilderServer"
      ]
    },
    {
      "page": "figureBuilderUI",
      "title": "UI component for the Figure Builder module",
      "topics": [
        "figureBuilderUI"
      ]
    },
    {
      "page": "finalize_manual_edits",
      "title": "Render persistent manual plot layout edits across re-renders",
      "topics": [
        "finalize_manual_edits"
      ]
    },
    {
      "page": "generate_pair_strings",
      "title": "Generate comparison pair strings from data columns",
      "topics": [
        "generate_pair_strings"
      ]
    },
    {
      "page": "get_default",
      "title": "Resolve a default value from a named list",
      "topics": [
        "get_default"
      ]
    },
    {
      "page": "get_documentation",
      "title": "Extract parameter documentation from an R function help page",
      "topics": [
        "get_documentation"
      ]
    },
    {
      "page": "get_model_backend",
      "title": "Get a registered model backend",
      "topics": [
        "get_model_backend"
      ]
    },
    {
      "page": "heatmap_fit_width",
      "title": "Fit a hand-built InteractiveComplexHeatmap widget to its container's width",
      "topics": [
        "heatmap_fit_width"
      ]
    },
    {
      "page": "hide_input",
      "title": "Hide the grid cells wrapping module inputs",
      "topics": [
        "hide_input"
      ]
    },
    {
      "page": "is_pure_type",
      "title": "Check if column inputs contain mixed data types",
      "topics": [
        "is_pure_type"
      ]
    },
    {
      "page": "linePlot",
      "title": "Create an Interactive Line Plot with plotly",
      "topics": [
        "linePlot"
      ]
    },
    {
      "page": "linePlotApp",
      "title": "Create an example Modular linePlot Shiny Application",
      "topics": [
        "linePlotApp"
      ]
    },
    {
      "page": "linePlotInputsUI",
      "title": "Input UI components for the linePlot module",
      "topics": [
        "linePlotInputsUI"
      ]
    },
    {
      "page": "linePlotOutputUI",
      "title": "Output UI components for the linePlot module",
      "topics": [
        "linePlotOutputUI"
      ]
    },
    {
      "page": "linePlotServer",
      "title": "Server logic for linePlot module",
      "topics": [
        "linePlotServer"
      ]
    },
    {
      "page": "linetype_to_dash",
      "title": "Convert linetype name to plotly dash style",
      "topics": [
        "linetype_to_dash"
      ]
    },
    {
      "page": "list_model_backends",
      "title": "List registered model backends",
      "topics": [
        "list_model_backends"
      ]
    },
    {
      "page": "module_tack_ui",
      "title": "Create standard tack UI for module inputs",
      "topics": [
        "module_tack_ui"
      ]
    },
    {
      "page": "moduleGalleryApp",
      "title": "Launch the VizModules module gallery",
      "topics": [
        "moduleGalleryApp"
      ]
    },
    {
      "page": "multiColorPicker",
      "title": "Compact multi-group color picker input",
      "topics": [
        "multiColorPicker"
      ]
    },
    {
      "page": "multiDynamicInput",
      "title": "Dynamic multi-row input for repeating groups of inputs",
      "topics": [
        "multiDynamicInput"
      ]
    },
    {
      "page": "organize_inputs",
      "title": "Organize arbitrary Shiny inputs into a grid layout",
      "topics": [
        "organize_inputs"
      ]
    },
    {
      "page": "parallelCoordinatesPlot",
      "title": "Create an Interactive Parallel Coordinates Plot with plotly",
      "topics": [
        "parallelCoordinatesPlot"
      ]
    },
    {
      "page": "parallelCoordinatesPlotApp",
      "title": "Create an example Modular parallelCoordinatesPlot Shiny Application",
      "topics": [
        "parallelCoordinatesPlotApp"
      ]
    },
    {
      "page": "parallelCoordinatesPlotInputsUI",
      "title": "Input UI components for the parallelCoordinatesPlot module",
      "topics": [
        "parallelCoordinatesPlotInputsUI"
      ]
    },
    {
      "page": "parallelCoordinatesPlotOutputUI",
      "title": "Output UI components for the parallelCoordinatesPlot module",
      "topics": [
        "parallelCoordinatesPlotOutputUI"
      ]
    },
    {
      "page": "parallelCoordinatesPlotServer",
      "title": "Server logic for parallelCoordinatesPlot module",
      "topics": [
        "parallelCoordinatesPlotServer"
      ]
    },
    {
      "page": "parse_numeric_list",
      "title": "Parse comma-separated numeric string to vector",
      "topics": [
        "parse_numeric_list"
      ]
    },
    {
      "page": "parse_pair_strings",
      "title": "Parse pair strings from UI into list of length-2 vectors",
      "topics": [
        "parse_pair_strings"
      ]
    },
    {
      "page": "piePlot",
      "title": "Create a plotly pie chart",
      "topics": [
        "piePlot"
      ]
    },
    {
      "page": "piePlotApp",
      "title": "Create an example Modular piePlot Shiny Application",
      "topics": [
        "piePlotApp"
      ]
    },
    {
      "page": "piePlotInputsUI",
      "title": "Input UI components for the piePlot module",
      "topics": [
        "piePlotInputsUI"
      ]
    },
    {
      "page": "piePlotOutputUI",
      "title": "Output UI components for the piePlot module",
      "topics": [
        "piePlotOutputUI"
      ]
    },
    {
      "page": "piePlotServer",
      "title": "Server logic for piePlot module",
      "topics": [
        "piePlotServer"
      ]
    },
    {
      "page": "plotthis_AreaPlotApp",
      "title": "Create an example Modular AreaPlot Shiny Application",
      "topics": [
        "plotthis_AreaPlotApp"
      ]
    },
    {
      "page": "plotthis_AreaPlotInputsUI",
      "title": "Input UI components for the AreaPlot module",
      "topics": [
        "plotthis_AreaPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_AreaPlotOutputUI",
      "title": "Output UI components for the AreaPlot module",
      "topics": [
        "plotthis_AreaPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_AreaPlotServer",
      "title": "Server logic for AreaPlot module",
      "topics": [
        "plotthis_AreaPlotServer"
      ]
    },
    {
      "page": "plotthis_BarPlotApp",
      "title": "Create an example Modular BarPlot Shiny Application",
      "topics": [
        "plotthis_BarPlotApp"
      ]
    },
    {
      "page": "plotthis_BarPlotInputsUI",
      "title": "Input UI components for the BarPlot module",
      "topics": [
        "plotthis_BarPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_BarPlotOutputUI",
      "title": "Output UI components for the BarPlot module",
      "topics": [
        "plotthis_BarPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_BarPlotServer",
      "title": "Server logic for BarPlot module",
      "topics": [
        "plotthis_BarPlotServer"
      ]
    },
    {
      "page": "plotthis_BoxPlotApp",
      "title": "Create an example Modular BoxPlot Shiny Application",
      "topics": [
        "plotthis_BoxPlotApp"
      ]
    },
    {
      "page": "plotthis_BoxPlotInputsUI",
      "title": "Input UI components for the BoxPlot module",
      "topics": [
        "plotthis_BoxPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_BoxPlotOutputUI",
      "title": "Output UI components for the BoxPlot module",
      "topics": [
        "plotthis_BoxPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_BoxPlotServer",
      "title": "Server logic for BoxPlot module",
      "topics": [
        "plotthis_BoxPlotServer"
      ]
    },
    {
      "page": "plotthis_DensityPlotApp",
      "title": "Create an example Modular DensityPlot Shiny Application",
      "topics": [
        "plotthis_DensityPlotApp"
      ]
    },
    {
      "page": "plotthis_DensityPlotInputsUI",
      "title": "Input UI components for the DensityPlot module",
      "topics": [
        "plotthis_DensityPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_DensityPlotOutputUI",
      "title": "Output UI components for the DensityPlot module",
      "topics": [
        "plotthis_DensityPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_DensityPlotServer",
      "title": "Density Plot Server Module",
      "topics": [
        "plotthis_DensityPlotServer"
      ]
    },
    {
      "page": "plotthis_DotPlotApp",
      "title": "Create an example Modular DotPlot Shiny Application",
      "topics": [
        "plotthis_DotPlotApp"
      ]
    },
    {
      "page": "plotthis_DotPlotInputsUI",
      "title": "Input UI components for the DotPlot module",
      "topics": [
        "plotthis_DotPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_DotPlotOutputUI",
      "title": "Output UI components for the DotPlot module",
      "topics": [
        "plotthis_DotPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_DotPlotServer",
      "title": "Server logic for DotPlot module",
      "topics": [
        "plotthis_DotPlotServer"
      ]
    },
    {
      "page": "plotthis_HistogramApp",
      "title": "Create an example Modular Histogram Shiny Application",
      "topics": [
        "plotthis_HistogramApp"
      ]
    },
    {
      "page": "plotthis_HistogramInputsUI",
      "title": "Input UI components for the Histogram module",
      "topics": [
        "plotthis_HistogramInputsUI"
      ]
    },
    {
      "page": "plotthis_HistogramOutputUI",
      "title": "Output UI components for the histogramPlot module",
      "topics": [
        "plotthis_HistogramOutputUI"
      ]
    },
    {
      "page": "plotthis_HistogramServer",
      "title": "Histogram Plot Server Module",
      "topics": [
        "plotthis_HistogramServer"
      ]
    },
    {
      "page": "plotthis_SplitBarPlotApp",
      "title": "Create an example Modular SplitBarPlot Shiny Application",
      "topics": [
        "plotthis_SplitBarPlotApp"
      ]
    },
    {
      "page": "plotthis_SplitBarPlotInputsUI",
      "title": "Input UI components for the SplitBarPlot module",
      "topics": [
        "plotthis_SplitBarPlotInputsUI"
      ]
    },
    {
      "page": "plotthis_SplitBarPlotOutputUI",
      "title": "Output UI components for the SplitBarPlot module",
      "topics": [
        "plotthis_SplitBarPlotOutputUI"
      ]
    },
    {
      "page": "plotthis_SplitBarPlotServer",
      "title": "Server logic for SplitBarPlot module",
      "topics": [
        "plotthis_SplitBarPlotServer"
      ]
    },
    {
      "page": "radarPlot",
      "title": "Create a plotly radar chart",
      "topics": [
        "radarPlot"
      ]
    },
    {
      "page": "radarPlotApp",
      "title": "Create an example Modular radarPlot Shiny Application",
      "topics": [
        "radarPlotApp"
      ]
    },
    {
      "page": "radarPlotInputsUI",
      "title": "Input UI components for the radarPlot module",
      "topics": [
        "radarPlotInputsUI"
      ]
    },
    {
      "page": "radarPlotOutputUI",
      "title": "Output UI components for the radarPlot module",
      "topics": [
        "radarPlotOutputUI"
      ]
    },
    {
      "page": "radarPlotServer",
      "title": "Server logic for radarPlot module",
      "topics": [
        "radarPlotServer"
      ]
    },
    {
      "page": "recycle_line_style",
      "title": "Recycle style vector to match line count",
      "topics": [
        "recycle_line_style"
      ]
    },
    {
      "page": "register_model_backend",
      "title": "Register a model backend",
      "topics": [
        "register_model_backend"
      ]
    },
    {
      "page": "reset_annotation_inputs",
      "title": "Reset uniform Annotation inputs to defaults",
      "topics": [
        "reset_annotation_inputs"
      ]
    },
    {
      "page": "reset_axes_inputs",
      "title": "Reset uniform axes inputs to defaults",
      "topics": [
        "reset_axes_inputs"
      ]
    },
    {
      "page": "reset_axis_title_text",
      "title": "Drop persisted axis-title text edits",
      "topics": [
        "reset_axis_title_text"
      ]
    },
    {
      "page": "reset_legend_inputs",
      "title": "Reset uniform Legend inputs to defaults",
      "topics": [
        "reset_legend_inputs"
      ]
    },
    {
      "page": "reset_lines_inputs",
      "title": "Reset uniform lines inputs to defaults",
      "topics": [
        "reset_lines_inputs"
      ]
    },
    {
      "page": "reset_plotly_inputs",
      "title": "Reset uniform Plotly inputs to defaults",
      "topics": [
        "reset_plotly_inputs"
      ]
    },
    {
      "page": "resolve_column_targets",
      "title": "Translate column names or positions into DT column targets",
      "topics": [
        "resolve_column_targets"
      ]
    },
    {
      "page": "resolve_facet_layout",
      "title": "Resolve number of rows for a faceted subplot grid",
      "topics": [
        "resolve_facet_layout"
      ]
    },
    {
      "page": "resolve_facet_sharing",
      "title": "Resolve facet axis sharing from facet.scales",
      "topics": [
        "resolve_facet_sharing"
      ]
    },
    {
      "page": "resolve_palette",
      "title": "Resolve a color palette for plot groups",
      "topics": [
        "resolve_palette"
      ]
    },
    {
      "page": "safe_eval_filter",
      "title": "Safely evaluate a user-provided filter expression against a data frame",
      "topics": [
        "safe_eval_filter"
      ]
    },
    {
      "page": "safe_resolve_adj_fxn",
      "title": "Safely resolve an adjustment function name to an actual function",
      "topics": [
        "safe_resolve_adj_fxn"
      ]
    },
    {
      "page": "setup_auto_update_logic",
      "title": "Set up auto-update/isolate logic for reactive contexts",
      "topics": [
        "setup_auto_update_logic"
      ]
    },
    {
      "page": "setup_axis_range",
      "title": "Track the axis limits a plot should draw with",
      "topics": [
        "setup_axis_range"
      ]
    },
    {
      "page": "setup_group_colors",
      "title": "Track the group-to-color mapping a plot should draw with",
      "topics": [
        "setup_group_colors"
      ]
    },
    {
      "page": "setup_manual_edits",
      "title": "Set up persistent manual plot layout edits across re-renders",
      "topics": [
        "setup_manual_edits"
      ]
    },
    {
      "page": "setup_reactive_defaults",
      "title": "Resolve reactive 'defaults' entries into a server-side parameter store",
      "topics": [
        "setup_reactive_defaults"
      ]
    },
    {
      "page": "show_input",
      "title": "Show the grid cells wrapping module inputs",
      "topics": [
        "show_input"
      ]
    },
    {
      "page": "stat_bracket_y_max",
      "title": "Y-axis top needed to draw statistical annotation brackets in full",
      "topics": [
        "stat_bracket_y_max"
      ]
    },
    {
      "page": "string_to_linetypes",
      "title": "Parse and validate linetype string to a vector",
      "topics": [
        "string_to_linetypes"
      ]
    },
    {
      "page": "toggle_input_cell",
      "title": "Hide or show the grid cell wrapping a module input",
      "topics": [
        "toggle_input_cell"
      ]
    },
    {
      "page": "uniform_annotation_inputs_ui",
      "title": "Generate uniform Annotation input UI",
      "topics": [
        "uniform_annotation_inputs_ui"
      ]
    },
    {
      "page": "uniform_axes_inputs_ui",
      "title": "Generate uniform Axes input UI",
      "topics": [
        "uniform_axes_inputs_ui"
      ]
    },
    {
      "page": "uniform_legend_inputs_ui",
      "title": "Generate uniform Legend input UI",
      "topics": [
        "uniform_legend_inputs_ui"
      ]
    },
    {
      "page": "uniform_lines_inputs_ui",
      "title": "Generate uniform Lines input UI",
      "topics": [
        "uniform_lines_inputs_ui"
      ]
    },
    {
      "page": "uniform_plotly_inputs_ui",
      "title": "Generate uniform Plotly input UI",
      "topics": [
        "uniform_plotly_inputs_ui"
      ]
    },
    {
      "page": "update_viz_select",
      "title": "Update a select input created by viz_select_input",
      "topics": [
        "update_viz_select"
      ]
    },
    {
      "page": "updateMultiColorPicker",
      "title": "Update a multiColorPicker input on the client",
      "topics": [
        "updateMultiColorPicker"
      ]
    },
    {
      "page": "updateMultiDynamicInput",
      "title": "Update a multiDynamicInput input on the client",
      "topics": [
        "updateMultiDynamicInput"
      ]
    },
    {
      "page": "use_vizmodules_skills",
      "title": "Install the bundled VizModules agent skills into a project",
      "topics": [
        "use_vizmodules_skills"
      ]
    },
    {
      "page": "validate_expression",
      "title": "Validate a user-provided expression string for safety",
      "topics": [
        "validate_expression"
      ]
    },
    {
      "page": "viz_select_input",
      "title": "Create a select input that scales to very large choice sets",
      "topics": [
        "viz_select_input"
      ]
    }
  ],
  "_readme": "https://github.com/j-andrews7/vizmodules/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "brew",
    "bslib",
    "cachem",
    "callr",
    "cellranger",
    "circlize",
    "cli",
    "colorspace",
    "colourpicker",
    "commonmark",
    "cowplot",
    "cpp11",
    "crayon",
    "crosstalk",
    "curl",
    "data.table",
    "desc",
    "digest",
    "dittoViz",
    "dplyr",
    "DT",
    "evaluate",
    "farver",
    "fastmap",
    "fontawesome",
    "forcats",
    "fs",
    "generics",
    "ggnewscale",
    "ggplot2",
    "ggrepel",
    "ggridges",
    "GlobalOptions",
    "glue",
    "gridtext",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "httr",
    "isoband",
    "jpeg",
    "jquerylib",
    "jsonlite",
    "knitr",
    "labeling",
    "later",
    "lattice",
    "lazyeval",
    "lifecycle",
    "litedown",
    "magrittr",
    "markdown",
    "memoise",
    "mime",
    "miniUI",
    "openssl",
    "otel",
    "patchwork",
    "pillar",
    "pkgbuild",
    "pkgconfig",
    "pkgload",
    "plotly",
    "plotthis",
    "plyr",
    "png",
    "prettyunits",
    "processx",
    "progress",
    "promises",
    "ps",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "rdtools",
    "readxl",
    "rematch",
    "reshape2",
    "rex",
    "rlang",
    "rmarkdown",
    "roclang",
    "roxygen2",
    "rprojroot",
    "S7",
    "sass",
    "scales",
    "shape",
    "shiny",
    "shinyBS",
    "shinyjqui",
    "shinyjs",
    "shinyWidgets",
    "sourcetools",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "tinytex",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr",
    "xfun",
    "xml2",
    "xtable",
    "yaml",
    "zip",
    "zoo"
  ],
  "_vignettes": [
    {
      "source": "adding-a-new-module.Rmd",
      "filename": "adding-a-new-module.html",
      "title": "Adding a New Module",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Quick Checklist",
        "Naming & Organization",
        "Documentation Standards",
        "1. @section Plot parameters not implemented or with altered functionality:",
        "2. @section Plot parameters and defaults:",
        "3. @section Plot parameters implementing new functionality:",
        "Functionality & Non-Exposed Inputs",
        "Example App Requirement",
        "Testing Requirements",
        "Implementing a New Plotting Function (e.g., piePlot)",
        "Supporting Reactive Defaults",
        "Updating Your Own Inputs From the Server",
        "Inputs Rebuilt by renderUI()",
        "Axis Limits",
        "Debouncing Free-Text Inputs",
        "Persisting Manual Layout Edits",
        "Server",
        "Key helpers (all in R/plot_helpers.R)",
        "Integrating Statistical Testing (Stats Tab)",
        "UI",
        "Key helpers (all in R/stat_helper.R)",
        "Gallery App and Figure Builder",
        "Review Before Submitting",
        "Style Guide",
        "Input Labels",
        "Select Inputs",
        "Tooltips with tipify",
        "Reuse Uniform Input Helpers",
        "Imports: @importFrom Over ::",
        "Additional Conventions",
        "Styling and CSS Containment",
        "Only ever style classes this package created",
        "A dropdown or popover parented to  needs its own marker class",
        "Check that the rule matches what you think it does",
        "Keep layout out of inline styles",
        "Do not assume anything about the parent",
        "Shipping a stylesheet",
        "Verifying containment",
        "Sanitizing User-Provided Expressions",
        "safe_eval_filter(expr_text, data)",
        "validate_expression(expr_text, col_names)",
        "safe_resolve_adj_fxn(fn_name)",
        "What counts as \"allowed\"?"
      ],
      "created": "2026-01-16 21:14:14",
      "modified": "2026-09-29 20:20:19",
      "commits": 13
    },
    {
      "source": "custom-modules.Rmd",
      "filename": "custom-modules.html",
      "title": "Building Custom Modules",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "The Pattern",
        "A Minimal Example",
        "The UI",
        "The Server",
        "Putting It Together",
        "Hiding Base Module Inputs",
        "Driving Base Module Inputs From Your Wrapper",
        "Automatically Preserving Manual Title/Legend/Annotation Edits",
        "Best Practices"
      ],
      "created": "2025-12-30 15:44:36",
      "modified": "2026-09-29 20:20:19",
      "commits": 8
    },
    {
      "source": "custom-model-lines.Rmd",
      "filename": "custom-model-lines.html",
      "title": "Custom Model Lines in Scatter Plots",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How It Works",
        "The Pipeline",
        "Using Custom Models in the App",
        "Setting Defaults",
        "Adding a Custom Model Backend",
        "Backend Spec",
        "Example: drc (Dose-Response Curves)",
        "Example: mgcv (GAMs)",
        "Where to Register Backends",
        "How Extra Fields Flow Through",
        "API Reference",
        "Security"
      ],
      "created": "2026-07-24 22:54:34",
      "modified": "2026-09-29 20:20:19",
      "commits": 3
    },
    {
      "source": "defaults-and-hiding.Rmd",
      "filename": "defaults-and-hiding.html",
      "title": "Defaults and Hiding Controls",
      "engine": "knitr::rmarkdown",
      "headings": [
        "defaults: pre-filling inputs",
        "Finding valid keys",
        "Validation",
        "Reactive defaults: driving inputs from app state",
        "Why not update*Input() from the parent?",
        "Passing defaults through createModuleApp() and *App()",
        "hide.inputs: hiding individual controls",
        "Use case: app-level fixed parameters",
        "hide.tabs: hiding entire tab panels",
        "Available tab names",
        "Combining defaults, hide.inputs, and hide.tabs",
        "Using hide.inputs in createModuleApp() and *App()",
        "Hiding inputs dynamically in a custom module"
      ],
      "created": "2026-07-24 22:54:34",
      "modified": "2026-09-29 20:20:19",
      "commits": 3
    },
    {
      "source": "data-filtering.Rmd",
      "filename": "data-filtering.html",
      "title": "Filtering Data with the dataFilter Module",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "What the module does",
        "Arguments",
        "Return value",
        "Showing fewer columns",
        "A minimal example",
        "Linking several modules to one table",
        "How it compares to createModuleApp()",
        "Summary"
      ],
      "created": "2026-08-28 20:30:31",
      "modified": "2026-09-29 20:20:19",
      "commits": 2
    },
    {
      "source": "quick-start.Rmd",
      "filename": "quick-start.html",
      "title": "Quick Start with VizModules",
      "engine": "knitr::rmarkdown",
      "headings": [
        "See the modules",
        "Working with an AI coding agent",
        "Drop a module into your app",
        "Set defaults and hide controls",
        "App factory with createModuleApp()",
        "Export Summary Data",
        "Which plot parameters are exposed?"
      ],
      "created": "2026-01-16 22:40:34",
      "modified": "2026-09-29 20:20:19",
      "commits": 13
    },
    {
      "source": "statistical-testing.Rmd",
      "filename": "statistical-testing.html",
      "title": "Statistical Testing",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Using the Stats tab",
        "Supported tests",
        "Paired tests",
        "Adjusted, faceted and rotated axes",
        "Downloading statistics",
        "Using the stat helpers in a custom module",
        "Restricting comparisons",
        "Faceted plots and nested grouping",
        "Test and draw on the plotted values",
        "compute_pairwise_stats() return value"
      ],
      "created": "2026-07-24 22:54:34",
      "modified": "2026-09-29 20:20:19",
      "commits": 2
    },
    {
      "source": "custom-shiny-inputs.Rmd",
      "filename": "custom-shiny-inputs.html",
      "title": "VizModules Custom Shiny Inputs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "multiColorPicker",
        "Overview",
        "Basic Usage",
        "Key Arguments",
        "Reading the Value",
        "Updating from the Server",
        "Summary",
        "multiDynamicInput",
        "Defining Fields with row_spec",
        "Pre-filled Rows with elements",
        "Backend-Specific Fields",
        "Writing Your Own Custom Input",
        "Styling: the rule that matters most",
        "Widgets that escape their container",
        "Confirm your selectors actually match",
        "Other practices worth copying"
      ],
      "created": "2026-07-24 22:54:34",
      "modified": "2026-09-29 20:20:19",
      "commits": 5
    }
  ],
  "_score": 7.973201769774144,
  "_indexed": true,
  "_nocasepkg": "vizmodules",
  "_universes": [
    "j-andrews7"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-09-30T19:45:10.000Z",
      "distro": "resolute",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/de9a33a9ec67d4ce950794fdf91663f52cd1c71d994d704263467007e85b0647",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-09-30T19:45:05.000Z",
      "distro": "resolute",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/61cacbe00dac2fd12ac81d45e2669637cdaff3504cc7c893b95637d967283d43",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-09-30T19:54:15.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/5d6c2fd9a85c8477cdeda208dd04338e47e63e02b1c288a4242a83927d659d66",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-09-30T19:48:26.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/fda5a01b9d37e2e0baf7704efb594c7f9bee147cff18dc4cb20cf7e9fd682780",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.0",
      "date": "2026-09-30T19:45:08.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/a333d202a0e0c763b0a8710c48c4ae878fea71e7a939a6d35411aa3af44e937d",
      "status": "success",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-30T19:45:34.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/e7983a3298d66b24f17cc9b5252d0cb4630533f8a03a2fc2165d9379fc27607d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-30T19:43:12.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/b5f0278670dd082ea9759e8769ae3d48a43e029801e081289c4a28520b792742",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-30T19:43:15.000Z",
      "commit": "c0025658a7bf0adfb703cd9a7c90444a294aec2a",
      "fileid": "https://r2.ropensci.org/dfc89bcc0e1c4b31af32d55444e3528a3a769378d8d0b715ae076a1982ed574d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-andrews7/actions/runs/36766974844"
    }
  ]
}