@globalpayments/vega 2.91.0 → 2.93.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 (637) hide show
  1. package/dist/cjs/{app-globals-7bb10088.js → app-globals-f7ad9275.js} +17 -10
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-76d19d56.js → child-nodes-event-prevent-slimmer-e67ee84c.js} +2 -2
  3. package/dist/cjs/{code-block-c1039791.js → code-block-2f3d0f38.js} +64 -11
  4. package/dist/cjs/{component-value-history-controller-slimmer.abstract-1d36641d.js → component-value-history-controller-slimmer.abstract-31d2c7aa.js} +72 -39
  5. package/dist/cjs/{content-state-a6105949.js → content-state-13daf87a.js} +91 -8
  6. package/dist/cjs/copy-d021c780.js +7 -0
  7. package/dist/cjs/{date-required-rule-c4997459.js → date-required-rule-e65ddd7d.js} +1 -1
  8. package/dist/cjs/{design-token-f65eab4a.js → design-token-47393cbb.js} +3 -3
  9. package/dist/cjs/{element-appender-slimmer-316668d0.js → element-appender-slimmer-29c4ac60.js} +18 -9
  10. package/dist/cjs/{event-emit-slimmer-5bab10c2.js → event-emit-slimmer-d234a619.js} +1 -1
  11. package/dist/cjs/{file-uploader-required-rule-cc51d4ab.js → file-uploader-required-rule-5520bbec.js} +1 -1
  12. package/dist/cjs/{form-field-controller-slimmer-b0c35330.js → form-field-controller-slimmer-3bfcf88c.js} +1 -1
  13. package/dist/cjs/{image-annotation-action-e4596726.js → image-annotation-action-c2b163bb.js} +3 -3
  14. package/dist/cjs/image-extension-4e99b620.js +39 -0
  15. package/dist/cjs/index-58ea899e.js +4 -0
  16. package/dist/cjs/index.cjs.js +30 -22
  17. package/dist/cjs/{inject-keyboard-manager-1f5bbb19.js → inject-keyboard-manager-4b2ebbe4.js} +1 -1
  18. package/dist/cjs/{internal-calendar-period-factory-9c66cf36.js → internal-calendar-period-factory-7a0ecdb1.js} +1 -1
  19. package/dist/cjs/{internal-translation-controller-5905469e.js → internal-translation-controller-31f2b057.js} +18 -0
  20. package/dist/cjs/{internal-vega-event-manager-7196a847.js → internal-vega-event-manager-13c4012b.js} +2 -1
  21. package/dist/cjs/{keyboard-manager-61e8ce38.js → keyboard-manager-c78b46bd.js} +1 -1
  22. package/dist/cjs/{keyboard-manager-slimmer-079a7e87.js → keyboard-manager-slimmer-d350c931.js} +1 -1
  23. package/dist/cjs/{link-extension-a7ac28f3.js → link-extension-455c02b3.js} +3 -3
  24. package/dist/cjs/loader.cjs.js +17 -15
  25. package/dist/cjs/{month-view-generator-48215a05.js → month-view-generator-006562dc.js} +1 -1
  26. package/dist/cjs/{public-rules-66540638.js → public-rules-c59eba88.js} +10 -10
  27. package/dist/cjs/{range-dea19a90.js → range-bf80fa40.js} +25 -3
  28. package/dist/cjs/{replace-selected-text-action-6d1ebbf9.js → replace-selected-text-action-a80f5a6a.js} +1 -1
  29. package/dist/cjs/{required-field-rule-b12a29e1.js → required-field-rule-400690c3.js} +1 -1
  30. package/dist/cjs/{responsive-format-facade-10ff730e.js → responsive-format-facade-1af54330.js} +2 -2
  31. package/dist/cjs/{rich-text-editor-required-rule-63492ca3.js → rich-text-editor-required-rule-1085c71a.js} +1 -1
  32. package/dist/cjs/{split-cell-operation-30e5dd4a.js → split-cell-operation-2fa5c9e4.js} +3 -3
  33. package/dist/cjs/{state-border-formatter-e7779964.js → state-border-formatter-501f6645.js} +1 -1
  34. package/dist/cjs/{string-format-strategy.abstract-a22f0cb1.js → string-format-strategy.abstract-a02bf002.js} +1 -1
  35. package/dist/cjs/{string-input-formatter-slimmer-8179eb40.js → string-input-formatter-slimmer-9cca6151.js} +1 -1
  36. package/dist/cjs/{string-mask-strategy-8b9bb0c1.js → string-mask-strategy-4c174ebf.js} +2 -2
  37. package/dist/cjs/{style-formatter-380b9a86.js → style-formatter-2c749500.js} +2 -2
  38. package/dist/cjs/{time-required-rule-080d975b.js → time-required-rule-04994a5e.js} +1 -1
  39. package/dist/cjs/{token-extension-619379a3.js → token-extension-d217914d.js} +3622 -742
  40. package/dist/cjs/{translation-slimmer-2af6f141.js → translation-slimmer-7fb6e94c.js} +1 -1
  41. package/dist/cjs/{type-guard-0171e779.js → type-guard-1c3770d4.js} +1 -1
  42. package/dist/cjs/{valid-credit-card-number-rule-fdfca83e.js → valid-credit-card-number-rule-f719a8c6.js} +1 -1
  43. package/dist/cjs/vega-accordion.cjs.entry.js +21 -13
  44. package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
  45. package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -10
  46. package/dist/cjs/vega-banner.cjs.entry.js +6 -9
  47. package/dist/cjs/vega-box.cjs.entry.js +7 -7
  48. package/dist/cjs/vega-breadcrumb.cjs.entry.js +5 -5
  49. package/dist/cjs/vega-button-circle.cjs.entry.js +10 -10
  50. package/dist/cjs/vega-button-group_2.cjs.entry.js +5 -5
  51. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  52. package/dist/cjs/vega-button.cjs.entry.js +8 -8
  53. package/dist/cjs/vega-calendar_5.cjs.entry.js +12 -12
  54. package/dist/cjs/vega-card.cjs.entry.js +6 -6
  55. package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
  56. package/dist/cjs/vega-checkbox_2.cjs.entry.js +8 -8
  57. package/dist/cjs/vega-chip.cjs.entry.js +10 -10
  58. package/dist/cjs/vega-code-block.cjs.entry.js +15 -18
  59. package/dist/cjs/vega-color-picker.cjs.entry.js +7 -7
  60. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +9 -9
  61. package/dist/cjs/vega-color-swatch.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-combo-box.cjs.entry.js +21 -15
  63. package/dist/cjs/vega-date-picker_2.cjs.entry.js +18 -18
  64. package/dist/cjs/vega-dialog_2.cjs.entry.js +21 -10
  65. package/dist/cjs/vega-divider.cjs.entry.js +6 -6
  66. package/dist/cjs/vega-dropdown_5.cjs.entry.js +694 -196
  67. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  68. package/dist/cjs/{vega-event-id-df22d80e.js → vega-event-id-58afed7a.js} +2 -0
  69. package/dist/cjs/vega-field-label.cjs.entry.js +16 -12
  70. package/dist/cjs/vega-file-uploader.cjs.entry.js +9 -9
  71. package/dist/cjs/vega-flag-icon.cjs.entry.js +6 -6
  72. package/dist/cjs/vega-flex.cjs.entry.js +7 -7
  73. package/dist/cjs/vega-font.cjs.entry.js +6 -6
  74. package/dist/cjs/vega-form.cjs.entry.js +8 -8
  75. package/dist/cjs/vega-grid.cjs.entry.js +6 -6
  76. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  77. package/dist/cjs/vega-image-uploader.cjs.entry.js +11 -11
  78. package/dist/cjs/vega-input-credit-card.cjs.entry.js +12 -12
  79. package/dist/cjs/vega-input-numeric.cjs.entry.js +11 -11
  80. package/dist/cjs/vega-input-passcode.cjs.entry.js +11 -11
  81. package/dist/cjs/vega-input-phone-number.cjs.entry.js +9 -9
  82. package/dist/cjs/vega-input-range.cjs.entry.js +8 -8
  83. package/dist/cjs/vega-input-select.cjs.entry.js +11 -11
  84. package/dist/cjs/vega-input.cjs.entry.js +12 -12
  85. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  86. package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
  87. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +4 -4
  88. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  89. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  90. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -3
  91. package/dist/cjs/vega-pagination.cjs.entry.js +9 -9
  92. package/dist/cjs/vega-popover_2.cjs.entry.js +12 -12
  93. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +7 -7
  94. package/dist/cjs/vega-radio_2.cjs.entry.js +11 -11
  95. package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
  96. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +677 -95
  97. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +233 -0
  98. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +8 -8
  99. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +13 -13
  100. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  101. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +10 -10
  102. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +8 -8
  103. package/dist/cjs/vega-sidenav_3.cjs.entry.js +7 -7
  104. package/dist/cjs/vega-signature-capture.cjs.entry.js +12 -12
  105. package/dist/cjs/vega-stepper.cjs.entry.js +7 -7
  106. package/dist/cjs/vega-tab-group_2.cjs.entry.js +5 -5
  107. package/dist/cjs/vega-table_11.cjs.entry.js +912 -429
  108. package/dist/cjs/vega-textarea.cjs.entry.js +9 -11
  109. package/dist/cjs/vega-time-picker_2.cjs.entry.js +35 -15
  110. package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
  111. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  112. package/dist/cjs/vega.cjs.js +17 -15
  113. package/dist/cjs/xmark-large-faae5a80.js +7 -0
  114. package/dist/collection/collection-manifest.json +6 -0
  115. package/dist/collection/components/vega-accordion/slimmers/vega-accordion-renderer.js +11 -3
  116. package/dist/collection/components/vega-box/vega-box.js +3 -3
  117. package/dist/collection/components/vega-code-block/slimmers/renderers/vega-code-block-copy-button-renderer.js +1 -1
  118. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +4 -1
  119. package/dist/collection/components/vega-combo-box/vega-combo-box.js +7 -1
  120. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  121. package/dist/collection/components/vega-dropdown/constants.js +1 -0
  122. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +9 -0
  123. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.js +97 -4
  124. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.js +219 -0
  125. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.js +78 -13
  126. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +13 -1
  127. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +7 -0
  128. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +52 -1
  129. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +4 -1
  130. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +5 -0
  131. package/dist/collection/components/vega-dropdown/vega-dropdown.js +126 -1
  132. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.js +5 -4
  133. package/dist/collection/components/vega-field-label/vega-field-label.css +20 -0
  134. package/dist/collection/components/vega-field-label/vega-field-label.js +7 -4
  135. package/dist/collection/components/vega-hint/vega-hint.js +1 -1
  136. package/dist/collection/components/vega-input/vega-input.css +1 -0
  137. package/dist/collection/components/vega-input/vega-input.js +1 -1
  138. package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
  139. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +4 -1
  140. package/dist/collection/components/vega-modal/vega-modal.css +0 -1
  141. package/dist/collection/components/vega-modal/vega-modal.js +38 -0
  142. package/dist/collection/components/vega-rich-text-editor/assets/cut.js +3 -0
  143. package/dist/collection/components/vega-rich-text-editor/assets/redo.js +1 -1
  144. package/dist/collection/components/vega-rich-text-editor/assets/undo.js +1 -1
  145. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +16 -1
  146. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.js +11 -5
  147. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.js +25 -0
  148. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.js +9 -4
  149. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/delete-selected-content-strategy.js +16 -0
  150. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +61 -5
  151. package/dist/collection/components/vega-rich-text-editor/dto/actions/delete-selected-content-action.js +17 -0
  152. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  153. package/dist/collection/components/vega-rich-text-editor/dto/actions/paste-content-action.js +1 -0
  154. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +2 -0
  155. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -1
  156. package/dist/collection/components/vega-rich-text-editor/dto/range.js +24 -2
  157. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.js +61 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.js +40 -0
  159. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.js +20 -0
  160. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.js +17 -0
  161. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.js +19 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.js +4 -0
  163. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.js +47 -0
  164. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.js +76 -0
  165. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.js +70 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.js +53 -0
  167. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.js +41 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.js +21 -0
  169. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +260 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/copy/action-handler-strategies/copy-selected-content-strategy.js +226 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/copy/actions/copy-selected-content-action.js +21 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-extension.js +20 -0
  173. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +58 -0
  174. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-extension.js +15 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +44 -0
  176. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/assets/find-and-replace.js +3 -0
  177. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/find-replace-extension.js +18 -0
  178. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-controller.js +105 -0
  179. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-replace-controller.abstract.js +68 -0
  180. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/block-search-strategy.abstract.js +8 -0
  181. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/code-block-search-strategy.js +19 -0
  182. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/container-block-search-strategy.js +23 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/list-item-block-search-strategy.js +30 -0
  184. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/text-block-search-strategy.js +20 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.js +266 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-state.js +346 -0
  187. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/replace-controller.js +113 -0
  188. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +194 -0
  189. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.js +153 -0
  190. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.css +50 -0
  191. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.js +156 -0
  192. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +2 -1
  193. package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/horizontal-line-extension.js +2 -1
  194. package/dist/collection/components/vega-rich-text-editor/extensions/image/image-extension.js +34 -0
  195. package/dist/collection/components/vega-rich-text-editor/extensions/image/type.js +1 -0
  196. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +2 -1
  197. package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-extension.js +2 -1
  198. package/dist/collection/components/vega-rich-text-editor/extensions/paste/assets/paste.js +3 -0
  199. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +144 -0
  200. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +6 -0
  201. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +442 -0
  202. package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-extension.js +2 -1
  203. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +1 -1
  204. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +6 -4
  205. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.js +1 -1
  206. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +2 -1
  207. package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +14 -0
  208. package/dist/collection/components/vega-rich-text-editor/public-api.js +7 -0
  209. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.js +133 -0
  210. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/backward-delete-content-handler.js +35 -0
  211. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +1 -1
  212. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/forward-delete-content-handler.js +93 -0
  213. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +1 -1
  214. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +385 -25
  215. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +69 -36
  216. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +9 -3
  217. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +59 -14
  218. 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
  219. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +28 -1
  220. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +1 -1
  221. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.js +1 -1
  222. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.js +1 -1
  223. package/dist/collection/components/vega-table/slimmers/controllers/dto/column-render-input-model.js +32 -0
  224. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +77 -0
  225. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +121 -0
  226. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-cell-renderer.js +39 -14
  227. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +207 -7
  228. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-row-renderer.js +16 -3
  229. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +24 -4
  230. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +11 -2
  231. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +5 -1
  232. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +22 -1
  233. package/dist/collection/components/vega-table/vega-table.css +5 -0
  234. package/dist/collection/components/vega-table/vega-table.js +5 -0
  235. package/dist/collection/components/vega-text/vega-text.js +1 -1
  236. package/dist/collection/components/vega-textarea/vega-textarea.js +2 -4
  237. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +4 -0
  238. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +4 -0
  239. package/dist/collection/components/vega-time-picker/vega-time-picker.js +39 -0
  240. package/dist/collection/constants/ui.js +1 -0
  241. package/dist/collection/global/scripts/before-vega-load.js +12 -0
  242. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
  243. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  244. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +11 -4
  245. package/dist/collection/helpers/translation/locales/en.js +18 -0
  246. package/dist/collection/helpers/ui/element-appender.js +5 -2
  247. package/dist/esm/{app-globals-6041f52f.js → app-globals-9950d055.js} +17 -10
  248. package/dist/esm/{aria-dialog-focusable-trap-slimmer-1332c071.js → aria-dialog-focusable-trap-slimmer-9eae86c6.js} +1 -1
  249. package/dist/esm/{child-nodes-event-prevent-slimmer-50022584.js → child-nodes-event-prevent-slimmer-96c14f5a.js} +2 -2
  250. package/dist/esm/{code-block-37294847.js → code-block-ae2337c2.js} +65 -13
  251. package/dist/esm/{component-value-history-controller-slimmer.abstract-45ccddc9.js → component-value-history-controller-slimmer.abstract-b1ee1b8e.js} +73 -40
  252. package/dist/esm/{content-state-67950b80.js → content-state-c3b85ae6.js} +92 -9
  253. package/dist/esm/copy-54e45e2d.js +5 -0
  254. package/dist/esm/{date-required-rule-958cf380.js → date-required-rule-e06115f8.js} +1 -1
  255. package/dist/esm/{design-token-e7e78f18.js → design-token-4e682056.js} +3 -3
  256. package/dist/esm/{element-appender-slimmer-ebda526d.js → element-appender-slimmer-a4485ef6.js} +19 -10
  257. package/dist/esm/{event-emit-slimmer-b94cec83.js → event-emit-slimmer-db4a82e0.js} +1 -1
  258. package/dist/esm/{file-uploader-required-rule-82188a61.js → file-uploader-required-rule-96952e1a.js} +1 -1
  259. package/dist/esm/{form-field-controller-slimmer-0a2ba886.js → form-field-controller-slimmer-a1c7b28c.js} +3 -3
  260. package/dist/esm/{image-annotation-action-7f7a5678.js → image-annotation-action-4c77d314.js} +3 -3
  261. package/dist/esm/image-extension-7108c27d.js +37 -0
  262. package/dist/esm/index-090d31ca.js +4 -0
  263. package/dist/esm/index.js +24 -23
  264. package/dist/esm/{inject-keyboard-manager-2b19c121.js → inject-keyboard-manager-e8ddb78d.js} +1 -1
  265. package/dist/esm/{internal-calendar-period-factory-fff8aaee.js → internal-calendar-period-factory-6f19d767.js} +1 -1
  266. package/dist/esm/{internal-translation-controller-aa09ca87.js → internal-translation-controller-09b8bd13.js} +18 -0
  267. package/dist/esm/{internal-vega-event-manager-956cf128.js → internal-vega-event-manager-48690e5b.js} +2 -1
  268. package/dist/esm/{keyboard-manager-3e5b157f.js → keyboard-manager-ec18721b.js} +1 -1
  269. package/dist/esm/{keyboard-manager-slimmer-ba5cc767.js → keyboard-manager-slimmer-531ddb0e.js} +1 -1
  270. package/dist/esm/{link-extension-afb404fb.js → link-extension-74eaa826.js} +3 -3
  271. package/dist/esm/loader.js +18 -16
  272. package/dist/esm/{month-view-generator-7a0c869c.js → month-view-generator-afd78ff8.js} +1 -1
  273. package/dist/esm/{public-rules-f64b0b78.js → public-rules-5fce32a5.js} +11 -11
  274. package/dist/esm/{range-4d09a305.js → range-8f877dbf.js} +25 -3
  275. package/dist/esm/{replace-selected-text-action-12bc8b82.js → replace-selected-text-action-c9278a0f.js} +1 -1
  276. package/dist/esm/{required-field-rule-a4634842.js → required-field-rule-897fe8d1.js} +1 -1
  277. package/dist/esm/{responsive-format-facade-844c5e09.js → responsive-format-facade-299e6304.js} +2 -2
  278. package/dist/esm/{rich-text-editor-required-rule-d62d418e.js → rich-text-editor-required-rule-3047bab0.js} +1 -1
  279. package/dist/esm/{split-cell-operation-c515669e.js → split-cell-operation-98d58410.js} +3 -3
  280. package/dist/esm/{state-border-formatter-f53847a5.js → state-border-formatter-da52b626.js} +1 -1
  281. package/dist/esm/{string-format-strategy.abstract-a0327405.js → string-format-strategy.abstract-a45b5ff7.js} +1 -1
  282. package/dist/esm/{string-input-formatter-slimmer-12de4a25.js → string-input-formatter-slimmer-4a032fed.js} +3 -3
  283. package/dist/esm/{string-mask-strategy-3bb03155.js → string-mask-strategy-37e53e48.js} +2 -2
  284. package/dist/esm/{style-formatter-df7bf8ec.js → style-formatter-3d5ddfb1.js} +2 -2
  285. package/dist/esm/{sub-state-notify-slimmer-7ef94141.js → sub-state-notify-slimmer-0f72ce74.js} +1 -1
  286. package/dist/esm/{sub-state-observer-slimmer-d9ad2bdd.js → sub-state-observer-slimmer-64532d94.js} +1 -1
  287. package/dist/esm/{time-required-rule-db0dee53.js → time-required-rule-355b73d2.js} +1 -1
  288. package/dist/esm/{token-extension-8ff92d14.js → token-extension-ecfafe94.js} +3618 -745
  289. package/dist/esm/{translation-slimmer-4904e7fe.js → translation-slimmer-3ea56354.js} +1 -1
  290. package/dist/esm/{type-guard-a2cbaae9.js → type-guard-2bfb2c7b.js} +1 -1
  291. package/dist/esm/{valid-credit-card-number-rule-a3f9858d.js → valid-credit-card-number-rule-52c6b029.js} +1 -1
  292. package/dist/esm/vega-accordion.entry.js +21 -13
  293. package/dist/esm/vega-app-footer.entry.js +3 -3
  294. package/dist/esm/vega-app-header-button.entry.js +10 -10
  295. package/dist/esm/vega-banner.entry.js +5 -8
  296. package/dist/esm/vega-box.entry.js +7 -7
  297. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  298. package/dist/esm/vega-button-circle.entry.js +11 -11
  299. package/dist/esm/vega-button-group_2.entry.js +8 -8
  300. package/dist/esm/vega-button-link.entry.js +5 -5
  301. package/dist/esm/vega-button.entry.js +9 -9
  302. package/dist/esm/vega-calendar_5.entry.js +15 -15
  303. package/dist/esm/vega-card.entry.js +6 -6
  304. package/dist/esm/vega-carousel.entry.js +7 -7
  305. package/dist/esm/vega-checkbox_2.entry.js +10 -10
  306. package/dist/esm/vega-chip.entry.js +10 -10
  307. package/dist/esm/vega-code-block.entry.js +15 -18
  308. package/dist/esm/vega-color-picker.entry.js +9 -9
  309. package/dist/esm/vega-color-swatch-picker.entry.js +11 -11
  310. package/dist/esm/vega-color-swatch.entry.js +5 -5
  311. package/dist/esm/vega-combo-box.entry.js +23 -17
  312. package/dist/esm/vega-date-picker_2.entry.js +22 -22
  313. package/dist/esm/vega-dialog_2.entry.js +23 -12
  314. package/dist/esm/vega-divider.entry.js +6 -6
  315. package/dist/esm/vega-dropdown_5.entry.js +700 -202
  316. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  317. package/dist/esm/{vega-event-id-268f8def.js → vega-event-id-270fe47e.js} +2 -1
  318. package/dist/esm/vega-field-label.entry.js +16 -12
  319. package/dist/esm/vega-file-uploader.entry.js +11 -11
  320. package/dist/esm/vega-flag-icon.entry.js +6 -6
  321. package/dist/esm/vega-flex.entry.js +7 -7
  322. package/dist/esm/vega-font.entry.js +6 -6
  323. package/dist/esm/vega-form.entry.js +11 -11
  324. package/dist/esm/vega-grid.entry.js +6 -6
  325. package/dist/esm/vega-icon.entry.js +6 -6
  326. package/dist/esm/vega-image-uploader.entry.js +13 -13
  327. package/dist/esm/vega-input-credit-card.entry.js +14 -14
  328. package/dist/esm/vega-input-numeric.entry.js +14 -14
  329. package/dist/esm/vega-input-passcode.entry.js +13 -13
  330. package/dist/esm/vega-input-phone-number.entry.js +11 -11
  331. package/dist/esm/vega-input-range.entry.js +10 -10
  332. package/dist/esm/vega-input-select.entry.js +13 -13
  333. package/dist/esm/vega-input.entry.js +15 -15
  334. package/dist/esm/{vega-internal-event-id-22151a4d.js → vega-internal-event-id-827eb1ce.js} +1 -1
  335. package/dist/esm/vega-item-toggle.entry.js +3 -3
  336. package/dist/esm/vega-left-nav_5.entry.js +14 -14
  337. package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
  338. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  339. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +5 -5
  340. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
  341. package/dist/esm/vega-pagination.entry.js +10 -10
  342. package/dist/esm/vega-popover_2.entry.js +14 -14
  343. package/dist/esm/vega-progress-tracker_2.entry.js +10 -10
  344. package/dist/esm/vega-radio_2.entry.js +13 -13
  345. package/dist/esm/vega-rich-text-content.entry.js +10 -10
  346. package/dist/esm/vega-rich-text-editor_4.entry.js +681 -99
  347. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +229 -0
  348. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
  349. package/dist/esm/vega-rich-text-table-properties_3.entry.js +14 -14
  350. package/dist/esm/vega-segment-control.entry.js +3 -3
  351. package/dist/esm/vega-selection-chip_2.entry.js +13 -13
  352. package/dist/esm/vega-selection-tile_2.entry.js +11 -11
  353. package/dist/esm/vega-sidenav_3.entry.js +10 -10
  354. package/dist/esm/vega-signature-capture.entry.js +14 -14
  355. package/dist/esm/vega-stepper.entry.js +9 -9
  356. package/dist/esm/vega-tab-group_2.entry.js +5 -5
  357. package/dist/esm/vega-table_11.entry.js +915 -432
  358. package/dist/esm/vega-textarea.entry.js +11 -13
  359. package/dist/esm/vega-time-picker_2.entry.js +37 -17
  360. package/dist/esm/vega-toggle-switch.entry.js +7 -7
  361. package/dist/esm/vega-tooltip_2.entry.js +8 -8
  362. package/dist/esm/vega.js +18 -16
  363. package/dist/esm/{wait-for-component-did-render-0488922a.js → wait-for-component-did-render-0c237cb8.js} +1 -1
  364. package/dist/esm/xmark-large-c5ae7944.js +5 -0
  365. package/dist/sri/vega-sri-manifest.json +392 -376
  366. package/dist/types/components/vega-accordion/slimmers/vega-accordion-renderer.d.ts +2 -0
  367. package/dist/types/components/vega-combo-box/types.d.ts +6 -1
  368. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +1 -0
  369. package/dist/types/components/vega-dropdown/constants.d.ts +1 -0
  370. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +2 -0
  371. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.d.ts +36 -0
  372. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.d.ts +107 -0
  373. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.d.ts +17 -0
  374. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +5 -0
  375. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +2 -0
  376. package/dist/types/components/vega-dropdown/types.d.ts +8 -0
  377. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.d.ts +25 -0
  378. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
  379. package/dist/types/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.d.ts +4 -0
  380. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +48 -0
  381. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.d.ts +1 -0
  382. package/dist/types/components/vega-field-label/types.d.ts +12 -0
  383. package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +2 -1
  384. package/dist/types/components/vega-modal/vega-modal.d.ts +9 -1
  385. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.d.ts +9 -0
  386. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/delete-selected-content-strategy.d.ts +13 -0
  387. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +14 -4
  388. package/dist/types/components/vega-rich-text-editor/dto/actions/delete-selected-content-action.d.ts +12 -0
  389. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  390. package/dist/types/components/vega-rich-text-editor/dto/actions/paste-content-action.d.ts +7 -0
  391. package/dist/types/components/vega-rich-text-editor/dto/range.d.ts +16 -0
  392. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.d.ts +34 -0
  393. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.d.ts +13 -0
  394. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.d.ts +13 -0
  395. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.d.ts +14 -0
  396. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.d.ts +18 -0
  397. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.d.ts +3 -0
  398. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.d.ts +9 -0
  399. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.d.ts +48 -0
  400. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.d.ts +56 -0
  401. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.d.ts +35 -0
  402. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.d.ts +31 -0
  403. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.d.ts +18 -0
  404. package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.d.ts +113 -0
  405. package/dist/types/components/vega-rich-text-editor/extensions/copy/action-handler-strategies/copy-selected-content-strategy.d.ts +79 -0
  406. package/dist/types/components/vega-rich-text-editor/extensions/copy/actions/copy-selected-content-action.d.ts +18 -0
  407. package/dist/types/components/vega-rich-text-editor/extensions/copy/copy-extension.d.ts +10 -0
  408. package/dist/types/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.d.ts +36 -0
  409. package/dist/types/components/vega-rich-text-editor/extensions/cut/cut-extension.d.ts +11 -0
  410. package/dist/types/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.d.ts +24 -0
  411. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/assets/find-and-replace.d.ts +3 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/find-replace-extension.d.ts +15 -0
  413. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-controller.d.ts +65 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-replace-controller.abstract.d.ts +65 -0
  415. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/block-search-strategy.abstract.d.ts +29 -0
  416. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/code-block-search-strategy.d.ts +17 -0
  417. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/container-block-search-strategy.d.ts +21 -0
  418. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/list-item-block-search-strategy.d.ts +21 -0
  419. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/text-block-search-strategy.d.ts +18 -0
  420. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.d.ts +88 -0
  421. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-state.d.ts +200 -0
  422. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/replace-controller.d.ts +73 -0
  423. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +64 -0
  424. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.d.ts +28 -0
  425. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.d.ts +56 -0
  426. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +1 -0
  427. package/dist/types/components/vega-rich-text-editor/extensions/horizontal-line/horizontal-line-extension.d.ts +1 -0
  428. package/dist/types/components/vega-rich-text-editor/extensions/image/image-extension.d.ts +27 -0
  429. package/dist/types/components/vega-rich-text-editor/extensions/image/type.d.ts +13 -0
  430. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +1 -0
  431. package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-extension.d.ts +1 -0
  432. package/dist/types/components/vega-rich-text-editor/extensions/paste/assets/paste.d.ts +3 -0
  433. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +58 -0
  434. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +6 -0
  435. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +150 -0
  436. package/dist/types/components/vega-rich-text-editor/extensions/special-characters/special-characters-extension.d.ts +1 -0
  437. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +1 -0
  438. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -0
  439. package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +7 -0
  440. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +7 -0
  441. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.d.ts +60 -0
  442. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/backward-delete-content-handler.d.ts +8 -0
  443. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/forward-delete-content-handler.d.ts +8 -0
  444. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.d.ts +114 -3
  445. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +22 -13
  446. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.d.ts +2 -1
  447. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +10 -2
  448. 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
  449. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +6 -0
  450. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -4
  451. package/dist/types/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.d.ts +1 -1
  452. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.d.ts +1 -1
  453. package/dist/types/components/vega-table/interface.d.ts +18 -0
  454. package/dist/types/components/vega-table/slimmers/controllers/dto/column-render-input-model.d.ts +13 -0
  455. package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +43 -0
  456. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +38 -0
  457. package/dist/types/components/vega-table/slimmers/renderers/vega-table-cell-renderer.d.ts +11 -2
  458. package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +4 -0
  459. package/dist/types/components/vega-table/slimmers/renderers/vega-table-row-renderer.d.ts +1 -0
  460. package/dist/types/components/vega-table/vega-table-cell/slimmers/controllers/vega-table-row-state-subscriber.d.ts +1 -1
  461. package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +9 -0
  462. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +1 -0
  463. package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +9 -0
  464. package/dist/types/components/vega-table/vega-table.d.ts +2 -0
  465. package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.d.ts +1 -0
  466. package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.d.ts +1 -0
  467. package/dist/types/components/vega-time-picker/types.d.ts +7 -0
  468. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +11 -1
  469. package/dist/types/components.d.ts +114 -3
  470. package/dist/types/constants/ui.d.ts +1 -1
  471. package/dist/types/global/icons/copy.d.ts +3 -0
  472. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  473. package/dist/types/helpers/translation/interface.d.ts +20 -1
  474. package/dist/types/helpers/ui/element-appender.d.ts +4 -1
  475. package/dist/types/types/components.type.d.ts +5 -1
  476. package/dist/types/types/ui.type.d.ts +1 -1
  477. package/dist/vega/index.esm.js +1 -1
  478. package/dist/vega/{p-94845302.entry.js → p-05f937c5.entry.js} +1 -1
  479. package/dist/vega/p-07562b9c.js +1 -0
  480. package/dist/vega/p-09d50f59.entry.js +1 -0
  481. package/dist/vega/{p-cc8bf6e7.entry.js → p-0cb78838.entry.js} +1 -1
  482. package/dist/vega/p-0e607b44.js +1 -0
  483. package/dist/vega/{p-1acd5f04.entry.js → p-0f1d6ceb.entry.js} +1 -1
  484. package/dist/vega/{p-ef44d516.js → p-140616fe.js} +1 -1
  485. package/dist/vega/{p-e75e75c9.entry.js → p-1818f399.entry.js} +1 -1
  486. package/dist/vega/{p-4037126d.js → p-18a5e8bc.js} +1 -1
  487. package/dist/vega/{p-2b22091e.js → p-19c42e30.js} +1 -1
  488. package/dist/vega/{p-c87c7ef4.js → p-1efab41b.js} +1 -1
  489. package/dist/vega/{p-cd2a1ffb.js → p-21e21f51.js} +1 -1
  490. package/dist/vega/{p-4644ccf9.entry.js → p-26c7fe8b.entry.js} +1 -1
  491. package/dist/vega/p-282b37cb.js +1 -0
  492. package/dist/vega/p-29e3eb12.js +1 -0
  493. package/dist/vega/{p-6ecb3c7d.entry.js → p-2dc5edd0.entry.js} +1 -1
  494. package/dist/vega/{p-014e2cf9.js → p-2de61f1b.js} +1 -1
  495. package/dist/vega/{p-b77e85e0.entry.js → p-2de88b4a.entry.js} +1 -1
  496. package/dist/vega/{p-12b5c5e3.entry.js → p-2fcc604c.entry.js} +1 -1
  497. package/dist/vega/{p-73b9868f.js → p-32a67ba1.js} +1 -1
  498. package/dist/vega/p-392e049c.entry.js +1 -0
  499. package/dist/vega/{p-70352240.entry.js → p-3932f964.entry.js} +1 -1
  500. package/dist/vega/{p-5ffc7cb8.js → p-3a68b729.js} +1 -1
  501. package/dist/vega/{p-9e327397.entry.js → p-3c9da3cd.entry.js} +1 -1
  502. package/dist/vega/{p-4cef4812.js → p-3f183b52.js} +1 -1
  503. package/dist/vega/{p-216ef41e.entry.js → p-3f7b10b9.entry.js} +1 -1
  504. package/dist/vega/{p-64b5fe2a.entry.js → p-422d88ae.entry.js} +1 -1
  505. package/dist/vega/p-4256252c.js +3 -0
  506. package/dist/vega/{p-329c808e.entry.js → p-44439ecc.entry.js} +1 -1
  507. package/dist/vega/p-45e8424a.entry.js +1 -0
  508. package/dist/vega/p-4c49b2e3.js +1 -0
  509. package/dist/vega/{p-a14d8767.js → p-4d9562bc.js} +1 -1
  510. package/dist/vega/p-4e1aa86f.js +1 -0
  511. package/dist/vega/p-4ef5c4a7.entry.js +1 -0
  512. package/dist/vega/{p-7f086e54.entry.js → p-4f327808.entry.js} +1 -1
  513. package/dist/vega/{p-8019c156.js → p-5139e516.js} +1 -1
  514. package/dist/vega/{p-5bed3fd2.entry.js → p-56c4e349.entry.js} +1 -1
  515. package/dist/vega/{p-fea33425.js → p-5dbfffcd.js} +1 -1
  516. package/dist/vega/p-5f377954.js +1 -1
  517. package/dist/vega/p-615a2b8c.entry.js +1 -0
  518. package/dist/vega/{p-aaa6e976.entry.js → p-63101cb4.entry.js} +1 -1
  519. package/dist/vega/{p-a4826f3f.entry.js → p-653a6dd8.entry.js} +1 -1
  520. package/dist/vega/{p-044496e0.entry.js → p-66b7d1c7.entry.js} +1 -1
  521. package/dist/vega/{p-42a1d300.entry.js → p-6712a9c7.entry.js} +1 -1
  522. package/dist/vega/p-698fbd73.js +1 -0
  523. package/dist/vega/p-6ad7144a.entry.js +1 -0
  524. package/dist/vega/{p-6e7c1b19.entry.js → p-6b1893f6.entry.js} +1 -1
  525. package/dist/vega/{p-cec8ffdc.js → p-6d40635e.js} +1 -1
  526. package/dist/vega/{p-81591449.entry.js → p-73fd18d9.entry.js} +1 -1
  527. package/dist/vega/p-751a5cd6.entry.js +1 -0
  528. package/dist/vega/{p-42f3c0b1.entry.js → p-7b93a756.entry.js} +1 -1
  529. package/dist/vega/p-7c8e579e.entry.js +1 -0
  530. package/dist/vega/{p-0707aa21.js → p-7d54e9c1.js} +1 -1
  531. package/dist/vega/p-832d1a72.entry.js +1 -0
  532. package/dist/vega/p-846b1ab9.entry.js +1 -0
  533. package/dist/vega/p-88863658.js +1 -0
  534. package/dist/vega/p-88a6c89a.js +1 -0
  535. package/dist/vega/p-890a5254.js +1 -0
  536. package/dist/vega/{p-14bfc113.js → p-8bc15ed0.js} +1 -1
  537. package/dist/vega/{p-50d7a1c4.entry.js → p-8c1a5fa4.entry.js} +1 -1
  538. package/dist/vega/p-8d27b9cc.js +1 -0
  539. package/dist/vega/{p-3863187f.entry.js → p-944b43ce.entry.js} +1 -1
  540. package/dist/vega/{p-aea912ac.js → p-95d6c85f.js} +1 -1
  541. package/dist/vega/{p-da067259.entry.js → p-99b699be.entry.js} +1 -1
  542. package/dist/vega/{p-d00b3910.js → p-9a01be93.js} +1 -1
  543. package/dist/vega/p-9a472a04.entry.js +1 -0
  544. package/dist/vega/{p-e9a82603.entry.js → p-9cafbc26.entry.js} +1 -1
  545. package/dist/vega/{p-cd21adb8.js → p-a2bd621e.js} +1 -1
  546. package/dist/vega/{p-5a4e598f.js → p-a359e53c.js} +1 -1
  547. package/dist/vega/p-a9a87b9a.js +1 -0
  548. package/dist/vega/p-acbba6da.entry.js +1 -0
  549. package/dist/vega/{p-c75872a4.entry.js → p-ad35dea4.entry.js} +1 -1
  550. package/dist/vega/{p-8bc23bcf.entry.js → p-af98539f.entry.js} +1 -1
  551. package/dist/vega/{p-141f74ff.js → p-afb96938.js} +1 -1
  552. package/dist/vega/{p-6820b488.entry.js → p-b042e3b4.entry.js} +1 -1
  553. package/dist/vega/{p-822f70b0.js → p-b1ff70bf.js} +1 -1
  554. package/dist/vega/{p-c65a5778.entry.js → p-b39d4a88.entry.js} +1 -1
  555. package/dist/vega/{p-5df53125.entry.js → p-b5bee669.entry.js} +1 -1
  556. package/dist/vega/p-b5f308ee.entry.js +1 -0
  557. package/dist/vega/p-b6225d01.js +1 -0
  558. package/dist/vega/{p-8982796b.entry.js → p-bbabb1c8.entry.js} +1 -1
  559. package/dist/vega/p-bbf1f988.entry.js +1 -0
  560. package/dist/vega/{p-5fcb825c.entry.js → p-c2d28797.entry.js} +1 -1
  561. package/dist/vega/{p-42ed76ee.entry.js → p-c3c0e415.entry.js} +1 -1
  562. package/dist/vega/{p-5e282e41.js → p-c553d37e.js} +1 -1
  563. package/dist/vega/{p-2f48162f.entry.js → p-c5ecbc53.entry.js} +1 -1
  564. package/dist/vega/p-c9c6daa6.entry.js +1 -0
  565. package/dist/vega/p-cb81fc2a.entry.js +1 -0
  566. package/dist/vega/p-ccb9bf86.js +1 -0
  567. package/dist/vega/{p-49b4ab2b.js → p-ccf7518b.js} +1 -1
  568. package/dist/vega/{p-da2b1fd0.entry.js → p-cf8d5b3f.entry.js} +1 -1
  569. package/dist/vega/{p-bb0040d4.entry.js → p-d3a36d19.entry.js} +1 -1
  570. package/dist/vega/{p-ce27c273.entry.js → p-d44943e2.entry.js} +1 -1
  571. package/dist/vega/{p-ae728041.entry.js → p-d4bb6f93.entry.js} +1 -1
  572. package/dist/vega/p-d62b85ff.entry.js +1 -0
  573. package/dist/vega/p-d7f32ccf.entry.js +1 -0
  574. package/dist/vega/{p-d0060bdb.js → p-dca3278f.js} +1 -1
  575. package/dist/vega/{p-15da9d58.entry.js → p-ddd28a8e.entry.js} +1 -1
  576. package/dist/vega/p-ddf03de1.entry.js +1 -0
  577. package/dist/vega/{p-21775cc7.js → p-e0ecafca.js} +1 -1
  578. package/dist/vega/p-e33e1e90.js +1 -0
  579. package/dist/vega/{p-316a1e5c.entry.js → p-e410c4ad.entry.js} +1 -1
  580. package/dist/vega/p-e4309574.js +1 -0
  581. package/dist/vega/p-e5187a86.entry.js +1 -0
  582. package/dist/vega/{p-335e3237.entry.js → p-e86c6802.entry.js} +1 -1
  583. package/dist/vega/{p-4979fd7d.js → p-ef605271.js} +1 -1
  584. package/dist/vega/{p-0e03daa6.js → p-f0d4c78c.js} +1 -1
  585. package/dist/vega/p-f2f22b5d.entry.js +1 -0
  586. package/dist/vega/{p-58a00869.entry.js → p-f8a29127.entry.js} +1 -1
  587. package/dist/vega/{p-a04b95aa.entry.js → p-fbd3be00.entry.js} +1 -1
  588. package/dist/vega/p-fd70418f.js +1 -0
  589. package/dist/vega/{p-9756c6b9.entry.js → p-fda6e2cc.entry.js} +1 -1
  590. package/dist/vega/p-ff8dd200.js +1 -0
  591. package/dist/vega/{p-522dd15f.entry.js → p-ffdacaf9.entry.js} +1 -1
  592. package/dist/vega/vega.esm.js +1 -1
  593. package/package.json +2 -16
  594. package/readme.md +0 -5
  595. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.js +0 -92
  596. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.d.ts +0 -26
  597. package/dist/vega/p-0605c656.entry.js +0 -1
  598. package/dist/vega/p-144d4b30.js +0 -1
  599. package/dist/vega/p-2944c76e.entry.js +0 -1
  600. package/dist/vega/p-3372f34a.entry.js +0 -1
  601. package/dist/vega/p-3cf298a4.entry.js +0 -1
  602. package/dist/vega/p-3fe43f7a.entry.js +0 -1
  603. package/dist/vega/p-507612f6.entry.js +0 -1
  604. package/dist/vega/p-53ed3b1f.js +0 -1
  605. package/dist/vega/p-57f7c257.js +0 -1
  606. package/dist/vega/p-5e1cd1cc.js +0 -1
  607. package/dist/vega/p-5e1ec2b8.entry.js +0 -1
  608. package/dist/vega/p-61d42e9b.entry.js +0 -1
  609. package/dist/vega/p-63ae5ada.entry.js +0 -1
  610. package/dist/vega/p-66905cbf.js +0 -1
  611. package/dist/vega/p-689070f9.entry.js +0 -1
  612. package/dist/vega/p-74fa0f5b.entry.js +0 -1
  613. package/dist/vega/p-7bb39b97.js +0 -1
  614. package/dist/vega/p-7f139b74.js +0 -1
  615. package/dist/vega/p-85d78ac1.js +0 -1
  616. package/dist/vega/p-92a144bc.js +0 -1
  617. package/dist/vega/p-9f608b97.js +0 -1
  618. package/dist/vega/p-aca134a3.entry.js +0 -1
  619. package/dist/vega/p-b2f89dbd.js +0 -1
  620. package/dist/vega/p-b2f9698a.entry.js +0 -1
  621. package/dist/vega/p-b504a8b4.entry.js +0 -1
  622. package/dist/vega/p-b7b0930a.entry.js +0 -1
  623. package/dist/vega/p-bd94b904.entry.js +0 -1
  624. package/dist/vega/p-c0c2a917.js +0 -3
  625. package/dist/vega/p-c40555c4.entry.js +0 -1
  626. package/dist/vega/p-cb4033ef.js +0 -1
  627. package/dist/vega/p-d14ddf80.js +0 -1
  628. package/dist/vega/p-dc78e8d6.js +0 -1
  629. package/dist/vega/p-ddc2d219.js +0 -1
  630. package/dist/vega/p-f362c07b.entry.js +0 -1
  631. package/dist/vega/p-fb1ef3e6.entry.js +0 -1
  632. package/dist/vega/p-fc103347.entry.js +0 -1
  633. /package/dist/cjs/{feature-flag-controller-438a1510.js → feature-flag-controller-c19d0b58.js} +0 -0
  634. /package/dist/collection/{components/vega-code-block/assets → global/icons}/copy.js +0 -0
  635. /package/dist/esm/{feature-flag-controller-2a89f20c.js → feature-flag-controller-3fd04ea9.js} +0 -0
  636. /package/dist/types/components/{vega-code-block/assets/copy.d.ts → vega-rich-text-editor/assets/cut.d.ts} +0 -0
  637. /package/dist/vega/{p-bc73ce30.js → p-87a4d75f.js} +0 -0
