@globalpayments/vega 2.92.0 → 2.94.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 (556) hide show
  1. package/dist/cjs/{app-globals-2f326662.js → app-globals-d05c3410.js} +14 -9
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-b9a5b3e2.js → child-nodes-event-prevent-slimmer-e67ee84c.js} +1 -1
  3. package/dist/cjs/{code-block-6435d641.js → code-block-493c7ce7.js} +117 -31
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-e4c9a5ba.js → component-value-history-controller-slimmer.abstract-ab21fcbf.js} +72 -39
  5. package/dist/cjs/{content-state-96ec9114.js → content-state-fc34a814.js} +61 -7
  6. package/dist/cjs/{date-required-rule-8c9e312b.js → date-required-rule-4ab06a82.js} +1 -1
  7. package/dist/cjs/{design-token-3548af29.js → design-token-d3d12fa0.js} +3 -3
  8. package/dist/cjs/{element-appender-slimmer-3bf69990.js → element-appender-slimmer-1d6323c2.js} +17 -8
  9. package/dist/cjs/{event-emit-slimmer-5bab10c2.js → event-emit-slimmer-d234a619.js} +1 -1
  10. package/dist/cjs/{form-field-controller-slimmer-e0efac05.js → form-field-controller-slimmer-d638ba12.js} +1 -1
  11. package/dist/cjs/{image-annotation-action-853f72c8.js → image-annotation-action-7c4cd316.js} +4 -4
  12. package/dist/cjs/image-extension-30a7c10f.js +56 -0
  13. package/dist/cjs/index.cjs.js +24 -19
  14. package/dist/cjs/{inject-keyboard-manager-0dccff1a.js → inject-keyboard-manager-5a105612.js} +1 -1
  15. package/dist/cjs/{internal-calendar-period-factory-6187ec4c.js → internal-calendar-period-factory-b76006f7.js} +1 -1
  16. package/dist/cjs/{internal-translation-controller-48ebfd0f.js → internal-translation-controller-eb02c3b1.js} +6 -0
  17. package/dist/cjs/{internal-vega-event-manager-7196a847.js → internal-vega-event-manager-13c4012b.js} +2 -1
  18. package/dist/cjs/{keyboard-manager-dfe8d924.js → keyboard-manager-ca76d4dc.js} +1 -1
  19. package/dist/cjs/{keyboard-manager-slimmer-4a2560a1.js → keyboard-manager-slimmer-a1223714.js} +1 -1
  20. package/dist/cjs/{link-extension-28d95849.js → link-extension-92a63cb7.js} +3 -3
  21. package/dist/cjs/loader.cjs.js +14 -14
  22. package/dist/cjs/{month-view-generator-2e59b188.js → month-view-generator-876c50d4.js} +1 -1
  23. package/dist/cjs/{public-rules-8727c42c.js → public-rules-9e1ea1d9.js} +7 -7
  24. package/dist/cjs/{range-5cb3d1e4.js → range-30219330.js} +1 -1
  25. package/dist/cjs/{responsive-format-facade-98b89142.js → responsive-format-facade-25e9f30d.js} +1 -1
  26. package/dist/cjs/{rich-text-editor-required-rule-8e4d577d.js → rich-text-editor-required-rule-23bf7485.js} +1 -1
  27. package/dist/cjs/{split-cell-operation-9e3ab88d.js → split-cell-operation-43752212.js} +3 -3
  28. package/dist/cjs/{state-border-formatter-626b0a14.js → state-border-formatter-f1ce0f3b.js} +1 -1
  29. package/dist/cjs/{string-format-strategy.abstract-981f43e1.js → string-format-strategy.abstract-b22f7754.js} +1 -1
  30. package/dist/cjs/{string-input-formatter-slimmer-fc4a0ba5.js → string-input-formatter-slimmer-d2c248f7.js} +1 -1
  31. package/dist/cjs/{string-mask-strategy-b47fa159.js → string-mask-strategy-fc01a500.js} +2 -2
  32. package/dist/cjs/{style-formatter-baf18624.js → style-formatter-73205450.js} +2 -2
  33. package/dist/cjs/{time-required-rule-e77d174f.js → time-required-rule-12d2f394.js} +1 -1
  34. package/dist/cjs/{token-extension-3aec039f.js → token-extension-ea891d54.js} +3318 -1742
  35. package/dist/cjs/{translation-slimmer-1e05769e.js → translation-slimmer-9099f56c.js} +1 -1
  36. package/dist/cjs/{type-guard-7ab48d6c.js → type-guard-f354af8b.js} +1 -1
  37. package/dist/cjs/{valid-credit-card-number-rule-52ba9c67.js → valid-credit-card-number-rule-8d370163.js} +1 -1
  38. package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
  39. package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-app-header-button.cjs.entry.js +9 -9
  41. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-box.cjs.entry.js +6 -6
  43. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
  45. package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
  46. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  47. package/dist/cjs/vega-button.cjs.entry.js +12 -9
  48. package/dist/cjs/vega-calendar_5.cjs.entry.js +11 -11
  49. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  50. package/dist/cjs/vega-carousel.cjs.entry.js +6 -6
  51. package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
  52. package/dist/cjs/vega-chip.cjs.entry.js +9 -9
  53. package/dist/cjs/vega-code-block.cjs.entry.js +12 -12
  54. package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +7 -7
  56. package/dist/cjs/vega-color-swatch.cjs.entry.js +5 -5
  57. package/dist/cjs/vega-combo-box.cjs.entry.js +19 -13
  58. package/dist/cjs/vega-date-picker_2.cjs.entry.js +17 -17
  59. package/dist/cjs/vega-dialog_2.cjs.entry.js +20 -9
  60. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  61. package/dist/cjs/vega-dropdown_5.cjs.entry.js +693 -195
  62. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  63. package/dist/cjs/{vega-event-id-df22d80e.js → vega-event-id-58afed7a.js} +2 -0
  64. package/dist/cjs/vega-field-label.cjs.entry.js +5 -5
  65. package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
  66. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  68. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  69. package/dist/cjs/vega-form.cjs.entry.js +7 -7
  70. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  71. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  72. package/dist/cjs/vega-image-uploader.cjs.entry.js +9 -9
  73. package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
  74. package/dist/cjs/vega-input-numeric.cjs.entry.js +9 -9
  75. package/dist/cjs/vega-input-passcode.cjs.entry.js +9 -9
  76. package/dist/cjs/vega-input-phone-number.cjs.entry.js +8 -8
  77. package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
  78. package/dist/cjs/vega-input-select.cjs.entry.js +9 -9
  79. package/dist/cjs/vega-input.cjs.entry.js +9 -9
  80. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  81. package/dist/cjs/vega-left-nav_5.cjs.entry.js +316 -111
  82. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  83. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  84. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
  85. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -3
  86. package/dist/cjs/vega-pagination.cjs.entry.js +8 -8
  87. package/dist/cjs/vega-popover_2.cjs.entry.js +11 -11
  88. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +6 -6
  89. package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
  90. package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
  91. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +510 -73
  92. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +4 -4
  93. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +8 -8
  94. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +15 -15
  95. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  96. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
  97. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +6 -6
  98. package/dist/cjs/vega-sidenav_3.cjs.entry.js +6 -6
  99. package/dist/cjs/vega-signature-capture.cjs.entry.js +10 -10
  100. package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
  101. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  102. package/dist/cjs/vega-table_11.cjs.entry.js +968 -425
  103. package/dist/cjs/vega-textarea.cjs.entry.js +7 -9
  104. package/dist/cjs/vega-time-picker_2.cjs.entry.js +34 -14
  105. package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
  106. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  107. package/dist/cjs/vega.cjs.js +14 -14
  108. package/dist/collection/components/vega-button/vega-button.css +4 -0
  109. package/dist/collection/components/vega-button/vega-button.js +4 -1
  110. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +4 -1
  111. package/dist/collection/components/vega-combo-box/vega-combo-box.js +7 -1
  112. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  113. package/dist/collection/components/vega-dropdown/constants.js +1 -0
  114. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +9 -0
  115. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.js +97 -4
  116. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.js +219 -0
  117. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.js +78 -13
  118. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +13 -1
  119. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +7 -0
  120. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +52 -1
  121. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +4 -1
  122. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +5 -0
  123. package/dist/collection/components/vega-dropdown/vega-dropdown.js +126 -1
  124. package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
  125. package/dist/collection/components/vega-hint/vega-hint.js +1 -1
  126. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +4 -1
  127. package/dist/collection/components/vega-modal/vega-modal.css +0 -1
  128. package/dist/collection/components/vega-modal/vega-modal.js +38 -0
  129. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.js +4 -6
  130. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.js +23 -68
  131. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.js +74 -0
  132. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +16 -2
  133. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.js +2 -2
  134. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +7 -2
  135. package/dist/collection/components/vega-rich-text-editor/assets/redo.js +1 -1
  136. package/dist/collection/components/vega-rich-text-editor/assets/undo.js +1 -1
  137. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.js +11 -5
  138. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.js +9 -4
  139. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +61 -5
  140. package/dist/collection/components/vega-rich-text-editor/dto/actions/paste-content-action.js +1 -0
  141. package/dist/collection/components/vega-rich-text-editor/dto/annotations/custom-style-annotation.js +3 -2
  142. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +2 -1
  143. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.js +1 -1
  144. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +2 -1
  145. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -1
  146. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +1 -1
  147. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.js +61 -0
  148. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.js +40 -0
  149. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.js +20 -0
  150. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.js +17 -0
  151. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.js +19 -0
  152. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.js +4 -0
  153. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.js +47 -0
  154. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.js +76 -0
  155. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.js +70 -0
  156. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.js +53 -0
  157. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.js +41 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.js +21 -0
  159. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +260 -0
  160. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.js +21 -7
  161. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +12 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.js +3 -0
  163. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.js +3 -0
  164. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.js +156 -0
  165. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.js +31 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +73 -0
  167. package/dist/collection/components/vega-rich-text-editor/extensions/image/image-extension.js +34 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/image/type.js +1 -0
  169. package/dist/collection/components/vega-rich-text-editor/extensions/paste/assets/paste.js +3 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +145 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +6 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +442 -0
  173. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +1 -1
  174. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-toolbar-popover-renderer.js +1 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +4 -3
  176. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +1 -1
  177. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +1 -1
  178. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +1 -1
  179. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +1 -1
  180. package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +85 -15
  181. package/dist/collection/components/vega-rich-text-editor/public-api.js +5 -0
  182. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
  183. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +1 -1
  184. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +1 -1
  185. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +385 -25
  186. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +69 -36
  187. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +1 -1
  188. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +1 -1
  189. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +59 -14
  190. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
  191. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
  192. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +11 -1
  193. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +19 -1
  194. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.js +6 -1
  195. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +28 -1
  196. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +1 -1
  197. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.js +1 -1
  198. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +1 -1
  199. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.js +1 -1
  200. package/dist/collection/components/vega-table/slimmers/controllers/dto/column-render-input-model.js +32 -0
  201. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +77 -0
  202. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +121 -0
  203. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-cell-renderer.js +41 -14
  204. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +207 -7
  205. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-row-renderer.js +16 -3
  206. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +113 -11
  207. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +11 -2
  208. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +5 -1
  209. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +22 -1
  210. package/dist/collection/components/vega-table/vega-table.css +5 -0
  211. package/dist/collection/components/vega-table/vega-table.js +5 -0
  212. package/dist/collection/components/vega-text/vega-text.js +1 -1
  213. package/dist/collection/components/vega-textarea/vega-textarea.js +1 -3
  214. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +4 -0
  215. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +4 -0
  216. package/dist/collection/components/vega-time-picker/vega-time-picker.js +39 -0
  217. package/dist/collection/constants/ui.js +1 -0
  218. package/dist/collection/global/scripts/before-vega-load.js +8 -0
  219. package/dist/collection/helpers/backdrop/index.js +1 -0
  220. package/dist/collection/helpers/backdrop/shared-backdrop-manager.js +163 -0
  221. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
  222. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  223. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +11 -4
  224. package/dist/collection/helpers/translation/locales/en.js +6 -0
  225. package/dist/collection/helpers/ui/element-appender.js +5 -2
  226. package/dist/esm/{app-globals-5e0d319a.js → app-globals-f2336686.js} +14 -9
  227. package/dist/esm/{child-nodes-event-prevent-slimmer-f24618c5.js → child-nodes-event-prevent-slimmer-96c14f5a.js} +1 -1
  228. package/dist/esm/{code-block-b71b2aa4.js → code-block-e12588fe.js} +117 -32
  229. package/dist/esm/{component-value-history-controller-slimmer.abstract-282df6e5.js → component-value-history-controller-slimmer.abstract-4e8eb313.js} +72 -39
  230. package/dist/esm/{content-state-909099f8.js → content-state-8032467a.js} +61 -7
  231. package/dist/esm/{date-required-rule-15edb04a.js → date-required-rule-b88e1650.js} +1 -1
  232. package/dist/esm/{design-token-cb5ed6b9.js → design-token-76bd217c.js} +3 -3
  233. package/dist/esm/{element-appender-slimmer-e41120ee.js → element-appender-slimmer-7fcb944b.js} +17 -8
  234. package/dist/esm/{event-emit-slimmer-03deba18.js → event-emit-slimmer-db4a82e0.js} +1 -1
  235. package/dist/esm/{form-field-controller-slimmer-cfe1d8a7.js → form-field-controller-slimmer-395c23e3.js} +1 -1
  236. package/dist/esm/{image-annotation-action-98232dc4.js → image-annotation-action-b3b6c308.js} +4 -4
  237. package/dist/esm/image-extension-b6c7e4a7.js +53 -0
  238. package/dist/esm/index.js +19 -19
  239. package/dist/esm/{inject-keyboard-manager-13cc77ab.js → inject-keyboard-manager-86126b5b.js} +1 -1
  240. package/dist/esm/{internal-calendar-period-factory-c3d70f3b.js → internal-calendar-period-factory-3a07dba0.js} +1 -1
  241. package/dist/esm/{internal-translation-controller-8e8a514a.js → internal-translation-controller-16709132.js} +6 -0
  242. package/dist/esm/{internal-vega-event-manager-75e5e3bb.js → internal-vega-event-manager-48690e5b.js} +2 -1
  243. package/dist/esm/{keyboard-manager-fe885db1.js → keyboard-manager-a0c3e1cf.js} +1 -1
  244. package/dist/esm/{keyboard-manager-slimmer-61d4c79b.js → keyboard-manager-slimmer-f3f66c15.js} +1 -1
  245. package/dist/esm/{link-extension-f1a3bea7.js → link-extension-97fcb8fb.js} +3 -3
  246. package/dist/esm/loader.js +14 -14
  247. package/dist/esm/{month-view-generator-85eecb95.js → month-view-generator-fd0e1856.js} +1 -1
  248. package/dist/esm/{public-rules-323bea4b.js → public-rules-c06f0d2a.js} +7 -7
  249. package/dist/esm/{range-e63068d1.js → range-e999837f.js} +1 -1
  250. package/dist/esm/{responsive-format-facade-fb424f5b.js → responsive-format-facade-ced96b0b.js} +1 -1
  251. package/dist/esm/{rich-text-editor-required-rule-0edb8ba7.js → rich-text-editor-required-rule-71f8ee98.js} +1 -1
  252. package/dist/esm/{split-cell-operation-93b4d775.js → split-cell-operation-359f8082.js} +3 -3
  253. package/dist/esm/{state-border-formatter-1a528ca4.js → state-border-formatter-b680e922.js} +1 -1
  254. package/dist/esm/{string-format-strategy.abstract-72fc98aa.js → string-format-strategy.abstract-23faab71.js} +1 -1
  255. package/dist/esm/{string-input-formatter-slimmer-b0c480d8.js → string-input-formatter-slimmer-4b4866a6.js} +1 -1
  256. package/dist/esm/{string-mask-strategy-4e00c173.js → string-mask-strategy-66586cd8.js} +2 -2
  257. package/dist/esm/{style-formatter-5c1bea8d.js → style-formatter-f4e16af5.js} +2 -2
  258. package/dist/esm/{time-required-rule-df500b14.js → time-required-rule-6e80a9ab.js} +1 -1
  259. package/dist/esm/{token-extension-32d1fa56.js → token-extension-9896879b.js} +3314 -1742
  260. package/dist/esm/{translation-slimmer-60408f13.js → translation-slimmer-21748a0e.js} +1 -1
  261. package/dist/esm/{type-guard-91087018.js → type-guard-ec5e8628.js} +1 -1
  262. package/dist/esm/{valid-credit-card-number-rule-681ecb75.js → valid-credit-card-number-rule-ca5a47d6.js} +1 -1
  263. package/dist/esm/vega-accordion.entry.js +9 -9
  264. package/dist/esm/vega-app-footer.entry.js +3 -3
  265. package/dist/esm/vega-app-header-button.entry.js +9 -9
  266. package/dist/esm/vega-banner.entry.js +3 -3
  267. package/dist/esm/vega-box.entry.js +6 -6
  268. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  269. package/dist/esm/vega-button-circle.entry.js +9 -9
  270. package/dist/esm/vega-button-group_2.entry.js +4 -4
  271. package/dist/esm/vega-button-link.entry.js +4 -4
  272. package/dist/esm/vega-button.entry.js +12 -9
  273. package/dist/esm/vega-calendar_5.entry.js +11 -11
  274. package/dist/esm/vega-card.entry.js +5 -5
  275. package/dist/esm/vega-carousel.entry.js +6 -6
  276. package/dist/esm/vega-checkbox_2.entry.js +6 -6
  277. package/dist/esm/vega-chip.entry.js +9 -9
  278. package/dist/esm/vega-code-block.entry.js +12 -12
  279. package/dist/esm/vega-color-picker.entry.js +5 -5
  280. package/dist/esm/vega-color-swatch-picker.entry.js +7 -7
  281. package/dist/esm/vega-color-swatch.entry.js +5 -5
  282. package/dist/esm/vega-combo-box.entry.js +19 -13
  283. package/dist/esm/vega-date-picker_2.entry.js +17 -17
  284. package/dist/esm/vega-dialog_2.entry.js +20 -9
  285. package/dist/esm/vega-divider.entry.js +5 -5
  286. package/dist/esm/vega-dropdown_5.entry.js +695 -197
  287. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  288. package/dist/esm/{vega-event-id-d3017041.js → vega-event-id-270fe47e.js} +2 -1
  289. package/dist/esm/vega-field-label.entry.js +5 -5
  290. package/dist/esm/vega-file-uploader.entry.js +6 -6
  291. package/dist/esm/vega-flag-icon.entry.js +5 -5
  292. package/dist/esm/vega-flex.entry.js +6 -6
  293. package/dist/esm/vega-font.entry.js +5 -5
  294. package/dist/esm/vega-form.entry.js +7 -7
  295. package/dist/esm/vega-grid.entry.js +5 -5
  296. package/dist/esm/vega-icon.entry.js +5 -5
  297. package/dist/esm/vega-image-uploader.entry.js +9 -9
  298. package/dist/esm/vega-input-credit-card.entry.js +10 -10
  299. package/dist/esm/vega-input-numeric.entry.js +9 -9
  300. package/dist/esm/vega-input-passcode.entry.js +9 -9
  301. package/dist/esm/vega-input-phone-number.entry.js +8 -8
  302. package/dist/esm/vega-input-range.entry.js +7 -7
  303. package/dist/esm/vega-input-select.entry.js +9 -9
  304. package/dist/esm/vega-input.entry.js +9 -9
  305. package/dist/esm/vega-item-toggle.entry.js +3 -3
  306. package/dist/esm/vega-left-nav_5.entry.js +316 -111
  307. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  308. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  309. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -3
  310. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +3 -3
  311. package/dist/esm/vega-pagination.entry.js +8 -8
  312. package/dist/esm/vega-popover_2.entry.js +11 -11
  313. package/dist/esm/vega-progress-tracker_2.entry.js +6 -6
  314. package/dist/esm/vega-radio_2.entry.js +9 -9
  315. package/dist/esm/vega-rich-text-content.entry.js +7 -7
  316. package/dist/esm/vega-rich-text-editor_4.entry.js +507 -70
  317. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +4 -4
  318. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
  319. package/dist/esm/vega-rich-text-table-properties_3.entry.js +15 -15
  320. package/dist/esm/vega-segment-control.entry.js +3 -3
  321. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  322. package/dist/esm/vega-selection-tile_2.entry.js +6 -6
  323. package/dist/esm/vega-sidenav_3.entry.js +6 -6
  324. package/dist/esm/vega-signature-capture.entry.js +10 -10
  325. package/dist/esm/vega-stepper.entry.js +6 -6
  326. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  327. package/dist/esm/vega-table_11.entry.js +968 -425
  328. package/dist/esm/vega-textarea.entry.js +7 -9
  329. package/dist/esm/vega-time-picker_2.entry.js +34 -14
  330. package/dist/esm/vega-toggle-switch.entry.js +5 -5
  331. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  332. package/dist/esm/vega.js +14 -14
  333. package/dist/sri/vega-sri-manifest.json +356 -356
  334. package/dist/types/components/vega-combo-box/types.d.ts +6 -1
  335. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +1 -0
  336. package/dist/types/components/vega-dropdown/constants.d.ts +1 -0
  337. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +2 -0
  338. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.d.ts +36 -0
  339. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.d.ts +107 -0
  340. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.d.ts +17 -0
  341. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +5 -0
  342. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +2 -0
  343. package/dist/types/components/vega-dropdown/types.d.ts +8 -0
  344. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.d.ts +25 -0
  345. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
  346. package/dist/types/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.d.ts +4 -0
  347. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +48 -0
  348. package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +2 -1
  349. package/dist/types/components/vega-modal/vega-modal.d.ts +9 -1
  350. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.d.ts +0 -1
  351. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.d.ts +12 -19
  352. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.d.ts +41 -0
  353. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +4 -1
  354. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.d.ts +1 -1
  355. package/dist/types/components/vega-nav/vega-left-nav/vega-left-nav.d.ts +2 -0
  356. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +14 -4
  357. package/dist/types/components/vega-rich-text-editor/dto/actions/paste-content-action.d.ts +7 -0
  358. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.d.ts +34 -0
  359. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.d.ts +13 -0
  360. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.d.ts +13 -0
  361. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.d.ts +14 -0
  362. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.d.ts +18 -0
  363. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.d.ts +3 -0
  364. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.d.ts +9 -0
  365. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.d.ts +48 -0
  366. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.d.ts +56 -0
  367. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.d.ts +35 -0
  368. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.d.ts +31 -0
  369. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.d.ts +18 -0
  370. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.d.ts +113 -0
  371. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.d.ts +15 -4
  372. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.d.ts +3 -0
  373. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.d.ts +3 -0
  374. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.d.ts +63 -0
  375. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.d.ts +20 -0
  376. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.d.ts +40 -0
  377. package/dist/types/components/vega-rich-text-editor/extensions/image/image-extension.d.ts +27 -0
  378. package/dist/types/components/vega-rich-text-editor/extensions/image/type.d.ts +13 -0
  379. package/dist/types/components/vega-rich-text-editor/extensions/paste/assets/paste.d.ts +3 -0
  380. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +58 -0
  381. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +6 -0
  382. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +150 -0
  383. package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +26 -0
  384. package/dist/types/components/vega-rich-text-editor/interface.d.ts +20 -0
  385. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +5 -0
  386. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.d.ts +114 -3
  387. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +22 -13
  388. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +10 -2
  389. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +5 -0
  390. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +8 -0
  391. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.d.ts +1 -0
  392. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +6 -0
  393. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -4
  394. package/dist/types/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.d.ts +1 -1
  395. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.d.ts +1 -1
  396. package/dist/types/components/vega-table/interface.d.ts +31 -0
  397. package/dist/types/components/vega-table/slimmers/controllers/dto/column-render-input-model.d.ts +13 -0
  398. package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +43 -0
  399. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +38 -0
  400. package/dist/types/components/vega-table/slimmers/renderers/vega-table-cell-renderer.d.ts +11 -2
  401. package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +4 -0
  402. package/dist/types/components/vega-table/slimmers/renderers/vega-table-row-renderer.d.ts +1 -0
  403. package/dist/types/components/vega-table/vega-table-cell/slimmers/controllers/vega-table-row-state-subscriber.d.ts +1 -1
  404. package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +23 -0
  405. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +1 -0
  406. package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +9 -0
  407. package/dist/types/components/vega-table/vega-table.d.ts +2 -0
  408. package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.d.ts +1 -0
  409. package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.d.ts +1 -0
  410. package/dist/types/components/vega-time-picker/types.d.ts +7 -0
  411. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +11 -1
  412. package/dist/types/components.d.ts +90 -3
  413. package/dist/types/constants/ui.d.ts +1 -1
  414. package/dist/types/helpers/backdrop/index.d.ts +1 -0
  415. package/dist/types/helpers/backdrop/shared-backdrop-manager.d.ts +67 -0
  416. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  417. package/dist/types/helpers/translation/interface.d.ts +7 -0
  418. package/dist/types/helpers/ui/element-appender.d.ts +4 -1
  419. package/dist/types/types/components.type.d.ts +5 -1
  420. package/dist/vega/index.esm.js +1 -1
  421. package/dist/vega/{p-92823583.js → p-02355de8.js} +1 -1
  422. package/dist/vega/{p-481601c0.entry.js → p-0af32f31.entry.js} +1 -1
  423. package/dist/vega/{p-438b7404.entry.js → p-0b311599.entry.js} +1 -1
  424. package/dist/vega/{p-56cf1a65.entry.js → p-0b9c7c79.entry.js} +1 -1
  425. package/dist/vega/p-0be4df0a.js +1 -0
  426. package/dist/vega/p-0d18368b.js +1 -0
  427. package/dist/vega/{p-9fafc956.entry.js → p-1232b553.entry.js} +1 -1
  428. package/dist/vega/{p-70817cf5.js → p-140616fe.js} +1 -1
  429. package/dist/vega/{p-f365601c.entry.js → p-14559974.entry.js} +1 -1
  430. package/dist/vega/{p-aa32f2f3.js → p-14baa886.js} +1 -1
  431. package/dist/vega/p-2364be92.entry.js +1 -0
  432. package/dist/vega/{p-c0629528.entry.js → p-26c7fe8b.entry.js} +1 -1
  433. package/dist/vega/p-270697c0.entry.js +1 -0
  434. package/dist/vega/p-282b37cb.js +1 -0
  435. package/dist/vega/{p-06c2ce2c.entry.js → p-288d65ad.entry.js} +1 -1
  436. package/dist/vega/p-2bf17505.entry.js +1 -0
  437. package/dist/vega/{p-c78aeaf3.entry.js → p-2dc5edd0.entry.js} +1 -1
  438. package/dist/vega/{p-136226f8.js → p-320091b7.js} +1 -1
  439. package/dist/vega/{p-b799fc1f.entry.js → p-341a6b32.entry.js} +1 -1
  440. package/dist/vega/p-36949349.js +1 -0
  441. package/dist/vega/p-38c9d782.js +1 -0
  442. package/dist/vega/{p-a361456d.js → p-3c309a38.js} +1 -1
  443. package/dist/vega/{p-71e2a3ec.js → p-3dee1e55.js} +1 -1
  444. package/dist/vega/{p-ef2b9846.entry.js → p-3e8baeac.entry.js} +1 -1
  445. package/dist/vega/{p-8f078d0d.entry.js → p-44439ecc.entry.js} +1 -1
  446. package/dist/vega/{p-68e16c70.entry.js → p-45e8424a.entry.js} +1 -1
  447. package/dist/vega/{p-ce7e9515.entry.js → p-46fe3154.entry.js} +1 -1
  448. package/dist/vega/{p-c2e0f8b7.entry.js → p-48ee3e24.entry.js} +1 -1
  449. package/dist/vega/{p-e371738b.js → p-4fe40b76.js} +1 -1
  450. package/dist/vega/p-4ff48b84.js +1 -0
  451. package/dist/vega/{p-2e58d99e.entry.js → p-5107277d.entry.js} +1 -1
  452. package/dist/vega/{p-2def8e3e.js → p-51b68d25.js} +1 -1
  453. package/dist/vega/p-52c6a399.entry.js +1 -0
  454. package/dist/vega/p-579cdeae.js +1 -0
  455. package/dist/vega/{p-e9cee498.entry.js → p-595998d9.entry.js} +1 -1
  456. package/dist/vega/{p-7798254d.entry.js → p-5db61a12.entry.js} +1 -1
  457. package/dist/vega/{p-e41d9d0e.entry.js → p-5df2d6a1.entry.js} +1 -1
  458. package/dist/vega/p-5f377954.js +1 -1
  459. package/dist/vega/{p-d7369441.js → p-61ce8029.js} +1 -1
  460. package/dist/vega/{p-2da12975.entry.js → p-62d6e063.entry.js} +1 -1
  461. package/dist/vega/p-698fbd73.js +1 -0
  462. package/dist/vega/p-6ad7144a.entry.js +1 -0
  463. package/dist/vega/{p-f70f7ad8.entry.js → p-6c9c2f8c.entry.js} +1 -1
  464. package/dist/vega/{p-b730bf6e.js → p-6cde45fc.js} +1 -1
  465. package/dist/vega/p-6dfe2407.js +1 -0
  466. package/dist/vega/{p-d3c8b871.entry.js → p-6f01a71a.entry.js} +1 -1
  467. package/dist/vega/p-6f70a10f.entry.js +1 -0
  468. package/dist/vega/p-73f2c3c0.entry.js +1 -0
  469. package/dist/vega/{p-de885ef2.js → p-75e33859.js} +1 -1
  470. package/dist/vega/p-762ea523.entry.js +1 -0
  471. package/dist/vega/{p-f6bccb06.entry.js → p-782eb312.entry.js} +1 -1
  472. package/dist/vega/p-7a88a3d3.entry.js +1 -0
  473. package/dist/vega/{p-5038b6d7.entry.js → p-7b57a845.entry.js} +1 -1
  474. package/dist/vega/p-83a16285.entry.js +1 -0
  475. package/dist/vega/{p-8da860f6.js → p-8720816e.js} +1 -1
  476. package/dist/vega/{p-9219201a.entry.js → p-892edf88.entry.js} +1 -1
  477. package/dist/vega/{p-625351a3.entry.js → p-8c083255.entry.js} +1 -1
  478. package/dist/vega/{p-4d9061fb.js → p-8db904dc.js} +1 -1
  479. package/dist/vega/{p-22f73e6e.entry.js → p-91287214.entry.js} +1 -1
  480. package/dist/vega/{p-5946fadf.js → p-919cddc3.js} +1 -1
  481. package/dist/vega/{p-fc5dfb52.entry.js → p-95913e3c.entry.js} +1 -1
  482. package/dist/vega/p-97215133.js +1 -0
  483. package/dist/vega/{p-5829a66d.entry.js → p-9bdc6e11.entry.js} +1 -1
  484. package/dist/vega/{p-8b9a8603.entry.js → p-9d18ba7f.entry.js} +1 -1
  485. package/dist/vega/{p-f7739cbb.entry.js → p-9dca874d.entry.js} +1 -1
  486. package/dist/vega/{p-c67ce78c.entry.js → p-9f38448c.entry.js} +1 -1
  487. package/dist/vega/{p-e3803943.js → p-9f7154d2.js} +1 -1
  488. package/dist/vega/{p-2314494a.entry.js → p-a057285e.entry.js} +1 -1
  489. package/dist/vega/{p-f515d189.entry.js → p-a0a58295.entry.js} +1 -1
  490. package/dist/vega/p-a7209700.js +1 -0
  491. package/dist/vega/{p-40501057.entry.js → p-a890d60b.entry.js} +1 -1
  492. package/dist/vega/{p-450bf94d.entry.js → p-addbca58.entry.js} +1 -1
  493. package/dist/vega/{p-45ab490c.js → p-b1eb9ff0.js} +1 -1
  494. package/dist/vega/{p-5beec481.js → p-b1ff70bf.js} +1 -1
  495. package/dist/vega/{p-9cdedcfb.entry.js → p-b39d4a88.entry.js} +1 -1
  496. package/dist/vega/{p-ea22cba0.js → p-b4e7c967.js} +1 -1
  497. package/dist/vega/{p-228c5de8.js → p-b775e51f.js} +1 -1
  498. package/dist/vega/{p-43c3848f.entry.js → p-b8f8e480.entry.js} +1 -1
  499. package/dist/vega/{p-8d69b201.js → p-ba662fe5.js} +1 -1
  500. package/dist/vega/p-c66d2a1e.js +1 -0
  501. package/dist/vega/{p-a268a4fb.entry.js → p-c67b9aba.entry.js} +1 -1
  502. package/dist/vega/{p-2353b64f.entry.js → p-c9c6daa6.entry.js} +1 -1
  503. package/dist/vega/p-c9daabe1.entry.js +1 -0
  504. package/dist/vega/{p-37dffdf6.entry.js → p-cad5222a.entry.js} +1 -1
  505. package/dist/vega/{p-e160a727.entry.js → p-cb90163a.entry.js} +1 -1
  506. package/dist/vega/{p-5545a235.entry.js → p-d08ffdf1.entry.js} +1 -1
  507. package/dist/vega/{p-30561e1d.entry.js → p-d3a36d19.entry.js} +1 -1
  508. package/dist/vega/{p-cd1844ad.entry.js → p-e235020b.entry.js} +1 -1
  509. package/dist/vega/{p-9440a8a5.entry.js → p-e4266b45.entry.js} +1 -1
  510. package/dist/vega/{p-18413b62.entry.js → p-e48a870f.entry.js} +1 -1
  511. package/dist/vega/{p-590c8720.entry.js → p-e8ee70c5.entry.js} +1 -1
  512. package/dist/vega/p-ed103a1a.entry.js +1 -0
  513. package/dist/vega/p-f05a193e.entry.js +1 -0
  514. package/dist/vega/{p-7be548a7.js → p-f1974321.js} +1 -1
  515. package/dist/vega/{p-916dfa7e.entry.js → p-f246f125.entry.js} +1 -1
  516. package/dist/vega/p-f4da615a.js +3 -0
  517. package/dist/vega/{p-d0ce752f.entry.js → p-f5d7b89f.entry.js} +1 -1
  518. package/dist/vega/{p-c8eaf91c.entry.js → p-f651df3b.entry.js} +1 -1
  519. package/dist/vega/{p-93dfab05.js → p-f7e459cd.js} +1 -1
  520. package/dist/vega/{p-b6ebfd5c.entry.js → p-f8a29127.entry.js} +1 -1
  521. package/dist/vega/p-f906a7bc.entry.js +1 -0
  522. package/dist/vega/{p-d20587b4.entry.js → p-f96d0503.entry.js} +1 -1
  523. package/dist/vega/{p-cd9fb2ca.entry.js → p-fbd3be00.entry.js} +1 -1
  524. package/dist/vega/{p-f0bc2bbb.js → p-fe24b459.js} +1 -1
  525. package/dist/vega/vega.esm.js +1 -1
  526. package/package.json +2 -16
  527. package/readme.md +0 -5
  528. package/dist/cjs/replace-selected-text-action-a31563ed.js +0 -20
  529. package/dist/esm/replace-selected-text-action-c0817b2b.js +0 -18
  530. package/dist/vega/p-0179f55d.js +0 -1
  531. package/dist/vega/p-07b56f2b.entry.js +0 -1
  532. package/dist/vega/p-209e0166.js +0 -1
  533. package/dist/vega/p-35df0f0a.entry.js +0 -1
  534. package/dist/vega/p-3cf4339a.entry.js +0 -1
  535. package/dist/vega/p-4953bb1a.js +0 -1
  536. package/dist/vega/p-4e39adf5.entry.js +0 -1
  537. package/dist/vega/p-5319da71.entry.js +0 -1
  538. package/dist/vega/p-53c76d9d.entry.js +0 -1
  539. package/dist/vega/p-5de1acdb.js +0 -1
  540. package/dist/vega/p-5df9047c.js +0 -1
  541. package/dist/vega/p-683cfe24.js +0 -1
  542. package/dist/vega/p-802bf369.js +0 -1
  543. package/dist/vega/p-82279b03.entry.js +0 -1
  544. package/dist/vega/p-8509c140.entry.js +0 -1
  545. package/dist/vega/p-8aa07ed0.js +0 -1
  546. package/dist/vega/p-970115d6.js +0 -1
  547. package/dist/vega/p-9b1d718c.entry.js +0 -1
  548. package/dist/vega/p-c78e8081.entry.js +0 -1
  549. package/dist/vega/p-ca9852bb.js +0 -1
  550. package/dist/vega/p-dee38163.entry.js +0 -1
  551. package/dist/vega/p-e5502873.entry.js +0 -1
  552. package/dist/vega/p-ea54ce0a.js +0 -3
  553. package/dist/vega/p-ee3155bd.js +0 -1
  554. package/dist/vega/p-eee01ba7.entry.js +0 -1
  555. package/dist/vega/p-f4a01959.js +0 -1
  556. package/dist/vega/p-f5aefb2f.entry.js +0 -1
