type: Specifies the type of question. Possible values are "select", "mc", "mc_multiple", "mc_buttons", "mc_multiple_buttons", "text", "textarea", "numeric", "slider", "slider_numeric", "date", "daterange", and "matrix".
id: A unique identifier for the question, which will be used as the variable name in the resulting survey data.
label: Character string. The label for the UI element, which can be formatted with markdown.
cols: Integer. Number of columns for the "textarea" question type. Defaults to 80.
direction: Character string. The direction for button groups ("horizontal" or "vertical"). Defaults to "horizontal".
status: Character string. The status for button groups. Defaults to "default".
width: Character string. The width of the UI element. Defaults to "100%".
height: Character string. The height of the input for the "textarea" question type. Defaults to "100px".
selected: Value. The selected value(s) for certain input elements.
label_select: Character string. The label for the select input. Defaults to "Choose an option...".
grid: Logical. Whether to show a grid for slider input. Defaults to TRUE.
individual: Logical. Whether buttons in a group should be individually styled. Defaults to TRUE.
justified: Logical. Whether buttons in a group should fill the width of the parent div. Defaults to FALSE.
force_edges: Logical. Whether to force edges for slider input. Defaults to TRUE.
option: Named vector for the "select", "radio", "checkbox", and "slider" question types, or numeric vector for "slider_numeric"
question type.
placeholder: Character string. Placeholder text for "text" and "textarea" question types.
resize: Character string. Resize option for textarea input. Defaults to NULL.
row: List. Used for "matrix" type questions. Contains the row labels and their corresponding IDs.
default: Numeric, length 1 (for a single sided slider), or 2 for a two sided (range based) slider. Values to be used as the starting default for the slider. Defaults to the median of values.
...: Additional arguments, often specific to different input types. Examples include pre, sep, step, and animate for "slider" and "slider_numeric" question types, etc.
Returns
A 'shiny' UI element wrapped in a div with a data attribute for question ID.
"matrix": Matrix-style question with rows and columns
For "matrix" type questions, use the row parameter to define the rows of the matrix. Each element in the row list should have a name (used as the row ID) and a value (used as the row label).
Examples
if(interactive()){ library(surveydown)# Get path to example survey file survey_path <- system.file("examples","basic_survey.qmd", package ="surveydown")# Copy to a temporary directory temp_dir <- tempdir() file.copy(survey_path, file.path(temp_dir,"survey.qmd")) orig_dir <- getwd() setwd(temp_dir)# Define a minimal server server <-function(input, output, session){ sd_server()}# Run the app shiny::shinyApp(ui = sd_ui(), server = server)# Clean up setwd(orig_dir)}