@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
@@ -1,4 +1,4 @@
1
- import { h, H as Host, F as Fragment, r as registerInstance, c as createEvent, g as getElement } from './index-090d31ca.js';
1
+ import { h, H as Host, F as Fragment, f as forceUpdate, r as registerInstance, c as createEvent, g as getElement } from './index-090d31ca.js';
2
2
  import { c as MapToComponentField, M as MapToComponentMethod, V as VegaSlimmer, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
3
3
  import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-4b1afd04.js';
4
4
  import { s as sanitizeVegaComponent } from './component-7d906393.js';
@@ -6,32 +6,33 @@ import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-6af5cf
6
6
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
7
7
  import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-ddff8662.js';
8
8
  import { t as VegaInternalComponentDidRender, e as VegaInternalRichTextEditorFlushChanges, d as VegaInternalRichTextEditDeleteSelectedNodes, H as VegaInternalRichTextImageClick, I as VegaInternalRichTextImageDeleteButtonClicked, z as VegaInternalCodeBlockBlur, a as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-827eb1ce.js';
9
- import { ai as VegaRTEOneRowHeightPx, R as RTETextNode, aj as BoldAnnotationAction, N as NodeAnnotationTypeEnum, ak as ItalicAnnotationAction, al as UnderlineAnnotationAction, b as RTETextBlock, T as TextStyleAnnotationAction, a3 as TextStyleAnnotation, am as BoldAnnotation, F as BlockAnnotationTypeEnum, an as ClearFormattingAnnotationAction, ao as CodeAnnotationAction, ap as StrikethroughAnnotationAction, ag as SelectionChangeAction, ae as LinkAnnotationAction, aq as IndentAnnotationAction, M as ModifyContentAction, i as ModifyContentActionType, q as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, e as AppendChildrenAction, ad as ZERO_WIDTH_SPACE, U as UpdateTextAction, g as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, f as RTENode, a as RTEBlock, k as RemoveChildrenAction, O as ReplaceChildNodesAction, p as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems, ac as VegaRTEDefaultTextStyleItems } from './code-block-b71b2aa4.js';
10
- import { d as RTEDTORendererManager, V as VegaRTELinkExtension } from './link-extension-f1a3bea7.js';
11
- import { i as isNonNullable } from './type-guard-91087018.js';
9
+ import { S as SHADOW_ROOT_ELEMENT_SCROLLING, F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-1c86e974.js';
10
+ import { ai as VegaRTEOneRowHeightPx, R as RTETextNode, aj as BoldAnnotationAction, N as NodeAnnotationTypeEnum, ak as ItalicAnnotationAction, al as UnderlineAnnotationAction, b as RTETextBlock, T as TextStyleAnnotationAction, a3 as TextStyleAnnotation, am as BoldAnnotation, F as BlockAnnotationTypeEnum, an as ClearFormattingAnnotationAction, ao as CodeAnnotationAction, ap as StrikethroughAnnotationAction, ag as SelectionChangeAction, ae as LinkAnnotationAction, aq as IndentAnnotationAction, M as ModifyContentAction, i as ModifyContentActionType, q as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, e as AppendChildrenAction, ad as ZERO_WIDTH_SPACE, U as UpdateTextAction, g as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, f as RTENode, a as RTEBlock, k as RemoveChildrenAction, O as ReplaceChildNodesAction, ar as escapeHtml, p as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems, ac as VegaRTEDefaultTextStyleItems } from './code-block-e12588fe.js';
11
+ import { d as RTEDTORendererManager, V as VegaRTELinkExtension } from './link-extension-97fcb8fb.js';
12
+ import { i as isNonNullable } from './type-guard-ec5e8628.js';
12
13
  import { V as VegaInternalIconManager } from './internal-icon-manager-e7c57096.js';
13
- import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-98232dc4.js';
14
- import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, $ as VegaImageInserted, a0 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-d3017041.js';
14
+ import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-b3b6c308.js';
15
+ import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, a0 as VegaImageInserted, a1 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-270fe47e.js';
15
16
  import { g as generateUUID } from './misc-9fdbcfbb.js';
16
17
  import { w as waitForComponentDidRender } from './wait-for-component-did-render-0c237cb8.js';
17
- import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-cfe1d8a7.js';
18
- import { c as createEventEmitSlimmer } from './event-emit-slimmer-03deba18.js';
18
+ import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-b6c7e4a7.js';
19
+ import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-395c23e3.js';
20
+ import { c as createEventEmitSlimmer } from './event-emit-slimmer-db4a82e0.js';
19
21
  import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-0f72ce74.js';
20
- import { f as RTEImageNode, b as RTEListItemBlock, V as VegaRTEContent, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, i as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-909099f8.js';
22
+ import { f as RTEImageNode, b as RTEListItemBlock, V as VegaRTEContent, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, i as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-8032467a.js';
21
23
  import { b as AlignLeft, A as AlignCenter, c as AlignRight, a as AlignJustify } from './align-left-7f959adf.js';
22
- import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-282df6e5.js';
23
- import { F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-1c86e974.js';
24
+ import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-4e8eb313.js';
24
25
  import { O as Observer } from './observer-3959f9dd.js';
25
26
  import { d as debounce } from './timer-9321173b.js';
26
27
  import { D as DarkModeStateControllerSlimmer } from './dark-mode-state-controller-slimmer-778dd929.js';
27
- import { R as ReplaceSelectedTextAction } from './replace-selected-text-action-c0817b2b.js';
28
- import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-0edb8ba7.js';
29
- import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-f24618c5.js';
30
- import { T as TranslationSlimmer } from './translation-slimmer-60408f13.js';
28
+ import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-71f8ee98.js';
29
+ import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-96c14f5a.js';
30
+ import { T as TranslationSlimmer } from './translation-slimmer-21748a0e.js';
31
31
  import { V as VegaInternalThemeManager } from './dark-mode-style-controller-ca5afd2d.js';
32
32
  import { A as AutoRunWhenReRenderTaskQueueSlimmer } from './auto-run-when-re-render-task-queue-slimmer.abstract-27820d4c.js';
33
33
  import { i as isArrayEqual } from './array-7888f339.js';
34
34
  import { c as chevronDown } from './chevron-down-4a75d28e.js';
35
+ import { c as chevronUp } from './chevron-up-b1989751.js';
35
36
  import { t as trashCan } from './trash-can-8819a939.js';
36
37
  import { f as findParent } from './ui-d73f756a.js';
37
38
  import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
@@ -40,7 +41,7 @@ import './typography-19c3b9be.js';
40
41
  import './object-0c277f57.js';
41
42
  import './breakpoints-d9faf11c.js';
42
43
  import './ui-93922c59.js';
43
- import './internal-translation-controller-8e8a514a.js';
44
+ import './internal-translation-controller-16709132.js';
44
45
  import './icon-manager-4ef3f6dd.js';
45
46
  import './create-public-api-runtime-metrics-slimmer-48f85199.js';
46
47
  import './dynamic-slimmer-90b8af32.js';
@@ -52,10 +53,10 @@ import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
52
53
  import './mutation-observer-slimmer-58ebc13c.js';
53
54
  import './mutation-observer-filters-1a054fb0.js';
54
55
  import './sub-state-observer-slimmer-64532d94.js';
55
- import './internal-vega-event-manager-75e5e3bb.js';
56
- import './range-e63068d1.js';
57
- import './keyboard-manager-slimmer-61d4c79b.js';
58
- import './keyboard-manager-fe885db1.js';
56
+ import './internal-vega-event-manager-48690e5b.js';
57
+ import './range-e999837f.js';
58
+ import './keyboard-manager-slimmer-f3f66c15.js';
59
+ import './keyboard-manager-a0c3e1cf.js';
59
60
  import './vega-env-manager-8f8dc473.js';
60
61
  import './feature-flag-controller-3fd04ea9.js';
61
62
  import './index-9c9865c0.js';
@@ -90,9 +91,18 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
90
91
  'disabled': this.disabled,
91
92
  'vega-hidden': this.sourceView,
92
93
  }, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
93
- h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions }),
94
+ h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
94
95
  this.renderCharacterCounter()));
95
96
  };
