import { addClassStyleAttrs as e, removeClassStyleAttrs as t } from "../../common/utils/index.js";
import { t as n } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
import { DialtoneLocalization as r } from "../../localization/index.js";
import i from "../button/button.js";
import a from "../list-item/list-item.js";
import { t as o } from "../../combobox-DgClbLOg.js";
import s from "../stack/stack.js";
import c from "../tooltip/tooltip.js";
import l from "../popover/popover.js";
import u from "../dropdown/dropdown-separator.js";
import d from "../input/input.js";
import f from "../list-item-group/list-item-group.js";
import { t as p } from "../../rich_text_editor-DYu2R0kw.js";
import { RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as m, RICH_TEXT_EDITOR_OUTPUT_FORMATS as h } from "../rich-text-editor/rich-text-editor-constants.js";
import { EDITOR_DEFAULT_FONT_COLOR as g, EDITOR_DEFAULT_LINK_PREFIX as _, EDITOR_SUPPORTED_LINK_PROTOCOLS as v } from "./editor-constants.js";
import y from "./EditorToolbarButton.js";
import b from "./EditorToolbarDropdownButton.js";
import ee from "./EditorToolbarPopoverButton.js";
import { Fragment as x, createBlock as S, createCommentVNode as C, createElementBlock as w, createElementVNode as T, createTextVNode as E, createVNode as D, mergeProps as O, normalizeClass as te, normalizeStyle as k, openBlock as A, renderList as j, resolveComponent as M, resolveDirective as ne, resolveDynamicComponent as N, toDisplayString as P, withCtx as F, withDirectives as re, withKeys as I, withModifiers as L } from "vue";
import { DtIconAlignCenter as R, DtIconAlignJustify as z, DtIconAlignLeft as B, DtIconAlignRight as V, DtIconBold as H, DtIconBraces as U, DtIconChevronDown as ie, DtIconCodeBlock as W, DtIconFontSize as G, DtIconImage as K, DtIconItalic as q, DtIconLink2 as J, DtIconListBullet as Y, DtIconListOrdered as X, DtIconQuickReply as Z, DtIconQuote as Q, DtIconSearch as ae, DtIconStopFilled as oe, DtIconStrikethrough as se, DtIconType as ce, DtIconUnderline as $ } from "@dialpad/dialtone-icons/vue3";
//#region recipes/conversation_view/editor/editor.vue
var le = {
	compatConfig: { MODE: 3 },
	name: "DtRecipeEditor",
	components: {
		DtListItemGroup: f,
		DtDropdownSeparator: u,
		DtListItem: a,
		DtRichTextEditor: p,
		DtButton: i,
		DtPopover: l,
		DtStack: s,
		DtInput: d,
		DtTooltip: c,
		DtCombobox: o,
		EditorToolbarButton: y,
		EditorToolbarDropdownButton: b,
		EditorToolbarPopoverButton: ee,
		DtIconQuickReply: Z,
		DtIconBold: H,
		DtIconItalic: q,
		DtIconUnderline: $,
		DtIconStrikethrough: se,
		DtIconListBullet: Y,
		DtIconListOrdered: X,
		DtIconAlignLeft: B,
		DtIconAlignCenter: R,
		DtIconAlignRight: V,
		DtIconAlignJustify: z,
		DtIconQuote: Q,
		DtIconCodeBlock: W,
		DtIconLink2: J,
		DtIconImage: K,
		DtIconSearch: ae,
		DtIconType: ce,
		DtIconBraces: U,
		DtIconChevronDown: ie,
		DtIconFontSize: G,
		DtIconStopFilled: oe
	},
	mixins: [],
	inheritAttrs: !1,
	props: {
		modelValue: {
			type: [Object, String],
			default: ""
		},
		editable: {
			type: Boolean,
			default: !0
		},
		inputAriaLabel: {
			type: String,
			required: !0,
			default: ""
		},
		inputClass: {
			type: String,
			default: ""
		},
		autoFocus: {
			type: [
				Boolean,
				String,
				Number
			],
			default: !1,
			validator(e) {
				return typeof e == "string" ? m.includes(e) : !0;
			}
		},
		placeholder: {
			type: String,
			default: ""
		},
		maxHeight: {
			type: String,
			default: "unset"
		},
		setLinkPlaceholder: {
			type: String,
			default: ""
		},
		showBoldButton: {
			type: Boolean,
			default: !0
		},
		showItalicsButton: {
			type: Boolean,
			default: !0
		},
		showUnderlineButton: {
			type: Boolean,
			default: !0
		},
		showStrikeButton: {
			type: Boolean,
			default: !0
		},
		showListItemsButton: {
			type: Boolean,
			default: !0
		},
		showOrderedListButton: {
			type: Boolean,
			default: !0
		},
		showAlignLeftButton: {
			type: Boolean,
			default: !0
		},
		showAlignCenterButton: {
			type: Boolean,
			default: !0
		},
		showAlignRightButton: {
			type: Boolean,
			default: !0
		},
		showAlignJustifyButton: {
			type: Boolean,
			default: !0
		},
		showQuoteButton: {
			type: Boolean,
			default: !0
		},
		showCodeBlockButton: {
			type: Boolean,
			default: !0
		},
		showQuickRepliesButton: {
			type: Boolean,
			default: !0
		},
		showInlineImageButton: {
			type: Boolean,
			default: !1
		},
		showVariableButton: {
			type: Boolean,
			default: !1
		},
		variableCategories: {
			type: Array,
			default: () => []
		},
		showAddLink: {
			type: Object,
			default: () => ({ showAddLinkButton: !0 })
		},
		showFontStyleButton: {
			type: Boolean,
			default: !1
		},
		showFontSizeButton: {
			type: Boolean,
			default: !1
		},
		showFontColorButton: {
			type: Boolean,
			default: !1
		},
		fontStyles: {
			type: Array,
			default: () => [
				{
					name: "Arial",
					value: null
				},
				{
					name: "Georgia",
					value: "Georgia"
				},
				{
					name: "Helvetica",
					value: "Helvetica"
				},
				{
					name: "Verdana",
					value: "Verdana"
				},
				{
					name: "Times New Roman",
					value: "Times New Roman"
				}
			]
		},
		fontSizes: {
			type: Array,
			default: () => [
				{
					name: "Small",
					value: "12px"
				},
				{
					name: "Normal",
					value: "15px"
				},
				{
					name: "Large",
					value: "24px"
				},
				{
					name: "Huge",
					value: "36px"
				}
			]
		},
		allowBackgroundColor: {
			type: Boolean,
			default: !1
		},
		allowLineHeight: {
			type: Boolean,
			default: !1
		},
		preserveWhitespace: {
			type: [Boolean, String],
			default: "full"
		},
		useDivTags: {
			type: Boolean,
			default: !1
		},
		allowTables: {
			type: Boolean,
			default: !1
		},
		allowImageResize: {
			type: Boolean,
			default: !1
		}
	},
	emits: [
		"focus",
		"blur",
		"input",
		"update:modelValue",
		"quick-replies-click",
		"inline-image-click",
		"text-input"
	],
	data() {
		return {
			internalInputValue: this.modelValue,
			hasFocus: !1,
			linkOptions: { class: "d-recipe-editor__link" },
			currentFontColor: void 0,
			showLinkInput: !1,
			fontStyleSearch: "",
			linkInput: "",
			currentButtonRefIndex: 0,
			variableSearchValue: "",
			i18n: new r()
		};
	},
	computed: {
		inputLength() {
			return this.internalInputValue.length;
		},
		htmlOutputFormat() {
			return h[2];
		},
		flattenedVariableItems() {
			return this.variableCategories ? this.variableCategories.reduce((e, t) => e.concat(t.items || []), []) : [];
		},
		showingTextFormatButtons() {
			return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;
		},
		showingAlignmentButtons() {
			return this.showAlignLeftButton || this.showAlignCenterButton || this.showAlignRightButton || this.showAlignJustifyButton;
		},
		showingListButtons() {
			return this.showListItemsButton || this.showOrderedListButton;
		},
		orderedRefs() {
			let e = this.buttonGroups.reduce(function(e, t) {
				return t.buttonGroup.forEach((n) => {
					e.push(this.getButtonRef(t.key, n.selector));
				}, this), e;
			}.bind(this), []);
			return e.push(this.getButtonRef("custom", "link")), e;
		},
		buttonGroups() {
			let e = this.individualButtons.map((e) => ({
				key: e.selector,
				buttonGroup: [e]
			}));
			return [
				{
					key: "new",
					buttonGroup: this.newButtons
				},
				{
					key: "format",
					buttonGroup: this.textFormatButtons
				},
				{
					key: "alignment",
					buttonGroup: this.alignmentButtons
				},
				{
					key: "list",
					buttonGroup: this.listButtons
				},
				...e
			].filter((e) => e.buttonGroup.length > 0);
		},
		newButtons() {
			return [{
				showBtn: this.showQuickRepliesButton,
				buttonType: "button",
				label: this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),
				selector: "quickReplies",
				icon: Z,
				dataQA: "dt-recipe-editor-quick-replies-btn",
				tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),
				onClick: this.onQuickRepliesClick
			}].filter((e) => e.showBtn);
		},
		textFormatButtons() {
			return [
				{
					showBtn: this.showFontStyleButton,
					buttonType: "popover",
					selector: "fontStyle",
					icon: ce,
					dataQA: "dt-recipe-editor-font-style-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_FONT_STYLE_BUTTON_LABEL")
				},
				{
					showBtn: this.showFontSizeButton,
					buttonType: "popover",
					selector: "fontSize",
					icon: G,
					dataQA: "dt-recipe-editor-font-size-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_FONT_SIZE_BUTTON_LABEL")
				},
				{
					showBtn: this.showFontColorButton,
					buttonType: "custom",
					selector: "fontColor",
					icon: oe,
					dataQA: "dt-recipe-editor-font-color-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_FONT_COLOR_BUTTON_LABEL"),
					onClick: this.onColorPickerButtonClick
				},
				{
					showBtn: this.showBoldButton,
					buttonType: "button",
					selector: "bold",
					icon: H,
					dataQA: "dt-recipe-editor-bold-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_BOLD_BUTTON_LABEL"),
					onClick: this.onBoldTextToggle
				},
				{
					showBtn: this.showItalicsButton,
					buttonType: "button",
					selector: "italic",
					icon: q,
					dataQA: "dt-recipe-editor-italics-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ITALICS_BUTTON_LABEL"),
					onClick: this.onItalicTextToggle
				},
				{
					showBtn: this.showUnderlineButton,
					buttonType: "button",
					selector: "underline",
					icon: $,
					dataQA: "dt-recipe-editor-underline-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL"),
					onClick: this.onUnderlineTextToggle
				},
				{
					showBtn: this.showStrikeButton,
					buttonType: "button",
					selector: "strike",
					icon: se,
					dataQA: "dt-recipe-editor-strike-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_STRIKE_BUTTON_LABEL"),
					onClick: this.onStrikethroughTextToggle
				}
			].filter((e) => e.showBtn);
		},
		alignmentButtons() {
			return [
				{
					showBtn: this.showAlignLeftButton,
					buttonType: "button",
					selector: { textAlign: "left" },
					icon: B,
					dataQA: "dt-recipe-editor-align-left-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL"),
					onClick: () => this.onTextAlign("left")
				},
				{
					showBtn: this.showAlignCenterButton,
					buttonType: "button",
					selector: { textAlign: "center" },
					icon: R,
					dataQA: "dt-recipe-editor-align-center-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL"),
					onClick: () => this.onTextAlign("center")
				},
				{
					showBtn: this.showAlignRightButton,
					buttonType: "button",
					selector: { textAlign: "right" },
					icon: V,
					dataQA: "dt-recipe-editor-align-right-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL"),
					onClick: () => this.onTextAlign("right")
				},
				{
					showBtn: this.showAlignJustifyButton,
					buttonType: "button",
					selector: { textAlign: "justify" },
					icon: z,
					dataQA: "dt-recipe-editor-align-justify-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL"),
					onClick: () => this.onTextAlign("justify")
				}
			].filter((e) => e.showBtn);
		},
		listButtons() {
			return [{
				showBtn: this.showListItemsButton,
				buttonType: "button",
				selector: "bulletList",
				icon: Y,
				dataQA: "dt-recipe-editor-list-items-btn",
				tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL"),
				onClick: this.onBulletListToggle
			}, {
				showBtn: this.showOrderedListButton,
				buttonType: "button",
				selector: "orderedList",
				icon: X,
				dataQA: "dt-recipe-editor-ordered-list-items-btn",
				tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL"),
				onClick: this.onOrderedListToggle
			}].filter((e) => e.showBtn);
		},
		individualButtons() {
			return [
				{
					showBtn: this.showQuoteButton,
					buttonType: "button",
					selector: "blockquote",
					icon: Q,
					dataQA: "dt-recipe-editor-blockquote-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_QUOTE_BUTTON_LABEL"),
					onClick: this.onBlockquoteToggle
				},
				{
					showBtn: this.showCodeBlockButton,
					buttonType: "button",
					selector: "codeBlock",
					icon: W,
					dataQA: "dt-recipe-editor-code-block-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_CODE_BUTTON_LABEL"),
					onClick: this.onCodeBlockToggle
				},
				{
					showBtn: this.showInlineImageButton,
					buttonType: "button",
					selector: "image",
					icon: K,
					dataQA: "dt-recipe-editor-inline-image-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_IMAGE_BUTTON_LABEL"),
					onClick: this.onInsertInlineImageClick
				},
				{
					showBtn: this.showVariableButton,
					buttonType: "popover",
					selector: "variable",
					icon: U,
					dataQA: "dt-recipe-editor-variable-btn",
					tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_VARIABLE_BUTTON_LABEL")
				}
			].filter((e) => e.showBtn);
		},
		linkButton() {
			return {
				showBtn: this.showAddLink.showAddLinkButton,
				buttonType: "custom",
				selector: "link",
				icon: J,
				dataQA: "dt-recipe-editor-add-link-btn",
				tooltipMessage: this.i18n.$t("DIALTONE_EDITOR_LINK_BUTTON_LABEL"),
				onClick: this.openLinkInput
			};
		},
		confirmSetLinkButtonLabels() {
			return this.i18n.$ta("DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON");
		},
		cancelSetLinkButtonLabels() {
			return this.i18n.$ta("DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON");
		},
		removeLinkButtonLabels() {
			return this.i18n.$ta("DIALTONE_EDITOR_REMOVE_LINK_BUTTON");
		},
		showAddLinkButtonLabels() {
			return this.i18n.$ta("DIALTONE_EDITOR_ADD_LINK_BUTTON");
		},
		filteredFontStyles() {
			let e = this.fontStyleSearch.toLowerCase();
			return this.fontStyles.filter((t) => t.name.toLowerCase().includes(e));
		},
		filteredCategories() {
			return this.variableCategories.filter((e) => this.getFilteredItemsForCategory(e).length);
		},
		colorPickerInput() {
			return this.$refs.editorRoot?.querySelector(".colorPickerInput");
		},
		isDefaultFontColor() {
			return this.currentFontColor === g;
		},
		actionBarBtn() {
			let e = this.$refs[this.orderedRefs[this.currentButtonRefIndex]][0]?.$refs?.buttonRef || this.$refs[this.orderedRefs[this.currentButtonRefIndex]];
			return Array.isArray(e) ? e[0] : e;
		}
	},
	watch: { modelValue(e) {
		this.internalInputValue = e;
	} },
	methods: {
		removeClassStyleAttrs: t,
		addClassStyleAttrs: e,
		focusEditor() {
			this.$refs.richTextEditor?.editor?.commands.focus();
		},
		onInputFocus(e) {
			e?.stopPropagation();
		},
		removeLink() {
			this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run(), this.closeLinkInput();
		},
		setLink(e) {
			let t = this.$refs.richTextEditor?.editor;
			if (e?.preventDefault(), e?.stopPropagation(), !this.linkInput) {
				this.removeLink();
				return;
			}
			v.find((e) => e.test(this.linkInput)) || (this.linkInput = `${_}${this.linkInput}`);
			let n = t?.view?.state?.selection;
			n.anchor === n.head ? t.chain().focus().insertContentAt(n.anchor, `<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`).run() : t.chain().focus().extendMarkRange("link").setLink({
				href: this.linkInput,
				class: this.linkOptions.class
			}).run(), this.closeLinkInput();
		},
		openLinkInput() {
			this.showLinkInput = !0;
		},
		updateInput(e) {
			if (!e) return this.closeLinkInput();
			this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes("link")?.href;
		},
		closeLinkInput() {
			this.showLinkInput = !1, this.linkInput = "", this.$refs.richTextEditor.editor?.chain().focus();
		},
		onBoldTextToggle() {
			this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();
		},
		onItalicTextToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();
		},
		onUnderlineTextToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();
		},
		onStrikethroughTextToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();
		},
		onTextAlign(e) {
			if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: e })) return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();
			this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(e).run();
		},
		onBulletListToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();
		},
		onOrderedListToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();
		},
		onCodeBlockToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();
		},
		onQuickRepliesClick() {
			this.$emit("quick-replies-click");
		},
		onInsertInlineImageClick() {
			this.$emit("inline-image-click");
		},
		insertVariable(e, t) {
			this.$refs.richTextEditor?.editor.chain().focus().insertVariable({
				id: t.id,
				placeholder: t.placeholder || "",
				altText: "",
				enableAltText: t.enableAltText
			}).run();
		},
		insertInlineImage(e) {
			this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: e }).run();
		},
		insertInMessageBody(e) {
			this.$refs.richTextEditor?.editor.chain().focus().insertContent(e).run();
		},
		setCursorPosition(e = null) {
			this.$refs.richTextEditor?.editor.chain().focus(e).run();
		},
		onBlockquoteToggle() {
			this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();
		},
		onTextInput(e) {
			this.$emit("text-input", e);
		},
		onFocus(e) {
			this.hasFocus = !0, this.$emit("focus", e);
		},
		onBlur(e) {
			this.hasFocus = !1, this.$emit("blur", e);
		},
		onInput(e) {
			this.$emit("input", e), this.$emit("update:modelValue", e);
		},
		onSelected() {
			this.updateFontColorInput();
		},
		getButtonKey(e, t) {
			return `${e}-${JSON.stringify(t)}`;
		},
		getButtonRef(e, t) {
			return `${this.getButtonKey(e, t)}-ref`;
		},
		canFocus(e) {
			return e === this.orderedRefs[this.currentButtonRefIndex];
		},
		shiftActionBarFocusRight() {
			this.shiftButtonRefIndex(1);
		},
		shiftActionBarFocusLeft() {
			this.shiftButtonRefIndex(-1);
		},
		shiftButtonRefIndex(e) {
			let t = this.actionBarBtn, n = (this.currentButtonRefIndex + e) % this.orderedRefs.length;
			this.currentButtonRefIndex = n >= 0 ? n : this.orderedRefs.length + n;
			let r = this.actionBarBtn;
			t.$el.blur(), r.$el.focus();
		},
		onFontStyleSelect(e) {
			e ? this.$refs.richTextEditor?.editor?.chain().focus().setFontFamily(e).run() : this.$refs.richTextEditor?.editor?.chain().focus().unsetFontFamily().run(), this.$refs.richTextEditor?.editor?.commands.focus();
		},
		isCurrentFontFamily(e) {
			return e ? this.$refs.richTextEditor?.editor?.isActive("textStyle", { fontFamily: e }) : !this.$refs.richTextEditor?.editor?.getAttributes("textStyle")?.fontFamily;
		},
		onFontSizeSelect(e) {
			this.$refs.richTextEditor?.editor?.chain().focus().setFontSize(e).run(), this.$refs.richTextEditor?.editor?.commands.focus();
		},
		isCurrentFontSize(e) {
			return e ? this.$refs.richTextEditor?.editor?.isActive("textStyle", { fontSize: e }) : !this.$refs.richTextEditor?.editor?.getAttributes("textStyle")?.fontSize;
		},
		getFilteredItemsForCategory(e) {
			let t = this.variableSearchValue.toLowerCase();
			return e.name.toLowerCase().includes(t) ? e.items : e.items.filter((e) => e.name.toLowerCase().includes(t));
		},
		updateFontColorInput() {
			this.currentFontColor = this.$refs.richTextEditor?.editor?.getAttributes("textStyle")?.color || "#000000";
		},
		onColorPickerButtonClick() {
			this.colorPickerInput?.click();
		},
		onColorPickerInput(e) {
			this.$refs.richTextEditor?.editor?.chain().focus().setColor(e).run(), this.$refs.richTextEditor?.editor?.commands.focus(), this.updateFontColorInput();
		}
	}
}, ue = { class: "d-recipe-editor__popover-content" };
function de(e, t, n, r, i, a) {
	let o = M("dt-icon-search"), s = M("dt-input"), c = M("dt-list-item"), l = M("dt-combobox"), u = M("editor-toolbar-popover-button"), d = M("editor-toolbar-dropdown-button"), f = M("dt-button"), p = M("dt-dropdown-separator"), m = M("dt-list-item-group"), h = M("editor-toolbar-button"), g = M("dt-stack"), _ = M("dt-tooltip"), v = M("dt-popover"), y = M("dt-rich-text-editor"), b = ne("dt-tooltip");
	return A(), w("div", O({
		ref: "editorRoot",
		class: "d-recipe-editor"
	}, a.addClassStyleAttrs(e.$attrs), {
		"data-qa": "dt-recipe-editor",
		role: "presentation",
		onClick: t[7] || (t[7] = (t) => e.$refs.richTextEditor.focusEditor())
	}), [D(g, {
		class: "d-recipe-editor__top-bar",
		direction: "row",
		gap: "450"
	}, {
		default: F(() => [(A(!0), w(x, null, j(a.buttonGroups, (r) => (A(), S(g, {
			key: r.key,
			direction: "row",
			gap: "300"
		}, {
			default: F(() => [(A(!0), w(x, null, j(r.buttonGroup, (g) => (A(), w(x, null, [g.buttonType === "popover" && g.selector === "fontStyle" ? (A(), S(u, {
				key: a.getButtonKey(r.key, g.selector),
				ref_for: !0,
				ref: a.getButtonRef(r.key, g.selector),
				"is-active": e.$refs.richTextEditor?.editor?.isActive(g.selector),
				"tooltip-message": g.tooltipMessage,
				"data-qa": g.dataQA,
				"popover-data-qa": "dt-recipe-editor-font-style-input-popover",
				tabindex: a.canFocus(a.getButtonRef(r.key, g.selector)) ? 0 : -1,
				icon: g.icon,
				onShiftFocusRight: a.shiftActionBarFocusRight,
				onShiftFocusLeft: a.shiftActionBarFocusLeft
			}, {
				content: F(({ close: e }) => [D(l, {
					label: "",
					"label-visible": !1,
					"show-list": !0,
					"click-on-select": !0,
					onEscape: (t) => e()
				}, {
					input: F(({ inputProps: e }) => [D(s, O({ ref_for: !0 }, e, {
						modelValue: i.fontStyleSearch,
						"onUpdate:modelValue": t[0] || (t[0] = (e) => i.fontStyleSearch = e),
						"root-class": "d-p8 d-pb4 d-w216",
						type: "search",
						placeholder: i.i18n.$t("DIALTONE_EDITOR_FONT_STYLE_SEARCH_PLACEHOLDER"),
						size: "sm",
						role: "menuitem"
					}), {
						leftIcon: F(({ iconSize: e }) => [D(o, { size: e }, null, 8, ["size"])]),
						_: 1
					}, 16, ["modelValue", "placeholder"])]),
					list: F(({ listProps: t }) => [T("ul", O({ ref_for: !0 }, t), [(A(!0), w(x, null, j(a.filteredFontStyles, (t) => (A(), S(c, {
						key: t.name,
						selected: a.isCurrentFontFamily(t.value),
						style: k({ fontFamily: t.value || "inherit" }),
						role: "option",
						"navigation-type": "arrow-keys",
						onClick: (n) => {
							e(a.focusEditor), a.onFontStyleSelect(t.value);
						}
					}, {
						default: F(() => [E(P(t.name), 1)]),
						_: 2
					}, 1032, [
						"selected",
						"style",
						"onClick"
					]))), 128))], 16)]),
					_: 2
				}, 1032, ["onEscape"])]),
				_: 1
			}, 8, [
				"is-active",
				"tooltip-message",
				"data-qa",
				"tabindex",
				"icon",
				"onShiftFocusRight",
				"onShiftFocusLeft"
			])) : g.buttonType === "popover" && g.selector === "fontSize" ? (A(), S(d, {
				key: a.getButtonKey(r.key, g.selector),
				ref_for: !0,
				ref: a.getButtonRef(r.key, g.selector),
				"is-active": e.$refs.richTextEditor?.editor?.isActive(g.selector),
				"tooltip-message": g.tooltipMessage,
				"data-qa": g.dataQA,
				"dropdown-data-qa": "dt-recipe-editor-font-size-input-popover",
				tabindex: a.canFocus(a.getButtonRef(r.key, g.selector)) ? 0 : -1,
				icon: g.icon,
				onShiftFocusRight: a.shiftActionBarFocusRight,
				onShiftFocusLeft: a.shiftActionBarFocusLeft
			}, {
				list: F(({ close: e }) => [(A(!0), w(x, null, j(n.fontSizes, (t) => (A(), S(c, {
					key: t.name,
					selected: a.isCurrentFontSize(t.value),
					role: "menuitem",
					"navigation-type": "arrow-keys",
					onClick: (n) => {
						e(a.focusEditor), a.onFontSizeSelect(t.value, n);
					}
				}, {
					default: F(() => [T("span", { style: k({ fontSize: t.value }) }, P(t.name), 5)]),
					_: 2
				}, 1032, ["selected", "onClick"]))), 128))]),
				_: 1
			}, 8, [
				"is-active",
				"tooltip-message",
				"data-qa",
				"tabindex",
				"icon",
				"onShiftFocusRight",
				"onShiftFocusLeft"
			])) : g.buttonType === "custom" && g.selector === "fontColor" ? re((A(), S(f, {
				key: a.getButtonKey(r.key, g.selector),
				ref_for: !0,
				ref: a.getButtonRef(r.key, g.selector),
				kind: "muted",
				importance: "clear",
				size: "xs",
				active: e.$refs.richTextEditor?.editor?.isActive(g.selector),
				tabindex: a.canFocus(a.getButtonRef(r.key, g.selector)) ? 0 : -1,
				"aria-label": g.tooltipMessage,
				"data-qa": g.dataQA,
				onKeydown: [I(L(a.shiftActionBarFocusRight, ["stop"]), ["right"]), I(L(a.shiftActionBarFocusLeft, ["stop"]), ["left"])],
				onClick: (e) => g.onClick()
			}, {
				icon: F(() => [(A(), S(N(g.icon), {
					size: "200",
					style: k(a.isDefaultFontColor ? {} : { color: i.currentFontColor })
				}, null, 8, ["style"])), D(s, {
					value: i.currentFontColor,
					"root-class": "d-w0 d-h0 d-of-hidden",
					"input-class": "colorPickerInput d-w0 d-h0 d-p0 d-bar0",
					"input-wrapper-class": "d-w0 d-h0 d-ba-none",
					size: "sm",
					type: "color",
					onInput: a.onColorPickerInput,
					onClick: t[1] || (t[1] = L(() => {}, ["stop"]))
				}, null, 8, ["value", "onInput"])]),
				_: 2
			}, 1032, [
				"active",
				"tabindex",
				"aria-label",
				"data-qa",
				"onKeydown",
				"onClick"
			])), [[b, {
				message: g.tooltipMessage,
				placement: "top",
				externalAnchorElement: e.$refs[a.getButtonRef(r.key, g.selector)]?.$el
			}]]) : g.buttonType === "popover" && g.selector === "variable" ? (A(), S(u, {
				key: a.getButtonKey(r.key, g.selector),
				ref_for: !0,
				ref: a.getButtonRef(r.key, g.selector),
				"is-active": !1,
				"tooltip-message": g.tooltipMessage,
				"data-qa": g.dataQA,
				"popover-data-qa": "dt-recipe-editor-variable-popover",
				tabindex: a.canFocus(a.getButtonRef(r.key, g.selector)) ? 0 : -1,
				icon: g.icon,
				onShiftFocusRight: a.shiftActionBarFocusRight,
				onShiftFocusLeft: a.shiftActionBarFocusLeft
			}, {
				content: F(({ close: e }) => [D(l, {
					label: "",
					"label-visible": !1,
					"show-list": !0,
					"click-on-select": !0,
					onEscape: (t) => e()
				}, {
					input: F(({ inputProps: e }) => [D(s, O({ ref_for: !0 }, e, {
						modelValue: i.variableSearchValue,
						"onUpdate:modelValue": t[2] || (t[2] = (e) => i.variableSearchValue = e),
						"root-class": "d-p8 d-pb4 d-w264",
						type: "search",
						placeholder: i.i18n.$t("DIALTONE_EDITOR_VARIABLE_POPOVER_SEARCH_PLACEHOLDER"),
						size: "md",
						role: "menuitem"
					}), {
						leftIcon: F(({ iconSize: e }) => [D(o, { size: e }, null, 8, ["size"])]),
						_: 1
					}, 16, ["modelValue", "placeholder"])]),
					list: F(({ listProps: t }) => [T("div", O({ ref_for: !0 }, t), [(A(!0), w(x, null, j(a.filteredCategories, (t, n) => (A(), S(m, {
						key: t.name,
						heading: t.name,
						"heading-class": "d-headline--sm-compact d-p8"
					}, {
						default: F(() => [(A(!0), w(x, null, j(a.getFilteredItemsForCategory(t), (n) => (A(), S(c, {
							key: t.name + n.name,
							role: "option",
							"navigation-type": "arrow-keys",
							onClick: (r) => {
								a.insertVariable(t.name, n), e(a.focusEditor);
							}
						}, {
							default: F(() => [E(P(n.name), 1)]),
							_: 2
						}, 1032, ["onClick"]))), 128)), n < a.filteredCategories.length - 1 ? (A(), S(p, { key: 0 })) : C("", !0)]),
						_: 2
					}, 1032, ["heading"]))), 128))], 16)]),
					_: 2
				}, 1032, ["onEscape"])]),
				_: 1
			}, 8, [
				"tooltip-message",
				"data-qa",
				"tabindex",
				"icon",
				"onShiftFocusRight",
				"onShiftFocusLeft"
			])) : g.buttonType === "button" ? (A(), S(h, {
				key: a.getButtonKey(r.key, g.selector),
				ref_for: !0,
				ref: a.getButtonRef(r.key, g.selector),
				"is-active": e.$refs.richTextEditor?.editor?.isActive(g.selector),
				"tooltip-message": g.tooltipMessage,
				"data-qa": g.dataQA,
				tabindex: a.canFocus(a.getButtonRef(r.key, g.selector)) ? 0 : -1,
				icon: g.icon,
				label: g.label,
				"on-click": g.onClick,
				onShiftFocusRight: a.shiftActionBarFocusRight,
				onShiftFocusLeft: a.shiftActionBarFocusLeft
			}, null, 8, [
				"is-active",
				"tooltip-message",
				"data-qa",
				"tabindex",
				"icon",
				"label",
				"on-click",
				"onShiftFocusRight",
				"onShiftFocusLeft"
			])) : C("", !0)], 64))), 256)), t[8] || (t[8] = T("div", { class: "d-recipe-editor__button-group-divider" }, null, -1))]),
			_: 2
		}, 1024))), 128)), a.linkButton.showBtn ? (A(), S(g, {
			key: 0,
			direction: "row",
			gap: "300"
		}, {
			default: F(() => [D(v, {
				open: i.showLinkInput,
				"show-close-button": !1,
				"data-qa": "dt-recipe-editor-link-input-popover",
				padding: "none",
				placement: "bottom-start",
				onClick: [a.onInputFocus, L(a.onInputFocus, ["stop"])],
				onOpened: a.updateInput
			}, {
				anchor: F(() => [(A(), S(_, {
					key: a.linkButton.key,
					message: a.linkButton.tooltipMessage,
					placement: "top"
				}, {
					anchor: F(() => [D(f, {
						ref: a.getButtonRef("custom", "link"),
						active: e.$refs.richTextEditor?.editor?.isActive(a.linkButton.selector),
						"aria-label": a.linkButton.tooltipMessage,
						"data-qa": a.linkButton.dataQA,
						tabindex: a.canFocus(a.getButtonRef("custom", "link")) ? 0 : -1,
						importance: "clear",
						kind: "muted",
						size: "xs",
						onClick: t[3] || (t[3] = (e) => a.linkButton.onClick()),
						onKeydown: [I(L(a.shiftActionBarFocusRight, ["stop"]), ["right"]), I(L(a.shiftActionBarFocusLeft, ["stop"]), ["left"])]
					}, {
						icon: F(() => [(A(), S(N(a.linkButton.icon), { size: "200" }))]),
						_: 1
					}, 8, [
						"active",
						"aria-label",
						"data-qa",
						"tabindex",
						"onKeydown"
					])]),
					_: 1
				}, 8, ["message"]))]),
				content: F(() => [T("div", ue, [T("span", null, P(a.showAddLinkButtonLabels.title), 1), D(s, {
					modelValue: i.linkInput,
					"onUpdate:modelValue": t[4] || (t[4] = (e) => i.linkInput = e),
					"input-aria-label": a.showAddLinkButtonLabels["aria-label"],
					placeholder: n.setLinkPlaceholder,
					"data-qa": "dt-recipe-editor-link-input",
					"input-wrapper-class": "d-recipe-editor-link__input-wrapper",
					onClick: [a.onInputFocus, L(a.onInputFocus, ["stop"])],
					onFocus: a.onInputFocus,
					onKeydown: I(a.setLink, ["enter"])
				}, null, 8, [
					"modelValue",
					"input-aria-label",
					"placeholder",
					"onClick",
					"onFocus",
					"onKeydown"
				])])]),
				footerContent: F(() => [D(g, {
					direction: "row",
					gap: "300",
					class: "d-recipe-editor__popover-footer"
				}, {
					default: F(() => [
						D(f, O({
							"data-qa": "dt-recipe-editor-remove-link-btn",
							importance: "clear",
							kind: "muted",
							size: "sm"
						}, a.removeLinkButtonLabels, { onClick: a.removeLink }), {
							default: F(() => [E(P(a.removeLinkButtonLabels.title), 1)]),
							_: 1
						}, 16, ["onClick"]),
						D(f, O({
							"data-qa": "dt-recipe-editor-set-link-cancel-btn",
							importance: "clear",
							kind: "muted",
							size: "sm"
						}, a.cancelSetLinkButtonLabels, { onClick: a.closeLinkInput }), {
							default: F(() => [E(P(a.cancelSetLinkButtonLabels.title), 1)]),
							_: 1
						}, 16, ["onClick"]),
						D(f, O({
							"data-qa": "dt-recipe-editor-set-link-confirm-btn",
							size: "sm"
						}, a.confirmSetLinkButtonLabels, { onClick: a.setLink }), {
							default: F(() => [E(P(a.confirmSetLinkButtonLabels.title), 1)]),
							_: 1
						}, 16, ["onClick"])
					]),
					_: 1
				})]),
				_: 1
			}, 8, [
				"open",
				"onClick",
				"onOpened"
			])]),
			_: 1
		})) : C("", !0)]),
		_: 1
	}), T("div", {
		style: k({ "max-height": n.maxHeight }),
		class: te(["d-recipe-editor__content", { "d-recipe-editor__content-image-resize": n.allowImageResize }])
	}, [D(y, O({
		ref: "richTextEditor",
		modelValue: i.internalInputValue,
		"onUpdate:modelValue": t[5] || (t[5] = (e) => i.internalInputValue = e),
		"allow-font-color": !0,
		"allow-font-family": !0,
		"allow-inline-images": !0,
		"allow-line-breaks": !0,
		"allow-variable": !0,
		"allow-font-size": n.showFontSizeButton,
		"allow-background-color": n.allowBackgroundColor,
		"allow-line-height": n.allowLineHeight,
		"variable-items": a.flattenedVariableItems,
		"hide-link-bubble-menu": !0,
		"auto-focus": n.autoFocus,
		editable: n.editable,
		"input-aria-label": n.inputAriaLabel,
		"input-class": `d-recipe-editor__content-input ${n.inputClass}`,
		link: !0,
		"output-format": a.htmlOutputFormat,
		placeholder: n.placeholder,
		"preserve-whitespace": n.preserveWhitespace,
		"use-div-tags": n.useDivTags,
		"allow-tables": n.allowTables,
		"allow-image-resize": n.allowImageResize,
		"data-qa": "dt-rich-text-editor"
	}, a.removeClassStyleAttrs(e.$attrs), {
		onTextInput: a.onTextInput,
		onBlur: a.onBlur,
		onFocus: a.onFocus,
		onInput: t[6] || (t[6] = (e) => a.onInput(e)),
		onSelected: a.onSelected
	}), null, 16, [
		"modelValue",
		"allow-font-size",
		"allow-background-color",
		"allow-line-height",
		"variable-items",
		"auto-focus",
		"editable",
		"input-aria-label",
		"input-class",
		"output-format",
		"placeholder",
		"preserve-whitespace",
		"use-div-tags",
		"allow-tables",
		"allow-image-resize",
		"onTextInput",
		"onBlur",
		"onFocus",
		"onSelected"
	])], 6)], 16);
}
var fe = /* @__PURE__ */ n(le, [["render", de]]);
//#endregion
export { fe as default };

//# sourceMappingURL=editor.js.map