@@ -10,32 +10,34 @@ const accessibility = require('./accessibility-88f8af84.js');
10
10
  const changeManager = require('./change-manager-a297e4d2.js');
11
11
  const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-c82df135.js');
12
12
  const vegaInternalEventId = require('./vega-internal-event-id-ecc5b87a.js');
13
- const codeBlock = require('./code-block-c1039791.js');
14
- const linkExtension = require('./link-extension-a7ac28f3.js');
15
- const typeGuard = require('./type-guard-0171e779.js');
13
+ const codeBlock = require('./code-block-2f3d0f38.js');
14
+ const linkExtension = require('./link-extension-455c02b3.js');
15
+ const typeGuard = require('./type-guard-1c3770d4.js');
16
16
  const internalIconManager = require('./internal-icon-manager-40bcac72.js');
17
- const imageAnnotationAction = require('./image-annotation-action-e4596726.js');
18
- const vegaEventId = require('./vega-event-id-df22d80e.js');
17
+ const imageAnnotationAction = require('./image-annotation-action-c2b163bb.js');
18
+ const vegaEventId = require('./vega-event-id-58afed7a.js');
19
19
  const misc = require('./misc-3d30df91.js');
20
20
  const waitForComponentDidRender = require('./wait-for-component-did-render-02ca4bee.js');
