// Shared constants and schema defaults for the timeline editor. export const IMAGE_TIMELINE_NODES = new Set([ "ETKLTXVTimelineImageEditor", ]); export const TARGET_NODES = IMAGE_TIMELINE_NODES; export const CUSTOM_AREA_TOP = 186; export const TIMELINE_TOP_PAD = 34; export const TIMELINE_TRACK_HEIGHT = 30; export const TIMELINE_GAP = 20; export const TIMELINE_CONTROLS_HEIGHT = 126; export const TIMELINE_CONTROLS_GAP = 10; export const TIMELINE_BOTTOM_PAD = 20; export const PREVIEW_MIN_HEIGHT = 336; export const TIMELINE_EDITOR_WIDGET = "__etk_ltxv_timeline_editor"; export const KEYFRAME_POSITIVE_PROMPT_WIDGET = "__etk_ltxv_keyframe_positive_prompt"; export const TEXT_LAYER_EDITOR_WIDGET = "__etk_ltxv_text_layer_editor"; export const UPLOAD_MODE_PROPERTY = "etk_ltxv_upload_mode"; export const LAYER_LOCK_PROPERTY = "etk_ltxv_timeline_layers_locked"; export const CONTROL_TAB_PROPERTY = "etk_ltxv_controls_tab"; export const CANVAS_SIZE_PROPERTY = "etk_ltxv_timeline_canvas_size"; export const OUTPUT_SETTINGS_PROPERTY = "etk_ltxv_timeline_output_settings"; export const CONTROL_TABS = [ { id: "strength", label: "Strength", w: 72 }, { id: "layers", label: "Layers", w: 62 }, { id: "filters", label: "Filters", w: 62 }, ]; export const CONTROL_HEADER_HEIGHT = 24; export const CONTROL_TABS_HEIGHT = 22; export const TIMELINE_EDITOR_HEIGHT = TIMELINE_TOP_PAD + TIMELINE_TRACK_HEIGHT + TIMELINE_GAP + TIMELINE_CONTROLS_HEIGHT + TIMELINE_CONTROLS_GAP + PREVIEW_MIN_HEIGHT + TIMELINE_BOTTOM_PAD; export const KEYFRAME_PROMPT_EDITOR_HEIGHT = 98; export const KEYFRAME_PROMPT_EDITOR_MAX_HEIGHT = 220; export const TEXT_LAYER_EDITOR_HEIGHT = 164; export const TEXT_LAYER_EDITOR_MAX_HEIGHT = 250; export const UI_INSTANCE_WIDGET = "ui_instance_id"; export const UI_INSTANCE_PROPERTY = "etk_ltxv_timeline_ui_instance_id"; export const MIN_LAYER_ZOOM = 0.01; export const MAX_LAYER_ZOOM = 20; export const WHEEL_ZOOM_STEP = 0.05; export const SHIFT_WHEEL_ZOOM_STEP = 0.02; export const CTRL_WHEEL_ZOOM_STEP = 0.002; export const KEYBOARD_PAN_STEP = 0.05; export const CTRL_KEYBOARD_PAN_IMAGE_PX = 1; export const FIXED_PROMPT_WIDGET_NAMES = new Set(["global_positive_prompt", "global_negative_prompt", "prompt_schedule"]); export const PROMPT_WIDGET_FIXED_HEIGHT = 72; export const CHAIN_INPUT_NAME = "chain_in"; export const LOCAL_MEDIA_MANAGER_DROP_TYPE = "application/x-local-media-manager-image"; export const CHAIN_INHERITED_WIDGET_NAMES = new Set([ "width", "height", "global_positive_prompt", "global_negative_prompt", "positive_audio_prompt_weight", "negative_audio_prompt_weight", ]); export const TIMELINE_GLOBAL_LISTENER_STATE = "__etkTimelineGlobalListenerState"; export const TIMELINE_GLOBAL_LISTENER_TOKEN = {}; export const TIMELINE_STATUS_DURATION_MS = 4500; export const TIMELINE_SCHEMA_VERSION = 2; export const DEFAULT_TEXT_LAYER = Object.freeze({ text: "Text", fontFamily: "sans-serif", fontSize: 72, bold: false, italic: false, align: "center", color: "#ffffff", outlineColor: "#000000", outlineWidth: 0, shadowColor: "#000000", shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, }); export const TEXT_LAYER_FONT_OPTIONS = Object.freeze([ ["sans-serif", "Sans"], ["serif", "Serif"], ["monospace", "Mono"], ["Arial", "Arial"], ["Helvetica", "Helvetica"], ["Verdana", "Verdana"], ["Georgia", "Georgia"], ["Times New Roman", "Times"], ["Courier New", "Courier"], ["Impact", "Impact"], ["DejaVu Sans", "DejaVu Sans"], ["DejaVu Serif", "DejaVu Serif"], ["DejaVu Sans Mono", "DejaVu Mono"], ["Liberation Sans", "Liberation Sans"], ["Liberation Serif", "Liberation Serif"], ["Liberation Mono", "Liberation Mono"], ]); export const TEXT_LAYER_FIELDS = Object.freeze([ "text", "fontFamily", "font_family", "fontSize", "font_size", "bold", "italic", "align", "textAlign", "text_align", "color", "outlineColor", "outline_color", "outlineWidth", "outline_width", "shadowColor", "shadow_color", "shadowBlur", "shadow_blur", "shadowOffsetX", "shadow_offset_x", "shadowOffsetY", "shadow_offset_y", ]);