97
+ /**
98
+ * Propagates rich-text content scrolling inside shadow root so open appender
99
+ * can force position recalculation via ElementAppenderSlimmer.
100
+ */
101
+ this.notifyContentScrolling = () => {
102
+ ChangeManager.notify(SHADOW_ROOT_ELEMENT_SCROLLING, {
103
+ host: this.host,
104
+ });
105
+ };
96
106
  this.renderCharacterCounter = () => {
97
107
  return (h("div", { class: {
98
108
  'text-editor-counter': true,
@@ -586,7 +596,7 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
586
596
  };
587
597
  }
588
598
  renderBtnWrapper(renderBtn) {
589
- return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
599
+ return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
590
600
  this.addDropdownObserver(ref);
591
601
  } },
592
602
  renderBtn({ showArrowIcon: true }),
@@ -1033,6 +1043,7 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1033
1043
  super({
1034
1044
  icon: 'image',
1035
1045
  tooltip: { text: 'Image' },
1046
+ autoFocusOnClick: false,
1036
1047
  });
1037
1048
  this.insertURLImage = async () => {
1038
1049
  const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
@@ -1045,18 +1056,21 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1045
1056
  this.uploadInputRef.click();
1046
1057
  break;
1047
1058
  case 'url':
1048
- this.currentRange = this.selectionController.getCurrentRange();
1049
- this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1050
- this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1051
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1052
- this.host.parentElement.append(this.insertURLModalRef);
1053
- this.insertURLInputRef.value = '';
1054
- await this.insertURLModalRef.modal('show');
1055
- await this.insertURLInputRef.doFocus();
1059
+ await this.openInsertURLModal();
1056
1060
  break;
1057
1061
  }
1058
1062
  await this.dropdownRef.hide();
1059
1063
  };
1064
+ this.openInsertURLModal = async () => {
1065
+ this.currentRange = this.selectionController.getCurrentRange();
1066
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1067
+ this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1068
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1069
+ this.host.parentElement.append(this.insertURLModalRef);
1070
+ this.insertURLInputRef.value = '';
1071
+ await this.insertURLModalRef.modal('show');
1072
+ await this.insertURLInputRef.doFocus();
1073
+ };
1060
1074
  /**
1061
1075
  * The below method is e2e-test covered in
1062
1076
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1078,15 +1092,33 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1078
1092
  };
1079
1093
  }
1080
1094
  renderBtnWrapper(renderBtn) {
1095
+ const shouldRenderDropdown = this.shouldRenderDropdown();
1096
+ const shouldRenderUpload = this.isImageUploadEnabled();
1097
+ const shouldRenderUrlInsertion = this.isImageURLInsertionEnabled();
1098
+ if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
1099
+ return null;
1100
+ }
1081
1101
  return (h("vega-box", null,
1082
- h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1102
+ shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
1083
1103
  this.dropdownRef = ref;
1084
1104
  this.addDropdownObserver(ref);
1085
1105
  } },
1086
1106
  renderBtn({ showArrowIcon: true }),
1087
- h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
1088
- this.renderUploadInput(),
1089
- this.renderInsertURLModal()));
1107
+ h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent()))) : (renderBtn({})),
1108
+ shouldRenderUpload ? this.renderUploadInput() : null,
1109
+ shouldRenderUrlInsertion ? this.renderInsertURLModal() : null));
1110
+ }
1111
+ onClick() {
1112
+ if (this.shouldRenderDropdown()) {
1113
+ return;
1114
+ }
1115
+ if (this.isImageURLInsertionEnabled()) {
1116
+ void this.openInsertURLModal();
1117
+ return;
1118
+ }
1119
+ if (this.isImageUploadEnabled()) {
1120
+ this.uploadInputRef.click();
1121
+ }
1090
1122
  }
1091
1123
  isSelected() {
1092
1124
  return false;
@@ -1099,10 +1131,20 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1099
1131
  this.shouldDisabledToolbar(selectedBlock, ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1100
1132
  }
1101
1133
  renderDropdownContent() {
1102
- return (h(Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
1134
+ return (h(Fragment, null, this.getItems().map((item) => {
1103
1135
  return (h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
1104
1136
  })));
1105
1137
  }
1138
+ getItems() {
1139
+ return ImageToolbarButtonSlimmer.allItems.filter((item) => {
1140
+ if (item.key === 'upload') {
1141
+ return this.isImageUploadEnabled();
1142
+ }
1143
+ else {
1144
+ return this.isImageURLInsertionEnabled();
1145
+ }
1146
+ });
1147
+ }
1106
1148
  renderUploadInput() {
1107
1149
  return (h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
1108
1150
  }
@@ -1135,6 +1177,18 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1135
1177
  addModalInsertObserver(buttonRef) {
1136
1178
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, VegaClick, this.insertURLImage);
1137
1179
  }
1180
+ getImageExtensionConfig() {
1181
+ return VegaRTEImageExtension.configStore.get(this.host) || {};
1182
+ }
1183
+ isImageUploadEnabled() {
1184
+ return this.getImageExtensionConfig().enableImageUpload !== false;
1185
+ }
1186
+ isImageURLInsertionEnabled() {
1187
+ return this.getImageExtensionConfig().enableImageURLInsertion !== false;
1188
+ }
1189
+ shouldRenderDropdown() {
1190
+ return this.getItems().length > 1;
1191
+ }
1138
1192
  /**
1139
1193
  * The below method is e2e-test covered in
1140
1194
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1167,7 +1221,7 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1167
1221
  (() => {
1168
1222
  VegaInternalIconManager.register({ image: image });
1169
1223
  })();
1170
- ImageToolbarButtonSlimmer.items = [
1224
+ ImageToolbarButtonSlimmer.allItems = [
1171
1225
  {
1172
1226
  key: 'upload',
1173
1227
  label: 'Upload from computer',
@@ -1379,7 +1433,7 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
1379
1433
  }
1380
1434
  }
1381
1435
  renderBtnWrapper(renderBtn) {
1382
- return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
1436
+ return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
1383
1437
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1384
1438
  h("div", { slot: "popover" }, this.renderContent())));
1385
1439
  }
@@ -1646,7 +1700,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
1646
1700
  }
1647
1701
  }
1648
1702
  renderBtnWrapper(renderBtn) {
1649
- return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
1703
+ return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
1650
1704
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1651
1705
  h("div", { slot: "popover" }, this.renderContent())));
1652
1706
  }
@@ -1893,7 +1947,7 @@ class BaseHandler {
1893
1947
  * @returns {boolean} boolean result
1894
1948
  */
1895
1949
  isEmptyParagraph(node) {
1896
- return node && node.childNodes && node.childNodes.length === 0;
1950
+ return node && node.nodeType === Node.ELEMENT_NODE && node.childNodes && node.childNodes.length === 0;
1897
1951
  }
1898
1952
  /**
1899
1953
  * Removes selected nodes within a range in a rich text editor content.
@@ -2254,7 +2308,7 @@ class InsertLineBreakHandler extends BaseHandler {
2254
2308
  getNextRTENode(lineBreakNode) {
2255
2309
  const index = lineBreakNode.parent.children.indexOf(lineBreakNode);
2256
2310
  const nextNode = lineBreakNode.parent.children[index + 1];
2257
- return nextNode || lineBreakNode;
2311
+ return nextNode && nextNode.isContentEditable() ? nextNode : lineBreakNode;
2258
2312
  }
2259
2313
  }
2260
2314
 
@@ -2534,6 +2588,7 @@ class PasteContentAction extends ModifyContentAction {
2534
2588
  constructor(blocksToBeInserted, startNode, startOffset, rteRange) {
2535
2589
  super();
2536
2590
  this.type = ModifyContentActionType.PASTE_CONTENT;
2591
+ this.futureFocusAtEnd = false;
2537
2592
  this.blocksToBeInserted = blocksToBeInserted;
2538
2593
  this.startNode = startNode;
2539
2594
  this.startOffset = startOffset;
@@ -2551,18 +2606,107 @@ class InsertPasteHandler extends BaseHandler {
2551
2606
  * @param {InputEvent} event - Paste event.
2552
2607
  */
2553
2608
  handleEvent(event) {
2609
+ const currentRange = this.selectionController.getCurrentRange();
2610
+ const payload = this.getPastePayload(event);
2611
+ if (this.insertPlainTextInline(payload, currentRange)) {
2612
+ return;
2613
+ }
2554
2614
  const blocks = this.parsePastedElements(event);
2555
- const { startContainer } = this.selectionController.getCurrentRange();
2556
- if (this.isRootContainer(startContainer)) {
2615
+ const startContainer = (currentRange === null || currentRange === void 0 ? void 0 : currentRange.startContainer) || undefined;
2616
+ if (!startContainer) {
2617
+ // When the selection/range is unavailable (e.g. the caret was lost while
2618
+ // the paste-mode chooser had focus), still append the pasted content to
2619
+ // the root so the paste is never silently dropped.
2620
+ this.insertBlocksToRoot(blocks);
2621
+ }
2622
+ else if (this.isRootContainer(startContainer)) {
2557
2623
  this.insertBlocksToRoot(blocks);
2558
2624
  // TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
2559
2625
  }
2560
2626
  else if (this.isEmptyParagraph(startContainer)) {
2561
- this.insertBlocksBeforeEmptyBlock(blocks);
2627
+ this.insertBlocksBeforeEmptyBlock(blocks, currentRange);
2562
2628
  }
2563
2629
  else {
2564
- this.insertBlocksToContent(blocks);
2630
+ this.insertBlocksToContent(blocks, currentRange);
2631
+ }
2632
+ }
2633
+ /**
2634
+ * Inserts plain-text paste content into the current text node at caret position.
2635
+ *
2636
+ * @param {RTEPastePayload} payload - Clipboard payload.
2637
+ * @param {RTERange} currentRange - Current selection range.
2638
+ * @returns {boolean} True when inline insertion is handled.
2639
+ */
2640
+ insertPlainTextInline(payload, currentRange) {
2641
+ var _a, _b;
2642
+ const selectedNodes = ((_b = (_a = this.selectionController).getSelectedNodes) === null || _b === void 0 ? void 0 : _b.call(_a)) || [];
2643
+ if (!this.shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes)) {
2644
+ return false;
2645
+ }
2646
+ const text = payload.text.replace(/\r\n?/g, '\n');
2647
+ const cursorNode = selectedNodes.find((node) => node instanceof RTETextNode) || currentRange.startNode;
2648
+ if (!(cursorNode instanceof RTETextNode)) {
2649
+ return false;
2650
+ }
2651
+ cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
2652
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, currentRange.startOffset + text.length);
2653
+ return true;
2654
+ }
2655
+ /**
2656
+ * Determines whether the payload should be inserted as inline plain text.
2657
+ *
2658
+ * @param {RTEPastePayload} payload - Clipboard payload.
2659
+ * @param {RTERange} currentRange - Current selection range.
2660
+ * @param {RTENode[]} selectedNodes - Currently selected nodes.
2661
+ * @returns {boolean} True when inline plain-text insertion should be used.
2662
+ */
2663
+ shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes = []) {
2664
+ if (!currentRange || !currentRange.startContainer) {
2665
+ return false;
2666
+ }
2667
+ if (this.isRootContainer(currentRange.startContainer)) {
2668
+ return false;
2669
+ }
2670
+ const text = (payload.text || '').replace(/\r\n?/g, '\n');
2671
+ if (!text) {
2672
+ return false;
2673
+ }
2674
+ const html = payload.html || '';
2675
+ if (!html) {
2676
+ return true;
2677
+ }
2678
+ const hasTextNodeSelection = selectedNodes.some((node) => node instanceof RTETextNode) ||
2679
+ currentRange.startNode instanceof RTETextNode;
2680
+ if (!hasTextNodeSelection) {
2681
+ return false;
2565
2682
  }
2683
+ // Use the inline plain‑text path only when HTML and plain text match exactly and no formatting exists;
2684
+ // otherwise route through the block path to preserve styles.
2685
+ const analysis = this.analyzeHtmlContent(html);
2686
+ return analysis.plainText === text && !analysis.hasFormatting;
2687
+ }
2688
+ /**
2689
+ * Analyzes HTML content to extract plain text and detect inline formatting,
2690
+ * parsing the HTML once to avoid redundant StylePreservation and DOMParser calls.
2691
+ *
2692
+ * @param {string} html - Clipboard text/html payload.
2693
+ * @returns {HtmlAnalysisResult} Analysis result with plainText and hasFormatting properties.
2694
+ */
2695
+ analyzeHtmlContent(html) {
2696
+ const safeHtml = StylePreservator.preserve(html).getProcessedHtml();
2697
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2698
+ const body = parsedDoc.body;
2699
+ // Extract plain text from the parsed document
2700
+ const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
2701
+ // Check for rich inline formatting
2702
+ let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
2703
+ if (!hasFormatting) {
2704
+ hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
2705
+ const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
2706
+ return this.styleContainsRichFormatting(style);
2707
+ });
2708
+ }
2709
+ return { plainText, hasFormatting };
2566
2710
  }