21
- const formFieldControllerSlimmer = require('./form-field-controller-slimmer-b0c35330.js');
22
- const eventEmitSlimmer = require('./event-emit-slimmer-5bab10c2.js');
21
+ const imageExtension = require('./image-extension-4e99b620.js');
22
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-3bfcf88c.js');
23
+ const eventEmitSlimmer = require('./event-emit-slimmer-d234a619.js');
23
24
  const subStateNotifySlimmer = require('./sub-state-notify-slimmer-18891389.js');
24
- const contentState = require('./content-state-a6105949.js');
25
+ const contentState = require('./content-state-13daf87a.js');
25
26
  const alignLeft = require('./align-left-4a76df69.js');
26
- const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-1d36641d.js');
27
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-31d2c7aa.js');
27
28
  const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
28
29
  const observer = require('./observer-f49483e8.js');
29
30
  const timer = require('./timer-5f33058b.js');
30
31
  const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-b454645a.js');
31
- const replaceSelectedTextAction = require('./replace-selected-text-action-6d1ebbf9.js');
32
- const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-63492ca3.js');
33
- const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-76d19d56.js');
34
- const translationSlimmer = require('./translation-slimmer-2af6f141.js');
32
+ const replaceSelectedTextAction = require('./replace-selected-text-action-a80f5a6a.js');
33
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-1085c71a.js');
34
+ const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-e67ee84c.js');
35
+ const translationSlimmer = require('./translation-slimmer-7fb6e94c.js');
35
36
  const darkModeStyleController = require('./dark-mode-style-controller-32d4054a.js');