@@ -10,32 +10,33 @@ const accessibility = require('./accessibility-88f8af84.js');
10
10
  const changeManager = require('./change-manager-a297e4d2.js');
11
11
  const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-c82df135.js');
12
12
  const vegaInternalEventId = require('./vega-internal-event-id-ecc5b87a.js');
13
- const codeBlock = require('./code-block-6435d641.js');
14
- const linkExtension = require('./link-extension-28d95849.js');
15
- const typeGuard = require('./type-guard-7ab48d6c.js');
13
+ const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
14
+ const codeBlock = require('./code-block-493c7ce7.js');
15
+ const linkExtension = require('./link-extension-92a63cb7.js');
16
+ const typeGuard = require('./type-guard-f354af8b.js');
16
17
  const internalIconManager = require('./internal-icon-manager-40bcac72.js');
17
- const imageAnnotationAction = require('./image-annotation-action-853f72c8.js');
18
- const vegaEventId = require('./vega-event-id-df22d80e.js');
18
+ const imageAnnotationAction = require('./image-annotation-action-7c4cd316.js');
19
+ const vegaEventId = require('./vega-event-id-58afed7a.js');
19
20
  const misc = require('./misc-3d30df91.js');
20
21
  const waitForComponentDidRender = require('./wait-for-component-did-render-02ca4bee.js');
