) {
+ const styles = useStyles2(getStyles);
+ const internalId = id ?? uniqueId('radiogroup-list-');
+
+ return (
+
+ {options.map((option, index) => {
+ const itemId = `${internalId}-${index}`;
+
+ const isChecked = value && value === option.value;
+ const isDisabled = disabled || disabledOptions.some((optionValue) => optionValue === option.value);
+
+ const handleChange = () => onChange && option.value && onChange(option.value);
+
+ return (
+
+ );
+ })}
+
+ );
+}
+
+const getStyles = (theme: GrafanaTheme2) => ({
+ container: css`
+ display: grid;
+ gap: ${theme.spacing(1)};
+ `,
+});
diff --git a/packages/grafana-ui/src/components/index.ts b/packages/grafana-ui/src/components/index.ts
index e4208a61655..4c32405d854 100644
--- a/packages/grafana-ui/src/components/index.ts
+++ b/packages/grafana-ui/src/components/index.ts
@@ -215,6 +215,7 @@ export * from './Select/types';
export { HorizontalGroup, VerticalGroup, Container } from './Layout/Layout';
export { Badge, BadgeColor, BadgeProps } from './Badge/Badge';
export { RadioButtonGroup } from './Forms/RadioButtonGroup/RadioButtonGroup';
+export { RadioButtonList } from './Forms/RadioButtonList/RadioButtonList';
export { Input, getInputStyles } from './Input/Input';
export { FilterInput } from './FilterInput/FilterInput';