36
37
  const autoRunWhenReRenderTaskQueueSlimmer_abstract = require('./auto-run-when-re-render-task-queue-slimmer.abstract-5734634d.js');
37
38
  const array = require('./array-249289f2.js');
38
39
  const chevronDown = require('./chevron-down-9847bf78.js');
40
+ const chevronUp = require('./chevron-up-21465cf7.js');
39
41
  const trashCan = require('./trash-can-46a5e19a.js');
40
42
  const ui = require('./ui-c91c37a7.js');
41
43
  const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
@@ -44,7 +46,7 @@ require('./typography-3ea4fe41.js');
44
46
  require('./object-b53e9416.js');
45
47
  require('./breakpoints-ebde4837.js');
46
48
  require('./ui-32120990.js');
47
- require('./internal-translation-controller-5905469e.js');
49
+ require('./internal-translation-controller-31f2b057.js');
48
50
  require('./icon-manager-be358b32.js');
49
51
  require('./create-public-api-runtime-metrics-slimmer-91b0cbfb.js');
50
52
  require('./dynamic-slimmer-f31fdfd7.js');
@@ -56,12 +58,12 @@ require('./internal-form-field-validation-rule.abstract-07cdff46.js');
56
58
  require('./mutation-observer-slimmer-749d5020.js');
