@dialpad/dialtone 9.177.2 → 9.178.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 (142) hide show
  1. package/dist/css/dialtone-default-theme.css +75 -0
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone.css +75 -0
  4. package/dist/css/dialtone.min.css +1 -1
  5. package/dist/css/tokens-docs.json +1 -1
  6. package/dist/tokens/doc.json +112080 -112080
  7. package/dist/vue3/{attachment_carousel-BWzRsDBY.cjs → attachment_carousel-BHxR7A76.cjs} +1 -1
  8. package/dist/vue3/{attachment_carousel-BWzRsDBY.cjs.map → attachment_carousel-BHxR7A76.cjs.map} +1 -1
  9. package/dist/vue3/{attachment_carousel-Xub5CrN3.js → attachment_carousel-CouFqFMw.js} +1 -1
  10. package/dist/vue3/{attachment_carousel-Xub5CrN3.js.map → attachment_carousel-CouFqFMw.js.map} +1 -1
  11. package/dist/vue3/component-documentation.json +1 -1
  12. package/dist/vue3/components/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -0
  13. package/dist/vue3/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  14. package/dist/vue3/components/resizable/composables/computeLayout.d.ts +35 -0
  15. package/dist/vue3/components/resizable/composables/computeLayout.d.ts.map +1 -0
  16. package/dist/vue3/components/resizable/composables/constraintResolver.d.ts +22 -0
  17. package/dist/vue3/components/resizable/composables/constraintResolver.d.ts.map +1 -0
  18. package/dist/vue3/components/resizable/composables/index.d.ts +16 -0
  19. package/dist/vue3/components/resizable/composables/index.d.ts.map +1 -0
  20. package/dist/vue3/components/resizable/composables/useResizableAnnouncements.d.ts +6 -0
  21. package/dist/vue3/components/resizable/composables/useResizableAnnouncements.d.ts.map +1 -0
  22. package/dist/vue3/components/resizable/composables/useResizableCalculations.d.ts +14 -0
  23. package/dist/vue3/components/resizable/composables/useResizableCalculations.d.ts.map +1 -0
  24. package/dist/vue3/components/resizable/composables/useResizableDrag.d.ts +42 -0
  25. package/dist/vue3/components/resizable/composables/useResizableDrag.d.ts.map +1 -0
  26. package/dist/vue3/components/resizable/composables/useResizableGroup.d.ts +25 -0
  27. package/dist/vue3/components/resizable/composables/useResizableGroup.d.ts.map +1 -0
  28. package/dist/vue3/components/resizable/composables/useResizableKeyboard.d.ts +41 -0
  29. package/dist/vue3/components/resizable/composables/useResizableKeyboard.d.ts.map +1 -0
  30. package/dist/vue3/components/resizable/composables/useResizableOffset.d.ts +15 -0
  31. package/dist/vue3/components/resizable/composables/useResizableOffset.d.ts.map +1 -0
  32. package/dist/vue3/components/resizable/composables/useResizablePanelControls.d.ts +46 -0
  33. package/dist/vue3/components/resizable/composables/useResizablePanelControls.d.ts.map +1 -0
  34. package/dist/vue3/components/resizable/composables/useResizablePanelState.d.ts +9 -0
  35. package/dist/vue3/components/resizable/composables/useResizablePanelState.d.ts.map +1 -0
  36. package/dist/vue3/components/resizable/composables/useResizableStorage.d.ts +12 -0
  37. package/dist/vue3/components/resizable/composables/useResizableStorage.d.ts.map +1 -0
  38. package/dist/vue3/components/resizable/index.d.ts +6 -0
  39. package/dist/vue3/components/resizable/index.d.ts.map +1 -0
  40. package/dist/vue3/components/resizable/resizable.vue.d.ts +69 -0
  41. package/dist/vue3/components/resizable/resizable.vue.d.ts.map +1 -0
  42. package/dist/vue3/components/resizable/resizable_constants.d.ts +103 -0
  43. package/dist/vue3/components/resizable/resizable_constants.d.ts.map +1 -0
  44. package/dist/vue3/components/resizable/resizable_handle.vue.d.ts +22 -0
  45. package/dist/vue3/components/resizable/resizable_handle.vue.d.ts.map +1 -0
  46. package/dist/vue3/components/resizable/resizable_panel.vue.d.ts +44 -0
  47. package/dist/vue3/components/resizable/resizable_panel.vue.d.ts.map +1 -0
  48. package/dist/vue3/components/resizable/resizable_utils.d.ts +15 -0
  49. package/dist/vue3/components/resizable/resizable_utils.d.ts.map +1 -0
  50. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.d.ts +2 -0
  51. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  52. package/dist/vue3/components/scroller/scroller.vue.d.ts +6 -8
  53. package/dist/vue3/components/scroller/scroller.vue.d.ts.map +1 -1
  54. package/dist/vue3/components/split_button/split_button.vue.d.ts +4 -4
  55. package/dist/vue3/dialtone-vue.cjs +1 -1
  56. package/dist/vue3/dialtone-vue.js +56 -52
  57. package/dist/vue3/index.d.ts +1 -0
  58. package/dist/vue3/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  59. package/dist/vue3/lib/attachment-carousel/attachment-carousel.js +1 -1
  60. package/dist/vue3/lib/attachment-carousel/index.cjs +1 -1
  61. package/dist/vue3/lib/attachment-carousel/index.js +1 -1
  62. package/dist/vue3/lib/editor/editor.cjs +1 -1
  63. package/dist/vue3/lib/editor/editor.cjs.map +1 -1
  64. package/dist/vue3/lib/editor/editor.js +1 -2
  65. package/dist/vue3/lib/editor/editor.js.map +1 -1
  66. package/dist/vue3/lib/editor/index.cjs +1 -1
  67. package/dist/vue3/lib/editor/index.js +0 -1
  68. package/dist/vue3/lib/message-input/index.cjs +1 -1
  69. package/dist/vue3/lib/message-input/index.js +1 -2
  70. package/dist/vue3/lib/message-input/message-input.cjs +1 -1
  71. package/dist/vue3/lib/message-input/message-input.js +1 -2
  72. package/dist/vue3/lib/resizable/index.cjs +1 -0
  73. package/dist/vue3/lib/resizable/index.js +5 -0
  74. package/dist/vue3/lib/resizable/resizable-handle.cjs +1 -0
  75. package/dist/vue3/lib/resizable/resizable-handle.js +2 -0
  76. package/dist/vue3/lib/resizable/resizable-panel.cjs +2 -0
  77. package/dist/vue3/lib/resizable/resizable-panel.cjs.map +1 -0
  78. package/dist/vue3/lib/resizable/resizable-panel.js +132 -0
  79. package/dist/vue3/lib/resizable/resizable-panel.js.map +1 -0
  80. package/dist/vue3/lib/resizable/resizable.cjs +1 -0
  81. package/dist/vue3/lib/resizable/resizable.js +2 -0
  82. package/dist/vue3/lib/rich-text-editor/index.cjs +1 -1
  83. package/dist/vue3/lib/rich-text-editor/index.js +1 -2
  84. package/dist/vue3/lib/rich-text-editor/markdownRenderer.cjs +1 -1
  85. package/dist/vue3/lib/rich-text-editor/markdownRenderer.js +1 -1
  86. package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  87. package/dist/vue3/lib/rich-text-editor/rich-text-editor.js +1 -2
  88. package/dist/vue3/lib/scroller/index.cjs +1 -1
  89. package/dist/vue3/lib/scroller/index.js +1 -1
  90. package/dist/vue3/lib/scroller/scroller.cjs +1 -1
  91. package/dist/vue3/lib/scroller/scroller.js +1 -1
  92. package/dist/vue3/lib/toast/index.cjs +1 -1
  93. package/dist/vue3/lib/toast/index.js +1 -1
  94. package/dist/vue3/lib/toast/toast.cjs +1 -1
  95. package/dist/vue3/lib/toast/toast.js +1 -1
  96. package/dist/vue3/{markdownRenderer-PRpHJ151.cjs → markdownRenderer-DCgGQseq.cjs} +1 -1
  97. package/dist/vue3/{markdownRenderer-PRpHJ151.cjs.map → markdownRenderer-DCgGQseq.cjs.map} +1 -1
  98. package/dist/vue3/{markdownRenderer-D14GhUiu.js → markdownRenderer-D_P94RyM.js} +1 -1
  99. package/dist/vue3/{markdownRenderer-D14GhUiu.js.map → markdownRenderer-D_P94RyM.js.map} +1 -1
  100. package/dist/vue3/{message_input-Bs-fg95i.cjs → message_input-AWgvtwMV.cjs} +2 -2
  101. package/dist/vue3/{message_input-Bs-fg95i.cjs.map → message_input-AWgvtwMV.cjs.map} +1 -1
  102. package/dist/vue3/{message_input-DfcdjT6O.js → message_input-CHlTsBGK.js} +2 -2
  103. package/dist/vue3/{message_input-DfcdjT6O.js.map → message_input-CHlTsBGK.js.map} +1 -1
  104. package/dist/vue3/node_modules/@tiptap/vue-3.cjs.map +1 -1
  105. package/dist/vue3/node_modules/@tiptap/vue-3.js +1 -1
  106. package/dist/vue3/node_modules/@tiptap/vue-3.js.map +1 -1
  107. package/dist/vue3/recipes/conversation_view/editor/editor.vue.d.ts +2 -0
  108. package/dist/vue3/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  109. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.d.ts +2 -0
  110. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  111. package/dist/vue3/resizable-D4-peBOl.js +960 -0
  112. package/dist/vue3/resizable-D4-peBOl.js.map +1 -0
  113. package/dist/vue3/resizable-aOVGO_Os.cjs +2 -0
  114. package/dist/vue3/resizable-aOVGO_Os.cjs.map +1 -0
  115. package/dist/vue3/resizable_handle-BlKBiWnx.js +307 -0
  116. package/dist/vue3/resizable_handle-BlKBiWnx.js.map +1 -0
  117. package/dist/vue3/resizable_handle-RIKS8frB.cjs +2 -0
  118. package/dist/vue3/resizable_handle-RIKS8frB.cjs.map +1 -0
  119. package/dist/vue3/resizable_utils-BComtrMV.js +131 -0
  120. package/dist/vue3/resizable_utils-BComtrMV.js.map +1 -0
  121. package/dist/vue3/resizable_utils-DhuzXRdP.cjs +2 -0
  122. package/dist/vue3/resizable_utils-DhuzXRdP.cjs.map +1 -0
  123. package/dist/vue3/{rich_text_editor-Cu0E6GWr.js → rich_text_editor-Ba67C4Uk.js} +421 -454
  124. package/dist/vue3/rich_text_editor-Ba67C4Uk.js.map +1 -0
  125. package/dist/vue3/rich_text_editor-DMP5eTlf.cjs +10 -0
  126. package/dist/vue3/rich_text_editor-DMP5eTlf.cjs.map +1 -0
  127. package/dist/vue3/{scroller-axSKchCc.js → scroller-BGVDh3sq.js} +1 -1
  128. package/dist/vue3/{scroller-axSKchCc.js.map → scroller-BGVDh3sq.js.map} +1 -1
  129. package/dist/vue3/{scroller-CuYuo1vd.cjs → scroller-CjAsgjl9.cjs} +1 -1
  130. package/dist/vue3/{scroller-CuYuo1vd.cjs.map → scroller-CjAsgjl9.cjs.map} +1 -1
  131. package/dist/vue3/{toast-jpudprAC.js → toast-DvPN-bCi.js} +1 -1
  132. package/dist/vue3/{toast-jpudprAC.js.map → toast-DvPN-bCi.js.map} +1 -1
  133. package/dist/vue3/{toast-BZ8qQHML.cjs → toast-d8_zmgkL.cjs} +1 -1
  134. package/dist/vue3/{toast-BZ8qQHML.cjs.map → toast-d8_zmgkL.cjs.map} +1 -1
  135. package/dist/vue3/useResizableCalculations-BDITle3Q.cjs +2 -0
  136. package/dist/vue3/useResizableCalculations-BDITle3Q.cjs.map +1 -0
  137. package/dist/vue3/useResizableCalculations-DAajatT4.js +80 -0
  138. package/dist/vue3/useResizableCalculations-DAajatT4.js.map +1 -0
  139. package/package.json +3 -3
  140. package/dist/vue3/rich_text_editor-Cu0E6GWr.js.map +0 -1
  141. package/dist/vue3/rich_text_editor-D5_gdzNn.cjs +0 -10
  142. package/dist/vue3/rich_text_editor-D5_gdzNn.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","names":[],"sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n ref=\"editorRoot\"\n class=\"d-recipe-editor\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <template v-for=\"button in buttonGroup.buttonGroup\">\n <!-- Font Style Popover -->\n <editor-toolbar-popover-button\n v-if=\"button.buttonType === 'popover' && button.selector === 'fontStyle'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-font-style-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"fontStyleSearch\"\n root-class=\"d-p8 d-pb4 d-w216\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_FONT_STYLE_SEARCH_PLACEHOLDER')\"\n size=\"sm\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <ul\n v-bind=\"listProps\"\n >\n <dt-list-item\n v-for=\"fontStyle in filteredFontStyles\"\n :key=\"fontStyle.name\"\n :selected=\"isCurrentFontFamily(fontStyle.value)\"\n :style=\"{ fontFamily: fontStyle.value || 'inherit' }\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close(focusEditor);\n onFontStyleSelect(fontStyle.value)\n \"\n >\n {{ fontStyle.name }}\n </dt-list-item>\n </ul>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Font Size Dropdown -->\n <editor-toolbar-dropdown-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'fontSize'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :dropdown-data-qa=\"'dt-recipe-editor-font-size-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #list=\"{ close }\">\n <dt-list-item\n v-for=\"fontSize in fontSizes\"\n :key=\"fontSize.name\"\n :selected=\"isCurrentFontSize(fontSize.value)\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close(focusEditor);\n onFontSizeSelect(fontSize.value, $event)\n \"\n >\n <span :style=\"{ fontSize: fontSize.value }\">{{ fontSize.name }}</span>\n </dt-list-item>\n </template>\n </editor-toolbar-dropdown-button>\n\n <!-- Font Color Button -->\n <dt-button\n v-else-if=\"button.buttonType === 'custom' && button.selector === 'fontColor'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n v-dt-tooltip=\"{\n message: button.tooltipMessage,\n placement: 'top',\n externalAnchorElement: $refs[getButtonRef(buttonGroup.key, button.selector)]?.$el, \n }\"\n kind=\"muted\"\n importance=\"clear\"\n size=\"xs\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n :style=\"!isDefaultFontColor ? { color: currentFontColor } : {}\"\n />\n <dt-input\n :value=\"currentFontColor\"\n root-class=\"d-w0 d-h0 d-of-hidden\"\n input-class=\"colorPickerInput d-w0 d-h0 d-p0 d-bar0\"\n input-wrapper-class=\"d-w0 d-h0 d-ba-none\"\n size=\"sm\"\n type=\"color\"\n @input=\"onColorPickerInput\"\n @click.stop\n />\n </template>\n </dt-button>\n\n <!-- Variable Popover -->\n <editor-toolbar-popover-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'variable'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"false\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-variable-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"variableSearchValue\"\n root-class=\"d-p8 d-pb4 d-w264\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_VARIABLE_POPOVER_SEARCH_PLACEHOLDER')\"\n size=\"md\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <div v-bind=\"listProps\">\n <dt-list-item-group\n v-for=\"(category, index) in filteredCategories\"\n :key=\"category.name\"\n :heading=\"category.name\"\n heading-class=\"d-headline--sm-compact d-p8\"\n >\n <dt-list-item\n v-for=\"item in getFilteredItemsForCategory(category)\"\n :key=\"category.name + item.name\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n insertVariable(category.name, item);\n close(focusEditor);\n \"\n >\n {{ item.name }}\n </dt-list-item>\n <dt-dropdown-separator\n v-if=\"index < filteredCategories.length - 1\"\n />\n </dt-list-item-group>\n </div>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Regular Toolbar Button -->\n <editor-toolbar-button\n v-else-if=\"button.buttonType === 'button'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n :label=\"button.label\"\n :on-click=\"button.onClick\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n />\n </template>\n <div class=\"d-recipe-editor__button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open=\"showLinkInput\"\n :show-close-button=\"false\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-content\">\n <span>\n {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\n :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\n </dt-button>\n </dt-stack>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n :style=\"{ 'max-height': maxHeight }\"\n :class=\"['d-recipe-editor__content', { 'd-recipe-editor__content-image-resize': allowImageResize }]\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :allow-variable=\"true\"\n :allow-font-size=\"showFontSizeButton\"\n :allow-background-color=\"allowBackgroundColor\"\n :allow-line-height=\"allowLineHeight\"\n :variable-items=\"flattenedVariableItems\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :preserve-whitespace=\"preserveWhitespace\"\n :use-div-tags=\"useDivTags\"\n :allow-tables=\"allowTables\"\n :allow-image-resize=\"allowImageResize\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n @selected=\"onSelected\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n EDITOR_DEFAULT_FONT_COLOR,\n} from './editor_constants.js';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtListItem } from '@/components/list_item';\nimport { DtCombobox } from '@/components/combobox';\n\nimport { DtDropdownSeparator } from '@/components/dropdown/index.js';\nimport { DtListItemGroup } from '@/components/list_item_group/index.js';\nimport EditorToolbarButton from './EditorToolbarButton.vue';\nimport EditorToolbarDropdownButton from './EditorToolbarDropdownButton.vue';\nimport EditorToolbarPopoverButton from './EditorToolbarPopoverButton.vue';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n DtIconType,\n DtIconBraces,\n DtIconSearch,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtListItemGroup,\n DtDropdownSeparator,\n DtListItem,\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtCombobox,\n EditorToolbarButton,\n EditorToolbarDropdownButton,\n EditorToolbarPopoverButton,\n DtIconQuickReply,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n DtIconImage,\n DtIconSearch,\n DtIconType,\n DtIconBraces,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show button to add a variable\n */\n showVariableButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Variable categories to display when variable button is clicked\n */\n variableCategories: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Show font style button.\n */\n showFontStyleButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font size button.\n */\n showFontSizeButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font color button.\n */\n showFontColorButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Available font styles for the font style dropdown.\n */\n fontStyles: {\n type: Array,\n default: () => [\n { name: 'Arial', value: null }, // arial is the default font\n { name: 'Georgia', value: 'Georgia' },\n { name: 'Helvetica', value: 'Helvetica' },\n { name: 'Verdana', value: 'Verdana'},\n { name: 'Times New Roman', value: 'Times New Roman' },\n ],\n },\n\n fontSizes : {\n type: Array,\n default: () => [\n { name: 'Small', value: '12px'},\n { name: 'Normal', value: '15px'},\n { name: 'Large', value: '24px'},\n { name: 'Huge', value: '36px'},\n ],\n },\n\n /**\n * Whether the input allows background color to be introduced in the text.\n */\n allowBackgroundColor: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the input allows line height to be introduced in the text.\n */\n allowLineHeight: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls how whitespace is handled when parsing HTML content.\n * - 'full': All whitespace is preserved\n * - true: Whitespace in inline content is preserved, whitespace-only nodes between blocks are removed\n * - false: Standard HTML whitespace collapsing\n * @values full, true, false\n */\n preserveWhitespace: {\n type: [Boolean, String],\n default: 'full',\n },\n\n /**\n * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow Tables to be used in to the editor\n */\n allowTables: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow image resizing\n */\n allowImageResize: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n * @event input\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text input is changed\n * @event text-input\n * @type {String}\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n currentFontColor: undefined,\n showLinkInput: false,\n fontStyleSearch: '',\n linkInput: '',\n currentButtonRefIndex: 0,\n variableSearchValue: '',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n flattenedVariableItems () {\n if (!this.variableCategories) return [];\n return this.variableCategories.reduce((acc, category) => {\n return acc.concat(category.items || []);\n }, []);\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n {\n showBtn: this.showQuickRepliesButton,\n buttonType: 'button',\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showFontStyleButton,\n buttonType: 'popover',\n selector: 'fontStyle',\n icon: DtIconType,\n dataQA: 'dt-recipe-editor-font-style-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_STYLE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontSizeButton,\n buttonType: 'popover',\n selector: 'fontSize',\n icon: DtIconFontSize,\n dataQA: 'dt-recipe-editor-font-size-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_SIZE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontColorButton,\n buttonType: 'custom',\n selector: 'fontColor',\n icon: DtIconStopFilled,\n dataQA: 'dt-recipe-editor-font-color-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_COLOR_BUTTON_LABEL'),\n onClick: this.onColorPickerButtonClick,\n },\n {\n showBtn: this.showBoldButton,\n buttonType: 'button',\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n buttonType: 'button',\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n buttonType: 'button',\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n buttonType: 'button',\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n buttonType: 'button',\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n buttonType: 'button',\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n buttonType: 'button',\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n buttonType: 'button',\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n buttonType: 'button',\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n buttonType: 'button',\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n buttonType: 'button',\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n buttonType: 'button',\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n buttonType: 'button',\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n // Handle getting image\n onClick: this.onInsertInlineImageClick,\n },\n {\n showBtn: this.showVariableButton,\n buttonType: 'popover',\n selector: 'variable',\n icon: DtIconBraces,\n dataQA: 'dt-recipe-editor-variable-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_VARIABLE_BUTTON_LABEL'),\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n buttonType: 'custom',\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n\n filteredFontStyles () {\n const searchValue = this.fontStyleSearch.toLowerCase();\n return this.fontStyles.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n filteredCategories() {\n return this.variableCategories.filter(\n (category) => this.getFilteredItemsForCategory(category).length,\n );\n },\n\n colorPickerInput() {\n return this.$refs.editorRoot?.querySelector('.colorPickerInput');\n },\n\n isDefaultFontColor() {\n return this.currentFontColor === EDITOR_DEFAULT_FONT_COLOR;\n },\n\n actionBarBtn () {\n const ref = this.$refs[this.orderedRefs[this.currentButtonRefIndex]][0]?.$refs?.buttonRef // get nested ref\n || this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n return Array.isArray(ref) ? ref[0] : ref;\n },\n\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n focusEditor () {\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertVariable (categoryName, variableData) {\n // Insert a variable using the custom command from the Variable extension\n this.$refs.richTextEditor?.editor.chain().focus().insertVariable({\n id: variableData.id,\n placeholder: variableData.placeholder || '',\n altText: '',\n enableAltText: variableData.enableAltText,\n }).run();\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\n },\n\n insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n onTextInput (input) {\n this.$emit('text-input', input);\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n this.$emit('update:modelValue', event);\n },\n\n onSelected() {\n this.updateFontColorInput();\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousActionBarBtn = this.actionBarBtn;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentActionBarBtn = this.actionBarBtn;\n\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n\n onFontStyleSelect (fontFamily) {\n if (fontFamily) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontFamily(fontFamily).run();\n } else {\n this.$refs.richTextEditor?.editor?.chain().focus().unsetFontFamily().run();\n }\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontFamily (fontFamily) {\n if (!fontFamily) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontFamily;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontFamily });\n },\n\n onFontSizeSelect (fontSize) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontSize(fontSize).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontSize (fontSize) {\n if (!fontSize) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontSize;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontSize });\n },\n\n getFilteredItemsForCategory(category) {\n const searchValue = this.variableSearchValue.toLowerCase();\n if (category.name.toLowerCase().includes(searchValue)) {\n return category.items;\n }\n return category.items.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n updateFontColorInput() {\n this.currentFontColor = this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.color || EDITOR_DEFAULT_FONT_COLOR;\n },\n\n onColorPickerButtonClick () {\n this.colorPickerInput?.click();\n },\n\n onColorPickerInput (fontColor) {\n this.$refs.richTextEditor?.editor?.chain().focus().setColor(fontColor).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n this.updateFontColorInput();\n },\n },\n};\n</script>\n\n<style>\n/* Image resizing classes - only active when allowImageResize is true */\n\n/* Image border */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-wrapper] {\n outline: 1px solid var(--dt-color-chart-info-selected);\n line-height: 0 !important;\n}\n\n/* Corner handles */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle] {\n position: absolute;\n background: var(--dt-color-chart-info-selected);\n z-index: 10;\n}\n\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n width: 8px;\n height: 8px;\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'] {\n cursor: nwse-resize;\n transform: translate(-50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'] {\n cursor: nesw-resize;\n transform: translate(50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'] {\n cursor: nesw-resize;\n transform: translate(-50%, 50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n cursor: nwse-resize;\n transform: translate(50%, 50%);\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"editor.js","names":[],"sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n ref=\"editorRoot\"\n class=\"d-recipe-editor\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <template v-for=\"button in buttonGroup.buttonGroup\">\n <!-- Font Style Popover -->\n <editor-toolbar-popover-button\n v-if=\"button.buttonType === 'popover' && button.selector === 'fontStyle'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-font-style-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"fontStyleSearch\"\n root-class=\"d-p8 d-pb4 d-w216\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_FONT_STYLE_SEARCH_PLACEHOLDER')\"\n size=\"sm\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <ul\n v-bind=\"listProps\"\n >\n <dt-list-item\n v-for=\"fontStyle in filteredFontStyles\"\n :key=\"fontStyle.name\"\n :selected=\"isCurrentFontFamily(fontStyle.value)\"\n :style=\"{ fontFamily: fontStyle.value || 'inherit' }\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close(focusEditor);\n onFontStyleSelect(fontStyle.value)\n \"\n >\n {{ fontStyle.name }}\n </dt-list-item>\n </ul>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Font Size Dropdown -->\n <editor-toolbar-dropdown-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'fontSize'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :dropdown-data-qa=\"'dt-recipe-editor-font-size-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #list=\"{ close }\">\n <dt-list-item\n v-for=\"fontSize in fontSizes\"\n :key=\"fontSize.name\"\n :selected=\"isCurrentFontSize(fontSize.value)\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close(focusEditor);\n onFontSizeSelect(fontSize.value, $event)\n \"\n >\n <span :style=\"{ fontSize: fontSize.value }\">{{ fontSize.name }}</span>\n </dt-list-item>\n </template>\n </editor-toolbar-dropdown-button>\n\n <!-- Font Color Button -->\n <dt-button\n v-else-if=\"button.buttonType === 'custom' && button.selector === 'fontColor'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n v-dt-tooltip=\"{\n message: button.tooltipMessage,\n placement: 'top',\n externalAnchorElement: $refs[getButtonRef(buttonGroup.key, button.selector)]?.$el, \n }\"\n kind=\"muted\"\n importance=\"clear\"\n size=\"xs\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n :style=\"!isDefaultFontColor ? { color: currentFontColor } : {}\"\n />\n <dt-input\n :value=\"currentFontColor\"\n root-class=\"d-w0 d-h0 d-of-hidden\"\n input-class=\"colorPickerInput d-w0 d-h0 d-p0 d-bar0\"\n input-wrapper-class=\"d-w0 d-h0 d-ba-none\"\n size=\"sm\"\n type=\"color\"\n @input=\"onColorPickerInput\"\n @click.stop\n />\n </template>\n </dt-button>\n\n <!-- Variable Popover -->\n <editor-toolbar-popover-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'variable'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"false\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-variable-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"variableSearchValue\"\n root-class=\"d-p8 d-pb4 d-w264\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_VARIABLE_POPOVER_SEARCH_PLACEHOLDER')\"\n size=\"md\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <div v-bind=\"listProps\">\n <dt-list-item-group\n v-for=\"(category, index) in filteredCategories\"\n :key=\"category.name\"\n :heading=\"category.name\"\n heading-class=\"d-headline--sm-compact d-p8\"\n >\n <dt-list-item\n v-for=\"item in getFilteredItemsForCategory(category)\"\n :key=\"category.name + item.name\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n insertVariable(category.name, item);\n close(focusEditor);\n \"\n >\n {{ item.name }}\n </dt-list-item>\n <dt-dropdown-separator\n v-if=\"index < filteredCategories.length - 1\"\n />\n </dt-list-item-group>\n </div>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Regular Toolbar Button -->\n <editor-toolbar-button\n v-else-if=\"button.buttonType === 'button'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n :label=\"button.label\"\n :on-click=\"button.onClick\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n />\n </template>\n <div class=\"d-recipe-editor__button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open=\"showLinkInput\"\n :show-close-button=\"false\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-content\">\n <span>\n {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\n :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\n </dt-button>\n </dt-stack>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n :style=\"{ 'max-height': maxHeight }\"\n :class=\"['d-recipe-editor__content', { 'd-recipe-editor__content-image-resize': allowImageResize }]\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :allow-variable=\"true\"\n :allow-font-size=\"showFontSizeButton\"\n :allow-background-color=\"allowBackgroundColor\"\n :allow-line-height=\"allowLineHeight\"\n :variable-items=\"flattenedVariableItems\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :preserve-whitespace=\"preserveWhitespace\"\n :use-div-tags=\"useDivTags\"\n :allow-tables=\"allowTables\"\n :allow-image-resize=\"allowImageResize\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n @selected=\"onSelected\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n EDITOR_DEFAULT_FONT_COLOR,\n} from './editor_constants.js';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtListItem } from '@/components/list_item';\nimport { DtCombobox } from '@/components/combobox';\n\nimport { DtDropdownSeparator } from '@/components/dropdown/index.js';\nimport { DtListItemGroup } from '@/components/list_item_group/index.js';\nimport EditorToolbarButton from './EditorToolbarButton.vue';\nimport EditorToolbarDropdownButton from './EditorToolbarDropdownButton.vue';\nimport EditorToolbarPopoverButton from './EditorToolbarPopoverButton.vue';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n DtIconType,\n DtIconBraces,\n DtIconSearch,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtListItemGroup,\n DtDropdownSeparator,\n DtListItem,\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtCombobox,\n EditorToolbarButton,\n EditorToolbarDropdownButton,\n EditorToolbarPopoverButton,\n DtIconQuickReply,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n DtIconImage,\n DtIconSearch,\n DtIconType,\n DtIconBraces,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n },\n\n mixins: [],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show button to add a variable\n */\n showVariableButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Variable categories to display when variable button is clicked\n */\n variableCategories: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Show font style button.\n */\n showFontStyleButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font size button.\n */\n showFontSizeButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font color button.\n */\n showFontColorButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Available font styles for the font style dropdown.\n */\n fontStyles: {\n type: Array,\n default: () => [\n { name: 'Arial', value: null }, // arial is the default font\n { name: 'Georgia', value: 'Georgia' },\n { name: 'Helvetica', value: 'Helvetica' },\n { name: 'Verdana', value: 'Verdana'},\n { name: 'Times New Roman', value: 'Times New Roman' },\n ],\n },\n\n fontSizes : {\n type: Array,\n default: () => [\n { name: 'Small', value: '12px'},\n { name: 'Normal', value: '15px'},\n { name: 'Large', value: '24px'},\n { name: 'Huge', value: '36px'},\n ],\n },\n\n /**\n * Whether the input allows background color to be introduced in the text.\n */\n allowBackgroundColor: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the input allows line height to be introduced in the text.\n */\n allowLineHeight: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls how whitespace is handled when parsing HTML content.\n * - 'full': All whitespace is preserved\n * - true: Whitespace in inline content is preserved, whitespace-only nodes between blocks are removed\n * - false: Standard HTML whitespace collapsing\n * @values full, true, false\n */\n preserveWhitespace: {\n type: [Boolean, String],\n default: 'full',\n },\n\n /**\n * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow Tables to be used in to the editor\n */\n allowTables: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow image resizing\n */\n allowImageResize: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n * @event input\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text input is changed\n * @event text-input\n * @type {String}\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n currentFontColor: undefined,\n showLinkInput: false,\n fontStyleSearch: '',\n linkInput: '',\n currentButtonRefIndex: 0,\n variableSearchValue: '',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n flattenedVariableItems () {\n if (!this.variableCategories) return [];\n return this.variableCategories.reduce((acc, category) => {\n return acc.concat(category.items || []);\n }, []);\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n {\n showBtn: this.showQuickRepliesButton,\n buttonType: 'button',\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showFontStyleButton,\n buttonType: 'popover',\n selector: 'fontStyle',\n icon: DtIconType,\n dataQA: 'dt-recipe-editor-font-style-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_STYLE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontSizeButton,\n buttonType: 'popover',\n selector: 'fontSize',\n icon: DtIconFontSize,\n dataQA: 'dt-recipe-editor-font-size-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_SIZE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontColorButton,\n buttonType: 'custom',\n selector: 'fontColor',\n icon: DtIconStopFilled,\n dataQA: 'dt-recipe-editor-font-color-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_COLOR_BUTTON_LABEL'),\n onClick: this.onColorPickerButtonClick,\n },\n {\n showBtn: this.showBoldButton,\n buttonType: 'button',\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n buttonType: 'button',\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n buttonType: 'button',\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n buttonType: 'button',\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n buttonType: 'button',\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n buttonType: 'button',\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n buttonType: 'button',\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n buttonType: 'button',\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n buttonType: 'button',\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n buttonType: 'button',\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n buttonType: 'button',\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n buttonType: 'button',\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n buttonType: 'button',\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n // Handle getting image\n onClick: this.onInsertInlineImageClick,\n },\n {\n showBtn: this.showVariableButton,\n buttonType: 'popover',\n selector: 'variable',\n icon: DtIconBraces,\n dataQA: 'dt-recipe-editor-variable-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_VARIABLE_BUTTON_LABEL'),\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n buttonType: 'custom',\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n\n filteredFontStyles () {\n const searchValue = this.fontStyleSearch.toLowerCase();\n return this.fontStyles.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n filteredCategories() {\n return this.variableCategories.filter(\n (category) => this.getFilteredItemsForCategory(category).length,\n );\n },\n\n colorPickerInput() {\n return this.$refs.editorRoot?.querySelector('.colorPickerInput');\n },\n\n isDefaultFontColor() {\n return this.currentFontColor === EDITOR_DEFAULT_FONT_COLOR;\n },\n\n actionBarBtn () {\n const ref = this.$refs[this.orderedRefs[this.currentButtonRefIndex]][0]?.$refs?.buttonRef // get nested ref\n || this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n return Array.isArray(ref) ? ref[0] : ref;\n },\n\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n focusEditor () {\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertVariable (categoryName, variableData) {\n // Insert a variable using the custom command from the Variable extension\n this.$refs.richTextEditor?.editor.chain().focus().insertVariable({\n id: variableData.id,\n placeholder: variableData.placeholder || '',\n altText: '',\n enableAltText: variableData.enableAltText,\n }).run();\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\n },\n\n insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n onTextInput (input) {\n this.$emit('text-input', input);\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n this.$emit('update:modelValue', event);\n },\n\n onSelected() {\n this.updateFontColorInput();\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousActionBarBtn = this.actionBarBtn;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentActionBarBtn = this.actionBarBtn;\n\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n\n onFontStyleSelect (fontFamily) {\n if (fontFamily) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontFamily(fontFamily).run();\n } else {\n this.$refs.richTextEditor?.editor?.chain().focus().unsetFontFamily().run();\n }\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontFamily (fontFamily) {\n if (!fontFamily) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontFamily;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontFamily });\n },\n\n onFontSizeSelect (fontSize) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontSize(fontSize).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontSize (fontSize) {\n if (!fontSize) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontSize;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontSize });\n },\n\n getFilteredItemsForCategory(category) {\n const searchValue = this.variableSearchValue.toLowerCase();\n if (category.name.toLowerCase().includes(searchValue)) {\n return category.items;\n }\n return category.items.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n updateFontColorInput() {\n this.currentFontColor = this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.color || EDITOR_DEFAULT_FONT_COLOR;\n },\n\n onColorPickerButtonClick () {\n this.colorPickerInput?.click();\n },\n\n onColorPickerInput (fontColor) {\n this.$refs.richTextEditor?.editor?.chain().focus().setColor(fontColor).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n this.updateFontColorInput();\n },\n },\n};\n</script>\n\n<style>\n/* Image resizing classes - only active when allowImageResize is true */\n\n/* Image border */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-wrapper] {\n outline: 1px solid var(--dt-color-chart-info-selected);\n line-height: 0 !important;\n}\n\n/* Corner handles */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle] {\n position: absolute;\n background: var(--dt-color-chart-info-selected);\n z-index: 10;\n}\n\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n width: 8px;\n height: 8px;\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'] {\n cursor: nwse-resize;\n transform: translate(-50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'] {\n cursor: nesw-resize;\n transform: translate(50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'] {\n cursor: nesw-resize;\n transform: translate(-50%, 50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n cursor: nwse-resize;\n transform: translate(50%, 50%);\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../markdownRenderer-PRpHJ151.cjs`);const e=require(`./editor.cjs`);exports.DtRecipeEditor=e.default;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./editor.cjs`);exports.DtRecipeEditor=e.default;