21
- const formFieldControllerSlimmer = require('./form-field-controller-slimmer-e0efac05.js');
22
- const eventEmitSlimmer = require('./event-emit-slimmer-5bab10c2.js');
22
+ const imageExtension = require('./image-extension-30a7c10f.js');
23
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-d638ba12.js');
24
+ const eventEmitSlimmer = require('./event-emit-slimmer-d234a619.js');
23
25
  const subStateNotifySlimmer = require('./sub-state-notify-slimmer-18891389.js');
24
- const contentState = require('./content-state-96ec9114.js');
26
+ const contentState = require('./content-state-fc34a814.js');
25
27
  const alignLeft = require('./align-left-4a76df69.js');
26
- const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-e4c9a5ba.js');
27
- const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
28
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-ab21fcbf.js');
28
29
  const observer = require('./observer-f49483e8.js');
29
30
  const timer = require('./timer-5f33058b.js');
30
31
  const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-b454645a.js');
31
- const replaceSelectedTextAction = require('./replace-selected-text-action-a31563ed.js');
32
- const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-8e4d577d.js');
33
- const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-b9a5b3e2.js');
34
- const translationSlimmer = require('./translation-slimmer-1e05769e.js');
32
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-23bf7485.js');
33
+ const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-e67ee84c.js');
34
+ const translationSlimmer = require('./translation-slimmer-9099f56c.js');
35
35
  const darkModeStyleController = require('./dark-mode-style-controller-32d4054a.js');