57
59
  require('./mutation-observer-filters-38cebc6d.js');
58
60
  require('./sub-state-observer-slimmer-eee2f0ae.js');
59
- require('./internal-vega-event-manager-7196a847.js');
60
- require('./range-dea19a90.js');
61
- require('./keyboard-manager-slimmer-079a7e87.js');
62
- require('./keyboard-manager-61e8ce38.js');
61
+ require('./internal-vega-event-manager-13c4012b.js');
62
+ require('./range-bf80fa40.js');
63
+ require('./keyboard-manager-slimmer-d350c931.js');
64
+ require('./keyboard-manager-c78b46bd.js');
63
65
  require('./vega-env-manager-23b8b23c.js');
64
- require('./feature-flag-controller-438a1510.js');
66
+ require('./feature-flag-controller-c19d0b58.js');
65
67
  require('./index-3ca118c4.js');
66
68
  require('./tinycolor-polyfill-502efaa8.js');
67
69
  require('./vega-nonce-manager-df69d3ed.js');
@@ -1037,6 +1039,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1037
1039
  super({
1038
1040
  icon: 'image',
1039
1041
  tooltip: { text: 'Image' },
1042
+ autoFocusOnClick: false,
1040
1043
  });
1041
1044
  this.insertURLImage = async () => {
1042
1045
  const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
@@ -1049,18 +1052,21 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1049
1052
  this.uploadInputRef.click();
1050
1053
  break;
1051
1054
  case 'url':
1052
- this.currentRange = this.selectionController.getCurrentRange();
1053
- this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1054
- this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1055
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1056
- this.host.parentElement.append(this.insertURLModalRef);
1057
- this.insertURLInputRef.value = '';
1058
- await this.insertURLModalRef.modal('show');
1059
- await this.insertURLInputRef.doFocus();
1055
+ await this.openInsertURLModal();
1060
1056
  break;
1061
1057
  }
1062
1058
  await this.dropdownRef.hide();
1063
1059
  };
1060
+ this.openInsertURLModal = async () => {
1061
+ this.currentRange = this.selectionController.getCurrentRange();
1062
+ this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1063
+ this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1064
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1065
+ this.host.parentElement.append(this.insertURLModalRef);
1066
+ this.insertURLInputRef.value = '';
1067
+ await this.insertURLModalRef.modal('show');
1068
+ await this.insertURLInputRef.doFocus();
1069
+ };
1064
1070
  /**
1065
1071
  * The below method is e2e-test covered in
1066
1072
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1082,15 +1088,33 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1082
1088
  };
1083
1089
  }
1084
1090
  renderBtnWrapper(renderBtn) {
1091
+ const shouldRenderDropdown = this.shouldRenderDropdown();
1092
+ const shouldRenderUpload = this.isImageUploadEnabled();
1093
+ const shouldRenderUrlInsertion = this.isImageURLInsertionEnabled();
1094
+ if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
1095
+ return null;
1096
+ }
1085
1097
  return (index.h("vega-box", null,
1086
- index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1098
+ shouldRenderDropdown ? (index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
1087
1099
  this.dropdownRef = ref;
1088
1100
  this.addDropdownObserver(ref);
1089
1101
  } },
1090
1102
  renderBtn({ showArrowIcon: true }),
1091
- index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
1092
- this.renderUploadInput(),
1093
- this.renderInsertURLModal()));
1103
+ index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent()))) : (renderBtn({})),
1104
+ shouldRenderUpload ? this.renderUploadInput() : null,
1105
+ shouldRenderUrlInsertion ? this.renderInsertURLModal() : null));
1106
+ }
1107
+ onClick() {
1108
+ if (this.shouldRenderDropdown()) {
1109
+ return;
1110
+ }
1111
+ if (this.isImageURLInsertionEnabled()) {
1112
+ void this.openInsertURLModal();
1113
+ return;
1114
+ }
1115
+ if (this.isImageUploadEnabled()) {
1116
+ this.uploadInputRef.click();
1117
+ }
1094
1118
  }
1095
1119
  isSelected() {
1096
1120
  return false;
@@ -1103,10 +1127,20 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1103
1127
  this.shouldDisabledToolbar(selectedBlock, codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
1104
1128
  }
1105
1129
  renderDropdownContent() {
1106
- return (index.h(index.Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
1130
+ return (index.h(index.Fragment, null, this.getItems().map((item) => {
1107
1131
  return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
1108
1132
  })));
1109
1133
  }
1134
+ getItems() {
1135
+ return ImageToolbarButtonSlimmer.allItems.filter((item) => {
1136
+ if (item.key === 'upload') {
1137
+ return this.isImageUploadEnabled();
1138
+ }
1139
+ else {
1140
+ return this.isImageURLInsertionEnabled();
1141
+ }
1142
+ });
1143
+ }
1110
1144
  renderUploadInput() {
1111
1145
  return (index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
1112
1146
  }
@@ -1139,6 +1173,18 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1139
1173
  addModalInsertObserver(buttonRef) {
1140
1174
  domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, vegaEventId.VegaClick, this.insertURLImage);
1141
1175
  }
1176
+ getImageExtensionConfig() {
1177
+ return imageExtension.VegaRTEImageExtension.configStore.get(this.host) || {};
1178
+ }
1179
+ isImageUploadEnabled() {
1180
+ return this.getImageExtensionConfig().enableImageUpload !== false;
1181
+ }
1182
+ isImageURLInsertionEnabled() {
1183
+ return this.getImageExtensionConfig().enableImageURLInsertion !== false;
1184
+ }
1185
+ shouldRenderDropdown() {
1186
+ return this.getItems().length > 1;
1187
+ }
1142
1188
  /**
1143
1189
  * The below method is e2e-test covered in
1144
1190
  * @see{module:should-update-url-properly-when-upload-images}
@@ -1171,7 +1217,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1171
1217
  (() => {
1172
1218
  internalIconManager.VegaInternalIconManager.register({ image: image });
1173
1219
  })();
1174
- ImageToolbarButtonSlimmer.items = [
1220
+ ImageToolbarButtonSlimmer.allItems = [
1175
1221
  {
1176
1222
  key: 'upload',
1177
1223
  label: 'Upload from computer',
@@ -1897,7 +1943,7 @@ class BaseHandler {
1897
1943
  * @returns {boolean} boolean result
1898
1944
  */
1899
1945
  isEmptyParagraph(node) {
1900
- return node && node.childNodes && node.childNodes.length === 0;
1946
+ return node && node.nodeType === Node.ELEMENT_NODE && node.childNodes && node.childNodes.length === 0;
1901
1947
  }
