namespace AIStudio.Assistants.VisualBriefing;
///
/// Derives assistive component text requirements from the planned component kinds.
///
internal static class VisualBriefingComponentTexts
{
///
/// Determines whether a component requires an assistive description from the content model.
///
/// The planned component kind.
/// Whether an accessibility text is required.
private static bool RequiresAccessibilityText(VisualBriefingComponentKind kind) =>
kind is VisualBriefingComponentKind.CHART or
VisualBriefingComponentKind.SIMULATION or
VisualBriefingComponentKind.FILTERABLE_TABLE;
///
/// Determines whether a component inherits its assistive description from evidence.
///
/// The planned component kind.
/// Whether AI Studio supplies the accessibility text.
internal static bool InheritsAccessibilityText(VisualBriefingComponentKind kind) => kind is VisualBriefingComponentKind.ASSET;
///
/// Lists component identifiers requiring model-supplied accessibility texts.
///
/// The planned components.
/// The component identifiers in plan order.
internal static string[] AccessibilityTextKeys(IEnumerable components) =>
[
.. components.Where(component => RequiresAccessibilityText(component.Kind)).Select(component => component.ComponentId)
];
}