36
36
  const autoRunWhenReRenderTaskQueueSlimmer_abstract = require('./auto-run-when-re-render-task-queue-slimmer.abstract-5734634d.js');
37
37
  const array = require('./array-249289f2.js');
38
38
  const chevronDown = require('./chevron-down-9847bf78.js');
39
+ const chevronUp = require('./chevron-up-21465cf7.js');
39
40
  const trashCan = require('./trash-can-46a5e19a.js');
40
41
  const ui = require('./ui-c91c37a7.js');
41
42
  const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
@@ -44,7 +45,7 @@ require('./typography-3ea4fe41.js');
44
45
  require('./object-b53e9416.js');
45
46
  require('./breakpoints-ebde4837.js');
46
47
  require('./ui-32120990.js');
47
- require('./internal-translation-controller-48ebfd0f.js');
48
+ require('./internal-translation-controller-eb02c3b1.js');
48
49
  require('./icon-manager-be358b32.js');
49
50
  require('./create-public-api-runtime-metrics-slimmer-91b0cbfb.js');
50
51
  require('./dynamic-slimmer-f31fdfd7.js');
@@ -56,10 +57,10 @@ require('./internal-form-field-validation-rule.abstract-07cdff46.js');
56
57
  require('./mutation-observer-slimmer-749d5020.js');
