unlayer-types 1.417.0 → 1.420.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/embed.d.ts +334 -20
  2. package/package.json +1 -1
package/embed.d.ts CHANGED
@@ -879,7 +879,14 @@ declare module "packages/editor/src/editor/themes/types" {
879
879
  };
880
880
  };
881
881
  };
882
- export type ThemeVariant = 'primary' | 'secondary' | 'tertiary' | 'ai' | 'ai_outline' | 'danger' | 'synced_blocks';
882
+ export type ThemeVariant = 'primary' | 'secondary' | 'tertiary'
883
+ /** Tertiary's inverse: where `tertiary` sits AT the page's tonal floor
884
+ * (dark surface in dark mode, light surface in light mode), this one
885
+ * sits AT the ceiling — a light surface with dark text in dark mode,
886
+ * a dark surface with light text in light mode. Used for follow-up
887
+ * chips (suggest_options pills) that need to read as distinct from
888
+ * the surrounding chat bubble without shouting like `primary`. */
889
+ | 'tertiary_inverse' | 'ai' | 'ai_outline' | 'danger' | 'synced_blocks';
883
890
  export type BannerMessageVariant = 'success' | 'warning' | 'default' | 'danger';
884
891
  export type ToastVariant = 'success' | 'warning' | 'default' | 'danger';
885
892
  export type ThemeColor = 'accent_01' | 'accent_02' | 'accent_03' | 'accent_04' | 'accent_05' | 'ai_01' | 'ai_02' | 'ai_03' | 'ai_04' | 'ai_05' | 'amp_01' | 'black_00' | 'black_01' | 'black_02' | 'black_03' | 'black_04' | 'black_05' | 'black_06' | 'black_07' | 'black_08' | 'black_09' | 'black_10' | 'destructive_01' | 'destructive_02' | 'destructive_03' | 'destructive_04' | 'destructive_05' | 'destructive_06' | 'destructive_07' | 'destructive_08' | 'destructive_09' | 'primary_01' | 'primary_02' | 'primary_03' | 'primary_04' | 'primary_05' | 'primary_06' | 'primary_07' | 'primary_08' | 'primary_09' | 'primary_10' | 'primary_11' | 'red_01' | 'success_01' | 'success_02' | 'success_03' | 'success_04' | 'success_05' | 'success_06' | 'success_07' | 'success_08' | 'success_09' | 'sync_01' | 'sync_02' | 'sync_03' | 'sync_04' | 'sync_05' | 'transparent' | 'warning_01' | 'warning_02' | 'warning_03' | 'warning_04' | 'warning_05' | 'warning_06' | 'warning_07' | 'warning_08' | 'warning_09' | 'white_00' | 'white_01' | 'white_02' | 'white_03' | 'white_04' | 'white_05' | 'white_06' | 'white_07' | 'white_08' | 'white_09';
@@ -1383,7 +1390,7 @@ declare module "packages/editor/src/engine/constants" {
1383
1390
  }