1902
1948
  /**
1903
1949
  * Removes selected nodes within a range in a rich text editor content.
@@ -2258,7 +2304,7 @@ class InsertLineBreakHandler extends BaseHandler {
2258
2304
  getNextRTENode(lineBreakNode) {
2259
2305
  const index = lineBreakNode.parent.children.indexOf(lineBreakNode);
2260
2306
  const nextNode = lineBreakNode.parent.children[index + 1];
2261
- return nextNode || lineBreakNode;
2307
+ return nextNode && nextNode.isContentEditable() ? nextNode : lineBreakNode;
2262
2308
  }
2263
2309
  }
2264
2310
 
@@ -2276,48 +2322,89 @@ class DeleteBlockContentAction extends codeBlock.ModifyContentAction {
2276
2322
  }
2277
2323
  }
2278
2324
 
2279
- /** Handles the deletion of content within a VegaRTE editor. User press backspace or delete will trigger this method */
2280
- class DeleteContentHandler extends BaseHandler {
2325
+ /**
2326
+ * Hosts the deletion logic shared by the forward and backward delete handlers. Subclasses implement
2327
+ * the single-block deletion behaviour for their specific direction. User press backspace or delete
2328
+ * will trigger one of those subclasses.
2329
+ */
2330
+ class AbstractDeleteContentHandler extends BaseHandler {
2281
2331
  /**
2282
- * Delete the selected node from the current state.
2332
+ * Delete the selected node(s) from the current state.
2283
2333
  */
2284
2334
  handleEvent() {
2285
2335
  const selectedBlocks = this.selectionController.getSelectedBlocks();
2286
- if (selectedBlocks.length < 2) {
2287
- this.deleteContentWithSingleBlock();
2336
+ if (selectedBlocks.length >= 2) {
2337
+ this.deleteContentWithMultipleNodes();
2288
2338
  }
2289
2339
  else {
2290
- this.deleteContentWithMultipleNodes();
2340
+ this.deleteContentWithSingleBlock();
2291
2341
  }
2292
2342
  }
2293
2343
  /**
2294
- * Handles the deletion of content within a single block in an RTE editor.
2344
+ * Computes the caret position one step to the right, used to translate a forward delete into a backspace.
2345
+ *
2346
+ * @param {Nullable<RTENode>} node - The node the caret is currently in.
2347
+ * @param {number} offset - The current caret offset within the node.
2348
+ * @returns {Nullable<ForwardDeletePosition>} The shifted position, or null when the caret is at the end of the content.
2295
2349
  */
2296
- deleteContentWithSingleBlock() {
2297
- const range = this.selectionController.getCurrentRange();
2298
- const { startOffset, endOffset, startContainer, endContainer } = range;
2299
- const selectedBlocks = this.selectionController.getSelectedBlocks();
2300
- const selectedNodes = this.selectionController.getSelectedNodes();
2301
- if (startOffset !== endOffset || startContainer !== endContainer) {
2302
- this.deleteContentWithMultipleNodes();
2350
+ getForwardDeletePosition(node, offset) {
2351
+ if (!node) {
2352
+ return null;
2303
2353
  }
2304
- else if (selectedBlocks[0]) {
2305
- const deleteAction = new DeleteBlockContentAction(selectedNodes[0], startOffset);
2306
- selectedBlocks[0].apply(deleteAction);
2307
- if (deleteAction.previousNode) {
2308
- const nextOffset = deleteAction.previousNode === selectedNodes[0]
2309
- ? Math.max(0, startOffset - 1)
2310
- : deleteAction.previousNode.getRangeEndOffset();
2311
- this.selectionController.enqueueSelectionRangeFutureState(deleteAction.previousNode, nextOffset);
2312
- }
2313
- else if (deleteAction.nextNode) {
2314
- this.selectionController.enqueueSelectionRangeFutureState(deleteAction.nextNode, 0);
2315
- }
2316
- else if (this.currentState.children.length === 0) {
2317
- // Add a empty paragraph if delete all content to make sure the caret position
2318
- this.insertDefaultParagraph();
2319
- }
2354
+ // Delete the character to the right within the same node.
2355
+ if (offset < node.getRangeEndOffset()) {
2356
+ return { node, offset: offset + 1 };
2357
+ }
2358
+ // The caret is at the end of the node, move to the next node.
2359
+ const nextNode = this.getNextNode(node);
2360
+ if (!nextNode) {
2361
+ return null;
2320
2362
  }
2363
+ // When the next node lives in the same block, the end of the current node and the
2364
+ // start of the next node are the same caret position, so the character to delete is
2365
+ // the first character of the next node, mirroring a backspace at offset 1.
2366
+ if (nextNode.parent === node.parent) {
2367
+ return { node: nextNode, offset: 1 };
2368
+ }
2369
+ // The next node lives in a different block, so deleting forward should merge that
2370
+ // block or remove the next line break, mirroring a backspace at the block start.
2371
+ return { node: nextNode, offset: 0 };
2372
+ }
2373
+ /**
2374
+ * Returns the next node relative to the given node, crossing block boundaries when needed.
2375
+ *
2376
+ * @param {RTENode} node - The current node.
2377
+ * @returns {Nullable<RTENode>} The next node, or null when the given node is the last node of the content.
2378
+ */
2379
+ getNextNode(node) {
2380
+ const block = node.parent;
2381
+ const nodeIndex = block.children.indexOf(node);
2382
+ if (nodeIndex >= 0 && nodeIndex < block.children.length - 1) {
2383
+ return block.children[nodeIndex + 1];
2384
+ }
2385
+ const nextBlock = this.getNextBlock(block);
2386
+ return nextBlock ? nextBlock.getFirstNode() : null;
2387
+ }
2388
+ /**
2389
+ * Returns the next block relative to the given block, ascending out of nested list structures when needed.
2390
+ *
2391
+ * @param {RTEBlock} block - The current block.
2392
+ * @returns {Nullable<RTEBlock>} The next block, or null when the given block is the last block of the content.
2393
+ */
2394
+ getNextBlock(block) {
2395
+ const parent = block.parent;
2396
+ if (!parent || !parent.children) {
2397
+ return null;
2398
+ }
2399
+ const siblings = parent.children;
2400
+ const blockIndex = siblings.indexOf(block);
2401
+ if (blockIndex >= 0 && siblings[blockIndex + 1]) {
2402
+ return siblings[blockIndex + 1];
2403
+ }
2404
+ if (parent instanceof codeBlock.RTEBlock) {
2405
+ return this.getNextBlock(parent);
2406
+ }
2407
+ return null;
2321
2408
  }
2322
2409
  /**
2323
2410
  * Deletes the content within multiple nodes selected by the user.
@@ -2361,6 +2448,132 @@ class DeleteContentHandler extends BaseHandler {
2361
2448
  }
2362
2449
  }
2363
2450
 
2451
+ /** Handles a delete (rightward) deletion of content within a VegaRTE editor. User press delete will trigger this method */
2452
+ class ForwardDeleteContentHandler extends AbstractDeleteContentHandler {
2453
+ /**
2454
+ * Handles a delete (rightward) deletion of content within a single block in an RTE editor.
2455
+ */
2456
+ deleteContentWithSingleBlock() {
2457
+ const range = this.selectionController.getCurrentRange();
2458
+ const { startOffset, endOffset, startContainer, endContainer } = range;
2459
+ if (startOffset !== endOffset || startContainer !== endContainer) {
2460
+ this.deleteContentWithMultipleNodes();
2461
+ return;
2462
+ }
2463
+ const targetNode = this.selectionController.getSelectedNodes()[0];
2464
+ // The node that should hold the caret after a forward delete removes a non-editable
2465
+ // leading node (e.g. a function keyword or a token), so the caret stays put instead of
2466
+ // jumping backward to the previous block. Captured before the deletion detaches it.
2467
+ let forwardCaretAnchor = null;
2468
+ let resolvedNode = targetNode;
2469
+ let resolvedOffset = startOffset;
2470
+ // A forward delete on an empty node (e.g. an emptied function-block input box) mirrors
2471
+ // a backspace: the empty node itself is removed instead of shifting the caret into the
2472
+ // following block. Without this, the forward delete falls into the heterogeneous block
2473
+ // boundary branch below and only moves the caret, so an emptied input box could never
2474
+ // be removed with Delete even though Backspace removes it. The caret then lands on the
2475
+ // following content that shifts up into the emptied node's place.
2476
+ if (targetNode && targetNode.isTextNode() && targetNode.isEmpty()) {
2477
+ forwardCaretAnchor = this.getNextNode(targetNode);
2478
+ }
2479
+ else {
2480
+ // A forward delete is equivalent to moving the caret one step to the right and
2481
+ // then performing a backspace, so we can reuse the existing backspace logic.
2482
+ const forwardPosition = this.getForwardDeletePosition(targetNode, startOffset);
2483
+ // The caret is at the very end of the content, there is nothing to delete forward.
2484
+ if (!forwardPosition) {
2485
+ return;
2486
+ }
2487
+ // Mirror backspace at heterogeneous block boundaries: a forward delete that crosses
2488
+ // into a following block of a different type (e.g. paragraph → list-item, or into an
2489
+ // image block) only moves the caret onto that block first; the next forward delete then
2490
+ // removes it, keeping Delete and Backspace consistent. When the following block is the
2491
+ // same type (e.g. a token at the start of the next paragraph) we let the deletion
2492
+ // proceed so the two blocks merge, mirroring a backspace at the start of that block.
2493
+ if (targetNode &&
2494
+ forwardPosition.node.parent !== targetNode.parent &&
2495
+ forwardPosition.node.parent.type !== targetNode.parent.type) {
2496
+ this.selectionController.enqueueSelectionRangeFutureState(forwardPosition.node, 0);
2497
+ return;
2498
+ }
2499
+ // When the caret sits at the start of a non-editable leading node (e.g. a function
2500
+ // keyword or a token), a forward delete removes that node. Visually the caret stays
2501
+ // put while the following content shifts up into its place, so the caret should land
2502
+ // on that next node rather than following the backspace's leftward move to the
2503
+ // previous block.
2504
+ if (targetNode && !targetNode.isContentEditable() && startOffset === 0) {
2505
+ forwardCaretAnchor = this.getNextNode(targetNode);
2506
+ }
2507
+ resolvedNode = forwardPosition.node;
2508
+ resolvedOffset = forwardPosition.offset;
2509
+ }
2510
+ /* istanbul ignore next */
2511
+ if (!resolvedNode) {
2512
+ return;
2513
+ }
2514
+ const deleteAction = new DeleteBlockContentAction(resolvedNode, resolvedOffset);
2515
+ resolvedNode.parent.apply(deleteAction);
2516
+ if (forwardCaretAnchor) {
2517
+ // A non-editable anchor (e.g. a token) expresses its caret position at the
2518
+ // parent-block level: its range container is the parent element, so an offset of
2519
+ // 0 would put the caret at the very start of the block (jumping to the far left)
2520
+ // instead of just before the anchor. Use the anchor's index within its parent so
2521
+ // the caret lands right before it, on the spot the deleted node used to occupy.
2522
+ const forwardCaretOffset = forwardCaretAnchor.isContentEditable()
2523
+ ? 0
2524
+ : forwardCaretAnchor.parent.children.indexOf(forwardCaretAnchor);
2525
+ this.selectionController.enqueueSelectionRangeFutureState(forwardCaretAnchor, forwardCaretOffset);
2526
+ }
2527
+ else if (deleteAction.previousNode) {
2528
+ const nextOffset = deleteAction.previousNode === resolvedNode
2529
+ ? Math.max(0, resolvedOffset - 1)
2530
+ : deleteAction.previousNode.getRangeEndOffset();
2531
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.previousNode, nextOffset);
2532
+ }
2533
+ else if (deleteAction.nextNode) {
2534
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.nextNode, 0);
2535
+ }
2536
+ else if (this.currentState.children.length === 0) {
2537
+ // Add a empty paragraph if delete all content to make sure the caret position
2538
+ this.insertDefaultParagraph();
2539
+ }
2540
+ }
2541
+ }
2542
+
2543
+ /** Handles a backspace (leftward) deletion of content within a VegaRTE editor. User press backspace will trigger this method */
2544
+ class BackwardDeleteContentHandler extends AbstractDeleteContentHandler {
2545
+ /**
2546
+ * Handles a backspace (leftward) deletion of content within a single block in an RTE editor.
2547
+ */
2548
+ deleteContentWithSingleBlock() {
2549
+ const range = this.selectionController.getCurrentRange();
2550
+ const { startOffset, endOffset, startContainer, endContainer } = range;
2551
+ if (startOffset !== endOffset || startContainer !== endContainer) {
2552
+ this.deleteContentWithMultipleNodes();
2553
+ return;
2554
+ }
2555
+ const targetNode = this.selectionController.getSelectedNodes()[0];
2556
+ if (!targetNode) {
2557
+ return;
2558
+ }
2559
+ const deleteAction = new DeleteBlockContentAction(targetNode, startOffset);
2560
+ targetNode.parent.apply(deleteAction);
2561
+ if (deleteAction.previousNode) {
2562
+ const nextOffset = deleteAction.previousNode === targetNode
2563
+ ? Math.max(0, startOffset - 1)
2564
+ : deleteAction.previousNode.getRangeEndOffset();
2565
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.previousNode, nextOffset);
2566
+ }
2567
+ else if (deleteAction.nextNode) {
2568
+ this.selectionController.enqueueSelectionRangeFutureState(deleteAction.nextNode, 0);
2569
+ }
2570
+ else if (this.currentState.children.length === 0) {
2571
+ // Add a empty paragraph if delete all content to make sure the caret position
2572
+ this.insertDefaultParagraph();
2573
+ }
2574
+ }
2575
+ }
2576
+
2364
2577
  /**
2365
2578
  * Action to paste new content into current block.
2366
2579
  *
@@ -2371,6 +2584,7 @@ class PasteContentAction extends codeBlock.ModifyContentAction {
2371
2584
  constructor(blocksToBeInserted, startNode, startOffset, rteRange) {
2372
2585
  super();
2373
2586
  this.type = codeBlock.ModifyContentActionType.PASTE_CONTENT;
2587
+ this.futureFocusAtEnd = false;
2374
2588
  this.blocksToBeInserted = blocksToBeInserted;
2375
2589
  this.startNode = startNode;
2376
2590
  this.startOffset = startOffset;
@@ -2388,18 +2602,107 @@ class InsertPasteHandler extends BaseHandler {
2388
2602
  * @param {InputEvent} event - Paste event.
2389
2603
  */
2390
2604
  handleEvent(event) {
2605
+ const currentRange = this.selectionController.getCurrentRange();
2606
+ const payload = this.getPastePayload(event);
2607
+ if (this.insertPlainTextInline(payload, currentRange)) {
2608
+ return;
2609
+ }
2391
2610
  const blocks = this.parsePastedElements(event);
2392
- const { startContainer } = this.selectionController.getCurrentRange();
2393
- if (this.isRootContainer(startContainer)) {
2611
+ const startContainer = (currentRange === null || currentRange === void 0 ? void 0 : currentRange.startContainer) || undefined;
2612
+ if (!startContainer) {
2613
+ // When the selection/range is unavailable (e.g. the caret was lost while
2614
+ // the paste-mode chooser had focus), still append the pasted content to
2615
+ // the root so the paste is never silently dropped.
2616
+ this.insertBlocksToRoot(blocks);
2617
+ }
2618
+ else if (this.isRootContainer(startContainer)) {
2394
2619
  this.insertBlocksToRoot(blocks);
2395
2620
  // TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
2396
2621
  }
2397
2622
  else if (this.isEmptyParagraph(startContainer)) {
2398
- this.insertBlocksBeforeEmptyBlock(blocks);
2623
+ this.insertBlocksBeforeEmptyBlock(blocks, currentRange);
2399
2624
  }
2400
2625
  else {
2401
- this.insertBlocksToContent(blocks);
2626
+ this.insertBlocksToContent(blocks, currentRange);
2627
+ }
2628
+ }
2629
+ /**
2630
+ * Inserts plain-text paste content into the current text node at caret position.
2631
+ *
2632
+ * @param {RTEPastePayload} payload - Clipboard payload.
2633
+ * @param {RTERange} currentRange - Current selection range.
2634
+ * @returns {boolean} True when inline insertion is handled.
2635
+ */
2636
+ insertPlainTextInline(payload, currentRange) {
2637
+ var _a, _b;
2638
+ const selectedNodes = ((_b = (_a = this.selectionController).getSelectedNodes) === null || _b === void 0 ? void 0 : _b.call(_a)) || [];
2639
+ if (!this.shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes)) {
2640
+ return false;
2641
+ }
2642
+ const text = payload.text.replace(/\r\n?/g, '\n');
2643
+ const cursorNode = selectedNodes.find((node) => node instanceof codeBlock.RTETextNode) || currentRange.startNode;
2644
+ if (!(cursorNode instanceof codeBlock.RTETextNode)) {
2645
+ return false;
2646
+ }
2647
+ cursorNode.apply(new replaceSelectedTextAction.ReplaceSelectedTextAction(text, currentRange));
2648
+ this.selectionController.enqueueSelectionRangeFutureState(cursorNode, currentRange.startOffset + text.length);
2649
+ return true;
2650
+ }
2651
+ /**
2652
+ * Determines whether the payload should be inserted as inline plain text.
2653
+ *
2654
+ * @param {RTEPastePayload} payload - Clipboard payload.
2655
+ * @param {RTERange} currentRange - Current selection range.
2656
+ * @param {RTENode[]} selectedNodes - Currently selected nodes.
2657
+ * @returns {boolean} True when inline plain-text insertion should be used.
2658
+ */
2659
+ shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes = []) {
2660
+ if (!currentRange || !currentRange.startContainer) {
2661
+ return false;
2662
+ }
2663
+ if (this.isRootContainer(currentRange.startContainer)) {
2664
+ return false;
2665
+ }
2666
+ const text = (payload.text || '').replace(/\r\n?/g, '\n');
2667
+ if (!text) {
2668
+ return false;
2669
+ }
2670
+ const html = payload.html || '';
2671
+ if (!html) {
2672
+ return true;
2402
2673
  }
2674
+ const hasTextNodeSelection = selectedNodes.some((node) => node instanceof codeBlock.RTETextNode) ||
2675
+ currentRange.startNode instanceof codeBlock.RTETextNode;
2676
+ if (!hasTextNodeSelection) {
2677
+ return false;
2678
+ }
2679
+ // Use the inline plain‑text path only when HTML and plain text match exactly and no formatting exists;
2680
+ // otherwise route through the block path to preserve styles.
2681
+ const analysis = this.analyzeHtmlContent(html);
2682
+ return analysis.plainText === text && !analysis.hasFormatting;
2683
+ }
2684
+ /**
2685
+ * Analyzes HTML content to extract plain text and detect inline formatting,
2686
+ * parsing the HTML once to avoid redundant StylePreservation and DOMParser calls.
2687
+ *
2688
+ * @param {string} html - Clipboard text/html payload.
2689
+ * @returns {HtmlAnalysisResult} Analysis result with plainText and hasFormatting properties.
2690
+ */
2691
+ analyzeHtmlContent(html) {
2692
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2693
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2694
+ const body = parsedDoc.body;
2695
+ // Extract plain text from the parsed document
2696
+ const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
2697
+ // Check for rich inline formatting
2698
+ let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
2699
+ if (!hasFormatting) {
2700
+ hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
2701
+ const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
2702
+ return this.styleContainsRichFormatting(style);
2703
+ });
2704
+ }
2705
+ return { plainText, hasFormatting };
2403
2706
  }