57
58
  require('./mutation-observer-filters-38cebc6d.js');
58
59
  require('./sub-state-observer-slimmer-eee2f0ae.js');
59
- require('./internal-vega-event-manager-7196a847.js');
60
- require('./range-5cb3d1e4.js');
61
- require('./keyboard-manager-slimmer-4a2560a1.js');
62
- require('./keyboard-manager-dfe8d924.js');
60
+ require('./internal-vega-event-manager-13c4012b.js');
61
+ require('./range-30219330.js');
62
+ require('./keyboard-manager-slimmer-a1223714.js');
63
+ require('./keyboard-manager-ca76d4dc.js');
63
64
  require('./vega-env-manager-23b8b23c.js');
64
65
  require('./feature-flag-controller-c19d0b58.js');
65
66
  require('./index-3ca118c4.js');
@@ -94,9 +95,18 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
94
95
  'disabled': this.disabled,
95
96
  'vega-hidden': this.sourceView,
96
97
  }, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
97
- index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions }),
98
+ index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
98
99
  this.renderCharacterCounter()));
99
100
  };
101
+ /**
102
+ * Propagates rich-text content scrolling inside shadow root so open appender
103
+ * can force position recalculation via ElementAppenderSlimmer.
104
+ */
105
+ this.notifyContentScrolling = () => {
106
+ changeManager.ChangeManager.notify(staticSubjectTitle.SHADOW_ROOT_ELEMENT_SCROLLING, {
107
+ host: this.host,
108
+ });
109
+ };
100
110
  this.renderCharacterCounter = () => {
101
111
  return (index.h("div", { class: {
102
112
  'text-editor-counter': true,
@@ -590,7 +600,7 @@ class TextStylesToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
590
600
  };
591
601
  }
592
602
  renderBtnWrapper(renderBtn) {
593
- return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
603
+ return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
594
604
  this.addDropdownObserver(ref);
595
605
  } },
596
606
  renderBtn({ showArrowIcon: true }),
@@ -1037,6 +1047,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1037
1047
  super({
1038
1048
  icon: 'image',
1039
1049
  tooltip: { text: 'Image' },
1050
+ autoFocusOnClick: false,
1040
1051
  });
1041
1052
  this.insertURLImage = async () => {
1042
1053
  const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
@@ -1049,18 +1060,21 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1049
1060
  this.uploadInputRef.click();
1050
1061
  break;
1051
1062
  case 'url':
1052
- this.currentRange = this.selectionController.getCurrentRange();
1053
- this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1054
- this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1055
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1056
- this.host.parentElement.append(this.insertURLModalRef);
1057
- this.insertURLInputRef.value = '';
1058
- await this.insertURLModalRef.modal('show');
1059
- await this.insertURLInputRef.doFocus();
1063
+ await this.openInsertURLModal();
1060
1064
  break;
1061
1065
  }
1062
1066
  await this.dropdownRef.hide();
1063
1067
  };
1068
+ this.openInsertURLModal = async () => {
1069
+ this.currentRange = this.selectionController.getCurrentRange();
1070
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1071
+ this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1072
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1073
+ this.host.parentElement.append(this.insertURLModalRef);
1074
+ this.insertURLInputRef.value = '';
1075
+ await this.insertURLModalRef.modal('show');
1076
+ await this.insertURLInputRef.doFocus();
1077
+ };
1064
1078
  /**
1065
1079
  * The below method is e2e-test covered in
1066
1080
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1082,15 +1096,33 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1082
1096
  };
1083
1097
  }
1084
1098
  renderBtnWrapper(renderBtn) {
1099
+ const shouldRenderDropdown = this.shouldRenderDropdown();
1100
+ const shouldRenderUpload = this.isImageUploadEnabled();
1101
+ const shouldRenderUrlInsertion = this.isImageURLInsertionEnabled();
1102
+ if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
1103
+ return null;
1104
+ }
1085
1105
  return (index.h("vega-box", null,
1086
- index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1106
+ shouldRenderDropdown ? (index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
1087
1107
  this.dropdownRef = ref;
1088
1108
  this.addDropdownObserver(ref);
1089
1109
  } },
1090
1110
  renderBtn({ showArrowIcon: true }),
1091
- index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
1092
- this.renderUploadInput(),
1093
- this.renderInsertURLModal()));
1111
+ index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent()))) : (renderBtn({})),
1112
+ shouldRenderUpload ? this.renderUploadInput() : null,
1113
+ shouldRenderUrlInsertion ? this.renderInsertURLModal() : null));
1114
+ }
1115
+ onClick() {
1116
+ if (this.shouldRenderDropdown()) {
1117
+ return;
1118
+ }
1119
+ if (this.isImageURLInsertionEnabled()) {
1120
+ void this.openInsertURLModal();
1121
+ return;
1122
+ }
1123
+ if (this.isImageUploadEnabled()) {
1124
+ this.uploadInputRef.click();
1125
+ }
1094
1126
  }
1095
1127
  isSelected() {
1096
1128
  return false;
@@ -1103,10 +1135,20 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1103
1135
  this.shouldDisabledToolbar(selectedBlock, codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1104
1136
  }
1105
1137
  renderDropdownContent() {
1106
- return (index.h(index.Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
1138
+ return (index.h(index.Fragment, null, this.getItems().map((item) => {
1107
1139
  return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
1108
1140
  })));
1109
1141
  }
1142
+ getItems() {
1143
+ return ImageToolbarButtonSlimmer.allItems.filter((item) => {
1144
+ if (item.key === 'upload') {
1145
+ return this.isImageUploadEnabled();
1146
+ }
1147
+ else {
1148
+ return this.isImageURLInsertionEnabled();
1149
+ }
1150
+ });
1151
+ }
1110
1152
  renderUploadInput() {
1111
1153
  return (index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
1112
1154
  }
@@ -1139,6 +1181,18 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1139
1181
  addModalInsertObserver(buttonRef) {
1140
1182
  domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, vegaEventId.VegaClick, this.insertURLImage);
1141
1183
  }
1184
+ getImageExtensionConfig() {
1185
+ return imageExtension.VegaRTEImageExtension.configStore.get(this.host) || {};
1186
+ }
1187
+ isImageUploadEnabled() {
1188
+ return this.getImageExtensionConfig().enableImageUpload !== false;
1189
+ }
1190
+ isImageURLInsertionEnabled() {
1191
+ return this.getImageExtensionConfig().enableImageURLInsertion !== false;
1192
+ }
1193
+ shouldRenderDropdown() {
1194
+ return this.getItems().length > 1;
1195
+ }
1142
1196
  /**
1143
1197
  * The below method is e2e-test covered in
1144
1198
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1171,7 +1225,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1171
1225
  (() => {
1172
1226
  internalIconManager.VegaInternalIconManager.register({ image: image });
1173
1227
  })();
1174
- ImageToolbarButtonSlimmer.items = [
1228
+ ImageToolbarButtonSlimmer.allItems = [
1175
1229
  {
1176
1230
  key: 'upload',
1177
1231
  label: 'Upload from computer',
@@ -1383,7 +1437,7 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1383
1437
  }
1384
1438
  }
1385
1439
  renderBtnWrapper(renderBtn) {
1386
- return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
1440
+ return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
1387
1441
  index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1388
1442
  index.h("div", { slot: "popover" }, this.renderContent())));
1389
1443
  }
@@ -1650,7 +1704,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
1650
1704
  }
1651
1705
  }
1652
1706
  renderBtnWrapper(renderBtn) {
1653
- return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
1707
+ return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
1654
1708
  index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1655
1709
  index.h("div", { slot: "popover" }, this.renderContent())));
1656
1710
  }
@@ -1897,7 +1951,7 @@ class BaseHandler {
1897
1951
  * @returns {boolean} boolean result
1898
1952
  */
1899
1953
  isEmptyParagraph(node) {
1900
- return node && node.childNodes && node.childNodes.length === 0;
1954
+ return node && node.nodeType === Node.ELEMENT_NODE && node.childNodes && node.childNodes.length === 0;
1901
1955
  }
1902
1956
  /**
1903
1957
  * Removes selected nodes within a range in a rich text editor content.
@@ -1995,7 +2049,7 @@ class InsertTextHandler extends BaseHandler {
1995
2049
  }
1996
2050
  if (cursorNode instanceof codeBlock.RTETextNode) {
1997
2051
  updateFlag = true;
1998
- cursorNode.apply(new replaceSelectedTextAction.ReplaceSelectedTextAction(text, currentRange));
2052
+ cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
1999
2053
  }
2000
2054
  }
2001
2055
  updateFlag &&
@@ -2010,7 +2064,7 @@ class InsertTextHandler extends BaseHandler {
2010
2064
  // The selected nodes is multiple nodes
2011
2065
  const cursorNode = this.removeSelectionRange(true);
2012
2066
  if (cursorNode instanceof codeBlock.RTETextNode) {
2013
- cursorNode.apply(new replaceSelectedTextAction.ReplaceSelectedTextAction(text, currentRange));
2067
+ cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
2014
2068
  this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(startOffset + text.length, cursorNode.text.length));
2015
2069
  }
2016
2070
  }
@@ -2258,7 +2312,7 @@ class InsertLineBreakHandler extends BaseHandler {
2258
2312
  getNextRTENode(lineBreakNode) {
2259
2313
  const index = lineBreakNode.parent.children.indexOf(lineBreakNode);
2260
2314
  const nextNode = lineBreakNode.parent.children[index + 1];
2261
- return nextNode || lineBreakNode;
2315
+ return nextNode && nextNode.isContentEditable() ? nextNode : lineBreakNode;
2262
2316
  }
2263
2317
  }
2264
2318
 
@@ -2538,6 +2592,7 @@ class PasteContentAction extends codeBlock.ModifyContentAction {
2538
2592
  constructor(blocksToBeInserted, startNode, startOffset, rteRange) {
2539
2593
  super();
2540
2594
  this.type = codeBlock.ModifyContentActionType.PASTE_CONTENT;
2595
+ this.futureFocusAtEnd = false;
2541
2596
  this.blocksToBeInserted = blocksToBeInserted;
2542
2597
  this.startNode = startNode;
2543
2598
  this.startOffset = startOffset;
@@ -2555,19 +2610,108 @@ class InsertPasteHandler extends BaseHandler {
2555
2610
  * @param {InputEvent} event - Paste event.
2556
2611
  */
2557
2612
  handleEvent(event) {
2613
+ const currentRange = this.selectionController.getCurrentRange();
2614
+ const payload = this.getPastePayload(event);
2615
+ if (this.insertPlainTextInline(payload, currentRange)) {
2616
+ return;
2617
+ }
2558
2618
  const blocks = this.parsePastedElements(event);
2559
- const { startContainer } = this.selectionController.getCurrentRange();
2560
- if (this.isRootContainer(startContainer)) {
2619
+ const startContainer = (currentRange === null || currentRange === void 0 ? void 0 : currentRange.startContainer) || undefined;
2620
+ if (!startContainer) {
2621
+ // When the selection/range is unavailable (e.g. the caret was lost while
2622
+ // the paste-mode chooser had focus), still append the pasted content to
2623
+ // the root so the paste is never silently dropped.
2624
+ this.insertBlocksToRoot(blocks);
2625
+ }
2626
+ else if (this.isRootContainer(startContainer)) {
2561
2627
  this.insertBlocksToRoot(blocks);
2562
2628
  // TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
2563
2629
  }
2564
2630
  else if (this.isEmptyParagraph(startContainer)) {
2565
- this.insertBlocksBeforeEmptyBlock(blocks);
2631
+ this.insertBlocksBeforeEmptyBlock(blocks, currentRange);
2566
2632
  }
2567
2633
  else {
2568
- this.insertBlocksToContent(blocks);
2634
+ this.insertBlocksToContent(blocks, currentRange);
2569
2635
  }
2570
2636
  }
2637
+ /**
2638
+ * Inserts plain-text paste content into the current text node at caret position.
2639
+ *
2640
+ * @param {RTEPastePayload} payload - Clipboard payload.
2641
+ * @param {RTERange} currentRange - Current selection range.
2642
+ * @returns {boolean} True when inline insertion is handled.
2643
+ */
2644
+ insertPlainTextInline(payload, currentRange) {
2645
+ var _a, _b;
2646
+ const selectedNodes = ((_b = (_a = this.selectionController).getSelectedNodes) === null || _b === void 0 ? void 0 : _b.call(_a)) || [];
2647
+ if (!this.shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes)) {
2648
+ return false;
2649
+ }
2650
+ const text = payload.text.replace(/\r\n?/g, '\n');
2651
+ const cursorNode = selectedNodes.find((node) => node instanceof codeBlock.RTETextNode) || currentRange.startNode;
2652
+ if (!(cursorNode instanceof codeBlock.RTETextNode)) {
2653
+ return false;
2654
+ }
2655
+ cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
2656
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, currentRange.startOffset + text.length);
2657
+ return true;
2658
+ }
2659
+ /**
2660
+ * Determines whether the payload should be inserted as inline plain text.
2661
+ *
2662
+ * @param {RTEPastePayload} payload - Clipboard payload.
2663
+ * @param {RTERange} currentRange - Current selection range.
2664
+ * @param {RTENode[]} selectedNodes - Currently selected nodes.
2665
+ * @returns {boolean} True when inline plain-text insertion should be used.
2666
+ */
2667
+ shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes = []) {
2668
+ if (!currentRange || !currentRange.startContainer) {
2669
+ return false;
2670
+ }
2671
+ if (this.isRootContainer(currentRange.startContainer)) {
2672
+ return false;
2673
+ }
2674
+ const text = (payload.text || '').replace(/\r\n?/g, '\n');
2675
+ if (!text) {
2676
+ return false;
2677
+ }
2678
+ const html = payload.html || '';
2679
+ if (!html) {
2680
+ return true;
2681
+ }
2682
+ const hasTextNodeSelection = selectedNodes.some((node) => node instanceof codeBlock.RTETextNode) ||
2683
+ currentRange.startNode instanceof codeBlock.RTETextNode;
2684
+ if (!hasTextNodeSelection) {
2685
+ return false;
2686
+ }
2687
+ // Use the inline plain‑text path only when HTML and plain text match exactly and no formatting exists;
2688
+ // otherwise route through the block path to preserve styles.
2689
+ const analysis = this.analyzeHtmlContent(html);
2690
+ return analysis.plainText === text && !analysis.hasFormatting;
2691
+ }
2692
+ /**
2693
+ * Analyzes HTML content to extract plain text and detect inline formatting,
2694
+ * parsing the HTML once to avoid redundant StylePreservation and DOMParser calls.
2695
+ *
2696
+ * @param {string} html - Clipboard text/html payload.
2697
+ * @returns {HtmlAnalysisResult} Analysis result with plainText and hasFormatting properties.
2698
+ */
2699
+ analyzeHtmlContent(html) {
2700
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2701
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2702
+ const body = parsedDoc.body;
2703
+ // Extract plain text from the parsed document
2704
+ const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
2705
+ // Check for rich inline formatting
2706
+ let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
2707
+ if (!hasFormatting) {
2708
+ hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
2709
+ const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
2710
+ return this.styleContainsRichFormatting(style);
2711
+ });
2712
+ }
2713
+ return { plainText, hasFormatting };
2714
+ }
2571
2715
  /**
2572
2716
  * Insert the blocks to root
2573
2717
  *
@@ -2577,37 +2721,54 @@ class InsertPasteHandler extends BaseHandler {
2577
2721
  this.currentState.apply(new codeBlock.AppendChildrenAction(blocks));
2578
2722
  }
2579
2723
  /**
2580
- * Insert the blocks to content
2724
+ * Insert the blocks into the current content block at the specified range.
2581
2725
  *
2582
2726
  * @param { RTEContentBlock[]} blocks - blocks
2727
+ * @param { RTERange } rteRange - rteRange
2583
2728
  */