1384
1391
  declare module "packages/editor/src/engine/translations/__generated__/translation-types" {
1385
1392
  export type BuiltInLocale = 'ar' | 'ca' | 'cs' | 'da' | 'de' | 'en' | 'en-CA' | 'es' | 'et' | 'fa' | 'fi' | 'fr' | 'fr-CA' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'nl' | 'no' | 'pl' | 'pt-BR' | 'pt-PT' | 'ru' | 'sv' | 'tr' | 'uk' | 'vi-VN' | 'zh-CN' | 'zh-TW';
1386
- export type EditorTranslationKey = 'buttons.add_column' | 'buttons.add_content' | 'buttons.add_display_condition' | 'buttons.add_field' | 'buttons.add_footer' | 'buttons.add_header' | 'buttons.add_new_field' | 'buttons.add_new_item' | 'buttons.add_row' | 'buttons.add_text' | 'buttons.apply' | 'buttons.apply_effects' | 'buttons.back' | 'buttons.background' | 'buttons.cancel' | 'buttons.change' | 'buttons.change_image' | 'buttons.close' | 'buttons.comment' | 'buttons.corners' | 'buttons.crop' | 'buttons.delete' | 'buttons.deselect' | 'buttons.desktop' | 'buttons.disable_amp' | 'buttons.done' | 'buttons.draw' | 'buttons.drawing' | 'buttons.duplicate' | 'buttons.duplication_disabled_usage_limit' | 'buttons.edit' | 'buttons.edit_image' | 'buttons.edit_prompt' | 'buttons.enable_amp' | 'buttons.expand_text' | 'buttons.filter' | 'buttons.fix_spelling_grammar' | 'buttons.frame' | 'buttons.generate' | 'buttons.generate_images' | 'buttons.get_suggestions' | 'buttons.history' | 'buttons.make_it_formal' | 'buttons.make_it_friendly' | 'buttons.merge' | 'buttons.mobile' | 'buttons.more_options' | 'buttons.next' | 'buttons.open' | 'buttons.open_image_editor' | 'buttons.regenerate' | 'buttons.remove_column' | 'buttons.rephrase_text' | 'buttons.reset' | 'buttons.reset_value' | 'buttons.resize' | 'buttons.save' | 'buttons.see_magic' | 'buttons.select' | 'buttons.shape' | 'buttons.shapes' | 'buttons.show_fewer_options' | 'buttons.show_less' | 'buttons.show_more' | 'buttons.show_more_options' | 'buttons.sticker' | 'buttons.stickers' | 'buttons.summarize_text' | 'buttons.tablet' | 'buttons.transform' | 'buttons.try_again' | 'buttons.update_field' | 'buttons.upload' | 'buttons.upload_image' | 'buttons.use_image' | 'buttons.use_prompt' | 'buttons.use_this' | 'buttons.zoom' | 'collaboration.add_comment' | 'collaboration.collaboration_mode' | 'collaboration.empty.subtitle' | 'collaboration.empty.title' | 'collaboration.empty_filtered.subtitle' | 'collaboration.empty_filtered.title' | 'collaboration.exit_collaboration_mode' | 'collaboration.exit_mode' | 'collaboration.filters.all' | 'collaboration.filters.only_yours' | 'collaboration.filters.resolved' | 'collaboration.follow_docs_to_setup' | 'collaboration.leave_repply' | 'collaboration.login_to_collaborate' | 'collaboration.panel.threads' | 'collaboration.replies.n' | 'collaboration.replies.none' | 'collaboration.replies.one' | 'collaboration.resolve' | 'collaboration.resolved' | 'collaboration.types.feedback' | 'collaboration.types.idea' | 'collaboration.types.question' | 'collaboration.types.urgent' | 'colors.black' | 'colors.ruby' | 'colors.white' | 'content_tools.button' | 'content_tools.carousel' | 'content_tools.columns' | 'content_tools.divider' | 'content_tools.form' | 'content_tools.heading' | 'content_tools.html' | 'content_tools.image' | 'content_tools.menu' | 'content_tools.page_break' | 'content_tools.paragraph' | 'content_tools.social' | 'content_tools.table' | 'content_tools.text' | 'content_tools.timer' | 'content_tools.video' | 'dev_tab.info' | 'dev_tab.loading_project' | 'dev_tab.loading_project_info' | 'editor.accessibility_title.description' | 'editor.action_type.label' | 'editor.align.label' | 'editor.alignment.label' | 'editor.all_sides.label' | 'editor.alternate_text.label' | 'editor.anchor.section_already_exists' | 'editor.background_color.label' | 'editor.background_image.container_width' | 'editor.background_image.label' | 'editor.background_image.repeat' | 'editor.border.dashed' | 'editor.border.dotted' | 'editor.border.label' | 'editor.border.solid' | 'editor.bottom.label' | 'editor.bottom_center.label' | 'editor.bottom_left.label' | 'editor.bottom_right.label' | 'editor.button_link.label' | 'editor.center.label' | 'editor.center_left.label' | 'editor.center_right.label' | 'editor.color.brand_colors' | 'editor.color.common_colors' | 'editor.color.label' | 'editor.color.recent_colors' | 'editor.color.template_colors' | 'editor.colors.label' | 'editor.columns.label' | 'editor.columns_background.label' | 'editor.container_padding.label' | 'editor.content_alignment.label' | 'editor.content_background_color.label' | 'editor.content_width.label' | 'editor.deletable.label' | 'editor.desktop.description' | 'editor.digits_color.label' | 'editor.digits_font.label' | 'editor.digits_font_size.label' | 'editor.display_delay.label' | 'editor.do_not_stack_on_mobile.label' | 'editor.draggable.label' | 'editor.duplicable.label' | 'editor.end_time.label' | 'editor.fields.label' | 'editor.font_family.label' | 'editor.font_size.label' | 'editor.font_weight.100' | 'editor.font_weight.200' | 'editor.font_weight.300' | 'editor.font_weight.400' | 'editor.font_weight.500' | 'editor.font_weight.600' | 'editor.font_weight.700' | 'editor.font_weight.800' | 'editor.font_weight.900' | 'editor.font_weight.label' | 'editor.footer_enabled.label' | 'editor.form.custom' | 'editor.form.method' | 'editor.form_alignment.label' | 'editor.form_placeholder_alignment.label' | 'editor.form_width.label' | 'editor.full_width.label' | 'editor.header_enabled.label' | 'editor.heading_type.label' | 'editor.height.label' | 'editor.hide_on_desktop.label' | 'editor.hide_on_mobile.label' | 'editor.hide_on_tablet.label' | 'editor.hideable.label' | 'editor.horizontal_alignment.label' | 'editor.hover_background.label' | 'editor.hover_color.label' | 'editor.hover_text.label' | 'editor.hover_underline.label' | 'editor.html_title.label' | 'editor.icon_size.label' | 'editor.icon_spacing.label' | 'editor.icon_type.label' | 'editor.image.added_drawing' | 'editor.image.added_frame' | 'editor.image.added_overlay_image' | 'editor.image.added_shape' | 'editor.image.added_sticker' | 'editor.image.added_text' | 'editor.image.applied_crop' | 'editor.image.applied_filter' | 'editor.image.applied_resize' | 'editor.image.applied_rounded_corners' | 'editor.image.applied_transform' | 'editor.image.auto' | 'editor.image.auto_width' | 'editor.image.auto_width_switch_off' | 'editor.image.brush_color' | 'editor.image.brush_size' | 'editor.image.brush_type' | 'editor.image.canvas_background' | 'editor.image.changed_background' | 'editor.image.changed_background_image' | 'editor.image.changed_style' | 'editor.image.confirm_cancel_message' | 'editor.image.confirm_cancel_title' | 'editor.image.confirm_discard' | 'editor.image.confirm_keep_editing' | 'editor.image.drop_or_upload' | 'editor.image.drop_upload' | 'editor.image.full_width_mobile' | 'editor.image.image_options' | 'editor.image.image_url' | 'editor.image.initial' | 'editor.image.label' | 'editor.image.load_failed' | 'editor.image.loaded_state' | 'editor.image.main_image' | 'editor.image.maintain_aspect_ratio' | 'editor.image.objects_merged' | 'editor.image.offset_x' | 'editor.image.offset_y' | 'editor.image.outline_width' | 'editor.image.upload_error' | 'editor.image.upload_failed' | 'editor.image.uploading' | 'editor.image.use_percentages' | 'editor.image_link.label' | 'editor.image_size.label' | 'editor.inherit_body_styles.label' | 'editor.labels.insert_edit_link' | 'editor.labels.italic' | 'editor.labels.left_to_right' | 'editor.labels.missing_languages' | 'editor.labels.ordered_list' | 'editor.labels.remove_link' | 'editor.labels.right_to_left' | 'editor.labels.strikethrough' | 'editor.labels.subscript' | 'editor.labels.superscript' | 'editor.labels.try_it_now' | 'editor.labels.unordered_list' | 'editor.labels.web' | 'editor.labels_color.label' | 'editor.labels_font.label' | 'editor.labels_font_size.label' | 'editor.layout.label' | 'editor.left.label' | 'editor.letter_spacing.label' | 'editor.line.label' | 'editor.line_height.label' | 'editor.link.body' | 'editor.link.call_phone' | 'editor.link.close_popup' | 'editor.link.email' | 'editor.link.mailto' | 'editor.link.new_tab' | 'editor.link.no_page_sections_found' | 'editor.link.onclick_unsupported' | 'editor.link.open_website' | 'editor.link.page_section' | 'editor.link.phone' | 'editor.link.same_tab' | 'editor.link.selection_limit_exceeded' | 'editor.link.send_email' | 'editor.link.send_sms' | 'editor.link.subject' | 'editor.link.target' | 'editor.link.url' | 'editor.link_color.label' | 'editor.locked.label' | 'editor.magic_image.almost_there' | 'editor.magic_image.analyzing_your_prompt' | 'editor.magic_image.choose_style' | 'editor.magic_image.choose_style_description' | 'editor.magic_image.describe_image' | 'editor.magic_image.edit_prompt_placeholder' | 'editor.magic_image.edit_sample_prompt.black_and_white' | 'editor.magic_image.enable_ai.heading' | 'editor.magic_image.enable_ai.text' | 'editor.magic_image.first_experience.text' | 'editor.magic_image.first_experience.title' | 'editor.magic_image.generating_image' | 'editor.magic_image.generating_images' | 'editor.magic_image.generating_images_for' | 'editor.magic_image.modal_title' | 'editor.magic_image.no_suggestions' | 'editor.magic_image.prompt_placeholder' | 'editor.magic_image.prompt_score_good' | 'editor.magic_image.prompt_score_info' | 'editor.magic_image.prompt_score_not_good' | 'editor.magic_image.prompt_style_suffix' | 'editor.magic_image.sample_prompt.computer' | 'editor.magic_image.sample_prompt.david_sculpture' | 'editor.magic_image.sample_prompt.samoyed' | 'editor.magic_image.sample_prompt.van_gogh' | 'editor.magic_image.stock_list.text' | 'editor.magic_image.styles.3d_illustration' | 'editor.magic_image.styles.flat_art' | 'editor.magic_image.styles.geometric' | 'editor.magic_image.styles.lettering' | 'editor.magic_image.styles.minimalism' | 'editor.magic_image.styles.psychedelic' | 'editor.magic_image.styles.realism' | 'editor.magic_image.styles.retro_vintage' | 'editor.magic_image.styles.surrealism' | 'editor.magic_image.styles.vector' | 'editor.magic_image.suggested_prompts' | 'editor.magic_image.suggested_prompts_description' | 'editor.magic_image.text_prompt' | 'editor.magic_image.the_prompt' | 'editor.magic_image.uploading_your_image' | 'editor.magic_image.utilize_ai_created_images' | 'editor.margin.label' | 'editor.mobile.description' | 'editor.offline_mode_is_enabled' | 'editor.padding.label' | 'editor.placeholder.drop_it_here' | 'editor.placeholder.text' | 'editor.placeholder.text.left' | 'editor.placeholder.text.small' | 'editor.play_icon_color.label' | 'editor.play_icon_size.label' | 'editor.play_icon_type.label' | 'editor.position.label' | 'editor.power_paste.description' | 'editor.power_paste.keep_formatting' | 'editor.power_paste.remove_formatting' | 'editor.power_paste.title' | 'editor.predefined_style.label' | 'editor.preheader_text.description' | 'editor.preheader_text.label' | 'editor.right.label' | 'editor.rounded_border.label' | 'editor.rows.label' | 'editor.section_name.amp_disabled' | 'editor.section_name.description' | 'editor.section_name.label' | 'editor.select_image.label' | 'editor.selectable.label' | 'editor.separator.label' | 'editor.smart_buttons.enable_ai.heading' | 'editor.smart_buttons.enable_ai.text' | 'editor.smart_buttons.error.text' | 'editor.smart_buttons.first_experience.text' | 'editor.smart_buttons.first_experience.title' | 'editor.smart_headings.alternate_suggestions' | 'editor.smart_headings.enable_ai.text' | 'editor.smart_headings.error.min_words' | 'editor.smart_headings.error.text' | 'editor.smart_headings.error.title' | 'editor.smart_headings.first_experience.after' | 'editor.smart_headings.first_experience.before' | 'editor.smart_headings.first_experience.text' | 'editor.smart_headings.first_experience.title' | 'editor.smart_headings.heading_text' | 'editor.smart_headings.no_result' | 'editor.smart_headings.outdated_text' | 'editor.smart_headings.set_tone' | 'editor.smart_headings.type_few_words' | 'editor.smart_text.ai_enhance_text' | 'editor.smart_text.text_empty' | 'editor.social_links.label' | 'editor.space_between_fields.label' | 'editor.striped_rows.label' | 'editor.striped_rows_background_color.label' | 'editor.submit_action.label' | 'editor.sync_blocks.button' | 'editor.sync_blocks.content_in_sync.open_footer' | 'editor.sync_blocks.content_in_sync.open_header' | 'editor.sync_blocks.content_in_sync.open_row' | 'editor.sync_blocks.description' | 'editor.sync_blocks.label' | 'editor.sync_blocks.title' | 'editor.table_cell.select_to_edit' | 'editor.tablet.description' | 'editor.text.label' | 'editor.text_align.label' | 'editor.text_color.label' | 'editor.toolbar.collapse' | 'editor.toolbar.expand' | 'editor.top.label' | 'editor.top_center.label' | 'editor.top_left.label' | 'editor.top_right.label' | 'editor.underline.label' | 'editor.vertical_alignment.label' | 'editor.video.arrow_only' | 'editor.video.video_camera' | 'editor.video_url.description' | 'editor.video_url.label' | 'editor.width.label' | 'editors_panel.title.bodies' | 'editors_panel.title.contents' | 'editors_panel.title.footers' | 'editors_panel.title.headers' | 'editors_panel.title.magic_image' | 'editors_panel.title.rows' | 'editors_panel.title.sync_blocks' | 'emojis.categories.activities' | 'emojis.categories.all' | 'emojis.categories.animals_nature' | 'emojis.categories.flags' | 'emojis.categories.food_drink' | 'emojis.categories.objects' | 'emojis.categories.people_body' | 'emojis.categories.smileys_emotion' | 'emojis.categories.symbols' | 'emojis.categories.travel_places' | 'fields.birthday' | 'fields.company' | 'fields.name' | 'fields.phone_number' | 'fields.website' | 'fields.zip_code' | 'inbox_preview.design_updated' | 'labels.ai' | 'labels.ai.ai_assistant' | 'labels.ai.ai_assisted' | 'labels.ai.assistant.ai_is_not_enabled_for_this_tool' | 'labels.ai.assistant.ai_mode' | 'labels.ai.assistant.apply_changes_to' | 'labels.ai.assistant.cannot_edit_while_ai_is_generating' | 'labels.ai.assistant.errors.input_schema_validation_failed' | 'labels.ai.assistant.errors.no_changes_made_to_design' | 'labels.ai.assistant.errors.service_unavailable' | 'labels.ai.assistant.errors.something_went_wrong' | 'labels.ai.assistant.errors.timeout_limit_exceeded' | 'labels.ai.assistant.exit_ai_mode' | 'labels.ai.assistant.feature_description' | 'labels.ai.assistant.full_template' | 'labels.ai.assistant.hang_tight_generating_using_ai' | 'labels.ai.assistant.how_to_use' | 'labels.ai.assistant.loading.almost_there' | 'labels.ai.assistant.loading.generating' | 'labels.ai.assistant.loading.still_working' | 'labels.ai.assistant.loading.taking_longer' | 'labels.ai.assistant.loading.this_may_take_a_minute' | 'labels.ai.assistant.messages.the_changes_have_been_applied' | 'labels.ai.assistant.messages.what_do_you_want_to_generate' | 'labels.ai.assistant.missing_schema_for_custom_tool' | 'labels.ai.assistant.prompt_placeholder' | 'labels.ai.assistant.prompt_placeholder__body' | 'labels.ai.assistant.prompt_placeholder__body_new' | 'labels.ai.assistant.prompt_placeholder__content_text' | 'labels.ai.assistant.prompt_title' | 'labels.ai.assistant.quick_actions' | 'labels.ai.assistant.select_a_component_to_run_ai' | 'labels.ai.assistant.wait_for_other_generation' | 'labels.ai.image.continue_generating_new_image' | 'labels.ai.image.edit_existing_image' | 'labels.ai.image.generate_new_image' | 'labels.align_text' | 'labels.alignment.bottom' | 'labels.alignment.center' | 'labels.alignment.flex_end' | 'labels.alignment.flex_start' | 'labels.alignment.justify' | 'labels.alignment.left' | 'labels.alignment.right' | 'labels.alignment.top' | 'labels.auto_off' | 'labels.auto_on' | 'labels.beta.feedback.buttons.send_feedback' | 'labels.beta.feedback.errors.failed_to_send_feedback' | 'labels.beta.feedback.footnote' | 'labels.beta.feedback.intro_text' | 'labels.beta.feedback.thank_you_for_your_feedback' | 'labels.beta.feedback.your_feedback_here' | 'labels.blur' | 'labels.category' | 'labels.change_language' | 'labels.characters' | 'labels.clear_formatting' | 'labels.color_picker' | 'labels.comments' | 'labels.contain' | 'labels.content' | 'labels.copy' | 'labels.cover' | 'labels.custom' | 'labels.cut' | 'labels.dark_mode' | 'labels.description' | 'labels.desktop_preview' | 'labels.device_override' | 'labels.disable_dark_mode' | 'labels.dismiss' | 'labels.display_conditions' | 'labels.dynamic_content_enabled' | 'labels.editor' | 'labels.enable_dark_mode' | 'labels.error' | 'labels.errors.failed_to_fetch_prompt_suggestions' | 'labels.errors.failed_to_generate_images' | 'labels.errors.rate_limit_exceeded' | 'labels.errors.something_went_wrong' | 'labels.font' | 'labels.footer' | 'labels.format_text' | 'labels.generate_ai' | 'labels.generated_images' | 'labels.generating' | 'labels.google_fonts' | 'labels.gradient' | 'labels.header' | 'labels.hide' | 'labels.horizontal' | 'labels.language' | 'labels.learn_more' | 'labels.light_mode' | 'labels.load_more' | 'labels.loading' | 'labels.loading_images' | 'labels.locked.message' | 'labels.locked_live_mode.message' | 'labels.menu.label' | 'labels.menu.links' | 'labels.merge_tags' | 'labels.mobile_preview' | 'labels.more_images' | 'labels.new' | 'labels.no_images' | 'labels.no_results' | 'labels.none' | 'labels.not_supported' | 'labels.objects' | 'labels.outline' | 'labels.page' | 'labels.paste' | 'labels.position' | 'labels.prompt' | 'labels.radius' | 'labels.recents' | 'labels.redo' | 'labels.refresh' | 'labels.refresh_results' | 'labels.resolution' | 'labels.safe_search' | 'labels.search' | 'labels.search_images' | 'labels.search_images_by_name' | 'labels.section' | 'labels.select_tone' | 'labels.shadow' | 'labels.show' | 'labels.size' | 'labels.size.unit.auto' | 'labels.smart_text' | 'labels.some_examples' | 'labels.special_links' | 'labels.stock_photos' | 'labels.stock_photos_by' | 'labels.stock_photos_license' | 'labels.stop' | 'labels.tags' | 'labels.text_prompt' | 'labels.text_style' | 'labels.texture' | 'labels.timezone' | 'labels.tip' | 'labels.tone' | 'labels.undo' | 'labels.usage_limit.errors.credits_exhausted' | 'labels.usage_limit.errors.credits_exhausted_generic' | 'labels.usage_limit.features.ai' | 'labels.usage_limit.features.asset_bandwidth' | 'labels.usage_limit.features.countdown_views' | 'labels.usage_limit.features.export' | 'labels.usage_limit.features.inbox_preview' | 'labels.vertical' | 'labels.words' | 'modals.category.invalid' | 'modals.category.placeholder' | 'modals.clipboard_warning.message' | 'modals.clipboard_warning.title' | 'modals.delete.columns' | 'modals.delete.confirmation' | 'modals.delete.title' | 'modals.display_conditions.title' | 'modals.preview.browser_preview.label' | 'modals.preview.exit_preview' | 'modals.preview.inbox_preview.button.generate_previews' | 'modals.preview.inbox_preview.label' | 'modals.preview.inbox_preview.label.email_preview' | 'modals.preview.inbox_preview.label.generating_again' | 'modals.preview.inbox_preview.label.generating_previews' | 'modals.preview.inbox_preview.label.next' | 'modals.preview.inbox_preview.label.previous' | 'modals.preview.inbox_preview.label.reset_zoom' | 'modals.preview.inbox_preview.label.zoom_in' | 'modals.preview.inbox_preview.label.zoom_out' | 'modals.preview.inbox_preview.text.email_clients' | 'modals.preview.inbox_preview.text.generate_previews' | 'modals.preview.inbox_preview.text.last_synced' | 'modals.preview.inbox_preview.text.not_synced_yet' | 'modals.preview.inbox_preview.text.sync' | 'modals.preview.inbox_preview.text.syncing' | 'modals.preview.inbox_preview.title' | 'modals.preview.inbox_preview.tooltip.title' | 'modals.preview.inbox_preview.try_again' | 'modals.preview.inbox_preview.unavailable' | 'modals.preview.send_test_email.email_not_sent' | 'modals.preview.send_test_email.email_sent' | 'modals.preview.send_test_email.label' | 'modals.preview.send_test_email.on_the_way' | 'modals.preview.send_test_email.sending' | 'modals.preview.send_test_email.unexpected' | 'modals.preview.title' | 'modals.save_block.title' | 'modals.tags.description' | 'modals.tags.placeholder' | 'option_groups.accessibility.title' | 'option_groups.action.title' | 'option_groups.active_cell.title' | 'option_groups.admin.title' | 'option_groups.ai_assistant.title' | 'option_groups.all.title' | 'option_groups.background.title' | 'option_groups.blank.title' | 'option_groups.button.title' | 'option_groups.button_options.title' | 'option_groups.colors.title' | 'option_groups.column_number.title' | 'option_groups.column_properties.title' | 'option_groups.columns.title' | 'option_groups.content.title' | 'option_groups.countdown.title' | 'option_groups.default.title' | 'option_groups.display_condition.title' | 'option_groups.email_settings.title' | 'option_groups.fields.title' | 'option_groups.form.title' | 'option_groups.html.title' | 'option_groups.icons.title' | 'option_groups.image.title' | 'option_groups.labels.title' | 'option_groups.last_saved.title' | 'option_groups.layout.title' | 'option_groups.line.title' | 'option_groups.link.title' | 'option_groups.links.title' | 'option_groups.magic_image.title' | 'option_groups.menu_items.title' | 'option_groups.mobile.title' | 'option_groups.responsive_design.title' | 'option_groups.row_properties.title' | 'option_groups.selected_cells.title' | 'option_groups.size.title' | 'option_groups.smart_buttons.title' | 'option_groups.smart_headings.title' | 'option_groups.spacing.title' | 'option_groups.style_guide.title' | 'option_groups.styles.title' | 'option_groups.text.title' | 'shapes.circle' | 'shapes.rectangle' | 'shapes.round' | 'shapes.square' | 'sizes.large' | 'sizes.largest' | 'sizes.medium' | 'sizes.small' | 'sizes.smallest' | 'sync_blocks.panel.restore.button' | 'sync_blocks.panel.unsync.button' | 'sync_blocks.panel.unsync.description' | 'sync_blocks.panel.unsync.title' | 'sync_blocks.panel.update_everywhere.button' | 'sync_blocks.panel.update_everywhere.description' | 'sync_blocks.panel.update_everywhere.title' | 'table.clipboard_to_copy' | 'table.clipboard_to_cut' | 'table.clipboard_to_paste' | 'table.clipboard_unavailable_subtitle' | 'table.clipboard_unavailable_title' | 'table.column' | 'table.delete_column' | 'table.delete_row' | 'table.insert_column_after' | 'table.insert_column_before' | 'table.insert_row_after' | 'table.insert_row_before' | 'table.row' | 'tabs.audit.empty.description' | 'tabs.audit.empty.subtitle' | 'tabs.audit.empty.title' | 'tabs.audit.missing_image_src' | 'tabs.audit.missing_title' | 'tabs.audit.missing_tool_name' | 'tabs.audit.rules.button.empty_links.description' | 'tabs.audit.rules.button.empty_links.title' | 'tabs.audit.rules.image.alt_text.description' | 'tabs.audit.rules.image.alt_text.title' | 'tabs.audit.rules.image.url.description' | 'tabs.audit.rules.image.url.title' | 'tabs.audit.rules.menu.empty_links.description' | 'tabs.audit.rules.menu.empty_links.title' | 'tabs.audit.take_me_to_fix' | 'tones.bold' | 'tones.friendly' | 'tones.luxury' | 'tones.professional' | 'tones.relaxed' | 'tones.witty' | 'tools.form.field_label' | 'tools.form.field_name' | 'tools.form.field_type' | 'tools.form.field_value' | 'tools.form.new_field' | 'tools.form.options_one_per_line' | 'tools.form.placeholder_text' | 'tools.form.required_field' | 'tools.form.show_label' | 'tools.form.update_field' | 'tools.social.click_icons_to_add' | 'tools.tabs.audit' | 'tools.tabs.blocks' | 'tools.tabs.body' | 'tools.tabs.content' | 'tools.tabs.images' | 'tools.tabs.row' | 'tools.tabs.uploads' | 'tools.text.personalize' | 'tools.tooltip.drag_on_canvas' | 'tools.tooltip.got_it';
1393
+ export type EditorTranslationKey = 'buttons.add_column' | 'buttons.add_content' | 'buttons.add_display_condition' | 'buttons.add_field' | 'buttons.add_footer' | 'buttons.add_header' | 'buttons.add_new_field' | 'buttons.add_new_item' | 'buttons.add_row' | 'buttons.add_text' | 'buttons.apply' | 'buttons.apply_effects' | 'buttons.back' | 'buttons.background' | 'buttons.cancel' | 'buttons.change' | 'buttons.change_image' | 'buttons.close' | 'buttons.comment' | 'buttons.corners' | 'buttons.crop' | 'buttons.delete' | 'buttons.deselect' | 'buttons.desktop' | 'buttons.disable_amp' | 'buttons.done' | 'buttons.draw' | 'buttons.drawing' | 'buttons.duplicate' | 'buttons.duplication_disabled_usage_limit' | 'buttons.edit' | 'buttons.edit_image' | 'buttons.edit_prompt' | 'buttons.enable_amp' | 'buttons.expand_text' | 'buttons.filter' | 'buttons.fix_spelling_grammar' | 'buttons.frame' | 'buttons.generate' | 'buttons.generate_images' | 'buttons.get_suggestions' | 'buttons.history' | 'buttons.make_it_formal' | 'buttons.make_it_friendly' | 'buttons.merge' | 'buttons.mobile' | 'buttons.more_options' | 'buttons.next' | 'buttons.open' | 'buttons.open_image_editor' | 'buttons.regenerate' | 'buttons.remove_column' | 'buttons.rephrase_text' | 'buttons.reset' | 'buttons.reset_value' | 'buttons.resize' | 'buttons.save' | 'buttons.see_magic' | 'buttons.select' | 'buttons.shape' | 'buttons.shapes' | 'buttons.show_fewer_options' | 'buttons.show_less' | 'buttons.show_more' | 'buttons.show_more_options' | 'buttons.sticker' | 'buttons.stickers' | 'buttons.summarize_text' | 'buttons.tablet' | 'buttons.transform' | 'buttons.try_again' | 'buttons.update_field' | 'buttons.upload' | 'buttons.upload_image' | 'buttons.use_image' | 'buttons.use_prompt' | 'buttons.use_this' | 'buttons.zoom' | 'collaboration.add_comment' | 'collaboration.collaboration_mode' | 'collaboration.empty.subtitle' | 'collaboration.empty.title' | 'collaboration.empty_filtered.subtitle' | 'collaboration.empty_filtered.title' | 'collaboration.exit_collaboration_mode' | 'collaboration.exit_mode' | 'collaboration.filters.all' | 'collaboration.filters.only_yours' | 'collaboration.filters.resolved' | 'collaboration.follow_docs_to_setup' | 'collaboration.leave_repply' | 'collaboration.login_to_collaborate' | 'collaboration.panel.threads' | 'collaboration.replies.n' | 'collaboration.replies.none' | 'collaboration.replies.one' | 'collaboration.resolve' | 'collaboration.resolved' | 'collaboration.types.feedback' | 'collaboration.types.idea' | 'collaboration.types.question' | 'collaboration.types.urgent' | 'colors.black' | 'colors.ruby' | 'colors.white' | 'content_tools.button' | 'content_tools.carousel' | 'content_tools.columns' | 'content_tools.divider' | 'content_tools.form' | 'content_tools.heading' | 'content_tools.html' | 'content_tools.image' | 'content_tools.menu' | 'content_tools.page_break' | 'content_tools.paragraph' | 'content_tools.social' | 'content_tools.table' | 'content_tools.text' | 'content_tools.timer' | 'content_tools.video' | 'dev_tab.info' | 'dev_tab.loading_project' | 'dev_tab.loading_project_info' | 'editor.accessibility_title.description' | 'editor.action_type.label' | 'editor.align.label' | 'editor.alignment.label' | 'editor.all_sides.label' | 'editor.alternate_text.label' | 'editor.anchor.section_already_exists' | 'editor.background_color.label' | 'editor.background_image.container_width' | 'editor.background_image.label' | 'editor.background_image.repeat' | 'editor.border.dashed' | 'editor.border.dotted' | 'editor.border.label' | 'editor.border.solid' | 'editor.bottom.label' | 'editor.bottom_center.label' | 'editor.bottom_left.label' | 'editor.bottom_right.label' | 'editor.button_link.label' | 'editor.center.label' | 'editor.center_left.label' | 'editor.center_right.label' | 'editor.color.brand_colors' | 'editor.color.common_colors' | 'editor.color.label' | 'editor.color.recent_colors' | 'editor.color.template_colors' | 'editor.colors.label' | 'editor.columns.label' | 'editor.columns_background.label' | 'editor.container_padding.label' | 'editor.content_alignment.label' | 'editor.content_background_color.label' | 'editor.content_width.label' | 'editor.deletable.label' | 'editor.desktop.description' | 'editor.digits_color.label' | 'editor.digits_font.label' | 'editor.digits_font_size.label' | 'editor.display_delay.label' | 'editor.do_not_stack_on_mobile.label' | 'editor.draggable.label' | 'editor.duplicable.label' | 'editor.end_time.label' | 'editor.fields.label' | 'editor.font_family.label' | 'editor.font_size.label' | 'editor.font_weight.100' | 'editor.font_weight.200' | 'editor.font_weight.300' | 'editor.font_weight.400' | 'editor.font_weight.500' | 'editor.font_weight.600' | 'editor.font_weight.700' | 'editor.font_weight.800' | 'editor.font_weight.900' | 'editor.font_weight.label' | 'editor.footer_enabled.label' | 'editor.form.custom' | 'editor.form.method' | 'editor.form_alignment.label' | 'editor.form_placeholder_alignment.label' | 'editor.form_width.label' | 'editor.full_width.label' | 'editor.header_enabled.label' | 'editor.heading_type.label' | 'editor.height.label' | 'editor.hide_on_desktop.label' | 'editor.hide_on_mobile.label' | 'editor.hide_on_tablet.label' | 'editor.hideable.label' | 'editor.horizontal_alignment.label' | 'editor.hover_background.label' | 'editor.hover_color.label' | 'editor.hover_text.label' | 'editor.hover_underline.label' | 'editor.html_title.label' | 'editor.icon_size.label' | 'editor.icon_spacing.label' | 'editor.icon_type.label' | 'editor.image.added_drawing' | 'editor.image.added_frame' | 'editor.image.added_overlay_image' | 'editor.image.added_shape' | 'editor.image.added_sticker' | 'editor.image.added_text' | 'editor.image.applied_crop' | 'editor.image.applied_filter' | 'editor.image.applied_resize' | 'editor.image.applied_rounded_corners' | 'editor.image.applied_transform' | 'editor.image.auto' | 'editor.image.auto_width' | 'editor.image.auto_width_switch_off' | 'editor.image.brush_color' | 'editor.image.brush_size' | 'editor.image.brush_type' | 'editor.image.canvas_background' | 'editor.image.changed_background' | 'editor.image.changed_background_image' | 'editor.image.changed_style' | 'editor.image.confirm_cancel_message' | 'editor.image.confirm_cancel_title' | 'editor.image.confirm_discard' | 'editor.image.confirm_keep_editing' | 'editor.image.drop_or_upload' | 'editor.image.drop_upload' | 'editor.image.full_width_mobile' | 'editor.image.image_options' | 'editor.image.image_url' | 'editor.image.initial' | 'editor.image.label' | 'editor.image.load_failed' | 'editor.image.loaded_state' | 'editor.image.main_image' | 'editor.image.maintain_aspect_ratio' | 'editor.image.objects_merged' | 'editor.image.offset_x' | 'editor.image.offset_y' | 'editor.image.outline_width' | 'editor.image.upload_error' | 'editor.image.upload_failed' | 'editor.image.uploading' | 'editor.image.use_percentages' | 'editor.image_link.label' | 'editor.image_size.label' | 'editor.inherit_body_styles.label' | 'editor.labels.insert_edit_link' | 'editor.labels.italic' | 'editor.labels.left_to_right' | 'editor.labels.missing_languages' | 'editor.labels.ordered_list' | 'editor.labels.remove_link' | 'editor.labels.right_to_left' | 'editor.labels.strikethrough' | 'editor.labels.subscript' | 'editor.labels.superscript' | 'editor.labels.try_it_now' | 'editor.labels.unordered_list' | 'editor.labels.web' | 'editor.labels_color.label' | 'editor.labels_font.label' | 'editor.labels_font_size.label' | 'editor.layout.label' | 'editor.left.label' | 'editor.letter_spacing.label' | 'editor.line.label' | 'editor.line_height.label' | 'editor.link.body' | 'editor.link.call_phone' | 'editor.link.close_popup' | 'editor.link.email' | 'editor.link.mailto' | 'editor.link.new_tab' | 'editor.link.no_page_sections_found' | 'editor.link.onclick_unsupported' | 'editor.link.open_website' | 'editor.link.page_section' | 'editor.link.phone' | 'editor.link.same_tab' | 'editor.link.selection_limit_exceeded' | 'editor.link.send_email' | 'editor.link.send_sms' | 'editor.link.subject' | 'editor.link.target' | 'editor.link.url' | 'editor.link_color.label' | 'editor.locked.label' | 'editor.magic_image.almost_there' | 'editor.magic_image.analyzing_your_prompt' | 'editor.magic_image.choose_style' | 'editor.magic_image.choose_style_description' | 'editor.magic_image.describe_image' | 'editor.magic_image.edit_prompt_placeholder' | 'editor.magic_image.edit_sample_prompt.black_and_white' | 'editor.magic_image.enable_ai.heading' | 'editor.magic_image.enable_ai.text' | 'editor.magic_image.first_experience.text' | 'editor.magic_image.first_experience.title' | 'editor.magic_image.generating_image' | 'editor.magic_image.generating_images' | 'editor.magic_image.generating_images_for' | 'editor.magic_image.modal_title' | 'editor.magic_image.no_suggestions' | 'editor.magic_image.prompt_placeholder' | 'editor.magic_image.prompt_score_good' | 'editor.magic_image.prompt_score_info' | 'editor.magic_image.prompt_score_not_good' | 'editor.magic_image.prompt_style_suffix' | 'editor.magic_image.sample_prompt.computer' | 'editor.magic_image.sample_prompt.david_sculpture' | 'editor.magic_image.sample_prompt.samoyed' | 'editor.magic_image.sample_prompt.van_gogh' | 'editor.magic_image.stock_list.text' | 'editor.magic_image.styles.3d_illustration' | 'editor.magic_image.styles.flat_art' | 'editor.magic_image.styles.geometric' | 'editor.magic_image.styles.lettering' | 'editor.magic_image.styles.minimalism' | 'editor.magic_image.styles.psychedelic' | 'editor.magic_image.styles.realism' | 'editor.magic_image.styles.retro_vintage' | 'editor.magic_image.styles.surrealism' | 'editor.magic_image.styles.vector' | 'editor.magic_image.suggested_prompts' | 'editor.magic_image.suggested_prompts_description' | 'editor.magic_image.text_prompt' | 'editor.magic_image.the_prompt' | 'editor.magic_image.uploading_your_image' | 'editor.magic_image.utilize_ai_created_images' | 'editor.margin.label' | 'editor.mobile.description' | 'editor.offline_mode_is_enabled' | 'editor.padding.label' | 'editor.placeholder.drop_it_here' | 'editor.placeholder.text' | 'editor.placeholder.text.left' | 'editor.placeholder.text.small' | 'editor.play_icon_color.label' | 'editor.play_icon_size.label' | 'editor.play_icon_type.label' | 'editor.position.label' | 'editor.power_paste.description' | 'editor.power_paste.keep_formatting' | 'editor.power_paste.remove_formatting' | 'editor.power_paste.title' | 'editor.predefined_style.label' | 'editor.preheader_text.description' | 'editor.preheader_text.label' | 'editor.right.label' | 'editor.rounded_border.label' | 'editor.rows.label' | 'editor.section_name.amp_disabled' | 'editor.section_name.description' | 'editor.section_name.label' | 'editor.select_image.label' | 'editor.selectable.label' | 'editor.separator.label' | 'editor.smart_buttons.enable_ai.heading' | 'editor.smart_buttons.enable_ai.text' | 'editor.smart_buttons.error.text' | 'editor.smart_buttons.first_experience.text' | 'editor.smart_buttons.first_experience.title' | 'editor.smart_headings.alternate_suggestions' | 'editor.smart_headings.enable_ai.text' | 'editor.smart_headings.error.min_words' | 'editor.smart_headings.error.text' | 'editor.smart_headings.error.title' | 'editor.smart_headings.first_experience.after' | 'editor.smart_headings.first_experience.before' | 'editor.smart_headings.first_experience.text' | 'editor.smart_headings.first_experience.title' | 'editor.smart_headings.heading_text' | 'editor.smart_headings.no_result' | 'editor.smart_headings.outdated_text' | 'editor.smart_headings.set_tone' | 'editor.smart_headings.type_few_words' | 'editor.smart_text.ai_enhance_text' | 'editor.smart_text.text_empty' | 'editor.social_links.label' | 'editor.space_between_fields.label' | 'editor.striped_rows.label' | 'editor.striped_rows_background_color.label' | 'editor.submit_action.label' | 'editor.sync_blocks.button' | 'editor.sync_blocks.content_in_sync.open_footer' | 'editor.sync_blocks.content_in_sync.open_header' | 'editor.sync_blocks.content_in_sync.open_row' | 'editor.sync_blocks.description' | 'editor.sync_blocks.label' | 'editor.sync_blocks.title' | 'editor.table_cell.select_to_edit' | 'editor.tablet.description' | 'editor.text.label' | 'editor.text_align.label' | 'editor.text_color.label' | 'editor.toolbar.collapse' | 'editor.toolbar.expand' | 'editor.top.label' | 'editor.top_center.label' | 'editor.top_left.label' | 'editor.top_right.label' | 'editor.underline.label' | 'editor.vertical_alignment.label' | 'editor.video.arrow_only' | 'editor.video.video_camera' | 'editor.video_url.description' | 'editor.video_url.label' | 'editor.width.label' | 'editors_panel.title.bodies' | 'editors_panel.title.contents' | 'editors_panel.title.footers' | 'editors_panel.title.headers' | 'editors_panel.title.magic_image' | 'editors_panel.title.rows' | 'editors_panel.title.sync_blocks' | 'emojis.categories.activities' | 'emojis.categories.all' | 'emojis.categories.animals_nature' | 'emojis.categories.flags' | 'emojis.categories.food_drink' | 'emojis.categories.objects' | 'emojis.categories.people_body' | 'emojis.categories.smileys_emotion' | 'emojis.categories.symbols' | 'emojis.categories.travel_places' | 'fields.birthday' | 'fields.company' | 'fields.name' | 'fields.phone_number' | 'fields.website' | 'fields.zip_code' | 'inbox_preview.design_updated' | 'labels.ai' | 'labels.ai.ai_assistant' | 'labels.ai.ai_assisted' | 'labels.ai.assistant.ai_is_not_enabled_for_this_tool' | 'labels.ai.assistant.ai_mode' | 'labels.ai.assistant.apply_changes_to' | 'labels.ai.assistant.cannot_edit_while_ai_is_generating' | 'labels.ai.assistant.errors.api_quota_reached' | 'labels.ai.assistant.errors.input_schema_validation_failed' | 'labels.ai.assistant.errors.no_changes_made_to_design' | 'labels.ai.assistant.errors.service_unavailable' | 'labels.ai.assistant.errors.something_went_wrong' | 'labels.ai.assistant.errors.timeout_limit_exceeded' | 'labels.ai.assistant.exit_ai_mode' | 'labels.ai.assistant.feature_description' | 'labels.ai.assistant.full_template' | 'labels.ai.assistant.hang_tight_generating_using_ai' | 'labels.ai.assistant.how_to_use' | 'labels.ai.assistant.loading.almost_there' | 'labels.ai.assistant.loading.analyzing_request' | 'labels.ai.assistant.loading.generating' | 'labels.ai.assistant.loading.still_working' | 'labels.ai.assistant.loading.taking_longer' | 'labels.ai.assistant.loading.this_may_take_a_minute' | 'labels.ai.assistant.messages.analysis_and_planning' | 'labels.ai.assistant.messages.done_in_time' | 'labels.ai.assistant.messages.the_changes_have_been_applied' | 'labels.ai.assistant.messages.what_do_you_want_to_generate' | 'labels.ai.assistant.missing_schema_for_custom_tool' | 'labels.ai.assistant.new_chat' | 'labels.ai.assistant.new_messages' | 'labels.ai.assistant.prompt_placeholder' | 'labels.ai.assistant.prompt_placeholder__body' | 'labels.ai.assistant.prompt_placeholder__body_new' | 'labels.ai.assistant.prompt_placeholder__content_text' | 'labels.ai.assistant.prompt_title' | 'labels.ai.assistant.quick_actions' | 'labels.ai.assistant.scroll_to_bottom' | 'labels.ai.assistant.select_a_component_to_run_ai' | 'labels.ai.assistant.time.minutes_short' | 'labels.ai.assistant.time.seconds_short' | 'labels.ai.assistant.usage.cached_tokens' | 'labels.ai.assistant.usage.elapsed' | 'labels.ai.assistant.usage.estimated_cost' | 'labels.ai.assistant.usage.input_tokens' | 'labels.ai.assistant.usage.output_tokens' | 'labels.ai.assistant.usage.reasoning_tokens' | 'labels.ai.assistant.usage.total_tokens' | 'labels.ai.assistant.usage.turns' | 'labels.ai.assistant.wait_for_other_generation' | 'labels.ai.image.continue_generating_new_image' | 'labels.ai.image.edit_existing_image' | 'labels.ai.image.generate_new_image' | 'labels.align_text' | 'labels.alignment.bottom' | 'labels.alignment.center' | 'labels.alignment.flex_end' | 'labels.alignment.flex_start' | 'labels.alignment.justify' | 'labels.alignment.left' | 'labels.alignment.right' | 'labels.alignment.top' | 'labels.auto_off' | 'labels.auto_on' | 'labels.beta.feedback.buttons.send_feedback' | 'labels.beta.feedback.errors.failed_to_send_feedback' | 'labels.beta.feedback.footnote' | 'labels.beta.feedback.intro_text' | 'labels.beta.feedback.thank_you_for_your_feedback' | 'labels.beta.feedback.your_feedback_here' | 'labels.blur' | 'labels.category' | 'labels.change_language' | 'labels.characters' | 'labels.clear_formatting' | 'labels.color_picker' | 'labels.comments' | 'labels.contain' | 'labels.content' | 'labels.copy' | 'labels.cover' | 'labels.custom' | 'labels.cut' | 'labels.dark_mode' | 'labels.description' | 'labels.desktop_preview' | 'labels.device_override' | 'labels.disable_dark_mode' | 'labels.dismiss' | 'labels.display_conditions' | 'labels.dynamic_content_enabled' | 'labels.editor' | 'labels.enable_dark_mode' | 'labels.error' | 'labels.errors.failed_to_fetch_prompt_suggestions' | 'labels.errors.failed_to_generate_images' | 'labels.errors.rate_limit_exceeded' | 'labels.errors.something_went_wrong' | 'labels.font' | 'labels.footer' | 'labels.format_text' | 'labels.generate_ai' | 'labels.generated_images' | 'labels.generating' | 'labels.google_fonts' | 'labels.gradient' | 'labels.header' | 'labels.hide' | 'labels.horizontal' | 'labels.language' | 'labels.learn_more' | 'labels.light_mode' | 'labels.load_more' | 'labels.loading' | 'labels.loading_images' | 'labels.locked.message' | 'labels.locked_live_mode.message' | 'labels.menu.label' | 'labels.menu.links' | 'labels.merge_tags' | 'labels.mobile_preview' | 'labels.more_images' | 'labels.new' | 'labels.no_images' | 'labels.no_results' | 'labels.none' | 'labels.not_supported' | 'labels.objects' | 'labels.outline' | 'labels.page' | 'labels.paste' | 'labels.position' | 'labels.prompt' | 'labels.radius' | 'labels.recents' | 'labels.redo' | 'labels.refresh' | 'labels.refresh_results' | 'labels.resolution' | 'labels.safe_search' | 'labels.search' | 'labels.search_images' | 'labels.search_images_by_name' | 'labels.section' | 'labels.select_tone' | 'labels.shadow' | 'labels.show' | 'labels.size' | 'labels.size.unit.auto' | 'labels.smart_text' | 'labels.some_examples' | 'labels.special_links' | 'labels.stock_photos' | 'labels.stock_photos_by' | 'labels.stock_photos_license' | 'labels.stop' | 'labels.tags' | 'labels.text_prompt' | 'labels.text_style' | 'labels.texture' | 'labels.timezone' | 'labels.tip' | 'labels.tone' | 'labels.undo' | 'labels.usage_limit.errors.credits_exhausted' | 'labels.usage_limit.errors.credits_exhausted_claimable' | 'labels.usage_limit.errors.credits_exhausted_claimable_generic' | 'labels.usage_limit.errors.credits_exhausted_generic' | 'labels.usage_limit.features.ai' | 'labels.usage_limit.features.asset_bandwidth' | 'labels.usage_limit.features.countdown_views' | 'labels.usage_limit.features.export' | 'labels.usage_limit.features.inbox_preview' | 'labels.vertical' | 'labels.words' | 'modals.category.invalid' | 'modals.category.placeholder' | 'modals.clipboard_warning.message' | 'modals.clipboard_warning.title' | 'modals.delete.columns' | 'modals.delete.confirmation' | 'modals.delete.title' | 'modals.display_conditions.title' | 'modals.preview.browser_preview.label' | 'modals.preview.exit_preview' | 'modals.preview.inbox_preview.button.generate_previews' | 'modals.preview.inbox_preview.label' | 'modals.preview.inbox_preview.label.email_preview' | 'modals.preview.inbox_preview.label.generating_again' | 'modals.preview.inbox_preview.label.generating_previews' | 'modals.preview.inbox_preview.label.next' | 'modals.preview.inbox_preview.label.previous' | 'modals.preview.inbox_preview.label.reset_zoom' | 'modals.preview.inbox_preview.label.zoom_in' | 'modals.preview.inbox_preview.label.zoom_out' | 'modals.preview.inbox_preview.text.email_clients' | 'modals.preview.inbox_preview.text.generate_previews' | 'modals.preview.inbox_preview.text.last_synced' | 'modals.preview.inbox_preview.text.not_synced_yet' | 'modals.preview.inbox_preview.text.sync' | 'modals.preview.inbox_preview.text.syncing' | 'modals.preview.inbox_preview.title' | 'modals.preview.inbox_preview.tooltip.title' | 'modals.preview.inbox_preview.try_again' | 'modals.preview.inbox_preview.unavailable' | 'modals.preview.send_test_email.email_not_sent' | 'modals.preview.send_test_email.email_sent' | 'modals.preview.send_test_email.label' | 'modals.preview.send_test_email.on_the_way' | 'modals.preview.send_test_email.sending' | 'modals.preview.send_test_email.unexpected' | 'modals.preview.title' | 'modals.save_block.title' | 'modals.tags.description' | 'modals.tags.placeholder' | 'option_groups.accessibility.title' | 'option_groups.action.title' | 'option_groups.active_cell.title' | 'option_groups.admin.title' | 'option_groups.ai_assistant.title' | 'option_groups.all.title' | 'option_groups.background.title' | 'option_groups.blank.title' | 'option_groups.button.title' | 'option_groups.button_options.title' | 'option_groups.colors.title' | 'option_groups.column_number.title' | 'option_groups.column_properties.title' | 'option_groups.columns.title' | 'option_groups.content.title' | 'option_groups.countdown.title' | 'option_groups.default.title' | 'option_groups.display_condition.title' | 'option_groups.email_settings.title' | 'option_groups.fields.title' | 'option_groups.form.title' | 'option_groups.html.title' | 'option_groups.icons.title' | 'option_groups.image.title' | 'option_groups.labels.title' | 'option_groups.last_saved.title' | 'option_groups.layout.title' | 'option_groups.line.title' | 'option_groups.link.title' | 'option_groups.links.title' | 'option_groups.magic_image.title' | 'option_groups.menu_items.title' | 'option_groups.mobile.title' | 'option_groups.responsive_design.title' | 'option_groups.row_properties.title' | 'option_groups.selected_cells.title' | 'option_groups.size.title' | 'option_groups.smart_buttons.title' | 'option_groups.smart_headings.title' | 'option_groups.spacing.title' | 'option_groups.style_guide.title' | 'option_groups.styles.title' | 'option_groups.text.title' | 'shapes.circle' | 'shapes.rectangle' | 'shapes.round' | 'shapes.square' | 'sizes.large' | 'sizes.largest' | 'sizes.medium' | 'sizes.small' | 'sizes.smallest' | 'sync_blocks.panel.restore.button' | 'sync_blocks.panel.unsync.button' | 'sync_blocks.panel.unsync.description' | 'sync_blocks.panel.unsync.title' | 'sync_blocks.panel.update_everywhere.button' | 'sync_blocks.panel.update_everywhere.description' | 'sync_blocks.panel.update_everywhere.title' | 'table.clipboard_to_copy' | 'table.clipboard_to_cut' | 'table.clipboard_to_paste' | 'table.clipboard_unavailable_subtitle' | 'table.clipboard_unavailable_title' | 'table.column' | 'table.delete_column' | 'table.delete_row' | 'table.insert_column_after' | 'table.insert_column_before' | 'table.insert_row_after' | 'table.insert_row_before' | 'table.row' | 'tabs.audit.empty.description' | 'tabs.audit.empty.subtitle' | 'tabs.audit.empty.title' | 'tabs.audit.missing_image_src' | 'tabs.audit.missing_title' | 'tabs.audit.missing_tool_name' | 'tabs.audit.rules.button.empty_links.description' | 'tabs.audit.rules.button.empty_links.title' | 'tabs.audit.rules.image.alt_text.description' | 'tabs.audit.rules.image.alt_text.title' | 'tabs.audit.rules.image.url.description' | 'tabs.audit.rules.image.url.title' | 'tabs.audit.rules.menu.empty_links.description' | 'tabs.audit.rules.menu.empty_links.title' | 'tabs.audit.take_me_to_fix' | 'tones.bold' | 'tones.friendly' | 'tones.luxury' | 'tones.professional' | 'tones.relaxed' | 'tones.witty' | 'tools.form.field_label' | 'tools.form.field_name' | 'tools.form.field_type' | 'tools.form.field_value' | 'tools.form.new_field' | 'tools.form.options_one_per_line' | 'tools.form.placeholder_text' | 'tools.form.required_field' | 'tools.form.show_label' | 'tools.form.update_field' | 'tools.social.click_icons_to_add' | 'tools.tabs.audit' | 'tools.tabs.blocks' | 'tools.tabs.body' | 'tools.tabs.content' | 'tools.tabs.images' | 'tools.tabs.row' | 'tools.tabs.uploads' | 'tools.text.personalize' | 'tools.tooltip.drag_on_canvas' | 'tools.tooltip.got_it';
1387
1394
  }