2404
2707
  /**
2405
2708
  * Insert the blocks to root
@@ -2410,37 +2713,54 @@ class InsertPasteHandler extends BaseHandler {
2410
2713
  this.currentState.apply(new codeBlock.AppendChildrenAction(blocks));
2411
2714
  }
2412
2715
  /**
2413
- * Insert the blocks to content
2716
+ * Insert the blocks into the current content block at the specified range.
2414
2717
  *
2415
2718
  * @param { RTEContentBlock[]} blocks - blocks
2719
+ * @param { RTERange } rteRange - rteRange
2416
2720
  */
2417
- insertBlocksToContent(blocks) {
2418
- const cursorNode = this.removeSelectionRange();
2721
+ insertBlocksToContent(blocks, rteRange) {
2722
+ var _a;
2723
+ const isCollapsedRange = rteRange.startNode === rteRange.endNode && rteRange.startOffset === rteRange.endOffset;
2724
+ const cursorNode = isCollapsedRange
2725
+ ? rteRange.startNode
2726
+ : this.removeSelectionRange();
2419
2727
  if (cursorNode && cursorNode.parent) {
2420
- const { startOffset } = this.selectionController.getCurrentRange();
2421
- const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
2728
+ const pasteAction = new PasteContentAction(blocks, cursorNode, rteRange.startOffset, rteRange);
2422
2729
  cursorNode.parent.apply(pasteAction);
2423
- if (pasteAction.futureFocusBlock) {
2424
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2730
+ if (pasteAction.futureFocusNode) {
2731
+ this.selectionController.enqueueSelectionRangeFutureState(pasteAction.futureFocusNode, (_a = pasteAction.futureFocusNodeOffset) !== null && _a !== void 0 ? _a : 0);
2732
+ }
2733
+ else if (pasteAction.futureFocusBlock) {
2734
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2425
2735
  }
2426
2736
  }
2737
+ else {
2738
+ // No resolvable cursor position: fall back to appending at the root so
2739
+ // the pasted content is preserved instead of being discarded.
2740
+ this.insertBlocksToRoot(blocks);
2741
+ }
2427
2742
  }
2428
2743
  /**
2429
2744
  * Insert the blocks before to current block
2430
2745
  *
2431
2746
  * @param { RTEContentBlock[]} blocks - blocks
2747
+ * @param { RTERange } rteRange - rteRange
2432
2748
  */
2433
- insertBlocksBeforeEmptyBlock(blocks) {
2749
+ insertBlocksBeforeEmptyBlock(blocks, rteRange) {
2434
2750
  const cursorNode = this.removeSelectionRange();
2435
- /* istanbul ignore next */
2436
2751
  const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
2437
2752
  if (currentBlock) {
2438
- const pasteAction = new PasteContentAction(blocks, currentBlock.children[0], 0, this.selectionController.getCurrentRange());
2753
+ const pasteAction = new PasteContentAction(blocks, cursorNode, 0, rteRange);
2439
2754
  currentBlock.apply(pasteAction);
2440
2755
  if (pasteAction.futureFocusBlock) {
2441
- this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
2756
+ this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
2442
2757
  }
2443
2758
  }
2759
+ else {
2760
+ // No resolvable empty block: fall back to appending at the root so the
2761
+ // pasted content is preserved instead of being discarded.
2762
+ this.insertBlocksToRoot(blocks);
2763
+ }
2444
2764
  }
2445
2765
  /**
2446
2766
  * Format and parse elements from user paste with simple style preservation.
@@ -2449,30 +2769,76 @@ class InsertPasteHandler extends BaseHandler {
2449
2769
  * @returns {RTEContentBlock[]} - RTEContentBlock.
2450
2770
  */
2451
2771
  parsePastedElements(event) {
2452
- let pastedHTML = event.dataTransfer.getData('text/html');
2772
+ const payload = this.getPastePayload(event);
2773
+ let pastedHTML = payload.html || '';
2453
2774
  if (!pastedHTML) {
2454
- const pastedText = event.dataTransfer.getData('text/plain');
2455
- pastedHTML = this.parsePlainText(pastedText);
2775
+ pastedHTML = this.parsePlainText(payload.text || '');
2776
+ }
2777
+ else if (this.shouldTreatAsPlainTextPayload(pastedHTML)) {
2778
+ const plainSource = payload.text || this.extractPlainTextFromHtml(pastedHTML);
2779
+ pastedHTML = this.parsePlainText(plainSource);
2456
2780
  }
2457
2781
  const context = contentState.StylePreservator.preserve(pastedHTML);
2458
2782
  const safeHtml = context.getProcessedHtml();
2459
2783
  const parser = new DOMParser();
2460
2784
  const parsedDoc = parser.parseFromString(safeHtml, 'text/html');
2785
+ const rootElements = Array.from(parsedDoc.body.childNodes);
2786
+ context.restore(rootElements);
2787
+ this.normalizeImportedHtmlArtifacts(parsedDoc.body);
2461
2788
  const htmlElements = Array.from(parsedDoc.body.childNodes);
2462
- context.restore(htmlElements);
2463
- return contentState.ElementToDtoStrategyProcessor.process(htmlElements)
2789
+ const resultBlocks = contentState.ElementToDtoStrategyProcessor.process(htmlElements)
2464
2790
  .filter(Boolean)
2465
2791
  .map((output) => output.toDto())
2466
2792
  .filter(Boolean);
2793
+ // Fallback for synthetic payloads: if strategy conversion yields no blocks
2794
+ // but we still have plain text, create paragraph/text blocks directly.
2795
+ if (resultBlocks.length === 0 && (payload.text || '').trim() !== '') {
2796
+ return this.buildPlainTextFallbackBlocks(payload.text);
2797
+ }
2798
+ return resultBlocks;
2467
2799
  }
2468
2800
  /**
2469
- * Moves the caret to the next block element in a rich text editor.
2801
+ * Extracts readable plain text from clipboard HTML.
2470
2802
  *
2471
- * @param {RTEBlock} newBlock - Represents a new create block element in a rich text editor.
2803
+ * @param {string} html - Clipboard text/html payload.
2804
+ * @returns {string} - Plain text extracted from HTML.
2472
2805
  */
2473
- switchCaretPositionToNextElement(newBlock) {
2806
+ extractPlainTextFromHtml(html) {
2807
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations.
2808
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2809
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2810
+ return (parsedDoc.body.textContent || '').replace(/\r\n?/g, '\n');
2811
+ }
2812
+ /**
2813
+ * Builds plain-text paragraph blocks when element strategy parsing returns no output.
2814
+ *
2815
+ * @param {string} text - Plain text clipboard content.
2816
+ * @returns {RTEContentBlock[]} Fallback text blocks.
2817
+ */
2818
+ buildPlainTextFallbackBlocks(text) {
2819
+ return text.split('\n').map((line) => {
2820
+ const paragraph = new codeBlock.RTETextBlock(misc.generateUUID(), 'paragraph');
2821
+ const textNode = new codeBlock.RTETextNode(`${paragraph.id}1`, line, paragraph);
2822
+ paragraph.apply(new codeBlock.AppendChildrenAction([textNode]));
2823
+ return paragraph;
2824
+ });
2825
+ }
2826
+ /**
2827
+ * Moves the caret to a block element in a rich text editor after paste.
2828
+ *
2829
+ * @param {RTEBlock} newBlock - Block element to move the caret to.
2830
+ * @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.
2831
+ */
2832
+ switchCaretPositionToNextElement(newBlock, atEnd = false) {
2833
+ var _a, _b;
2474
2834
  if (newBlock && newBlock.children) {
2475
- this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2835
+ if (atEnd) {
2836
+ const lastNode = newBlock.children[newBlock.children.length - 1];
2837
+ this.selectionController.enqueueSelectionRangeFutureState(lastNode, (_b = (_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
2838
+ }
2839
+ else {
2840
+ this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
2841
+ }
2476
2842
  }
2477
2843
  }
2478
2844
  /**
@@ -2482,16 +2848,217 @@ class InsertPasteHandler extends BaseHandler {
2482
2848
  * @returns {string} - The formatted HTML string.
2483
2849
  */
2484
2850
  parsePlainText(content) {
2851
+ if (this.shouldRenderAsCodeBlock(content)) {
2852
+ return `<pre><code>${codeBlock.escapeHtml(content)}</code></pre>`;
2853
+ }
2485
2854
  const lines = content.split('\n');
2486
2855
  return lines
2487
2856
  .map((line) => {
2488
2857
  if (line === '') {
2489
2858
  return '<p>\n</p>';
2490
2859
  }
2491
- return `<p>${line}</p>`;
2860
+ return `<p>${codeBlock.escapeHtml(line)}</p>`;
2492
2861
  })
2493
2862
  .join('');
2494
2863
  }
2864
+ /**
2865
+ * Detects whether plain text likely represents source code.
2866
+ *
2867
+ * @param {string} content - Clipboard plain text content.
2868
+ * @returns {boolean} True when the content should render as a code block.
2869
+ */
2870
+ shouldRenderAsCodeBlock(content) {
2871
+ const normalized = content.replace(/\r\n?/g, '\n').trim();
2872
+ if (!normalized) {
2873
+ return false;
2874
+ }
2875
+ const hasMultipleLines = normalized.includes('\n');
2876
+ const hasHtmlLikeTag = /<\/?[a-z][\w:-]*[^>]*>/i.test(normalized);
2877
+ const hasCodeFence = normalized.startsWith('```') && normalized.endsWith('```');
2878
+ const hasProgrammingTokens = /[{};]|=>|\b(function|const|let|var|class|import|export|return)\b/.test(normalized);
2879
+ if (hasCodeFence) {
2880
+ return true;
2881
+ }
2882
+ return hasHtmlLikeTag || (hasMultipleLines && hasProgrammingTokens);
2883
+ }
2884
+ /**
2885
+ * Removes pasted website artifacts that can cause visual regressions in the editor,
2886
+ * such as heading anchor tooltips and empty wrappers.
2887
+ *
2888
+ * @param {HTMLElement} body - Parsed clipboard html body.
2889
+ */
2890
+ normalizeImportedHtmlArtifacts(body) {
2891
+ this.removeHeadingArtifacts(body);
2892
+ this.removeEmptyBlocks(body);
2893
+ }
2894
+ /**
2895
+ * Removes heading copy-link/tooltip artifacts copied from documentation pages.
2896
+ *
2897
+ * @param {HTMLElement} body - Parsed clipboard html body.
2898
+ */
2899
+ removeHeadingArtifacts(body) {
2900
+ const selectors = [
2901
+ 'a.js-heading-link',
2902
+ 'a.c-heading-link',
2903
+ '.js-tooltip-popover',
2904
+ '.c-tooltip-popover',
2905
+ '[role="tooltip"]',
2906
+ ];
2907
+ body.querySelectorAll(selectors.join(',')).forEach((element) => element.remove());
2908
+ }
2909
+ /**
2910
+ * Removes empty block wrappers introduced by web copy/paste.
2911
+ *
2912
+ * @param {HTMLElement} body - Parsed clipboard html body.
2913
+ */
2914
+ removeEmptyBlocks(body) {
2915
+ const blockSelectors = ['p', 'div', 'section', 'article'];
2916
+ body.querySelectorAll(blockSelectors.join(',')).forEach((element) => {
2917
+ if (this.isEmptyVisualBlock(element)) {
2918
+ element.remove();
2919
+ }
2920
+ });
2921
+ }
2922
+ /**
2923
+ * Checks whether a block is visually empty and safe to remove.
2924
+ *
2925
+ * @param {HTMLElement} element - Block element to inspect.
2926
+ * @returns {boolean} True when the block has no visible content.
2927
+ */
2928
+ isEmptyVisualBlock(element) {
2929
+ if (element.tagName === 'DIV' && element.classList.contains('doc')) {
2930
+ return false;
2931
+ }
2932
+ const hasVisualChild = Boolean(element.querySelector('img,video,audio,iframe,canvas,svg,table,hr,pre,code,blockquote'));
2933
+ if (hasVisualChild) {
2934
+ return false;
2935
+ }
2936
+ return (element.textContent || '').trim() === '';
2937
+ }
2938
+ /**
2939
+ * Checks whether a text/html payload is effectively plain text.
2940
+ *
2941
+ * Some sources (e.g. terminals, code editors) place the copied text inside an
2942
+ * off-screen / visually hidden wrapper such as
2943
+ * `<pre><div style="position: absolute; left: -9999px;">text</div></pre>`.
2944
+ * Preserving that markup as rich content would render the pasted text
2945
+ * off-screen (appearing empty), so such payloads are treated as plain text.
2946
+ *
2947
+ * @param {string} html - Clipboard text/html payload.
2948
+ * @returns {boolean} True when the payload has no visible rich content.
2949
+ */
2950
+ shouldTreatAsPlainTextPayload(html) {
2951
+ // Preserve inline styles before parsing to avoid style-src-attr CSP violations
2952
+ // triggered by DOMParser processing HTML with style= attributes.
2953
+ const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
2954
+ const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
2955
+ const body = parsedDoc.body;
2956
+ if (body.children.length === 0) {
2957
+ return true;
2958
+ }
2959
+ const visibleClone = body.cloneNode(true);
2960
+ visibleClone.querySelectorAll('[style],[data-style]').forEach((element) => {
2961
+ if (this.isVisuallyHiddenElement(element)) {
2962
+ element.remove();
2963
+ }
2964
+ });
2965
+ if ((visibleClone.textContent || '').trim() !== '') {
2966
+ return false;
2967
+ }
2968
+ const hasVisibleMedia = Boolean(visibleClone.querySelector('img,video,audio,iframe,table,svg,canvas,math,object,embed'));
2969
+ if (hasVisibleMedia) {
2970
+ return false;
2971
+ }
2972
+ // If no visible text/media remains but original HTML contained text, it was
2973
+ // likely wrapped in hidden/off-screen containers and should be treated as plain text.
2974
+ return (body.textContent || '').trim() !== '';
2975
+ }
2976
+ /**
2977
+ * Returns true when a CSS style string contains bold, italic, underline,
2978
+ * strikethrough, or color declarations.
2979
+ *
2980
+ * @param {string} style - Inline CSS style string.
2981
+ * @returns {boolean} True when the style contains rich formatting.
2982
+ */
2983
+ styleContainsRichFormatting(style) {
2984
+ if (!style.trim()) {
2985
+ return false;
2986
+ }
2987
+ for (const declaration of style.split(';')) {
2988
+ const colonIndex = declaration.indexOf(':');
2989
+ if (colonIndex === -1) {
2990
+ continue;
2991
+ }
2992
+ const prop = declaration.slice(0, colonIndex).trim().toLowerCase();
2993
+ const value = declaration
2994
+ .slice(colonIndex + 1)
2995
+ .trim()
2996
+ .toLowerCase();
2997
+ switch (prop) {
2998
+ case 'font-weight':
2999
+ if (/bold|[5-9]\d{2}|1000/.test(value)) {
3000
+ return true;
3001
+ }
3002
+ break;
3003
+ case 'font-style':
3004
+ if (/italic|oblique/.test(value)) {
3005
+ return true;
3006
+ }
3007
+ break;
3008
+ case 'text-decoration':
3009
+ case 'text-decoration-line':
3010
+ if (/underline|line-through/.test(value)) {
3011
+ return true;
3012
+ }
3013
+ break;
3014
+ case 'color':
3015
+ case 'background-color':
3016
+ return true;
3017
+ }
3018
+ }
3019
+ return false;
3020
+ }
3021
+ /**
3022
+ * Determines whether an element is visually hidden or rendered off-screen
3023
+ * via its inline style, indicating a clipboard plain-text wrapper.
3024
+ *
3025
+ * @param {HTMLElement} element - Element to inspect.
3026
+ * @returns {boolean} True when the element is hidden or off-screen.
3027
+ */
3028
+ isVisuallyHiddenElement(element) {
3029
+ const style = (element.getAttribute('style') ||
3030
+ element.getAttribute('data-style') ||
3031
+ '').toLowerCase();
3032
+ if (!style) {
3033
+ return false;
3034
+ }
3035
+ if (/display\s*:\s*none/.test(style) || /visibility\s*:\s*hidden/.test(style)) {
3036
+ return true;
3037
+ }
3038
+ if (/clip\s*:\s*rect\(\s*0/.test(style) || style.includes('clip-path')) {
3039
+ return true;
3040
+ }
3041
+ const isPositioned = /position\s*:\s*(absolute|fixed)/.test(style);
3042
+ const isOffScreen = /(left|top|right|bottom)\s*:\s*-\d{3,}px/.test(style);
3043
+ return isPositioned && isOffScreen;
3044
+ }
3045
+ /**
3046
+ * Resolves paste payload from DataTransfer and synthetic-event fallback payload.
3047
+ *
3048
+ * @param {InputEvent} event - Paste event.
3049
+ * @returns {RTEPastePayload} - Paste payload.
3050
+ */
3051
+ getPastePayload(event) {
3052
+ const eventPayload = event
3053
+ .rtePastePayload || { html: '', text: '' };
3054
+ if (!event.dataTransfer) {
3055
+ return eventPayload;
3056
+ }
3057
+ return {
3058
+ html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
3059
+ text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
3060
+ };
3061
+ }
2495
3062
  }
2496
3063
 
2497
3064
  var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -2507,7 +3074,8 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
2507
3074
  this.insertTextHandler = new InsertTextHandler();
2508
3075
  this.insertParagraphHandler = new InsertParagraphHandler();
2509
3076
  this.insertLineBreakHandler = new InsertLineBreakHandler();
2510
- this.deleteContentHandler = new DeleteContentHandler();
3077
+ this.forwardDeleteContentHandler = new ForwardDeleteContentHandler();
3078
+ this.backwardDeleteContentHandler = new BackwardDeleteContentHandler();
2511
3079
  this.insertPasteHandler = new InsertPasteHandler();
2512
3080
  /**
2513
3081
  * When a user performs an input action within the editable element, this function is triggered.
@@ -2538,9 +3106,13 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
2538
3106
  updateFlag = true;
2539
3107
  this.insertLineBreakHandler.execute(this.value, this.selectionController, this.host, e);
2540
3108
  break;
3109
+ case 'deleteContentForward':
3110
+ updateFlag = true;
3111
+ this.forwardDeleteContentHandler.execute(this.value, this.selectionController, this.host, e);
3112
+ break;
2541
3113
  case 'deleteContentBackward':
2542
3114
  updateFlag = true;
2543
- this.deleteContentHandler.execute(this.value, this.selectionController, this.host, e);
3115
+ this.backwardDeleteContentHandler.execute(this.value, this.selectionController, this.host, e);
2544
3116
  break;
2545
3117
  case 'insertFromPaste':
2546
3118
  updateFlag = true;
@@ -3495,7 +4067,7 @@ __decorate$c([
3495
4067
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
3496
4068
 
3497
4069
  const undoIcon = {
3498
- 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>`,
4070
+ 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>`,
3499
4071
  };
3500
4072
 
3501
4073
  var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -3532,7 +4104,7 @@ __decorate$b([
3532
4104
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
3533
4105
 
3534
4106
  const redoIcon = {
3535
- 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>`,
4107
+ 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>`,
3536
4108
  };
3537
4109
 
3538
4110
  var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -4537,13 +5109,14 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
4537
5109
  }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
4538
5110
  index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
4539
5111
  this.icon && (index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) })),
4540
- this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
5112
+ this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
4541
5113
  index.h("slot", null)));
4542
5114
  }
4543
5115
  }
4544
5116
  (() => {
4545
5117
  internalIconManager.VegaInternalIconManager.register({
4546
5118
  'chevron-down': chevronDown.chevronDown,
5119
+ 'chevron-up': chevronUp.chevronUp,
4547
5120
  });
4548
5121
  })();
4549
5122
  __decorate$5([
@@ -4558,6 +5131,9 @@ __decorate$5([
4558
5131
  __decorate$5([
4559
5132
  globalSlimmerRegistry.MapToComponentField()
4560
5133
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
5134
+ __decorate$5([
5135
+ globalSlimmerRegistry.MapToComponentField()
5136
+ ], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
4561
5137
  __decorate$5([
4562
5138
  globalSlimmerRegistry.MapToComponentField()
4563
5139
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
@@ -4621,6 +5197,12 @@ const VegaRichTextEditorToolbarButton = class {
4621
5197
  * @vegaVersion 2.34.0
4622
5198
  */
4623
5199
  this.showArrowIcon = false;
5200
+ /**
5201
+ * Specifies the arrow icon name when `showArrowIcon` is enabled.
5202
+ *
5203
+ * @vegaVersion 2.93.0
5204
+ */
5205
+ this.arrowIcon = 'chevron-down';
4624
5206
  /**
4625
5207
  * Specifies whether the toolbar button in the rich text editor is represented by an icon.
4626
5208
  *