2567
2711
  /**
2568
2712
  * Insert the blocks to root
@@ -2573,37 +2717,54 @@ class InsertPasteHandler extends BaseHandler {
2573
2717
  this.currentState.apply(new AppendChildrenAction(blocks));
2574
2718
  }
2575
2719
  /**
2576
- * Insert the blocks to content
2720
+ * Insert the blocks into the current content block at the specified range.
2577
2721
  *
2578
2722
  * @param { RTEContentBlock[]} blocks - blocks
2723
+ * @param { RTERange } rteRange - rteRange
2579
2724
  */
2580
- insertBlocksToContent(blocks) {
2581
- const cursorNode = this.removeSelectionRange();
2725
+ insertBlocksToContent(blocks, rteRange) {
2726
+ var _a;
2727
+ const isCollapsedRange = rteRange.startNode === rteRange.endNode && rteRange.startOffset === rteRange.endOffset;
2728
+ const cursorNode = isCollapsedRange
2729
+ ? rteRange.startNode
2730
+ : this.removeSelectionRange();
2582
2731
  if (cursorNode && cursorNode.parent) {
2583
- const { startOffset } = this.selectionController.getCurrentRange();
2584
- const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
2732
+ const pasteAction = new PasteContentAction(blocks, cursorNode, rteRange.startOffset, rteRange);
2585
2733
  cursorNode.parent.apply(pasteAction);
2586
- if (pasteAction.futureFocusBlock) {
2587
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2734
+ if (pasteAction.futureFocusNode) {
2735
+ this.selectionController.enqueueSelectionRangeFutureState(pasteAction.futureFocusNode, (_a = pasteAction.futureFocusNodeOffset) !== null && _a !== void 0 ? _a : 0);
2736
+ }
2737
+ else if (pasteAction.futureFocusBlock) {
2738
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2588
2739
  }
2589
2740
  }
2741
+ else {
2742
+ // No resolvable cursor position: fall back to appending at the root so
2743
+ // the pasted content is preserved instead of being discarded.
2744
+ this.insertBlocksToRoot(blocks);
2745
+ }
2590
2746
  }
2591
2747
  /**
2592
2748
  * Insert the blocks before to current block
2593
2749
  *
2594
2750
  * @param { RTEContentBlock[]} blocks - blocks
2751
+ * @param { RTERange } rteRange - rteRange
2595
2752
  */
2596
- insertBlocksBeforeEmptyBlock(blocks) {
2753
+ insertBlocksBeforeEmptyBlock(blocks, rteRange) {
2597
2754
  const cursorNode = this.removeSelectionRange();
2598
- /* istanbul ignore next */
2599
2755
  const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
2600
2756
  if (currentBlock) {
2601
- const pasteAction = new PasteContentAction(blocks, currentBlock.children[0], 0, this.selectionController.getCurrentRange());
2757
+ const pasteAction = new PasteContentAction(blocks, cursorNode, 0, rteRange);
2602
2758
  currentBlock.apply(pasteAction);
2603
2759
  if (pasteAction.futureFocusBlock) {
2604
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2760
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2605
2761
  }
2606
2762
  }
2763
+ else {
2764
+ // No resolvable empty block: fall back to appending at the root so the
2765
+ // pasted content is preserved instead of being discarded.
2766
+ this.insertBlocksToRoot(blocks);
2767
+ }
2607
2768
  }
2608
2769
  /**
2609
2770
  * Format and parse elements from user paste with simple style preservation.
@@ -2612,30 +2773,76 @@ class InsertPasteHandler extends BaseHandler {
2612
2773
  * @returns {RTEContentBlock[]} - RTEContentBlock.
2613
2774
  */
2614
2775
  parsePastedElements(event) {
2615
- let pastedHTML = event.dataTransfer.getData('text/html');
2776
+ const payload = this.getPastePayload(event);
2777
+ let pastedHTML = payload.html || '';
2616
2778
  if (!pastedHTML) {
2617
- const pastedText = event.dataTransfer.getData('text/plain');
2618
- pastedHTML = this.parsePlainText(pastedText);
2779
+ pastedHTML = this.parsePlainText(payload.text || '');
2780
+ }
2781
+ else if (this.shouldTreatAsPlainTextPayload(pastedHTML)) {
2782
+ const plainSource = payload.text || this.extractPlainTextFromHtml(pastedHTML);
2783
+ pastedHTML = this.parsePlainText(plainSource);
2619
2784
  }
2620
2785
  const context = StylePreservator.preserve(pastedHTML);
2621
2786
  const safeHtml = context.getProcessedHtml();
2622
2787
  const parser = new DOMParser();
2623
2788
  const parsedDoc = parser.parseFromString(safeHtml, 'text/html');
2789
+ const rootElements = Array.from(parsedDoc.body.childNodes);
2790
+ context.restore(rootElements);
2791
+ this.normalizeImportedHtmlArtifacts(parsedDoc.body);
2624
2792
  const htmlElements = Array.from(parsedDoc.body.childNodes);
2625
- context.restore(htmlElements);
2626
- return ElementToDtoStrategyProcessor.process(htmlElements)
2793
+ const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements)
2627
2794
  .filter(Boolean)
2628
2795
  .map((output) => output.toDto())
2629
2796
  .filter(Boolean);
2797
+ // Fallback for synthetic payloads: if strategy conversion yields no blocks
2798
+ // but we still have plain text, create paragraph/text blocks directly.
2799
+ if (resultBlocks.length === 0 && (payload.text || '').trim() !== '') {
2800
+ return this.buildPlainTextFallbackBlocks(payload.text);
2801
+ }
2802
+ return resultBlocks;
2630
2803
  }
2631
2804
  /**
2632
- * Moves the caret to the next block element in a rich text editor.
2805
+ * Extracts readable plain text from clipboard HTML.
2633
2806
  *
2634
- * @param {RTEBlock} newBlock - Represents a new create block element in a rich text editor.
2807
+ * @param {string} html - Clipboard text/html payload.
2808
+ * @returns {string} - Plain text extracted from HTML.
2635
2809
  */
2636
- switchCaretPositionToNextElement(newBlock) {
2810
+ extractPlainTextFromHtml(html) {
2811
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations.
2812
+ const safeHtml = StylePreservator.preserve(html).getProcessedHtml();
2813
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2814
+ return (parsedDoc.body.textContent || '').replace(/\r\n?/g, '\n');
2815
+ }
2816
+ /**
2817
+ * Builds plain-text paragraph blocks when element strategy parsing returns no output.
2818
+ *
2819
+ * @param {string} text - Plain text clipboard content.
2820
+ * @returns {RTEContentBlock[]} Fallback text blocks.
2821
+ */
2822
+ buildPlainTextFallbackBlocks(text) {
2823
+ return text.split('\n').map((line) => {
2824
+ const paragraph = new RTETextBlock(generateUUID(), 'paragraph');
2825
+ const textNode = new RTETextNode(`${paragraph.id}1`, line, paragraph);
2826
+ paragraph.apply(new AppendChildrenAction([textNode]));
2827
+ return paragraph;
2828
+ });
2829
+ }
2830
+ /**
2831
+ * Moves the caret to a block element in a rich text editor after paste.
2832
+ *
2833
+ * @param {RTEBlock} newBlock - Block element to move the caret to.
2834
+ * @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.
2835
+ */
2836
+ switchCaretPositionToNextElement(newBlock, atEnd = false) {
2837
+ var _a, _b;
2637
2838
  if (newBlock && newBlock.children) {
2638
- this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2839
+ if (atEnd) {
2840
+ const lastNode = newBlock.children[newBlock.children.length - 1];
2841
+ this.selectionController.enqueueSelectionRangeFutureState(lastNode, (_b = (_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
2842
+ }
2843
+ else {
2844
+ this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2845
+ }
2639
2846
  }
2640
2847
  }
2641
2848
  /**
@@ -2645,16 +2852,217 @@ class InsertPasteHandler extends BaseHandler {
2645
2852
  * @returns {string} - The formatted HTML string.
2646
2853
  */
2647
2854
  parsePlainText(content) {
2855
+ if (this.shouldRenderAsCodeBlock(content)) {
2856
+ return `<pre><code>${escapeHtml(content)}</code></pre>`;
2857
+ }
2648
2858
  const lines = content.split('\n');
2649
2859
  return lines
2650
2860
  .map((line) => {
2651
2861
  if (line === '') {
2652
2862
  return '<p>\n</p>';
2653
2863
  }
2654
- return `<p>${line}</p>`;
2864
+ return `<p>${escapeHtml(line)}</p>`;
2655
2865
  })
2656
2866
  .join('');
2657
2867
  }
2868
+ /**
2869
+ * Detects whether plain text likely represents source code.
2870
+ *
2871
+ * @param {string} content - Clipboard plain text content.
2872
+ * @returns {boolean} True when the content should render as a code block.
2873
+ */
2874
+ shouldRenderAsCodeBlock(content) {
2875
+ const normalized = content.replace(/\r\n?/g, '\n').trim();
2876
+ if (!normalized) {
2877
+ return false;
2878
+ }
2879
+ const hasMultipleLines = normalized.includes('\n');
2880
+ const hasHtmlLikeTag = /<\/?[a-z][\w:-]*[^>]*>/i.test(normalized);
2881
+ const hasCodeFence = normalized.startsWith('```') && normalized.endsWith('```');
2882
+ const hasProgrammingTokens = /[{};]|=>|\b(function|const|let|var|class|import|export|return)\b/.test(normalized);
2883
+ if (hasCodeFence) {
2884
+ return true;
2885
+ }
2886
+ return hasHtmlLikeTag || (hasMultipleLines && hasProgrammingTokens);
2887
+ }
2888
+ /**
2889
+ * Removes pasted website artifacts that can cause visual regressions in the editor,
2890
+ * such as heading anchor tooltips and empty wrappers.
2891
+ *
2892
+ * @param {HTMLElement} body - Parsed clipboard html body.
2893
+ */
2894
+ normalizeImportedHtmlArtifacts(body) {
2895
+ this.removeHeadingArtifacts(body);
2896
+ this.removeEmptyBlocks(body);
2897
+ }
2898
+ /**
2899
+ * Removes heading copy-link/tooltip artifacts copied from documentation pages.
2900
+ *
2901
+ * @param {HTMLElement} body - Parsed clipboard html body.
2902
+ */
2903
+ removeHeadingArtifacts(body) {
2904
+ const selectors = [
2905
+ 'a.js-heading-link',
2906
+ 'a.c-heading-link',
2907
+ '.js-tooltip-popover',
2908
+ '.c-tooltip-popover',
2909
+ '[role="tooltip"]',
2910
+ ];
2911
+ body.querySelectorAll(selectors.join(',')).forEach((element) => element.remove());
2912
+ }
2913
+ /**
2914
+ * Removes empty block wrappers introduced by web copy/paste.
2915
+ *
2916
+ * @param {HTMLElement} body - Parsed clipboard html body.
2917
+ */
2918
+ removeEmptyBlocks(body) {
2919
+ const blockSelectors = ['p', 'div', 'section', 'article'];
2920
+ body.querySelectorAll(blockSelectors.join(',')).forEach((element) => {
2921
+ if (this.isEmptyVisualBlock(element)) {
2922
+ element.remove();
2923
+ }
2924
+ });
2925
+ }
2926
+ /**
2927
+ * Checks whether a block is visually empty and safe to remove.
2928
+ *
2929
+ * @param {HTMLElement} element - Block element to inspect.
2930
+ * @returns {boolean} True when the block has no visible content.
2931
+ */
2932
+ isEmptyVisualBlock(element) {
2933
+ if (element.tagName === 'DIV' && element.classList.contains('doc')) {
2934
+ return false;
2935
+ }
2936
+ const hasVisualChild = Boolean(element.querySelector('img,video,audio,iframe,canvas,svg,table,hr,pre,code,blockquote'));
2937
+ if (hasVisualChild) {
2938
+ return false;
2939
+ }
2940
+ return (element.textContent || '').trim() === '';
2941
+ }
2942
+ /**
2943
+ * Checks whether a text/html payload is effectively plain text.
2944
+ *
2945
+ * Some sources (e.g. terminals, code editors) place the copied text inside an
2946
+ * off-screen / visually hidden wrapper such as
2947
+ * `<pre><div style="position: absolute; left: -9999px;">text</div></pre>`.
2948
+ * Preserving that markup as rich content would render the pasted text
2949
+ * off-screen (appearing empty), so such payloads are treated as plain text.
2950
+ *
2951
+ * @param {string} html - Clipboard text/html payload.
2952
+ * @returns {boolean} True when the payload has no visible rich content.
2953
+ */
2954
+ shouldTreatAsPlainTextPayload(html) {
2955
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations
2956
+ // triggered by DOMParser processing HTML with style= attributes.
2957
+ const safeHtml = StylePreservator.preserve(html).getProcessedHtml();
2958
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2959
+ const body = parsedDoc.body;
2960
+ if (body.children.length === 0) {
2961
+ return true;
2962
+ }
2963
+ const visibleClone = body.cloneNode(true);
2964
+ visibleClone.querySelectorAll('[style],[data-style]').forEach((element) => {
2965
+ if (this.isVisuallyHiddenElement(element)) {
2966
+ element.remove();
2967
+ }
2968
+ });
2969
+ if ((visibleClone.textContent || '').trim() !== '') {
2970
+ return false;
2971
+ }
2972
+ const hasVisibleMedia = Boolean(visibleClone.querySelector('img,video,audio,iframe,table,svg,canvas,math,object,embed'));
2973
+ if (hasVisibleMedia) {
2974
+ return false;
2975
+ }
2976
+ // If no visible text/media remains but original HTML contained text, it was
2977
+ // likely wrapped in hidden/off-screen containers and should be treated as plain text.
2978
+ return (body.textContent || '').trim() !== '';
2979
+ }
2980
+ /**
2981
+ * Returns true when a CSS style string contains bold, italic, underline,
2982
+ * strikethrough, or color declarations.
2983
+ *
2984
+ * @param {string} style - Inline CSS style string.
2985
+ * @returns {boolean} True when the style contains rich formatting.
2986
+ */
2987
+ styleContainsRichFormatting(style) {
2988
+ if (!style.trim()) {
2989
+ return false;
2990
+ }
2991
+ for (const declaration of style.split(';')) {
2992
+ const colonIndex = declaration.indexOf(':');
2993
+ if (colonIndex === -1) {
2994
+ continue;
2995
+ }
2996
+ const prop = declaration.slice(0, colonIndex).trim().toLowerCase();
2997
+ const value = declaration
2998
+ .slice(colonIndex + 1)
2999
+ .trim()
3000
+ .toLowerCase();
3001
+ switch (prop) {
3002
+ case 'font-weight':
3003
+ if (/bold|[5-9]\d{2}|1000/.test(value)) {
3004
+ return true;
3005
+ }
3006
+ break;
3007
+ case 'font-style':
3008
+ if (/italic|oblique/.test(value)) {
3009
+ return true;
3010
+ }
3011
+ break;
3012
+ case 'text-decoration':
3013
+ case 'text-decoration-line':
3014
+ if (/underline|line-through/.test(value)) {
3015
+ return true;
3016
+ }
3017
+ break;
3018
+ case 'color':
3019
+ case 'background-color':
3020
+ return true;
3021
+ }
3022
+ }
3023
+ return false;
3024
+ }
3025
+ /**
3026
+ * Determines whether an element is visually hidden or rendered off-screen
3027
+ * via its inline style, indicating a clipboard plain-text wrapper.
3028
+ *
3029
+ * @param {HTMLElement} element - Element to inspect.
3030
+ * @returns {boolean} True when the element is hidden or off-screen.
3031
+ */
3032
+ isVisuallyHiddenElement(element) {
3033
+ const style = (element.getAttribute('style') ||
3034
+ element.getAttribute('data-style') ||
3035
+ '').toLowerCase();
3036
+ if (!style) {
3037
+ return false;
3038
+ }
3039
+ if (/display\s*:\s*none/.test(style) || /visibility\s*:\s*hidden/.test(style)) {
3040
+ return true;
3041
+ }
3042
+ if (/clip\s*:\s*rect\(\s*0/.test(style) || style.includes('clip-path')) {
3043
+ return true;
3044
+ }
3045
+ const isPositioned = /position\s*:\s*(absolute|fixed)/.test(style);
3046
+ const isOffScreen = /(left|top|right|bottom)\s*:\s*-\d{3,}px/.test(style);
3047
+ return isPositioned && isOffScreen;
3048
+ }
3049
+ /**
3050
+ * Resolves paste payload from DataTransfer and synthetic-event fallback payload.
3051
+ *
3052
+ * @param {InputEvent} event - Paste event.
3053
+ * @returns {RTEPastePayload} - Paste payload.
3054
+ */
3055
+ getPastePayload(event) {
3056
+ const eventPayload = event
3057
+ .rtePastePayload || { html: '', text: '' };
3058
+ if (!event.dataTransfer) {
3059
+ return eventPayload;
3060
+ }
3061
+ return {
3062
+ html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
3063
+ text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
3064
+ };
3065
+ }
2658
3066
  }
2659
3067
 
2660
3068
  var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3663,7 +4071,7 @@ __decorate$c([
3663
4071
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3664
4072
 
3665
4073
  const undoIcon = {
3666
- 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>`,
4074
+ 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>`,
3667
4075
  };
3668
4076
 
3669
4077
  var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3700,7 +4108,7 @@ __decorate$b([
3700
4108
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
3701
4109
 
3702
4110
  const redoIcon = {
3703
- 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>`,
4111
+ 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>`,
3704
4112
  };
3705
4113
 
3706
4114
  var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3977,6 +4385,7 @@ class RTEExtensionController extends VegaSlimmer {
3977
4385
  return {
3978
4386
  host: this.host,
3979
4387
  flushValue: this.flushValue,
4388
+ forceUpdate: forceUpdate,
3980
4389
  isSourceEditMode: this.isSourceEditMode,
3981
4390
  getSelectedNodes: this.getSelectedNodes,
3982
4391
  setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
@@ -4239,7 +4648,7 @@ class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
4239
4648
  render() {
4240
4649
  if (!this.allowSourceEdit)
4241
4650
  return;
4242
- const sourceCode = this.getSourceTemplate();
4651
+ const sourceCode = this.normalizeSourceCodeForEditing(this.getSourceTemplate());
4243
4652
  const sourceViewValue = this.sourceView ? CodeFormatter$1.format(sourceCode) : '';
4244
4653
  // 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.
4245
4654
  this.prevRecord = sourceCode;
@@ -4260,6 +4669,24 @@ class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
4260
4669
  getSourceTemplate() {
4261
4670
  return this.value.toHtml({ filterInlineStyles: this.sourceEditConfig.filterInlineStyles });
4262
4671
  }
4672
+ /**
4673
+ * Normalize source HTML for source-mode editing.
4674
+ *
4675
+ * `vega-code-block` renders code as HTML and will decode quote entities, so
4676
+ * convert quote entities inside style attributes to single quotes before entering
4677
+ * source mode. This preserves valid HTML when switching back to normal mode.
4678
+ */
4679
+ normalizeSourceCodeForEditing(html) {
4680
+ return html.replace(/style="([\s\S]*?)"/gi, (_match, styleValue) => {
4681
+ const normalizedStyleValue = styleValue
4682
+ .replace(/&amp;|&#38;|&#x26;/gi, '&')
4683
+ .replace(/&lt;|&#60;|&#x3c;/gi, '<')
4684
+ .replace(/&gt;|&#62;|&#x3e;/gi, '>')
4685
+ .replace(/&quot;|&#34;|&#x22;/gi, "'")
4686
+ .replace(/&apos;|&#39;|&#x27;/gi, "'");
4687
+ return `style="${normalizedStyleValue}"`;
4688
+ });
4689
+ }
4263
4690
  }
4264
4691
  __decorate$7([
4265
4692
  MapToComponentField()
@@ -4705,13 +5132,14 @@ class VegaRichTextEditorToolbarButtonRenderer extends VegaSlimmer {
4705
5132
  }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
4706
5133
  h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
4707
5134
  this.icon && (h("vega-icon", { size: "size-16", color: this.iconColor, icon: VegaInternalIconManager.getIconKey(this.icon) })),
4708
- this.showArrowIcon && (h("vega-icon", { size: "size-8", color: "text-secondary", icon: VegaInternalIconManager.getIconKey('chevron-down') }))),
5135
+ this.showArrowIcon && (h("vega-icon", { size: "size-8", color: "text-secondary", icon: VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
4709
5136
  h("slot", null)));
4710
5137
  }
4711
5138
  }
4712
5139
  (() => {
4713
5140
  VegaInternalIconManager.register({
4714
5141
  'chevron-down': chevronDown,
5142
+ 'chevron-up': chevronUp,
4715
5143
  });
4716
5144
  })();
4717
5145
  __decorate$5([
@@ -4726,6 +5154,9 @@ __decorate$5([
4726
5154
  __decorate$5([
4727
5155
  MapToComponentField()
4728
5156
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
5157
+ __decorate$5([
5158
+ MapToComponentField()
5159
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
4729
5160
  __decorate$5([
4730
5161
  MapToComponentField()
4731
5162
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
@@ -4789,6 +5220,12 @@ const VegaRichTextEditorToolbarButton = class {
4789
5220
  * @vegaVersion 2.34.0
4790
5221
  */
4791
5222
  this.showArrowIcon = false;
5223
+ /**
5224
+ * Specifies the arrow icon name when `showArrowIcon` is enabled.
5225
+ *
5226
+ * @vegaVersion 2.93.0
5227
+ */
5228
+ this.arrowIcon = 'chevron-down';
4792
5229
  /**
4793
5230
  * Specifies whether the toolbar button in the rich text editor is represented by an icon.
4794
5231
  *
@@ -5067,7 +5504,7 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
5067
5504
  return this.popoverRef;
5068
5505
  }
5069
5506
  render() {
5070
- return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
5507
+ return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
5071
5508
  this.popoverRef = ref;
5072
5509
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
5073
5510
  var _a, _b, _c;