/**
 * Type definitions for the role-based icon control system
 *
 * This module defines the structure for icons_behaviour configuration
 * which controls how field control icons are displayed and behave
 * based on user roles.
 */
/**
 * Default order for controls when no order is specified
 */
export const DEFAULT_ICON_ORDER = [
    'control_data_ok',
    'control_complete',
    'control_skip',
    'control_notes',
    'control_chat',
    'control_visibility',
    'control_lock',
    'control_delete',
    'control_add_elements',
    'control_edit_field',
    'control_edit_group',
    'control_delete_field',
    'control_edit_elements',
    'control_private_files',
    'control_revalidate',
];
/**
 * Default controls that are always shown inline (extracted from kebab menu)
 */
export const DEFAULT_ALWAYS_EXTRACTED = ['control_data_ok', 'control_complete', 'control_skip'];
/**
 * Default controls that are extracted from kebab when they have values/activity
 * (e.g., notes icon extracted when notes exist, chat icon extracted when messages exist)
 */
export const DEFAULT_EXTRACTED_ON_VALUE = ['control_notes', 'control_chat'];
/**
 * Edit icon controls - structural editing actions
 * Affected by `show_edit_icons` field/group override
 */
export const EDIT_CONTROL_NAMES = [
    'control_edit_field',
    'control_edit_group',
    'control_delete_field',
];
/**
 * Control icon controls - collaboration/review actions
 * Affected by `show_control_icons` field/group override
 */
export const CONTROL_ICON_NAMES = [
    'control_data_ok',
    'control_complete',
    'control_skip',
    'control_notes',
    'control_chat',
    'control_lock',
    'control_visibility',
    'control_delete',
    'control_private_files',
    'control_revalidate',
];
/**
 * Default role control behaviour - all controls hidden and disabled
 */
export const DEFAULT_ROLE_CONTROL_BEHAVIOUR = {
    visible: false,
    enabled: false,
    allowed_values: undefined,
};
/**
 * Get default icons behaviour configuration
 */
export function get_default_icons_behaviour() {
    return {
        data_ok_mode: 'checkbox',
        border_on: ['control_data_ok'],
        border_off: [],
        icon_order: DEFAULT_ICON_ORDER,
        always_extracted: DEFAULT_ALWAYS_EXTRACTED,
        extracted_on_value: DEFAULT_EXTRACTED_ON_VALUE,
        roles: [],
    };
}
//# sourceMappingURL=icons_behaviour.js.map