2584
- insertBlocksToContent(blocks) {
2585
- const cursorNode = this.removeSelectionRange();
2729
+ insertBlocksToContent(blocks, rteRange) {
2730
+ var _a;
2731
+ const isCollapsedRange = rteRange.startNode === rteRange.endNode && rteRange.startOffset === rteRange.endOffset;
2732
+ const cursorNode = isCollapsedRange
2733
+ ? rteRange.startNode
2734
+ : this.removeSelectionRange();
2586
2735
  if (cursorNode && cursorNode.parent) {
2587
- const { startOffset } = this.selectionController.getCurrentRange();
2588
- const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
2736
+ const pasteAction = new PasteContentAction(blocks, cursorNode, rteRange.startOffset, rteRange);
2589
2737
  cursorNode.parent.apply(pasteAction);
2590
- if (pasteAction.futureFocusBlock) {
2591
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2738
+ if (pasteAction.futureFocusNode) {
2739
+ this.selectionController.enqueueSelectionRangeFutureState(pasteAction.futureFocusNode, (_a = pasteAction.futureFocusNodeOffset) !== null && _a !== void 0 ? _a : 0);
2740
+ }
2741
+ else if (pasteAction.futureFocusBlock) {
2742
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2592
2743
  }
2593
2744
  }
2745
+ else {
2746
+ // No resolvable cursor position: fall back to appending at the root so
2747
+ // the pasted content is preserved instead of being discarded.
2748
+ this.insertBlocksToRoot(blocks);
2749
+ }
2594
2750
  }
2595
2751
  /**
2596
2752
  * Insert the blocks before to current block
2597
2753
  *
2598
2754
  * @param { RTEContentBlock[]} blocks - blocks
2755
+ * @param { RTERange } rteRange - rteRange
2599
2756
  */
2600
- insertBlocksBeforeEmptyBlock(blocks) {
2757
+ insertBlocksBeforeEmptyBlock(blocks, rteRange) {
2601
2758
  const cursorNode = this.removeSelectionRange();
2602
- /* istanbul ignore next */
2603
2759
  const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
2604
2760
  if (currentBlock) {
2605
- const pasteAction = new PasteContentAction(blocks, currentBlock.children[0], 0, this.selectionController.getCurrentRange());
2761
+ const pasteAction = new PasteContentAction(blocks, cursorNode, 0, rteRange);
2606
2762
  currentBlock.apply(pasteAction);
2607
2763
  if (pasteAction.futureFocusBlock) {
2608
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2764
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2609
2765
  }
2610
2766
  }
2767
+ else {
2768
+ // No resolvable empty block: fall back to appending at the root so the
2769
+ // pasted content is preserved instead of being discarded.
2770
+ this.insertBlocksToRoot(blocks);
2771
+ }
2611
2772
  }
2612
2773
  /**
2613
2774
  * Format and parse elements from user paste with simple style preservation.
@@ -2616,30 +2777,76 @@ class InsertPasteHandler extends BaseHandler {
2616
2777
  * @returns {RTEContentBlock[]} - RTEContentBlock.
2617
2778
  */
2618
2779
  parsePastedElements(event) {
2619
- let pastedHTML = event.dataTransfer.getData('text/html');
2780
+ const payload = this.getPastePayload(event);
2781
+ let pastedHTML = payload.html || '';
2620
2782
  if (!pastedHTML) {
2621
- const pastedText = event.dataTransfer.getData('text/plain');
2622
- pastedHTML = this.parsePlainText(pastedText);
2783
+ pastedHTML = this.parsePlainText(payload.text || '');
2784
+ }
2785
+ else if (this.shouldTreatAsPlainTextPayload(pastedHTML)) {
2786
+ const plainSource = payload.text || this.extractPlainTextFromHtml(pastedHTML);
2787
+ pastedHTML = this.parsePlainText(plainSource);
2623
2788
  }
2624
2789
  const context = contentState.StylePreservator.preserve(pastedHTML);
2625
2790
  const safeHtml = context.getProcessedHtml();
2626
2791
  const parser = new DOMParser();
2627
2792
  const parsedDoc = parser.parseFromString(safeHtml, 'text/html');
2793
+ const rootElements = Array.from(parsedDoc.body.childNodes);
2794
+ context.restore(rootElements);
2795
+ this.normalizeImportedHtmlArtifacts(parsedDoc.body);
2628
2796
  const htmlElements = Array.from(parsedDoc.body.childNodes);
2629
- context.restore(htmlElements);
2630
- return contentState.ElementToDtoStrategyProcessor.process(htmlElements)
2797
+ const resultBlocks = contentState.ElementToDtoStrategyProcessor.process(htmlElements)
2631
2798
  .filter(Boolean)
2632
2799
  .map((output) => output.toDto())
2633
2800
  .filter(Boolean);
2801
+ // Fallback for synthetic payloads: if strategy conversion yields no blocks
2802
+ // but we still have plain text, create paragraph/text blocks directly.
2803
+ if (resultBlocks.length === 0 && (payload.text || '').trim() !== '') {
2804
+ return this.buildPlainTextFallbackBlocks(payload.text);
2805
+ }
2806
+ return resultBlocks;
2634
2807
  }
2635
2808
  /**
2636
- * Moves the caret to the next block element in a rich text editor.
2809
+ * Extracts readable plain text from clipboard HTML.
2637
2810
  *
2638
- * @param {RTEBlock} newBlock - Represents a new create block element in a rich text editor.
2811
+ * @param {string} html - Clipboard text/html payload.
2812
+ * @returns {string} - Plain text extracted from HTML.
2639
2813
  */
2640
- switchCaretPositionToNextElement(newBlock) {
2814
+ extractPlainTextFromHtml(html) {
2815
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations.
2816
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2817
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2818
+ return (parsedDoc.body.textContent || '').replace(/\r\n?/g, '\n');
2819
+ }
2820
+ /**
2821
+ * Builds plain-text paragraph blocks when element strategy parsing returns no output.
2822
+ *
2823
+ * @param {string} text - Plain text clipboard content.
2824
+ * @returns {RTEContentBlock[]} Fallback text blocks.
2825
+ */
2826
+ buildPlainTextFallbackBlocks(text) {
2827
+ return text.split('\n').map((line) => {
2828
+ const paragraph = new codeBlock.RTETextBlock(misc.generateUUID(), 'paragraph');
2829
+ const textNode = new codeBlock.RTETextNode(`${paragraph.id}1`, line, paragraph);
2830
+ paragraph.apply(new codeBlock.AppendChildrenAction([textNode]));
2831
+ return paragraph;
2832
+ });
2833
+ }
2834
+ /**
2835
+ * Moves the caret to a block element in a rich text editor after paste.
2836
+ *
2837
+ * @param {RTEBlock} newBlock - Block element to move the caret to.
2838
+ * @param {boolean} atEnd - When true, places the caret after the last character of the block's last node; otherwise at offset 0 of the first node.
2839
+ */
2840
+ switchCaretPositionToNextElement(newBlock, atEnd = false) {
2841
+ var _a, _b;
2641
2842
  if (newBlock && newBlock.children) {
2642
- this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2843
+ if (atEnd) {
2844
+ const lastNode = newBlock.children[newBlock.children.length - 1];
2845
+ this.selectionController.enqueueSelectionRangeFutureState(lastNode, (_b = (_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
2846
+ }
2847
+ else {
2848
+ this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2849
+ }
2643
2850
  }
2644
2851
  }
2645
2852
  /**
@@ -2649,16 +2856,217 @@ class InsertPasteHandler extends BaseHandler {
2649
2856
  * @returns {string} - The formatted HTML string.
2650
2857
  */
2651
2858
  parsePlainText(content) {
2859
+ if (this.shouldRenderAsCodeBlock(content)) {
2860
+ return `<pre><code>${codeBlock.escapeHtml(content)}</code></pre>`;
2861
+ }
2652
2862
  const lines = content.split('\n');
2653
2863
  return lines
2654
2864
  .map((line) => {
2655
2865
  if (line === '') {
2656
2866
  return '<p>\n</p>';
2657
2867
  }
2658
- return `<p>${line}</p>`;
2868
+ return `<p>${codeBlock.escapeHtml(line)}</p>`;
2659
2869
  })
2660
2870
  .join('');
2661
2871
  }
2872
+ /**
2873
+ * Detects whether plain text likely represents source code.
2874
+ *
2875
+ * @param {string} content - Clipboard plain text content.
2876
+ * @returns {boolean} True when the content should render as a code block.
2877
+ */
2878
+ shouldRenderAsCodeBlock(content) {
2879
+ const normalized = content.replace(/\r\n?/g, '\n').trim();
2880
+ if (!normalized) {
2881
+ return false;
2882
+ }
2883
+ const hasMultipleLines = normalized.includes('\n');
2884
+ const hasHtmlLikeTag = /<\/?[a-z][\w:-]*[^>]*>/i.test(normalized);
2885
+ const hasCodeFence = normalized.startsWith('```') && normalized.endsWith('```');
2886
+ const hasProgrammingTokens = /[{};]|=>|\b(function|const|let|var|class|import|export|return)\b/.test(normalized);
2887
+ if (hasCodeFence) {
2888
+ return true;
2889
+ }
2890
+ return hasHtmlLikeTag || (hasMultipleLines && hasProgrammingTokens);
2891
+ }
2892
+ /**
2893
+ * Removes pasted website artifacts that can cause visual regressions in the editor,
2894
+ * such as heading anchor tooltips and empty wrappers.
2895
+ *
2896
+ * @param {HTMLElement} body - Parsed clipboard html body.
2897
+ */
2898
+ normalizeImportedHtmlArtifacts(body) {
2899
+ this.removeHeadingArtifacts(body);
2900
+ this.removeEmptyBlocks(body);
2901
+ }
2902
+ /**
2903
+ * Removes heading copy-link/tooltip artifacts copied from documentation pages.
2904
+ *
2905
+ * @param {HTMLElement} body - Parsed clipboard html body.
2906
+ */
2907
+ removeHeadingArtifacts(body) {
2908
+ const selectors = [
2909
+ 'a.js-heading-link',
2910
+ 'a.c-heading-link',
2911
+ '.js-tooltip-popover',
2912
+ '.c-tooltip-popover',
2913
+ '[role="tooltip"]',
2914
+ ];
2915
+ body.querySelectorAll(selectors.join(',')).forEach((element) => element.remove());
2916
+ }
2917
+ /**
2918
+ * Removes empty block wrappers introduced by web copy/paste.
2919
+ *
2920
+ * @param {HTMLElement} body - Parsed clipboard html body.
2921
+ */
2922
+ removeEmptyBlocks(body) {
2923
+ const blockSelectors = ['p', 'div', 'section', 'article'];
2924
+ body.querySelectorAll(blockSelectors.join(',')).forEach((element) => {
2925
+ if (this.isEmptyVisualBlock(element)) {
2926
+ element.remove();
2927
+ }
2928
+ });
2929
+ }
2930
+ /**
2931
+ * Checks whether a block is visually empty and safe to remove.
2932
+ *
2933
+ * @param {HTMLElement} element - Block element to inspect.
2934
+ * @returns {boolean} True when the block has no visible content.
2935
+ */
2936
+ isEmptyVisualBlock(element) {
2937
+ if (element.tagName === 'DIV' && element.classList.contains('doc')) {
2938
+ return false;
2939
+ }
2940
+ const hasVisualChild = Boolean(element.querySelector('img,video,audio,iframe,canvas,svg,table,hr,pre,code,blockquote'));
2941
+ if (hasVisualChild) {
2942
+ return false;
2943
+ }
2944
+ return (element.textContent || '').trim() === '';
2945
+ }
2946
+ /**
2947
+ * Checks whether a text/html payload is effectively plain text.
2948
+ *
2949
+ * Some sources (e.g. terminals, code editors) place the copied text inside an
2950
+ * off-screen / visually hidden wrapper such as
2951
+ * `<pre><div style="position: absolute; left: -9999px;">text</div></pre>`.
2952
+ * Preserving that markup as rich content would render the pasted text
2953
+ * off-screen (appearing empty), so such payloads are treated as plain text.
2954
+ *
2955
+ * @param {string} html - Clipboard text/html payload.
2956
+ * @returns {boolean} True when the payload has no visible rich content.
2957
+ */
2958
+ shouldTreatAsPlainTextPayload(html) {
2959
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations
2960
+ // triggered by DOMParser processing HTML with style= attributes.
2961
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2962
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2963
+ const body = parsedDoc.body;
2964
+ if (body.children.length === 0) {
2965
+ return true;
2966
+ }
2967
+ const visibleClone = body.cloneNode(true);
2968
+ visibleClone.querySelectorAll('[style],[data-style]').forEach((element) => {
2969
+ if (this.isVisuallyHiddenElement(element)) {
2970
+ element.remove();
2971
+ }
2972
+ });
2973
+ if ((visibleClone.textContent || '').trim() !== '') {
2974
+ return false;
2975
+ }
2976
+ const hasVisibleMedia = Boolean(visibleClone.querySelector('img,video,audio,iframe,table,svg,canvas,math,object,embed'));
2977
+ if (hasVisibleMedia) {
2978
+ return false;
2979
+ }
2980
+ // If no visible text/media remains but original HTML contained text, it was
2981
+ // likely wrapped in hidden/off-screen containers and should be treated as plain text.
2982
+ return (body.textContent || '').trim() !== '';
2983
+ }
2984
+ /**
2985
+ * Returns true when a CSS style string contains bold, italic, underline,
2986
+ * strikethrough, or color declarations.
2987
+ *
2988
+ * @param {string} style - Inline CSS style string.
2989
+ * @returns {boolean} True when the style contains rich formatting.
2990
+ */
2991
+ styleContainsRichFormatting(style) {
2992
+ if (!style.trim()) {
2993
+ return false;
2994
+ }
2995
+ for (const declaration of style.split(';')) {
2996
+ const colonIndex = declaration.indexOf(':');
2997
+ if (colonIndex === -1) {
2998
+ continue;
2999
+ }
3000
+ const prop = declaration.slice(0, colonIndex).trim().toLowerCase();
3001
+ const value = declaration
3002
+ .slice(colonIndex + 1)
3003
+ .trim()
3004
+ .toLowerCase();
3005
+ switch (prop) {
3006
+ case 'font-weight':
3007
+ if (/bold|[5-9]\d{2}|1000/.test(value)) {
3008
+ return true;
3009
+ }
3010
+ break;
3011
+ case 'font-style':
3012
+ if (/italic|oblique/.test(value)) {
3013
+ return true;
3014
+ }
3015
+ break;
3016
+ case 'text-decoration':
3017
+ case 'text-decoration-line':
3018
+ if (/underline|line-through/.test(value)) {
3019
+ return true;
3020
+ }
3021
+ break;
3022
+ case 'color':
3023
+ case 'background-color':
3024
+ return true;
3025
+ }
3026
+ }
3027
+ return false;
3028
+ }
3029
+ /**
3030
+ * Determines whether an element is visually hidden or rendered off-screen
3031
+ * via its inline style, indicating a clipboard plain-text wrapper.
3032
+ *
3033
+ * @param {HTMLElement} element - Element to inspect.
3034
+ * @returns {boolean} True when the element is hidden or off-screen.
3035
+ */
3036
+ isVisuallyHiddenElement(element) {
3037
+ const style = (element.getAttribute('style') ||
3038
+ element.getAttribute('data-style') ||
3039
+ '').toLowerCase();
3040
+ if (!style) {
3041
+ return false;
3042
+ }
3043
+ if (/display\s*:\s*none/.test(style) || /visibility\s*:\s*hidden/.test(style)) {
3044
+ return true;
3045
+ }
3046
+ if (/clip\s*:\s*rect\(\s*0/.test(style) || style.includes('clip-path')) {
3047
+ return true;
3048
+ }
3049
+ const isPositioned = /position\s*:\s*(absolute|fixed)/.test(style);
3050
+ const isOffScreen = /(left|top|right|bottom)\s*:\s*-\d{3,}px/.test(style);
3051
+ return isPositioned && isOffScreen;
3052
+ }
3053
+ /**
3054
+ * Resolves paste payload from DataTransfer and synthetic-event fallback payload.
3055
+ *
3056
+ * @param {InputEvent} event - Paste event.
3057
+ * @returns {RTEPastePayload} - Paste payload.
3058
+ */
3059
+ getPastePayload(event) {
3060
+ const eventPayload = event
3061
+ .rtePastePayload || { html: '', text: '' };
3062
+ if (!event.dataTransfer) {
3063
+ return eventPayload;
3064
+ }
3065
+ return {
3066
+ html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
3067
+ text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
3068
+ };
3069
+ }
2662
3070
  }
2663
3071
 
2664
3072
  var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3369,11 +3777,11 @@ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
3369
3777
  const selectedNodes = this.selectionController.getSelectedNodes();
3370
3778
  const currentRange = this.selectionController.getCurrentRange();
3371
3779
  if (selectedNodes[0] instanceof codeBlock.RTETextNode && selectedNodes[0].isContentEditable()) {
3372
- selectedNodes[0].apply(new replaceSelectedTextAction.ReplaceSelectedTextAction('', currentRange));
3780
+ selectedNodes[0].apply(new imageExtension.ReplaceSelectedTextAction('', currentRange));
3373
3781
  }
3374
3782
  const endNode = selectedNodes[selectedNodes.length - 1];
3375
3783
  if (selectedNodes.length > 1 && endNode instanceof codeBlock.RTETextNode && endNode.isContentEditable()) {
3376
- selectedNodes[selectedNodes.length - 1].apply(new replaceSelectedTextAction.ReplaceSelectedTextAction('', currentRange));
3784
+ selectedNodes[selectedNodes.length - 1].apply(new imageExtension.ReplaceSelectedTextAction('', currentRange));
3377
3785
  }
3378
3786
  }
3379
3787
  /**
@@ -3667,7 +4075,7 @@ __decorate$c([
3667
4075
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3668
4076
 
3669
4077
  const undoIcon = {
3670
- icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M464 424c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-53-43-96-96-96l-334.1 0 95-95c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239c-4.5 4.5-7 10.6-7 17s2.5 12.5 7 17L143 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-95-95 334.1 0c26.5 0 48 21.5 48 48l0 96z"/></svg>`,
4078
+ icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M464 424c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-53-43-96-96-96l-334.1 0 95-95c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239c-4.5 4.5-7 10.6-7 17s2.5 12.5 7 17L143 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-95-95 334.1 0c26.5 0 48 21.5 48 48l0 96z"/></svg>`,
3671
4079
  };
3672
4080
 
3673
4081
  var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3704,7 +4112,7 @@ __decorate$b([
3704
4112
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
3705
4113
 
3706
4114
  const redoIcon = {
3707
- icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M48 424c0 13.3-10.7 24-24 24S0 437.3 0 424l0-96c0-53 43-96 96-96l334.1 0-95-95c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L505 239c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17L369 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l95-95-334.1 0c-26.5 0-48 21.5-48 48l0 96z"/></svg>`,
4115
+ icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M48 424c0 13.3-10.7 24-24 24S0 437.3 0 424l0-96c0-53 43-96 96-96l334.1 0-95-95c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L505 239c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17L369 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l95-95-334.1 0c-26.5 0-48 21.5-48 48l0 96z"/></svg>`,
3708
4116
  };
3709
4117
 
3710
4118
  var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3981,6 +4389,7 @@ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
3981
4389
  return {
3982
4390
  host: this.host,
3983
4391
  flushValue: this.flushValue,
4392
+ forceUpdate: index.forceUpdate,
3984
4393
  isSourceEditMode: this.isSourceEditMode,
3985
4394
  getSelectedNodes: this.getSelectedNodes,
3986
4395
  setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
@@ -4243,7 +4652,7 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
4243
4652
  render() {
4244
4653
  if (!this.allowSourceEdit)
4245
4654
  return;
4246
- const sourceCode = this.getSourceTemplate();
4655
+ const sourceCode = this.normalizeSourceCodeForEditing(this.getSourceTemplate());
4247
4656
  const sourceViewValue = this.sourceView ? CodeFormatter$1.format(sourceCode) : '';
4248
4657
  // Record the source view value when rendering, which will be used to compare with the current source view value when blurring the code block to determine whether to emit the source code change event.
4249
4658
  this.prevRecord = sourceCode;
@@ -4264,6 +4673,24 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
4264
4673
  getSourceTemplate() {
4265
4674
  return this.value.toHtml({ filterInlineStyles: this.sourceEditConfig.filterInlineStyles });
4266
4675
  }
4676
+ /**
4677
+ * Normalize source HTML for source-mode editing.
4678
+ *
4679
+ * `vega-code-block` renders code as HTML and will decode quote entities, so
4680
+ * convert quote entities inside style attributes to single quotes before entering
4681
+ * source mode. This preserves valid HTML when switching back to normal mode.
4682
+ */
4683
+ normalizeSourceCodeForEditing(html) {
4684
+ return html.replace(/style="([\s\S]*?)"/gi, (_match, styleValue) => {
4685
+ const normalizedStyleValue = styleValue
4686
+ .replace(/&amp;|&#38;|&#x26;/gi, '&')
4687
+ .replace(/&lt;|&#60;|&#x3c;/gi, '<')
4688
+ .replace(/&gt;|&#62;|&#x3e;/gi, '>')
4689
+ .replace(/&quot;|&#34;|&#x22;/gi, "'")
4690
+ .replace(/&apos;|&#39;|&#x27;/gi, "'");
4691
+ return `style="${normalizedStyleValue}"`;
4692
+ });
4693
+ }
4267
4694
  }
4268
4695
  __decorate$7([
4269
4696
  globalSlimmerRegistry.MapToComponentField()
@@ -4709,13 +5136,14 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
4709
5136
  }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
4710
5137
  index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
4711
5138
  this.icon && (index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) })),
4712
- this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
5139
+ this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
4713
5140
  index.h("slot", null)));
4714
5141
  }
4715
5142
  }
4716
5143
  (() => {
4717
5144
  internalIconManager.VegaInternalIconManager.register({
4718
5145
  'chevron-down': chevronDown.chevronDown,
5146
+ 'chevron-up': chevronUp.chevronUp,
4719
5147
  });
4720
5148
  })();
4721
5149
  __decorate$5([
@@ -4730,6 +5158,9 @@ __decorate$5([
4730
5158
  __decorate$5([
4731
5159
  globalSlimmerRegistry.MapToComponentField()
4732
5160
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
5161
+ __decorate$5([
5162
+ globalSlimmerRegistry.MapToComponentField()
5163
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
4733
5164
  __decorate$5([
4734
5165
  globalSlimmerRegistry.MapToComponentField()
4735
5166
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
@@ -4793,6 +5224,12 @@ const VegaRichTextEditorToolbarButton = class {
4793
5224
  * @vegaVersion 2.34.0
4794
5225
  */
4795
5226
  this.showArrowIcon = false;
5227
+ /**
5228
+ * Specifies the arrow icon name when `showArrowIcon` is enabled.
5229
+ *
5230
+ * @vegaVersion 2.93.0
5231
+ */
5232
+ this.arrowIcon = 'chevron-down';
4796
5233
  /**
4797
5234
  * Specifies whether the toolbar button in the rich text editor is represented by an icon.
4798
5235
  *
@@ -5071,7 +5508,7 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
5071
5508
  return this.popoverRef;
5072
5509
  }
5073
5510
  render() {
5074
- return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
5511
+ return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
5075
5512
  this.popoverRef = ref;
5076
5513
  domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverShow, () => {
5077
5514
  var _a, _b, _c;