@@ -1,3 +1,2 @@
1
- import "../../markdownRenderer-D14GhUiu.js";
2
1
  import e from "./editor.js";
3
2
  export { e as DtRecipeEditor };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../markdownRenderer-PRpHJ151.cjs`);const e=require(`../../message_input-Bs-fg95i.cjs`);exports.DtRecipeMessageInput=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../message_input-AWgvtwMV.cjs`);exports.DtRecipeMessageInput=e.t;
@@ -1,3 +1,2 @@
1
- import "../../markdownRenderer-D14GhUiu.js";
2
- import { t as e } from "../../message_input-DfcdjT6O.js";
1
+ import { t as e } from "../../message_input-CHlTsBGK.js";
3
2
  export { e as DtRecipeMessageInput };
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../markdownRenderer-PRpHJ151.cjs`);const e=require(`../../message_input-Bs-fg95i.cjs`);exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../message_input-AWgvtwMV.cjs`);exports.default=e.t;
@@ -1,3 +1,2 @@
1
- import "../../markdownRenderer-D14GhUiu.js";
2
- import { t as e } from "../../message_input-DfcdjT6O.js";
1
+ import { t as e } from "../../message_input-CHlTsBGK.js";
3
2
  export { e as default };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../resizable_utils-DhuzXRdP.cjs`),t=require(`../../resizable-aOVGO_Os.cjs`),n=require(`../../resizable_handle-RIKS8frB.cjs`),r=require(`./resizable-panel.cjs`);exports.DEFAULT_PANEL_SIZE=e.l,exports.DtResizable=t.t,exports.DtResizableHandle=n.t,exports.DtResizablePanel=r.default,exports.MIN_PANEL_SIZE_PX=e.u,exports.RESIZABLE_CONTEXT_KEY=e.d,exports.buildHandleId=e.f,exports.hasPercentageMinSize=e.t,exports.invalidateTokenCache=e.n,exports.isCSSValue=e.r,exports.isPercentageValue=e.i,exports.isValidSizing=e.a,exports.parseSizeToPixels=e.o,exports.pixelsToPercentage=e.s,exports.validateContainerSize=e.c;
@@ -0,0 +1,5 @@
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "../../resizable_utils-BComtrMV.js";
2
+ import { t as f } from "../../resizable-D4-peBOl.js";
3
+ import { t as p } from "../../resizable_handle-BlKBiWnx.js";
4
+ import m from "./resizable-panel.js";
5
+ export { a as DEFAULT_PANEL_SIZE, f as DtResizable, p as DtResizableHandle, m as DtResizablePanel, d as MIN_PANEL_SIZE_PX, n as RESIZABLE_CONTEXT_KEY, r as buildHandleId, u as hasPercentageMinSize, o as invalidateTokenCache, c as isCSSValue, i as isPercentageValue, e as isValidSizing, s as parseSizeToPixels, l as pixelsToPercentage, t as validateContainerSize };
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../resizable_handle-RIKS8frB.cjs`);exports.default=e.t;
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../resizable_handle-BlKBiWnx.js";
2
+ export { e as default };
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../resizable_utils-DhuzXRdP.cjs`);let t=require(`vue`);var n=[`id`,`data-panel-id`],r={__name:`resizable_panel`,props:{id:{type:String,required:!0},initialSize:{type:String,default:void 0},userMinSize:{type:String,default:void 0},userMaxSize:{type:String,default:void 0},systemMinSize:{type:String,default:void 0},systemMaxSize:{type:String,default:void 0},collapseSize:{type:String,default:void 0},resizable:{type:Boolean,default:!0},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:``}},setup(r){let i=r,a=[`initialSize`,`userMinSize`,`userMaxSize`,`systemMinSize`,`systemMaxSize`,`collapseSize`];(0,t.watch)(()=>a.map(e=>i[e]),t=>t.forEach((t,n)=>{t!==void 0&&!e.a(t)&&console.error(`[DtResizablePanel] Invalid ${a[n]}: "${t}".`)}),{immediate:!0});let o=(0,t.inject)(e.d,null),s=o?.layout??(0,t.computed)(()=>({panels:new Map,handles:[]})),c=o?.isResizing??(0,t.computed)(()=>!1),l=o?.offsetContentStyles??(0,t.computed)(()=>({})),u=o?.registerPanel??null,d=o?.unregisterPanel??null,f=(0,t.computed)(()=>({id:i.id,initialSize:i.initialSize,userMinSize:i.userMinSize,userMaxSize:i.userMaxSize,systemMinSize:i.systemMinSize,systemMaxSize:i.systemMaxSize,collapseSize:i.collapseSize,resizable:i.resizable??!0,collapsible:i.collapsible??!1,collapsed:i.collapsed??!1}));(0,t.onMounted)(()=>{u&&u(f.value)}),(0,t.onUnmounted)(()=>{d&&d(i.id)}),(0,t.watch)(f,()=>{u&&u(f.value)},{deep:!0});let p=o?.collapsePanel??null,m=o?.isInitializing??(0,t.computed)(()=>!1);(0,t.watch)(()=>i.collapsed,e=>{m.value||p&&e!==void 0&&p(i.id,e)},{immediate:!0});let h=o?.panelMap??(0,t.computed)(()=>new Map),g=(0,t.computed)(()=>h.value.get(i.id)),_=(0,t.computed)(()=>{let e=s.value.panels.get(i.id);return e?e.collapsed?{insetInlineStart:`${e.left}px`,inlineSize:`0px`,overflow:`hidden`,pointerEvents:`none`}:{insetInlineStart:`${e.left}px`,insetInlineEnd:`${e.right}px`}:{insetInlineStart:`0px`,inlineSize:`0px`,pointerEvents:`none`}});return(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{id:`dt-resizable-panel-${i.id}`,class:(0,t.normalizeClass)([`d-resizable-panel`,[i.class,{"d-resizable-panel--collapsed":g.value&&g.value.collapsed===!0,"d-resizable-panel--fixed":g.value&&g.value.resizable===!1}]]),style:(0,t.normalizeStyle)(_.value),"data-panel-id":i.id,"data-qa":`d-resizable-panel`},[(0,t.createElementVNode)(`div`,{class:`d-resizable-panel__content`,style:(0,t.normalizeStyle)((0,t.unref)(l))},[(0,t.renderSlot)(e.$slots,`default`,{panel:g.value,isCollapsed:g.value?.collapsed,isResizing:(0,t.unref)(c)})],4)],14,n))}};exports.default=r;
2
+ //# sourceMappingURL=resizable-panel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable-panel.cjs","names":[],"sources":["../../../components/resizable/resizable_panel.vue"],"sourcesContent":["<template>\n <div\n :id=\"`dt-resizable-panel-${props.id}`\"\n class=\"d-resizable-panel\"\n :class=\"[\n props.class,\n {\n 'd-resizable-panel--collapsed': panel && panel.collapsed === true,\n 'd-resizable-panel--fixed': panel && panel.resizable === false,\n },\n ]\"\n :style=\"panelStyles\"\n :data-panel-id=\"props.id\"\n data-qa=\"d-resizable-panel\"\n >\n <div\n class=\"d-resizable-panel__content\"\n :style=\"offsetContentStyles\"\n >\n <!-- @slot Panel content. Provides panel state and collapsed/resizing flags. -->\n <slot\n :panel=\"panel\"\n :is-collapsed=\"panel?.collapsed\"\n :is-resizing=\"isResizing\"\n />\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, inject, onMounted, onUnmounted, watch } from 'vue';\nimport { RESIZABLE_CONTEXT_KEY } from './resizable_constants';\nimport { isValidSizing } from './resizable_utils';\n\nconst props = defineProps({\n /** Unique panel identifier. Must be unique within its DtResizable parent. */\n id: { type: String, required: true },\n /** Initial size as a percentage token (e.g., '25p' for 25%) or Dialtone size token. */\n initialSize: { type: String, default: undefined },\n /** Minimum size for user drag interactions (hard floor). */\n userMinSize: { type: String, default: undefined },\n /** Maximum size for user drag interactions (hard ceiling). */\n userMaxSize: { type: String, default: undefined },\n /** Minimum size for system viewport scaling. Falls back to userMinSize. */\n systemMinSize: { type: String, default: undefined },\n /** Maximum size for system viewport scaling. Falls back to userMaxSize. */\n systemMaxSize: { type: String, default: undefined },\n /** Container width threshold that triggers auto-collapse. */\n collapseSize: { type: String, default: undefined },\n /** Whether this panel can be resized by dragging. */\n resizable: { type: Boolean, default: true },\n /** Whether this panel can be collapsed to zero width. */\n collapsible: { type: Boolean, default: false },\n /** Initial collapsed state. */\n collapsed: { type: Boolean, default: false },\n /** Additional CSS classes applied to the panel element. */\n class: { type: [String, Object, Array], default: '' },\n});\n\nconst SIZE_PROPS = ['initialSize', 'userMinSize', 'userMaxSize', 'systemMinSize', 'systemMaxSize', 'collapseSize'];\nwatch(\n () => SIZE_PROPS.map(n => props[n]),\n vals => vals.forEach((v, i) => {\n if (v !== undefined && !isValidSizing(v)) {\n console.error(`[DtResizablePanel] Invalid ${SIZE_PROPS[i]}: \"${v}\".`);\n }\n }),\n { immediate: true },\n);\n\nconst ctx = inject(RESIZABLE_CONTEXT_KEY, null);\nconst layoutRef = ctx?.layout ?? computed(() => ({ panels: new Map(), handles: [] }));\nconst isResizing = ctx?.isResizing ?? computed(() => false);\nconst offsetContentStyles = ctx?.offsetContentStyles ?? computed(() => ({}));\n\nconst registerPanel = ctx?.registerPanel ?? null;\nconst unregisterPanel = ctx?.unregisterPanel ?? null;\n\nconst panelConfig = computed(() => ({\n id: props.id,\n initialSize: props.initialSize,\n userMinSize: props.userMinSize,\n userMaxSize: props.userMaxSize,\n systemMinSize: props.systemMinSize,\n systemMaxSize: props.systemMaxSize,\n collapseSize: props.collapseSize,\n resizable: props.resizable ?? true,\n collapsible: props.collapsible ?? false,\n collapsed: props.collapsed ?? false,\n}));\n\nonMounted(() => {\n if (registerPanel) {\n registerPanel(panelConfig.value);\n }\n});\n\nonUnmounted(() => {\n if (unregisterPanel) {\n unregisterPanel(props.id);\n }\n});\n\n// Re-register on config change (watch each config field explicitly)\nwatch(panelConfig, () => {\n if (registerPanel) registerPanel(panelConfig.value);\n}, { deep: true });\n\nconst collapsePanel = ctx?.collapsePanel ?? null;\nconst isInitializing = ctx?.isInitializing ?? computed(() => false);\n\nwatch(\n () => props.collapsed,\n newCollapsed => {\n if (isInitializing.value) return;\n if (collapsePanel && newCollapsed !== undefined) {\n collapsePanel(props.id, newCollapsed);\n }\n },\n { immediate: true },\n);\n\nconst panelMap = ctx?.panelMap ?? computed(() => new Map());\nconst panel = computed(() => panelMap.value.get(props.id));\n\nconst panelStyles = computed(() => {\n const position = layoutRef.value.panels.get(props.id);\n\n if (!position) {\n return { insetInlineStart: '0px', inlineSize: '0px', pointerEvents: 'none' };\n }\n\n if (position.collapsed) {\n return {\n insetInlineStart: `${position.left}px`,\n inlineSize: '0px',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n return {\n insetInlineStart: `${position.left}px`,\n insetInlineEnd: `${position.right}px`,\n };\n});\n</script>\n"],"mappings":"4sBAkCA,IAAM,EAAQ,EAyBR,EAAa,CAAC,cAAe,cAAe,cAAe,gBAAiB,gBAAiB,eAAe,EAClH,EAAA,EAAA,WACQ,EAAW,IAAI,GAAK,EAAM,GAAG,CACnC,GAAQ,EAAK,SAAS,EAAG,IAAM,CACzB,IAAM,IAAA,IAAa,CAAC,EAAA,EAAc,EAAE,EACtC,QAAQ,MAAM,8BAA8B,EAAW,GAAG,KAAK,EAAE,IAAI,EAEvE,CACF,CAAE,UAAW,GAAM,CACpB,CAED,IAAM,GAAA,EAAA,EAAA,QAAa,EAAA,EAAuB,KAAK,CACzC,EAAY,GAAK,SAAA,EAAA,EAAA,eAA0B,CAAE,OAAQ,IAAI,IAAO,QAAS,EAAE,CAAE,EAAE,CAC/E,EAAa,GAAK,aAAA,EAAA,EAAA,cAA6B,GAAM,CACrD,EAAsB,GAAK,sBAAA,EAAA,EAAA,eAAuC,EAAE,EAAE,CAEtE,EAAgB,GAAK,eAAiB,KACtC,EAAkB,GAAK,iBAAmB,KAE1C,GAAA,EAAA,EAAA,eAA8B,CAClC,GAAI,EAAM,GACV,YAAa,EAAM,YACnB,YAAa,EAAM,YACnB,YAAa,EAAM,YACnB,cAAe,EAAM,cACrB,cAAe,EAAM,cACrB,aAAc,EAAM,aACpB,UAAW,EAAM,WAAa,GAC9B,YAAa,EAAM,aAAe,GAClC,UAAW,EAAM,WAAa,GAC/B,EAAE,EAEH,EAAA,EAAA,eAAgB,CACV,GACF,EAAc,EAAY,MAAM,EAElC,EAEF,EAAA,EAAA,iBAAkB,CACZ,GACF,EAAgB,EAAM,GAAG,EAE3B,EAGF,EAAA,EAAA,OAAM,MAAmB,CACnB,GAAe,EAAc,EAAY,MAAM,EAClD,CAAE,KAAM,GAAM,CAAC,CAElB,IAAM,EAAgB,GAAK,eAAiB,KACtC,EAAiB,GAAK,iBAAA,EAAA,EAAA,cAAiC,GAAM,EAEnE,EAAA,EAAA,WACQ,EAAM,UACZ,GAAgB,CACV,EAAe,OACf,GAAiB,IAAiB,IAAA,IACpC,EAAc,EAAM,GAAI,EAAa,EAGzC,CAAE,UAAW,GAAM,CACpB,CAED,IAAM,EAAW,GAAK,WAAA,EAAA,EAAA,cAA2B,IAAI,IAAM,CACrD,GAAA,EAAA,EAAA,cAAuB,EAAS,MAAM,IAAI,EAAM,GAAG,CAAC,CAEpD,GAAA,EAAA,EAAA,cAA6B,CACjC,IAAM,EAAW,EAAU,MAAM,OAAO,IAAI,EAAM,GAAG,CAerD,OAbK,EAID,EAAS,UACJ,CACL,iBAAkB,GAAG,EAAS,KAAK,IACnC,WAAY,MACZ,SAAU,SACV,cAAe,OAChB,CAGI,CACL,iBAAkB,GAAG,EAAS,KAAK,IACnC,eAAgB,GAAG,EAAS,MAAM,IACnC,CAfQ,CAAE,iBAAkB,MAAO,WAAY,MAAO,cAAe,OAAQ,EAgB9E,0DAvHM,MAAA,CAxBH,GAAE,sBAAwB,EAAM,KACjC,OAAA,EAAA,EAAA,gBAAK,CAAC,oBAAmB,CACT,EAAM,MAAA,gCAAuD,EAAA,OAAS,EAAA,MAAM,YAAS,8BAA+C,EAAA,OAAS,EAAA,MAAM,YAAS,OAO3K,OAAA,EAAA,EAAA,gBAAO,EAAA,MAAW,CAClB,gBAAe,EAAM,GACtB,UAAQ,+CAYF,MAAA,CATJ,MAAM,6BACL,OAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,OAAO,EAAmB,CAAA,oBAOzB,EAAA,OAAA,UAAA,CAHC,MAAO,EAAA,MACP,YAAc,EAAA,OAAO,UACrB,YAAA,EAAA,EAAA,OAAa,EAAU"}
@@ -0,0 +1,132 @@
1
+ import { a as e, d as t } from "../../resizable_utils-BComtrMV.js";
2
+ import { computed as n, createElementBlock as r, createElementVNode as i, inject as a, normalizeClass as o, normalizeStyle as s, onMounted as c, onUnmounted as l, openBlock as u, renderSlot as d, unref as f, watch as p } from "vue";
3
+ //#region components/resizable/resizable_panel.vue
4
+ var m = ["id", "data-panel-id"], h = {
5
+ __name: "resizable_panel",
6
+ props: {
7
+ id: {
8
+ type: String,
9
+ required: !0
10
+ },
11
+ initialSize: {
12
+ type: String,
13
+ default: void 0
14
+ },
15
+ userMinSize: {
16
+ type: String,
17
+ default: void 0
18
+ },
19
+ userMaxSize: {
20
+ type: String,
21
+ default: void 0
22
+ },
23
+ systemMinSize: {
24
+ type: String,
25
+ default: void 0
26
+ },
27
+ systemMaxSize: {
28
+ type: String,
29
+ default: void 0
30
+ },
31
+ collapseSize: {
32
+ type: String,
33
+ default: void 0
34
+ },
35
+ resizable: {
36
+ type: Boolean,
37
+ default: !0
38
+ },
39
+ collapsible: {
40
+ type: Boolean,
41
+ default: !1
42
+ },
43
+ collapsed: {
44
+ type: Boolean,
45
+ default: !1
46
+ },
47
+ class: {
48
+ type: [
49
+ String,
50
+ Object,
51
+ Array
52
+ ],
53
+ default: ""
54
+ }
55
+ },
56
+ setup(h) {
57
+ let g = h, _ = [
58
+ "initialSize",
59
+ "userMinSize",
60
+ "userMaxSize",
61
+ "systemMinSize",
62
+ "systemMaxSize",
63
+ "collapseSize"
64
+ ];
65
+ p(() => _.map((e) => g[e]), (t) => t.forEach((t, n) => {
66
+ t !== void 0 && !e(t) && console.error(`[DtResizablePanel] Invalid ${_[n]}: "${t}".`);
67
+ }), { immediate: !0 });
68
+ let v = a(t, null), y = v?.layout ?? n(() => ({
69
+ panels: /* @__PURE__ */ new Map(),
70
+ handles: []
71
+ })), b = v?.isResizing ?? n(() => !1), x = v?.offsetContentStyles ?? n(() => ({})), S = v?.registerPanel ?? null, C = v?.unregisterPanel ?? null, w = n(() => ({
72
+ id: g.id,
73
+ initialSize: g.initialSize,
74
+ userMinSize: g.userMinSize,
75
+ userMaxSize: g.userMaxSize,
76
+ systemMinSize: g.systemMinSize,
77
+ systemMaxSize: g.systemMaxSize,
78
+ collapseSize: g.collapseSize,
79
+ resizable: g.resizable ?? !0,
80
+ collapsible: g.collapsible ?? !1,
81
+ collapsed: g.collapsed ?? !1
82
+ }));
83
+ c(() => {
84
+ S && S(w.value);
85
+ }), l(() => {
86
+ C && C(g.id);
87
+ }), p(w, () => {
88
+ S && S(w.value);
89
+ }, { deep: !0 });
90
+ let T = v?.collapsePanel ?? null, E = v?.isInitializing ?? n(() => !1);
91
+ p(() => g.collapsed, (e) => {
92
+ E.value || T && e !== void 0 && T(g.id, e);
93
+ }, { immediate: !0 });
94
+ let D = v?.panelMap ?? n(() => /* @__PURE__ */ new Map()), O = n(() => D.value.get(g.id)), k = n(() => {
95
+ let e = y.value.panels.get(g.id);
96
+ return e ? e.collapsed ? {
97
+ insetInlineStart: `${e.left}px`,
98
+ inlineSize: "0px",
99
+ overflow: "hidden",
100
+ pointerEvents: "none"
101
+ } : {
102
+ insetInlineStart: `${e.left}px`,
103
+ insetInlineEnd: `${e.right}px`
104
+ } : {
105
+ insetInlineStart: "0px",
106
+ inlineSize: "0px",
107
+ pointerEvents: "none"
108
+ };
109
+ });
110
+ return (e, t) => (u(), r("div", {
111
+ id: `dt-resizable-panel-${g.id}`,
112
+ class: o(["d-resizable-panel", [g.class, {
113
+ "d-resizable-panel--collapsed": O.value && O.value.collapsed === !0,
114
+ "d-resizable-panel--fixed": O.value && O.value.resizable === !1
115
+ }]]),
116
+ style: s(k.value),
117
+ "data-panel-id": g.id,
118
+ "data-qa": "d-resizable-panel"
119
+ }, [i("div", {
120
+ class: "d-resizable-panel__content",
121
+ style: s(f(x))
122
+ }, [d(e.$slots, "default", {
123
+ panel: O.value,
124
+ isCollapsed: O.value?.collapsed,
125
+ isResizing: f(b)
126
+ })], 4)], 14, m));
127
+ }
128
+ };
129
+ //#endregion
130
+ export { h as default };
131
+
132
+ //# sourceMappingURL=resizable-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable-panel.js","names":[],"sources":["../../../components/resizable/resizable_panel.vue"],"sourcesContent":["<template>\n <div\n :id=\"`dt-resizable-panel-${props.id}`\"\n class=\"d-resizable-panel\"\n :class=\"[\n props.class,\n {\n 'd-resizable-panel--collapsed': panel && panel.collapsed === true,\n 'd-resizable-panel--fixed': panel && panel.resizable === false,\n },\n ]\"\n :style=\"panelStyles\"\n :data-panel-id=\"props.id\"\n data-qa=\"d-resizable-panel\"\n >\n <div\n class=\"d-resizable-panel__content\"\n :style=\"offsetContentStyles\"\n >\n <!-- @slot Panel content. Provides panel state and collapsed/resizing flags. -->\n <slot\n :panel=\"panel\"\n :is-collapsed=\"panel?.collapsed\"\n :is-resizing=\"isResizing\"\n />\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, inject, onMounted, onUnmounted, watch } from 'vue';\nimport { RESIZABLE_CONTEXT_KEY } from './resizable_constants';\nimport { isValidSizing } from './resizable_utils';\n\nconst props = defineProps({\n /** Unique panel identifier. Must be unique within its DtResizable parent. */\n id: { type: String, required: true },\n /** Initial size as a percentage token (e.g., '25p' for 25%) or Dialtone size token. */\n initialSize: { type: String, default: undefined },\n /** Minimum size for user drag interactions (hard floor). */\n userMinSize: { type: String, default: undefined },\n /** Maximum size for user drag interactions (hard ceiling). */\n userMaxSize: { type: String, default: undefined },\n /** Minimum size for system viewport scaling. Falls back to userMinSize. */\n systemMinSize: { type: String, default: undefined },\n /** Maximum size for system viewport scaling. Falls back to userMaxSize. */\n systemMaxSize: { type: String, default: undefined },\n /** Container width threshold that triggers auto-collapse. */\n collapseSize: { type: String, default: undefined },\n /** Whether this panel can be resized by dragging. */\n resizable: { type: Boolean, default: true },\n /** Whether this panel can be collapsed to zero width. */\n collapsible: { type: Boolean, default: false },\n /** Initial collapsed state. */\n collapsed: { type: Boolean, default: false },\n /** Additional CSS classes applied to the panel element. */\n class: { type: [String, Object, Array], default: '' },\n});\n\nconst SIZE_PROPS = ['initialSize', 'userMinSize', 'userMaxSize', 'systemMinSize', 'systemMaxSize', 'collapseSize'];\nwatch(\n () => SIZE_PROPS.map(n => props[n]),\n vals => vals.forEach((v, i) => {\n if (v !== undefined && !isValidSizing(v)) {\n console.error(`[DtResizablePanel] Invalid ${SIZE_PROPS[i]}: \"${v}\".`);\n }\n }),\n { immediate: true },\n);\n\nconst ctx = inject(RESIZABLE_CONTEXT_KEY, null);\nconst layoutRef = ctx?.layout ?? computed(() => ({ panels: new Map(), handles: [] }));\nconst isResizing = ctx?.isResizing ?? computed(() => false);\nconst offsetContentStyles = ctx?.offsetContentStyles ?? computed(() => ({}));\n\nconst registerPanel = ctx?.registerPanel ?? null;\nconst unregisterPanel = ctx?.unregisterPanel ?? null;\n\nconst panelConfig = computed(() => ({\n id: props.id,\n initialSize: props.initialSize,\n userMinSize: props.userMinSize,\n userMaxSize: props.userMaxSize,\n systemMinSize: props.systemMinSize,\n systemMaxSize: props.systemMaxSize,\n collapseSize: props.collapseSize,\n resizable: props.resizable ?? true,\n collapsible: props.collapsible ?? false,\n collapsed: props.collapsed ?? false,\n}));\n\nonMounted(() => {\n if (registerPanel) {\n registerPanel(panelConfig.value);\n }\n});\n\nonUnmounted(() => {\n if (unregisterPanel) {\n unregisterPanel(props.id);\n }\n});\n\n// Re-register on config change (watch each config field explicitly)\nwatch(panelConfig, () => {\n if (registerPanel) registerPanel(panelConfig.value);\n}, { deep: true });\n\nconst collapsePanel = ctx?.collapsePanel ?? null;\nconst isInitializing = ctx?.isInitializing ?? computed(() => false);\n\nwatch(\n () => props.collapsed,\n newCollapsed => {\n if (isInitializing.value) return;\n if (collapsePanel && newCollapsed !== undefined) {\n collapsePanel(props.id, newCollapsed);\n }\n },\n { immediate: true },\n);\n\nconst panelMap = ctx?.panelMap ?? computed(() => new Map());\nconst panel = computed(() => panelMap.value.get(props.id));\n\nconst panelStyles = computed(() => {\n const position = layoutRef.value.panels.get(props.id);\n\n if (!position) {\n return { insetInlineStart: '0px', inlineSize: '0px', pointerEvents: 'none' };\n }\n\n if (position.collapsed) {\n return {\n insetInlineStart: `${position.left}px`,\n inlineSize: '0px',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n return {\n insetInlineStart: `${position.left}px`,\n insetInlineEnd: `${position.right}px`,\n };\n});\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA,IAAM,IAAQ,GAyBR,IAAa;GAAC;GAAe;GAAe;GAAe;GAAiB;GAAiB;GAAe;AAClH,UACQ,EAAW,KAAI,MAAK,EAAM,GAAG,GACnC,MAAQ,EAAK,SAAS,GAAG,MAAM;AAC7B,GAAI,MAAM,KAAA,KAAa,CAAC,EAAc,EAAE,IACtC,QAAQ,MAAM,8BAA8B,EAAW,GAAG,KAAK,EAAE,IAAI;IAEvE,EACF,EAAE,WAAW,IAAM,CACpB;EAED,IAAM,IAAM,EAAO,GAAuB,KAAK,EACzC,IAAY,GAAK,UAAU,SAAgB;GAAE,wBAAQ,IAAI,KAAK;GAAE,SAAS,EAAE;GAAE,EAAE,EAC/E,IAAa,GAAK,cAAc,QAAe,GAAM,EACrD,IAAsB,GAAK,uBAAuB,SAAgB,EAAE,EAAE,EAEtE,IAAgB,GAAK,iBAAiB,MACtC,IAAkB,GAAK,mBAAmB,MAE1C,IAAc,SAAgB;GAClC,IAAI,EAAM;GACV,aAAa,EAAM;GACnB,aAAa,EAAM;GACnB,aAAa,EAAM;GACnB,eAAe,EAAM;GACrB,eAAe,EAAM;GACrB,cAAc,EAAM;GACpB,WAAW,EAAM,aAAa;GAC9B,aAAa,EAAM,eAAe;GAClC,WAAW,EAAM,aAAa;GAC/B,EAAE;AAeH,EAbA,QAAgB;AACd,GAAI,KACF,EAAc,EAAY,MAAM;IAElC,EAEF,QAAkB;AAChB,GAAI,KACF,EAAgB,EAAM,GAAG;IAE3B,EAGF,EAAM,SAAmB;AACvB,GAAI,KAAe,EAAc,EAAY,MAAM;KAClD,EAAE,MAAM,IAAM,CAAC;EAElB,IAAM,IAAgB,GAAK,iBAAiB,MACtC,IAAiB,GAAK,kBAAkB,QAAe,GAAM;AAEnE,UACQ,EAAM,YACZ,MAAgB;AACV,KAAe,SACf,KAAiB,MAAiB,KAAA,KACpC,EAAc,EAAM,IAAI,EAAa;KAGzC,EAAE,WAAW,IAAM,CACpB;EAED,IAAM,IAAW,GAAK,YAAY,wBAAe,IAAI,KAAK,CAAC,EACrD,IAAQ,QAAe,EAAS,MAAM,IAAI,EAAM,GAAG,CAAC,EAEpD,IAAc,QAAe;GACjC,IAAM,IAAW,EAAU,MAAM,OAAO,IAAI,EAAM,GAAG;AAerD,UAbK,IAID,EAAS,YACJ;IACL,kBAAkB,GAAG,EAAS,KAAK;IACnC,YAAY;IACZ,UAAU;IACV,eAAe;IAChB,GAGI;IACL,kBAAkB,GAAG,EAAS,KAAK;IACnC,gBAAgB,GAAG,EAAS,MAAM;IACnC,GAfQ;IAAE,kBAAkB;IAAO,YAAY;IAAO,eAAe;IAAQ;IAgB9E;yBAhJA,EAyBM,OAAA;GAxBH,IAAE,sBAAwB,EAAM;GACjC,OAAK,EAAA,CAAC,qBAAmB,CACT,EAAM,OAAA;oCAAuD,EAAA,SAAS,EAAA,MAAM,cAAS;gCAA+C,EAAA,SAAS,EAAA,MAAM,cAAS;;GAO3K,OAAK,EAAE,EAAA,MAAW;GAClB,iBAAe,EAAM;GACtB,WAAQ;MAER,EAUM,OAAA;GATJ,OAAM;GACL,OAAK,EAAE,EAAA,EAAmB,CAAA;MAG3B,EAIE,EAAA,QAAA,WAAA;GAHC,OAAO,EAAA;GACP,aAAc,EAAA,OAAO;GACrB,YAAa,EAAA,EAAU"}
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../resizable-aOVGO_Os.cjs`);exports.default=e.t;
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../resizable-D4-peBOl.js";
2
+ export { e as default };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../rich_text_editor-D5_gdzNn.cjs`),t=require(`./rich-text-editor-constants.cjs`);require(`../../markdownRenderer-PRpHJ151.cjs`),exports.DtRichTextEditor=e.t,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=t.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=t.RICH_TEXT_EDITOR_OUTPUT_FORMATS;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../rich_text_editor-DMP5eTlf.cjs`),t=require(`./rich-text-editor-constants.cjs`);exports.DtRichTextEditor=e.t,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=t.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=t.RICH_TEXT_EDITOR_OUTPUT_FORMATS;
@@ -1,4 +1,3 @@
1
- import { t as e } from "../../rich_text_editor-Cu0E6GWr.js";
1
+ import { t as e } from "../../rich_text_editor-Ba67C4Uk.js";
2
2
  import { RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as t, RICH_TEXT_EDITOR_OUTPUT_FORMATS as n } from "./rich-text-editor-constants.js";
3
- import "../../markdownRenderer-D14GhUiu.js";
4
3
  export { e as DtRichTextEditor, t as RICH_TEXT_EDITOR_AUTOFOCUS_TYPES, n as RICH_TEXT_EDITOR_OUTPUT_FORMATS };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../markdownRenderer-PRpHJ151.cjs`);exports.renderEditorToMarkdown=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../markdownRenderer-DCgGQseq.cjs`);exports.renderEditorToMarkdown=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../markdownRenderer-D14GhUiu.js";
1
+ import { t as e } from "../../markdownRenderer-D_P94RyM.js";
2
2
  export { e as renderEditorToMarkdown };
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../rich_text_editor-D5_gdzNn.cjs`);require(`../../markdownRenderer-PRpHJ151.cjs`),exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../rich_text_editor-DMP5eTlf.cjs`);exports.default=e.t;
@@ -1,3 +1,2 @@
1
- import { t as e } from "../../rich_text_editor-Cu0E6GWr.js";
2
- import "../../markdownRenderer-D14GhUiu.js";
1
+ import { t as e } from "../../rich_text_editor-Ba67C4Uk.js";
3
2
  export { e as default };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../scroller-CuYuo1vd.cjs`);exports.DtScroller=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../scroller-CjAsgjl9.cjs`);exports.DtScroller=e.t;