1388
1395
  declare module "packages/image-editor/src/translations/__generated__/translation-types" {
1389
1396
  export type ImageEditorTranslationKey = 'image_editor.actions.dismiss' | 'image_editor.actions.done' | 'image_editor.ai_assistant.aborted' | 'image_editor.ai_assistant.done' | 'image_editor.ai_assistant.editing' | 'image_editor.ai_assistant.empty_state' | 'image_editor.ai_assistant.error' | 'image_editor.ai_assistant.nav_label' | 'image_editor.ai_assistant.placeholder' | 'image_editor.ai_assistant.progress.analyzing' | 'image_editor.ai_assistant.progress.applying' | 'image_editor.ai_assistant.progress.finalizing' | 'image_editor.ai_assistant.suggestions.black_white' | 'image_editor.ai_assistant.suggestions.blur_background' | 'image_editor.ai_assistant.suggestions.brightness' | 'image_editor.ai_assistant.suggestions.remove_background' | 'image_editor.ai_assistant.suggestions.remove_text' | 'image_editor.ai_assistant.suggestions.sharpen' | 'image_editor.ai_assistant.suggestions.vintage' | 'image_editor.ai_assistant.suggestions.warm_tone' | 'image_editor.ai_assistant.title' | 'image_editor.filters.blur' | 'image_editor.filters.brightness' | 'image_editor.filters.color' | 'image_editor.filters.grayscale' | 'image_editor.filters.noise' | 'image_editor.filters.sharpen' | 'image_editor.labels.drawing' | 'image_editor.labels.image' | 'image_editor.labels.shape' | 'image_editor.labels.sticker' | 'image_editor.labels.text' | 'image_editor.toolbar.apply' | 'image_editor.toolbar.cancel' | 'image_editor.toolbar.fit_to_screen' | 'image_editor.toolbar.hide_chat' | 'image_editor.toolbar.redo' | 'image_editor.toolbar.save' | 'image_editor.toolbar.show_chat' | 'image_editor.toolbar.undo' | 'image_editor.toolbar.zoom_in' | 'image_editor.toolbar.zoom_out' | 'image_editor.tools.corners' | 'image_editor.tools.crop' | 'image_editor.tools.draw' | 'image_editor.tools.filter' | 'image_editor.tools.frame' | 'image_editor.tools.merge' | 'image_editor.tools.resize' | 'image_editor.tools.shapes' | 'image_editor.tools.stickers' | 'image_editor.tools.text';
@@ -1563,6 +1570,128 @@ declare module "packages/editor/src/state/types/types" {
1563
1570
  collection: Collection;
1564
1571
  id: number | string;
1565
1572
  }
1573
+ export type AICopilotChatErrorInfo = {
1574
+ name: string;
1575
+ message: string;
1576
+ statusCode?: number;
1577
+ requestedAt?: number;
1578
+ failureAt?: number;
1579
+ code?: string;
1580
+ limitKey?: string;
1581
+ canClaimStarterCredits?: boolean;
1582
+ };
1583
+ /**
1584
+ * Message content is stored as an ordered array of parts, mirroring the
1585
+ * UIMessage shape from AI SDK. One message can carry multiple text parts
1586
+ * (useful for Phase 2 when the model emits a plan then a summary on the
1587
+ * same turn) plus an ephemeral status part that the streaming reducer
1588
+ * updates in place.
1589
+ */
1590
+ export type AICopilotChatMessagePart = {
1591
+ type: 'text';
1592
+ /** English fallback / verbatim model text. `textKey` drives render for
1593
+ * Phase-1 synthesized parts; model-generated parts have textKey
1594
+ * unset and `text` already in the user's locale. */
1595
+ text: string;
1596
+ textKey?: string;
1597
+ /** Text block id from the model stream. When streaming, deltas
1598
+ * with the same blockId accumulate onto this same part; a new
1599
+ * blockId creates a new text part (used to split plan vs summary
1600
+ * around an update_design tool call into separate bubbles). */
1601
+ blockId?: string;
1602
+ /** Wall-clock timestamp of the first delta for this text block.
1603
+ * On success, becomes the createdAt of the promoted assistant
1604
+ * message so plan and summary bubbles show the real times they
1605
+ * arrived rather than the loading bubble's start time. */
1606
+ createdAt?: number;
1607
+ } | {
1608
+ /** Ephemeral live status text during streaming — replaces the old
1609
+ * `liveText` field. Reducer updates the status part in place via
1610
+ * updateAICopilotStream. */
1611
+ type: 'status';
1612
+ text: string;
1613
+ } | {
1614
+ type: 'error';
1615
+ errorInfo: AICopilotChatErrorInfo;
1616
+ } | {
1617
+ /** Rendered as a quick-actions button group under the bubble. */
1618
+ type: 'embed';
1619
+ embedType: 'quick_actions';
1620
+ } | {
1621
+ /** Model-offered clickable choices (from the `suggest_options`
1622
+ * tool). Rendered as pill buttons under the bubble; tapping a
1623
+ * pill sends that option's `prompt` back as the next user message.
1624
+ * Emitted once per assistant turn — if the model calls the tool
1625
+ * again, the reducer replaces the previous list. */
1626
+ type: 'options';
1627
+ options: Array<{
1628
+ label: string;
1629
+ prompt: string;
1630
+ }>;
1631
+ };
1632
+ export interface AICopilotChatMessage {
1633
+ id: string;
1634
+ type: 'received' | 'sent';
1635
+ /** 'completed' — a finished-work indicator showing elapsed time;
1636
+ * the loading bubble morphs into this on success instead of being
1637
+ * removed, so the transcript retains "Done (1m 20s)" context. */
1638
+ subtype?: 'loading' | 'completed' | 'warning' | 'error' | 'success';
1639
+ parts: AICopilotChatMessagePart[];
1640
+ /** Tooltip for the status icon on error/warning/success bubbles. */
1641
+ iconTooltip?: string;
1642
+ createdAt: number;
1643
+ /** For subtype:'completed' — when the work actually ended. The
1644
+ * component derives the elapsed time from `completedAt - createdAt`. */
1645
+ completedAt?: number;
1646
+ /** Ordered list of `report_status` narration messages the model sent
1647
+ * during the turn, each stamped with the wall-clock time it arrived.
1648
+ * Rendered as an expandable list inside the Done chip; the UI derives
1649
+ * a per-step duration ("Analyzing request (7s)") from the gap to the
1650
+ * next step (or to completedAt for the final one). */
1651
+ reportedSteps?: Array<{
1652
+ text: string;
1653
+ at: number;
1654
+ }>;
1655
+ /** Wall-clock time of the first `update_design` op observed in the
1656
+ * turn that produced this message. Used by the renderer as the
1657
+ * anchor where the Done chip slots into the chronological sequence
1658
+ * of events: text parts whose `createdAt` is earlier than this
1659
+ * timestamp render above the chip, parts created after render
1660
+ * below — same DOM position the live status indicator held during
1661
+ * streaming. Unset when the turn never called `update_design`. */
1662
+ firstDesignOpAt?: number;
1663
+ /** Locale the AI detected from the user's last message (BCP-47),
1664
+ * surfaced via the wire's `data-complete` frame. Used by the Done
1665
+ * chip to localize client-injected synthetic steps (e.g.
1666
+ * "Analyzing prompt") so they match the language of the
1667
+ * model-emitted `report_status` strings rather than the editor UI
1668
+ * locale, which can diverge when the user types in a different
1669
+ * language than their UI. */
1670
+ detectedLocale?: string;
1671
+ /** Per-turn token usage + model info, attached to the first
1672
+ * assistant message of the turn (the plan bubble, or the sole
1673
+ * reply if there's no plan). Rendered inside the bubble-timestamp
1674
+ * tooltip so users can inspect elapsed time + tokens without
1675
+ * crowding the UI. */
1676
+ turnUsage?: {
1677
+ inputTokens?: number;
1678
+ outputTokens?: number;
1679
+ totalTokens?: number;
1680
+ reasoningTokens?: number;
1681
+ cachedInputTokens?: number;
1682
+ /** Estimated raw provider cost in micro-USD ($1 = 1_000_000). Only
1683
+ * sent by the server in local dev + QA (gated; never in production),
1684
+ * so the usage popover can show "$" alongside tokens. */
1685
+ estimatedCostMicroUsd?: number;
1686
+ provider?: string;
1687
+ modelId?: string;
1688
+ elapsedMs?: number;
1689
+ };
1690
+ /** Flags a sent user bubble whose turn was cancelled before it
1691
+ * completed. Rendered with a strikethrough + muted style and extra
1692
+ * spacing to separate it from the next turn. */
1693
+ cancelled?: boolean;
1694
+ }
1566
1695
  export interface Selection {
1567
1696
  active: boolean;
1568
1697
  location: Location | null;
@@ -1863,7 +1992,23 @@ declare module "packages/editor/src/state/types/types" {
1863
1992
  };
1864
1993
  }
1865
1994
  declare module "packages/editor/src/engine/config/features" {
1995
+ import type { AIProvider } from '@libs/ai/types/types';
1866
1996
  import { Resolution, Language } from "packages/editor/src/state/types/types";
1997
+ /**
1998
+ * Model identifier for the AI copilot.
1999
+ *
2000
+ * Accepts either:
2001
+ * - a bare model id (e.g. `"gpt-5.5"`, `"claude-opus-4-7"`), where the
2002
+ * server infers the provider from the id, or
2003
+ * - a `"<provider>/<modelId>"` pair (e.g. `"openai/gpt-5.5"`,
2004
+ * `"anthropic/claude-opus-4-7"`) — preferred when the model id is
2005
+ * ambiguous across providers.
2006
+ *
2007
+ * Typed as a template literal union so editors autocomplete the known
2008
+ * provider prefixes while still permitting arbitrary model strings via
2009
+ * the trailing `(string & {})`.
2010
+ */
2011
+ export type AICopilotModel = `${AIProvider}/${string}` | (string & {});
1867
2012
  export interface TextEditorCustomButton {
1868
2013
  name: string;
1869
2014
  icon: string;
@@ -1978,7 +2123,60 @@ declare module "packages/editor/src/engine/config/features" {
1978
2123
  /** @deprecated Use assistant instead. */
1979
2124
  copilot?: boolean;
1980
2125
  models?: boolean;
2126
+ /**
2127
+ * Default AI model for the assistant. Accepts:
2128
+ *
2129
+ * - a `"<provider>/<modelId>"` pair (e.g. `"openai/gpt-5.5"`,
2130
+ * `"anthropic/claude-opus-4-7"`) — pins both provider and model,
2131
+ * unambiguous;
2132
+ * - a bare model id (e.g. `"gpt-5.5"`);
2133
+ * - a provider name (e.g. `"openai"`, `"anthropic"`) — locks the
2134
+ * vendor and lets Unlayer pick that provider's default model.
2135
+ *
2136
+ * Forwarded to the v3 stream endpoint as the `model` body field.
2137
+ * Overridden when the user picks a model from the picker
2138
+ * (`models: true`). If unset, the server picks via its routing
2139
+ * policy (classifier → fallback chain).
2140
+ */
2141
+ model?: AICopilotModel;
2142
+ /**
2143
+ * Disable full-template, page, and body generation in the AI
2144
+ * Assistant when set to `false` — usually for cost or latency
2145
+ * control. Per-row, per-content, and per-text edits stay
2146
+ * available. Defaults to `true` (enabled) when the AI Assistant
2147
+ * is enabled, and is also gated by the
2148
+ * `aiAssistant.fullTemplateGeneration` server-side entitlement.
2149
+ */
2150
+ fullTemplateGeneration?: boolean;
1981
2151
  magicImage?: boolean;
2152
+ /**
2153
+ * AI image model used by Magic Image and the image-editor AI
2154
+ * chat. Mirrors `model` above. Accepts:
2155
+ *
2156
+ * - a `"<provider>/<modelId>"` pair (e.g. `"openai/gpt-image-2"`);
2157
+ * - a bare model id (e.g. `"gpt-image-2"`);
2158
+ * - a provider name (e.g. `"openai"`, `"google"`) — locks the
2159
+ * vendor and lets Unlayer pick that provider's default image
2160
+ * model (keeps the concrete model id server-side).
2161
+ *
2162
+ * Unset → Google Gemini (the default), so existing embedders are
2163
+ * unchanged. Set `model: 'openai'` (or `'openai/gpt-image-2'`) to
2164
+ * route image generation and editing to OpenAI's gpt-image-2.
2165
+ */
2166
+ image?: {
2167
+ /**
2168
+ * Provider/model string — see the docblock above. Unset uses
2169
+ * the Gemini default.
2170
+ */
2171
+ model?: string;
2172
+ /**
2173
+ * Quality tier, uniform across providers. Higher tiers cost
2174
+ * more. Mapped internally per provider — OpenAI gpt-image-2 to
2175
+ * its `quality` field, Gemini to image resolution
2176
+ * (`low`→1K, `medium`→2K, `high`→4K). Defaults to `'medium'`.
2177
+ */
2178
+ quality?: 'low' | 'medium' | 'high';
2179
+ };
1982
2180
  smartButtons?: boolean;
1983
2181
  smartHeadings?: boolean;
1984
2182
  smartImageAltText?: boolean;
@@ -1988,8 +2186,8 @@ declare module "packages/editor/src/engine/config/features" {
1988
2186
  sendTestEmail?: boolean;
1989
2187
  syncedBlocks?: boolean;
1990
2188
  }
1991
- export const betaFeaturesPaths: readonly ["ai.assistant"];
1992
- export const betaEntitlements: readonly ["aiAssistant"];
2189
+ export const betaFeaturesPaths: readonly [];
2190
+ export const betaEntitlements: readonly [];
1993
2191
  export const getBetaFeatures: () => "assistant"[];
1994
2192
  export function isOnLatestVersion(): boolean;
1995
2193
  export function setFeatures(newFeatures: Features): void;
@@ -2086,17 +2284,8 @@ declare module "packages/editor/src/engine/config/safeHtml" {
2086
2284
  export function enableSafeHtml(): void;
2087
2285
  export function disableSafeHtml(): void;
2088
2286
  export function setSafeHtmlOptions(options?: SafeHtmlOptions): void;
2089
- function _toSafeHtmlInternal(html: string, { allowOnClick, force }?: {
2090
- allowOnClick?: boolean;
2091
- force?: boolean;
2092
- }): string;
2093
- export const toSafeHtmlInternal: typeof _toSafeHtmlInternal & import("lodash").MemoizedFunction;
2094
- function _toSafeHtml(html: string | undefined, { allowOnClick, force, domPurifyOptions, }?: {
2095
- allowOnClick?: boolean;
2096
- force?: boolean;
2097
- domPurifyOptions?: SafeHtmlOptions['domPurifyOptions'];
2098
- }): TrustedHTML;
2099
- export const toSafeHtml: typeof _toSafeHtml & import("lodash").MemoizedFunction;
2287
+ export const toSafeHtmlInternal: any;
2288
+ export const toSafeHtml: any;
2100
2289
  }
2101
2290
  declare module "packages/editor/src/engine/config/intl" {
2102
2291
  import { UnlayerLocale } from "packages/editor/src/engine/translations/types";
@@ -2667,8 +2856,8 @@ declare module "packages/editor/src/engine/config/tools" {
2667
2856
  export function hasAISchemas(tool: ToolConfig, { displayMode }?: {
2668
2857
  displayMode?: DisplayMode;
2669
2858
  }): boolean;
2670
- export function getAllTools(): any[];
2671
- export function getTools(collection?: Collection): any[];
2859
+ export function getAllTools(): any;
2860
+ export function getTools(collection?: Collection): any;
2672
2861
  export function getCustomToolsCount(): number;
2673
2862
  export function getToolsCSS(category: string, items: ToolConfig[]): string;
2674
2863
  export function excludeTools(types: string[]): void;
@@ -2809,9 +2998,9 @@ declare module "packages/editor/src/engine/config/tools" {
2809
2998
  displayMode: DisplayMode;
2810
2999
  entitlements: Entitlements;
2811
3000
  }): {
2812
- availableTools: any[];
3001
+ availableTools: any;
2813
3002
  availableToolsWithDefaultRow: any[];
2814
- classicTools: any[];
3003
+ classicTools: any;
2815
3004
  };
2816
3005
  }
2817
3006
  declare module "packages/editor/src/engine/config/tabs" {
@@ -3006,7 +3195,81 @@ declare module "packages/editor/src/embed/helpers" {
3006
3195
  export function convertReturnFunctionToDoneCallback<Fn extends (...args: [any]) => any>(fn: Fn): (info: Parameters<Fn>[0], done: Function) => void;
3007
3196
  }
3008
3197
  declare module "packages/editor/src/state/types/callbacks" {
3009
- import type { DisplayMode, JSONTemplate, MergeTags } from "packages/editor/src/state/types/types";
3198
+ import type { AICopilotCancelReason, AIProvider } from '@libs/ai/types/types';
3199
+ import type { AICopilotDataType, DisplayMode, JSONTemplate, Location, MergeTags } from "packages/editor/src/state/types/types";
3200
+ /** Token usage payload reported by the AI Assistant pipeline. */
3201
+ export interface AIAssistantUsage {
3202
+ totalTokens?: number;
3203
+ inputTokens?: number;
3204
+ outputTokens?: number;
3205
+ reasoningTokens?: number;
3206
+ cachedInputTokens?: number;
3207
+ }
3208
+ /** Snapshot of a generation request. Same shape that drives the
3209
+ * editor's own Redux dispatch — given to host callbacks so they can
3210
+ * route, log, or take over. */
3211
+ export interface AIAssistantRequestParams {
3212
+ requestId: string;
3213
+ location: Location;
3214
+ prompt: string;
3215
+ promptId: string | undefined;
3216
+ promptFromId: string | undefined;
3217
+ data: object | null;
3218
+ dataType: AICopilotDataType;
3219
+ toolType: string | undefined;
3220
+ schemaVersion: number;
3221
+ provider: AIProvider | undefined;
3222
+ model: string | undefined;
3223
+ }
3224
+ /** Single internal stream event delivered to `ai:assistant:on:stream`.
3225
+ * Discriminated by `type` — switch on it to handle each kind. Fires
3226
+ * only when the editor owns generation (not when the host registered
3227
+ * `ai:assistant:generate`, since the host has its own pipeline then). */
3228
+ export type AIAssistantStreamEvent = {
3229
+ type: 'start';
3230
+ attempt: number;
3231
+ messageId?: string;
3232
+ provider?: string;
3233
+ modelId?: string;
3234
+ toolType?: string | null;
3235
+ } | {
3236
+ type: 'status';
3237
+ text: string;
3238
+ } | {
3239
+ type: 'text-delta';
3240
+ delta: string;
3241
+ blockId?: string;
3242
+ } | {
3243
+ type: 'suggest-options';
3244
+ options: Array<{
3245
+ label: string;
3246
+ prompt: string;
3247
+ }>;
3248
+ } | {
3249
+ type: 'design-partial';
3250
+ full: object;
3251
+ } | {
3252
+ type: 'design-operation';
3253
+ op: Record<string, any>;
3254
+ };
3255
+ /** Result the host returns from `ai:assistant:generate` to deliver a
3256
+ * final answer to the editor. */
3257
+ export interface AIAssistantGenerateResult {
3258
+ success?: boolean;
3259
+ error?: string | {
3260
+ name: string;
3261
+ message: string;
3262
+ statusCode?: number;
3263
+ };
3264
+ statusCode?: number;
3265
+ data: object[];
3266
+ provider: AIProvider | undefined;
3267
+ model: string | undefined;
3268
+ attempt?: number;
3269
+ durationMs?: number;
3270
+ locale?: string | null;
3271
+ usage?: AIAssistantUsage;
3272
+ }
3010
3273
  export interface CallbackContext {
3011
3274
  item: {
3012
3275
  type: string;
@@ -3174,6 +3437,57 @@ declare module "packages/editor/src/state/types/callbacks" {
3174
3437
  'block:added': (data: Record<string, any>, done: (result: any) => void) => void;
3175
3438
  'block:modified': (data: Record<string, any>, done: (result: any) => void) => void;
3176
3439
  'block:removed': (data: Record<string, any>, done: (result: any) => void) => void;
3440
+ /** Host owns generation. When registered, the editor delegates the AI
3441
+ * call instead of hitting its default streaming endpoint; the host
3442
+ * delivers a final result via `done`. Predates streaming — only one
3443
+ * answer per turn. For streaming hosts, prefer endpoint configuration
3444
+ * (a host-implemented SSE endpoint) once available. */
3445
+ 'ai:assistant:generate': (requestParams: AIAssistantRequestParams, done: (result: AIAssistantGenerateResult) => void) => void;
3446
+ /** Companion to `ai:assistant:generate`. Fires when the editor aborts
3447
+ * the in-flight request so the host can stop its own work. */
3448
+ 'ai:assistant:abort': (requestParams: AIAssistantRequestParams) => void;
3449
+ /** Fires at turn start, before any model attempt. Always fires —
3450
+ * including when the host owns generation. */
3451
+ 'ai:assistant:on:request': (requestParams: AIAssistantRequestParams) => void;
3452
+ /** Fires for every internal stream event from the editor's default
3453
+ * pipeline. Does NOT fire when the host owns generation via
3454
+ * `ai:assistant:generate` — the host has its own pipeline then. */
3455
+ 'ai:assistant:on:stream': (event: AIAssistantStreamEvent) => void;
3456
+ /** Turn completed successfully. Always fires. */
3457
+ 'ai:assistant:on:success': (data: {
3458
+ responseId?: string;
3459
+ provider?: string;
3460
+ modelId?: string;
3461
+ /** 1 = primary model; >1 = fell back to a backup model. */
3462
+ attempt?: number;
3463
+ durationMs?: number;
3464
+ /** Locale the AI detected from the user's last message. */
3465
+ locale?: string | null;
3466
+ toolType?: string;
3467
+ usage?: AIAssistantUsage;
3468
+ design: object | null;
3469
+ }) => void;
3470
+ /** Turn failed. Always fires (only fired path; cancellations get
3471
+ * `ai:assistant:on:cancel` instead). */
3472
+ 'ai:assistant:on:error': (data: {
3473
+ name: string;
3474
+ message: string;
3475
+ statusCode?: number;
3476
+ usage?: AIAssistantUsage;
3477
+ provider?: string;
3478
+ modelId?: string;
3479
+ attempt?: number;
3480
+ durationMs?: number;
3481
+ locale?: string | null;
3482
+ }) => void;
3483
+ /** Turn cancelled by the user. Always fires. */
3484
+ 'ai:assistant:on:cancel': (data: {
3485
+ reason?: AICopilotCancelReason | null;
3486
+ partialUsage?: AIAssistantUsage;
3487
+ provider?: string;
3488
+ modelId?: string;
3489
+ attempt?: number;
3490
+ }) => void;
3177
3491
  }
3178
3492
  }
3179
3493
  declare module "packages/editor/src/embed/Editor" {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "unlayer-types",
3
- "version": "1.417.0",
3
+ "version": "1.420.0",
4
4
  "license": "MIT"
5
5
  }