@globalpayments/vega 2.98.0 → 2.100.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 (645) hide show
  1. package/dist/cjs/{accessibility-88f8af84.js → accessibility-6ca2a237.js} +21 -0
  2. package/dist/cjs/{action-color-accessibility-validator-24498816.js → action-color-accessibility-validator-b8a9ef0f.js} +2 -2
  3. package/dist/cjs/{app-globals-b3f05631.js → app-globals-48d067a7.js} +11 -10
  4. package/dist/cjs/{aria-attributes-value-mapper-9a41b9cf.js → aria-attributes-value-mapper-e8c6b0e0.js} +1 -1
  5. package/dist/cjs/{code-block-d78c2b2c.js → code-block-3b42c364.js} +95 -6
  6. package/dist/cjs/{component-global-style-slimmer-93c5fb50.js → component-global-style-slimmer-ba588eb4.js} +1 -1
  7. package/dist/cjs/{component-value-history-controller-slimmer.abstract-beb00fea.js → component-value-history-controller-slimmer.abstract-bbe3bcaf.js} +24 -5
  8. package/dist/cjs/{content-state-78a620a9.js → content-state-87a06c1a.js} +104 -8
  9. package/dist/cjs/{dark-mode-style-controller-32d4054a.js → dark-mode-style-controller-f3da3342.js} +2 -2
  10. package/dist/cjs/{date-required-rule-5250f26d.js → date-required-rule-45c802d3.js} +1 -1
  11. package/dist/cjs/{design-token-74674ee7.js → design-token-9d762da0.js} +3 -3
  12. package/dist/cjs/{element-appender-slimmer-597e9e48.js → element-appender-slimmer-f7ba5d9a.js} +2 -2
  13. package/dist/cjs/{form-field-controller-slimmer-a743be34.js → form-field-controller-slimmer-fbaddc91.js} +2 -2
  14. package/dist/cjs/{image-annotation-action-85c4bd83.js → image-annotation-action-03d3e01a.js} +7 -6
  15. package/dist/cjs/{image-extension-260fa69c.js → image-extension-ccda26d3.js} +2 -2
  16. package/dist/cjs/{index-592b4052.js → index-5d1adcd1.js} +86 -0
  17. package/dist/cjs/index.cjs.js +20 -19
  18. package/dist/cjs/{inject-keyboard-manager-6a6f5c9f.js → inject-keyboard-manager-540f0876.js} +1 -1
  19. package/dist/cjs/{internal-calendar-period-factory-dfcdd3f6.js → internal-calendar-period-factory-b11918ee.js} +1 -1
  20. package/dist/cjs/{internal-translation-controller-1dac2df8.js → internal-translation-controller-27bfc8c7.js} +17 -0
  21. package/dist/cjs/{keyboard-manager-c56033b1.js → keyboard-manager-16e96b62.js} +12 -5
  22. package/dist/cjs/{keyboard-manager-slimmer-7043a106.js → keyboard-manager-slimmer-0a4e556d.js} +1 -1
  23. package/dist/cjs/{link-extension-220ff6a9.js → link-extension-71eeaa9f.js} +26 -7
  24. package/dist/cjs/loader.cjs.js +14 -14
  25. package/dist/cjs/{month-view-generator-7b704a80.js → month-view-generator-0a3e04de.js} +1 -1
  26. package/dist/cjs/overlay-escape-coordination-901d8942.js +38 -0
  27. package/dist/cjs/{public-rules-5657bce4.js → public-rules-3dc5d02d.js} +9 -9
  28. package/dist/cjs/{range-c5afd53a.js → range-d29751e3.js} +1 -1
  29. package/dist/cjs/{responsive-format-facade-493d1763.js → responsive-format-facade-c6d7f0a1.js} +1 -1
  30. package/dist/cjs/{rich-text-editor-required-rule-385c1b61.js → rich-text-editor-required-rule-05de7f0c.js} +1 -1
  31. package/dist/cjs/{split-cell-operation-873d5db7.js → split-cell-operation-ef783850.js} +14 -4
  32. package/dist/cjs/{state-border-formatter-711c7aaa.js → state-border-formatter-dda9109a.js} +1 -1
  33. package/dist/cjs/{string-format-strategy.abstract-b61bdcbd.js → string-format-strategy.abstract-3a968a59.js} +1 -1
  34. package/dist/cjs/{string-input-formatter-slimmer-ef65cca7.js → string-input-formatter-slimmer-9747039f.js} +1 -1
  35. package/dist/cjs/{string-mask-strategy-ad3fa0ac.js → string-mask-strategy-d9f85c21.js} +2 -2
  36. package/dist/cjs/{style-formatter-8f711cb0.js → style-formatter-d21a9784.js} +2 -2
  37. package/dist/cjs/{time-required-rule-87417359.js → time-required-rule-580cbd3d.js} +1 -1
  38. package/dist/cjs/{token-extension-78b5a026.js → token-extension-8d7bd451.js} +3773 -252
  39. package/dist/cjs/{translation-slimmer-77c7f37d.js → translation-slimmer-31cd5a57.js} +1 -1
  40. package/dist/cjs/{type-guard-a57ef3ac.js → type-guard-00b8efc0.js} +1 -1
  41. package/dist/cjs/{valid-credit-card-number-rule-4c0a3040.js → valid-credit-card-number-rule-70885128.js} +1 -1
  42. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  43. package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-app-header-button.cjs.entry.js +6 -6
  45. package/dist/cjs/vega-banner.cjs.entry.js +1 -1
  46. package/dist/cjs/vega-box.cjs.entry.js +7 -7
  47. package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -2
  48. package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
  49. package/dist/cjs/vega-button-circle.cjs.entry.js +7 -7
  50. package/dist/cjs/vega-button-group_2.cjs.entry.js +13 -6
  51. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  52. package/dist/cjs/vega-button.cjs.entry.js +22 -6
  53. package/dist/cjs/vega-calendar_5.cjs.entry.js +22 -11
  54. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
  56. package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
  57. package/dist/cjs/vega-chip.cjs.entry.js +6 -6
  58. package/dist/cjs/vega-code-block.cjs.entry.js +12 -12
  59. package/dist/cjs/vega-color-picker.cjs.entry.js +4 -4
  60. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +4 -4
  61. package/dist/cjs/vega-color-swatch.cjs.entry.js +3 -3
  62. package/dist/cjs/vega-combo-box.cjs.entry.js +10 -10
  63. package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
  64. package/dist/cjs/vega-date-picker_2.cjs.entry.js +15 -15
  65. package/dist/cjs/vega-dialog_2.cjs.entry.js +72 -6
  66. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-dropdown_5.cjs.entry.js +116 -24
  68. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  69. package/dist/cjs/vega-field-label.cjs.entry.js +27 -34
  70. package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
  71. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  72. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  73. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  74. package/dist/cjs/vega-form.cjs.entry.js +2 -2
  75. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  76. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  77. package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
  78. package/dist/cjs/vega-input-credit-card.cjs.entry.js +7 -7
  79. package/dist/cjs/vega-input-numeric.cjs.entry.js +6 -6
  80. package/dist/cjs/vega-input-passcode.cjs.entry.js +6 -6
  81. package/dist/cjs/vega-input-phone-number.cjs.entry.js +42 -8
  82. package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
  83. package/dist/cjs/vega-input-select.cjs.entry.js +25 -8
  84. package/dist/cjs/vega-input.cjs.entry.js +9 -9
  85. package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
  86. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  87. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  88. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  89. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  90. package/dist/cjs/vega-popover_2.cjs.entry.js +58 -9
  91. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +4 -4
  92. package/dist/cjs/vega-radio_2.cjs.entry.js +7 -7
  93. package/dist/cjs/vega-rich-text-content.cjs.entry.js +44 -13
  94. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +767 -248
  95. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +3 -3
  96. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
  97. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +158 -105
  98. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +6 -6
  99. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
  100. package/dist/cjs/vega-sidenav_3.cjs.entry.js +4 -4
  101. package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
  102. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  103. package/dist/cjs/vega-tab-group_2.cjs.entry.js +22 -9
  104. package/dist/cjs/vega-table_11.cjs.entry.js +82 -46
  105. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  106. package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -11
  107. package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -4
  108. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  109. package/dist/cjs/vega.cjs.js +14 -14
  110. package/dist/collection/components/vega-button/vega-button.js +17 -2
  111. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +13 -6
  112. package/dist/collection/components/vega-button-link/vega-button-link.js +2 -2
  113. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +5 -2
  114. package/dist/collection/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.js +9 -1
  115. package/dist/collection/components/vega-code-block/vega-code-block.css +4 -4
  116. package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -2
  117. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-controller.js +148 -0
  118. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +5 -2
  119. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +17 -0
  120. package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +6 -4
  121. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +12 -4
  122. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.css +2 -1
  123. package/dist/collection/components/vega-dropdown/vega-dropdown.js +1 -1
  124. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.js +21 -30
  125. package/dist/collection/components/vega-field-label/vega-field-label.css +1 -0
  126. package/dist/collection/components/vega-field-label/vega-field-label.js +7 -5
  127. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +19 -2
  128. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +66 -0
  129. package/dist/collection/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.js +17 -0
  130. package/dist/collection/components/vega-popover/vega-popover.js +33 -1
  131. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +4 -1
  132. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +25 -0
  133. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.js +13 -0
  134. package/dist/collection/components/vega-rich-text-editor/dto/actions/commit-value-action.js +20 -0
  135. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +2 -1
  136. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +22 -0
  137. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +10 -0
  138. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
  139. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +2 -1
  140. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +5 -2
  141. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +36 -2
  142. package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +6 -0
  143. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +8 -0
  144. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
  145. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +20 -3
  146. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +12 -0
  147. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +30 -18
  148. package/dist/collection/components/vega-rich-text-editor/extensions/block-boundary-registry.js +34 -0
  149. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +1 -0
  150. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +1 -0
  151. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +1 -0
  152. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +20 -0
  153. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +51 -0
  154. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.js +2 -2
  155. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +3 -0
  156. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +3 -2
  157. package/dist/collection/components/vega-rich-text-editor/extensions/functions/constants.js +8 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +14 -3
  159. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +2 -1
  160. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +6 -0
  161. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.js +19 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +9 -5
  163. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +3 -3
  164. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +4 -2
  165. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +18 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +5 -2
  167. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +2 -1
  169. package/dist/collection/components/vega-rich-text-editor/extensions/functions/utils.js +36 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/renderers/horizontal-line-toolbar-button-renderer.js +1 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +1 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +5 -3
  173. package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.js +16 -0
  174. package/dist/collection/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.js +21 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.js +13 -0
  176. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.js +295 -0
  177. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.js +116 -0
  178. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +13 -4
  179. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +70 -7
  180. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.js +38 -0
  181. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.js +55 -0
  182. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.js +59 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.js +416 -0
  184. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.js +106 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.js +198 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.js +591 -0
  187. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.js +112 -0
  188. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.js +551 -0
  189. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.js +7 -0
  190. package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-toolbar-button-renderer.js +2 -0
  191. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +10 -0
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +3 -9
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +2 -2
  194. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +81 -1
  195. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.js +148 -0
  196. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +151 -5
  197. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +144 -2
  198. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +26 -1
  199. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
  200. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer.js +11 -2
  201. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +5 -2
  202. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-field-renderer.js +5 -1
  203. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.css +5 -0
  204. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.js +16 -1
  205. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +1 -0
  206. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +1 -0
  207. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +10 -9
  208. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +9 -8
  209. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +25 -10
  210. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +1 -0
  211. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.js +5 -4
  212. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.js +1 -1
  213. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +10 -0
  214. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +2 -0
  215. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +4 -2
  216. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +44 -0
  217. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -0
  218. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.js +70 -0
  219. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/type.js +1 -0
  220. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/word-count-extension.js +62 -0
  221. package/dist/collection/components/vega-rich-text-editor/public-api.js +1 -0
  222. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
  223. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +7 -4
  224. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +17 -0
  225. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +18 -4
  226. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.js +2 -1
  227. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +21 -2
  228. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +7 -1
  229. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +52 -2
  230. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.js +79 -0
  231. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +6 -3
  232. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +2 -1
  233. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
  234. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +3 -2
  235. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +111 -2
  236. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +24 -6
  237. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
  238. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
  239. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +3 -2
  240. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +59 -8
  241. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +5 -2
  242. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.js +1 -1
  243. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +13 -1
  244. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +16 -0
  245. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +124 -0
  246. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +9 -1
  247. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +14 -7
  248. package/dist/collection/components/vega-tab-group/vega-tab-group.css +6 -0
  249. package/dist/collection/components/vega-tab-group/vega-tab-group.js +5 -0
  250. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +31 -1
  251. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +18 -11
  252. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  253. package/dist/collection/helpers/keyboard/keyboard-manager.js +11 -4
  254. package/dist/collection/helpers/keyboard/overlay-escape-coordination.js +33 -0
  255. package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +1 -1
  256. package/dist/collection/helpers/translation/locales/en.js +17 -0
  257. package/dist/collection/polyfill/libphonenumber/as-you-type.js +21 -3
  258. package/dist/collection/polyfill/libphonenumber/metadata.js +16 -0
  259. package/dist/collection/utils/accessibility.js +20 -0
  260. package/dist/collection/utils/sanitize/index.js +3 -2
  261. package/dist/collection/utils/sanitize/strategies/index.js +1 -0
  262. package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +14 -0
  263. package/dist/collection/utils/sanitize/strategies/plain-text-sanitize-strategy.js +70 -0
  264. package/dist/esm/{accessibility-6af5cf2e.js → accessibility-c899a968.js} +21 -1
  265. package/dist/esm/{action-color-accessibility-validator-ce55cb07.js → action-color-accessibility-validator-08877515.js} +2 -2
  266. package/dist/esm/{app-globals-95c7110a.js → app-globals-1e1371d5.js} +11 -10
  267. package/dist/esm/{aria-attributes-value-mapper-2c632641.js → aria-attributes-value-mapper-a5c7478e.js} +1 -1
  268. package/dist/esm/{aria-dialog-focusable-trap-slimmer-f069f54d.js → aria-dialog-focusable-trap-slimmer-b2a24a45.js} +2 -2
  269. package/dist/esm/{child-nodes-notify-observer-slimmer-499a3aa7.js → child-nodes-notify-observer-slimmer-034bc78c.js} +1 -1
  270. package/dist/esm/{code-block-9c513169.js → code-block-741d6b8e.js} +91 -9
  271. package/dist/esm/{component-global-style-slimmer-ac703085.js → component-global-style-slimmer-7d60a04a.js} +1 -1
  272. package/dist/esm/{component-value-history-controller-slimmer.abstract-9cef2a2a.js → component-value-history-controller-slimmer.abstract-2bcd749e.js} +26 -7
  273. package/dist/esm/{content-state-25c81c08.js → content-state-2f6f4204.js} +104 -11
  274. package/dist/esm/{dark-mode-style-controller-ca5afd2d.js → dark-mode-style-controller-352f15ff.js} +2 -2
  275. package/dist/esm/{date-required-rule-85334d0c.js → date-required-rule-2ea3aec8.js} +1 -1
  276. package/dist/esm/{design-token-10ff79b5.js → design-token-82a4e107.js} +3 -3
  277. package/dist/esm/{dom-node-subject-observer-factory-ddff8662.js → dom-node-subject-observer-factory-bb7e68a0.js} +1 -1
  278. package/dist/esm/{element-appender-slimmer-8a06ecdd.js → element-appender-slimmer-c820c0bf.js} +4 -4
  279. package/dist/esm/{event-emit-slimmer-2452278f.js → event-emit-slimmer-e8bb2292.js} +1 -1
  280. package/dist/esm/{form-field-controller-slimmer-68fc5380.js → form-field-controller-slimmer-02165dbe.js} +5 -5
  281. package/dist/esm/{image-annotation-action-d7f2aecc.js → image-annotation-action-972c1074.js} +8 -7
  282. package/dist/esm/{image-extension-fbd1ed6e.js → image-extension-59484e9a.js} +2 -2
  283. package/dist/esm/{index-3b327f29.js → index-35451d12.js} +86 -1
  284. package/dist/esm/index.js +21 -21
  285. package/dist/esm/{inject-keyboard-manager-ea1aad5b.js → inject-keyboard-manager-6a10c9b7.js} +1 -1
  286. package/dist/esm/{internal-calendar-period-factory-7b294fb6.js → internal-calendar-period-factory-d1a60f81.js} +1 -1
  287. package/dist/esm/{internal-translation-controller-fac22598.js → internal-translation-controller-fff376d2.js} +17 -0
  288. package/dist/esm/{keyboard-manager-50da85d7.js → keyboard-manager-a58288df.js} +13 -6
  289. package/dist/esm/{keyboard-manager-slimmer-1f7c8bfb.js → keyboard-manager-slimmer-133b86cd.js} +1 -1
  290. package/dist/esm/{link-extension-e8ee103e.js → link-extension-e89acb5c.js} +26 -7
  291. package/dist/esm/loader.js +16 -16
  292. package/dist/esm/{month-view-generator-a1a9a4ec.js → month-view-generator-20e32b22.js} +1 -1
  293. package/dist/esm/overlay-escape-coordination-439f7d6f.js +35 -0
  294. package/dist/esm/{public-rules-49de79c7.js → public-rules-c154201b.js} +11 -11
  295. package/dist/esm/{range-b678c693.js → range-c818a1eb.js} +2 -2
  296. package/dist/esm/{responsive-format-facade-f19b601c.js → responsive-format-facade-07843ec3.js} +1 -1
  297. package/dist/esm/{rich-text-editor-required-rule-578e0958.js → rich-text-editor-required-rule-878e91c6.js} +1 -1
  298. package/dist/esm/{split-cell-operation-1c8e7585.js → split-cell-operation-cc0cdf90.js} +15 -5
  299. package/dist/esm/{state-border-formatter-bfda33aa.js → state-border-formatter-3b3dcfe8.js} +1 -1
  300. package/dist/esm/{string-format-strategy.abstract-1f4ff1b3.js → string-format-strategy.abstract-44381dcb.js} +1 -1
  301. package/dist/esm/{string-input-formatter-slimmer-0006a107.js → string-input-formatter-slimmer-76fe52d3.js} +3 -3
  302. package/dist/esm/{string-mask-strategy-bbbcdbef.js → string-mask-strategy-999fba4b.js} +2 -2
  303. package/dist/esm/{style-formatter-e9adc8f4.js → style-formatter-c4192c99.js} +2 -2
  304. package/dist/esm/{sub-state-notify-slimmer-23b7d0e8.js → sub-state-notify-slimmer-e306c849.js} +1 -1
  305. package/dist/esm/{sub-state-observer-slimmer-722f6b92.js → sub-state-observer-slimmer-bd85f381.js} +2 -2
  306. package/dist/esm/{time-required-rule-1ce2d0a0.js → time-required-rule-0554b114.js} +1 -1
  307. package/dist/esm/{token-extension-f2d009e3.js → token-extension-35c66684.js} +3773 -253
  308. package/dist/esm/{translation-slimmer-ee0f0e76.js → translation-slimmer-77022f2e.js} +1 -1
  309. package/dist/esm/{type-guard-f2624334.js → type-guard-26d83e7e.js} +1 -1
  310. package/dist/esm/{ui-d73f756a.js → ui-80e610f4.js} +1 -1
  311. package/dist/esm/{valid-credit-card-number-rule-60212b1d.js → valid-credit-card-number-rule-f60b6904.js} +1 -1
  312. package/dist/esm/vega-accordion.entry.js +9 -9
  313. package/dist/esm/vega-app-footer.entry.js +5 -5
  314. package/dist/esm/vega-app-header-button.entry.js +9 -9
  315. package/dist/esm/vega-backdrop.entry.js +1 -1
  316. package/dist/esm/vega-banner.entry.js +4 -4
  317. package/dist/esm/vega-box.entry.js +8 -8
  318. package/dist/esm/vega-brand-logo.entry.js +2 -2
  319. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  320. package/dist/esm/vega-button-circle.entry.js +10 -10
  321. package/dist/esm/vega-button-group_2.entry.js +18 -11
  322. package/dist/esm/vega-button-link.entry.js +7 -7
  323. package/dist/esm/vega-button.entry.js +25 -9
  324. package/dist/esm/vega-calendar_5.entry.js +27 -16
  325. package/dist/esm/vega-card.entry.js +6 -6
  326. package/dist/esm/vega-carousel.entry.js +7 -7
  327. package/dist/esm/vega-checkbox_2.entry.js +9 -9
  328. package/dist/esm/vega-chip.entry.js +9 -9
  329. package/dist/esm/vega-code-block.entry.js +15 -15
  330. package/dist/esm/vega-color-picker.entry.js +8 -8
  331. package/dist/esm/vega-color-swatch-picker.entry.js +8 -8
  332. package/dist/esm/vega-color-swatch.entry.js +6 -6
  333. package/dist/esm/vega-combo-box.entry.js +14 -14
  334. package/dist/esm/vega-counter-badge.entry.js +2 -2
  335. package/dist/esm/vega-date-picker_2.entry.js +21 -21
  336. package/dist/esm/vega-dialog_2.entry.js +76 -10
  337. package/dist/esm/vega-divider.entry.js +5 -5
  338. package/dist/esm/vega-dropdown_5.entry.js +123 -31
  339. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  340. package/dist/esm/vega-field-label.entry.js +30 -37
  341. package/dist/esm/vega-file-uploader.entry.js +9 -9
  342. package/dist/esm/vega-flag-icon.entry.js +5 -5
  343. package/dist/esm/vega-flex.entry.js +7 -7
  344. package/dist/esm/vega-font.entry.js +6 -6
  345. package/dist/esm/vega-form.entry.js +8 -8
  346. package/dist/esm/vega-grid.entry.js +6 -6
  347. package/dist/esm/vega-icon.entry.js +7 -7
  348. package/dist/esm/vega-image-uploader.entry.js +12 -12
  349. package/dist/esm/vega-input-credit-card.entry.js +11 -11
  350. package/dist/esm/vega-input-numeric.entry.js +11 -11
  351. package/dist/esm/vega-input-passcode.entry.js +10 -10
  352. package/dist/esm/vega-input-phone-number.entry.js +46 -12
  353. package/dist/esm/vega-input-range.entry.js +9 -9
  354. package/dist/esm/vega-input-select.entry.js +29 -12
  355. package/dist/esm/vega-input.entry.js +14 -14
  356. package/dist/esm/vega-item-toggle.entry.js +3 -3
  357. package/dist/esm/vega-left-nav_5.entry.js +15 -15
  358. package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
  359. package/dist/esm/vega-page-notification_2.entry.js +3 -3
  360. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
  361. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
  362. package/dist/esm/vega-pagination.entry.js +7 -7
  363. package/dist/esm/vega-popover_2.entry.js +62 -13
  364. package/dist/esm/vega-progress-tracker_2.entry.js +9 -9
  365. package/dist/esm/vega-radio_2.entry.js +12 -12
  366. package/dist/esm/vega-rich-text-content.entry.js +48 -17
  367. package/dist/esm/vega-rich-text-editor_4.entry.js +774 -255
  368. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +6 -6
  369. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
  370. package/dist/esm/vega-rich-text-table-properties_3.entry.js +160 -107
  371. package/dist/esm/vega-segment-control.entry.js +3 -3
  372. package/dist/esm/vega-selection-chip_2.entry.js +11 -11
  373. package/dist/esm/vega-selection-tile_2.entry.js +9 -9
  374. package/dist/esm/vega-sidenav_3.entry.js +9 -9
  375. package/dist/esm/vega-signature-capture.entry.js +12 -12
  376. package/dist/esm/vega-stepper.entry.js +7 -7
  377. package/dist/esm/vega-tab-group_2.entry.js +25 -12
  378. package/dist/esm/vega-table_11.entry.js +59 -23
  379. package/dist/esm/vega-textarea.entry.js +7 -7
  380. package/dist/esm/vega-time-picker_2.entry.js +15 -15
  381. package/dist/esm/vega-toggle-switch.entry.js +8 -8
  382. package/dist/esm/vega-tooltip_2.entry.js +8 -8
  383. package/dist/esm/vega.js +16 -16
  384. package/dist/esm/{wait-for-component-did-render-ff7062aa.js → wait-for-component-did-render-9b91a826.js} +1 -1
  385. package/dist/sri/vega-sri-manifest.json +399 -395
  386. package/dist/types/components/vega-button/vega-button.d.ts +2 -0
  387. package/dist/types/components/vega-button-group/types.d.ts +12 -6
  388. package/dist/types/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.d.ts +2 -0
  389. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
  390. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +1 -1
  391. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.d.ts +3 -10
  392. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +8 -0
  393. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +33 -0
  394. package/dist/types/components/vega-modal/types.d.ts +2 -1
  395. package/dist/types/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.d.ts +9 -0
  396. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +22 -0
  397. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.d.ts +13 -0
  398. package/dist/types/components/vega-rich-text-editor/dto/actions/commit-value-action.d.ts +20 -0
  399. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +1 -0
  400. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +15 -0
  401. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +4 -0
  402. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
  403. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +1 -0
  404. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +3 -2
  405. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +25 -3
  406. package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +4 -0
  407. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +6 -0
  408. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +4 -0
  409. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +7 -0
  410. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +11 -0
  411. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +5 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/block-boundary-registry.d.ts +21 -0
  413. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +19 -0
  415. package/dist/types/components/vega-rich-text-editor/extensions/functions/constants.d.ts +4 -0
  416. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +7 -0
  417. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +4 -0
  418. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.d.ts +8 -0
  419. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +6 -0
  420. package/dist/types/components/vega-rich-text-editor/extensions/functions/utils.d.ts +29 -0
  421. package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.d.ts +14 -1
  422. package/dist/types/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.d.ts +12 -0
  423. package/dist/types/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.d.ts +11 -0
  424. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.d.ts +136 -0
  425. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.d.ts +68 -0
  426. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +9 -4
  427. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +39 -2
  428. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.d.ts +29 -0
  429. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.d.ts +61 -0
  430. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.d.ts +45 -0
  431. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.d.ts +186 -0
  432. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.d.ts +51 -0
  433. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.d.ts +86 -0
  434. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.d.ts +271 -0
  435. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.d.ts +25 -0
  436. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.d.ts +240 -0
  437. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.d.ts +36 -0
  438. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +8 -0
  439. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +2 -2
  440. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +31 -1
  441. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.d.ts +91 -0
  442. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +46 -0
  443. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +58 -0
  444. package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +8 -0
  445. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.d.ts +2 -1
  446. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.d.ts +2 -0
  447. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +3 -0
  448. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.d.ts +3 -1
  449. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +1 -0
  450. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +2 -2
  451. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +19 -1
  452. package/dist/types/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.d.ts +38 -0
  453. package/dist/types/components/vega-rich-text-editor/extensions/word-count/type.d.ts +46 -0
  454. package/dist/types/components/vega-rich-text-editor/extensions/word-count/word-count-extension.d.ts +38 -0
  455. package/dist/types/components/vega-rich-text-editor/interface.d.ts +22 -0
  456. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
  457. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.d.ts +4 -1
  458. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +8 -0
  459. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +11 -1
  460. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.d.ts +40 -0
  461. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.d.ts +14 -0
  462. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +4 -1
  463. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +3 -2
  464. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +12 -0
  465. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +2 -0
  466. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -0
  467. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +68 -0
  468. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.d.ts +3 -0
  469. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +1 -0
  470. package/dist/types/components/vega-tab-group/types.d.ts +3 -1
  471. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
  472. package/dist/types/components/vega-table/interface.d.ts +4 -4
  473. package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +16 -0
  474. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +8 -10
  475. package/dist/types/helpers/keyboard/keyboard-manager.d.ts +9 -0
  476. package/dist/types/helpers/keyboard/overlay-escape-coordination.d.ts +28 -0
  477. package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +1 -1
  478. package/dist/types/helpers/translation/interface.d.ts +18 -1
  479. package/dist/types/polyfill/libphonenumber/as-you-type.d.ts +1 -0
  480. package/dist/types/polyfill/libphonenumber/metadata.d.ts +10 -0
  481. package/dist/types/types/public-api.d.ts +2 -0
  482. package/dist/types/utils/accessibility.d.ts +9 -0
  483. package/dist/types/utils/sanitize/index.d.ts +3 -2
  484. package/dist/types/utils/sanitize/strategies/index.d.ts +1 -0
  485. package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +9 -0
  486. package/dist/types/utils/sanitize/strategies/plain-text-sanitize-strategy.d.ts +36 -0
  487. package/dist/vega/index.esm.js +1 -1
  488. package/dist/vega/{p-6f537797.entry.js → p-01ca92e6.entry.js} +1 -1
  489. package/dist/vega/{p-02d3ce79.entry.js → p-02b5d4ac.entry.js} +1 -1
  490. package/dist/vega/p-06a42a9f.entry.js +1 -0
  491. package/dist/vega/{p-fd23c365.entry.js → p-0cd362f3.entry.js} +1 -1
  492. package/dist/vega/p-0e10798b.entry.js +1 -0
  493. package/dist/vega/{p-2c2e8615.js → p-0eea1ca8.js} +1 -1
  494. package/dist/vega/{p-c98c2f5f.entry.js → p-0f344e02.entry.js} +1 -1
  495. package/dist/vega/{p-4cbfc01e.entry.js → p-23db0a92.entry.js} +1 -1
  496. package/dist/vega/{p-ccbe3f1b.entry.js → p-284a8828.entry.js} +1 -1
  497. package/dist/vega/{p-ac94ba1b.entry.js → p-2b26e182.entry.js} +1 -1
  498. package/dist/vega/{p-56598858.entry.js → p-2c8dc0d2.entry.js} +1 -1
  499. package/dist/vega/{p-2bb5a232.js → p-3091b105.js} +1 -1
  500. package/dist/vega/{p-9abf7d0a.entry.js → p-35d37477.entry.js} +1 -1
  501. package/dist/vega/{p-526e3634.js → p-36a57431.js} +1 -1
  502. package/dist/vega/{p-810c9c29.js → p-379736e2.js} +1 -1
  503. package/dist/vega/p-3abb793c.entry.js +1 -0
  504. package/dist/vega/{p-f29ea345.entry.js → p-3d6a43df.entry.js} +1 -1
  505. package/dist/vega/{p-c2277448.entry.js → p-3f2a4b34.entry.js} +1 -1
  506. package/dist/vega/p-401c6764.js +1 -0
  507. package/dist/vega/{p-da867019.entry.js → p-411cadbc.entry.js} +1 -1
  508. package/dist/vega/{p-ec64cc59.entry.js → p-46f22f6c.entry.js} +1 -1
  509. package/dist/vega/{p-8d2501b2.js → p-493108d5.js} +1 -1
  510. package/dist/vega/{p-085d1647.entry.js → p-49de5559.entry.js} +1 -1
  511. package/dist/vega/{p-781b7a54.js → p-4b35c748.js} +1 -1
  512. package/dist/vega/{p-a8174ad8.entry.js → p-4d1896e0.entry.js} +1 -1
  513. package/dist/vega/{p-b00ec194.entry.js → p-4e23e56c.entry.js} +1 -1
  514. package/dist/vega/{p-1cff027b.entry.js → p-5006404e.entry.js} +1 -1
  515. package/dist/vega/{p-56417ec5.entry.js → p-5789690b.entry.js} +1 -1
  516. package/dist/vega/{p-461100b8.entry.js → p-594cb986.entry.js} +1 -1
  517. package/dist/vega/p-5a086e93.js +1 -0
  518. package/dist/vega/{p-3e09aeed.js → p-5b3c8a56.js} +1 -1
  519. package/dist/vega/p-5b9b1631.entry.js +1 -0
  520. package/dist/vega/{p-c41a2d4a.js → p-5c3649f9.js} +1 -1
  521. package/dist/vega/{p-fb9475ab.entry.js → p-5d9be870.entry.js} +1 -1
  522. package/dist/vega/p-5f377954.js +1 -1
  523. package/dist/vega/{p-d609c3fd.js → p-60a74fb7.js} +1 -1
  524. package/dist/vega/{p-2acf9b42.entry.js → p-61ed7268.entry.js} +1 -1
  525. package/dist/vega/p-6336d446.entry.js +1 -0
  526. package/dist/vega/{p-dbb4b1d1.js → p-638b6a7d.js} +1 -1
  527. package/dist/vega/{p-bdb5180c.js → p-68744e7e.js} +1 -1
  528. package/dist/vega/p-6e9e7131.js +1 -0
  529. package/dist/vega/{p-014cd411.js → p-6eedbc4f.js} +1 -1
  530. package/dist/vega/{p-a090b2be.js → p-6fd8f14b.js} +1 -1
  531. package/dist/vega/{p-0cf3b5c1.entry.js → p-7469d0d1.entry.js} +1 -1
  532. package/dist/vega/p-74b20563.entry.js +1 -0
  533. package/dist/vega/{p-17c69503.entry.js → p-76999ea1.entry.js} +1 -1
  534. package/dist/vega/p-77bcdd35.js +1 -0
  535. package/dist/vega/{p-035e2f05.entry.js → p-79b49e8d.entry.js} +1 -1
  536. package/dist/vega/{p-8d96f0e8.entry.js → p-7a03ef96.entry.js} +1 -1
  537. package/dist/vega/{p-c5fb8a69.entry.js → p-7ae4cf82.entry.js} +1 -1
  538. package/dist/vega/{p-f9bfee81.entry.js → p-7cc8855d.entry.js} +1 -1
  539. package/dist/vega/{p-d470fce2.entry.js → p-7ddc0bec.entry.js} +1 -1
  540. package/dist/vega/{p-ca3c1317.entry.js → p-7e22610b.entry.js} +1 -1
  541. package/dist/vega/p-7f395622.entry.js +1 -0
  542. package/dist/vega/{p-3737b9e2.entry.js → p-816b5fd2.entry.js} +1 -1
  543. package/dist/vega/p-8387896e.js +1 -0
  544. package/dist/vega/p-844ad6aa.entry.js +1 -0
  545. package/dist/vega/p-853a05eb.js +1 -0
  546. package/dist/vega/p-85de755f.js +1 -0
  547. package/dist/vega/p-8663314e.js +1 -0
  548. package/dist/vega/{p-95c18f79.entry.js → p-86fb46d2.entry.js} +1 -1
  549. package/dist/vega/p-8cfdd0e8.entry.js +1 -0
  550. package/dist/vega/p-8ebe30a8.js +1 -0
  551. package/dist/vega/p-8f00dfe6.js +1 -0
  552. package/dist/vega/{p-66647244.js → p-8fc0a820.js} +1 -1
  553. package/dist/vega/{p-4fd0cf01.js → p-9034f709.js} +1 -1
  554. package/dist/vega/{p-456f678b.js → p-941a83db.js} +1 -1
  555. package/dist/vega/{p-ae2abdfa.js → p-96c090c4.js} +1 -1
  556. package/dist/vega/p-9ba2fdff.js +1 -0
  557. package/dist/vega/{p-d319ebb5.js → p-9e9f49f4.js} +1 -1
  558. package/dist/vega/p-9efa5d76.js +1 -0
  559. package/dist/vega/{p-a81ad3bd.js → p-a306bb39.js} +1 -1
  560. package/dist/vega/{p-db11134b.entry.js → p-a48468b5.entry.js} +1 -1
  561. package/dist/vega/{p-56db3323.js → p-a488447f.js} +1 -1
  562. package/dist/vega/p-a647c856.entry.js +1 -0
  563. package/dist/vega/{p-a484e32d.entry.js → p-a6a89f09.entry.js} +1 -1
  564. package/dist/vega/p-a92cd703.js +1 -0
  565. package/dist/vega/p-a93b3aed.js +1 -0
  566. package/dist/vega/{p-528748fa.js → p-aa135628.js} +1 -1
  567. package/dist/vega/{p-4bfe3258.entry.js → p-aaaf21eb.entry.js} +1 -1
  568. package/dist/vega/{p-36d9e782.entry.js → p-ab253867.entry.js} +1 -1
  569. package/dist/vega/{p-dcd3e3a7.js → p-ab9d53e9.js} +1 -1
  570. package/dist/vega/p-ad367b48.entry.js +1 -0
  571. package/dist/vega/{p-e18c0656.entry.js → p-af0cfea0.entry.js} +1 -1
  572. package/dist/vega/p-b07f587a.entry.js +1 -0
  573. package/dist/vega/p-b21cc390.entry.js +1 -0
  574. package/dist/vega/{p-12e8a1b2.js → p-b2a4314a.js} +1 -1
  575. package/dist/vega/p-b52d7724.js +3 -0
  576. package/dist/vega/{p-5f96e741.entry.js → p-b97ed9f7.entry.js} +1 -1
  577. package/dist/vega/{p-7dcd2850.entry.js → p-bc0e5598.entry.js} +1 -1
  578. package/dist/vega/p-bc119e75.entry.js +1 -0
  579. package/dist/vega/{p-0cbf09f7.entry.js → p-bedb575c.entry.js} +1 -1
  580. package/dist/vega/{p-cb81126a.entry.js → p-bfe5dff7.entry.js} +1 -1
  581. package/dist/vega/{p-52c69f9e.entry.js → p-c032f626.entry.js} +1 -1
  582. package/dist/vega/{p-1ea9ad9a.js → p-c34f4cbc.js} +1 -1
  583. package/dist/vega/{p-72ab5cd5.entry.js → p-c422ee02.entry.js} +1 -1
  584. package/dist/vega/{p-39c5054b.js → p-c576e846.js} +1 -1
  585. package/dist/vega/{p-c70748f7.entry.js → p-c7d46740.entry.js} +1 -1
  586. package/dist/vega/p-cc569b54.js +1 -0
  587. package/dist/vega/{p-4e065ef7.entry.js → p-cd04b149.entry.js} +1 -1
  588. package/dist/vega/{p-2a245138.entry.js → p-cd0a108b.entry.js} +1 -1
  589. package/dist/vega/{p-8c56d74d.entry.js → p-d1bb6e7a.entry.js} +1 -1
  590. package/dist/vega/{p-200c8914.entry.js → p-d340ee3d.entry.js} +1 -1
  591. package/dist/vega/p-d897acd5.js +1 -0
  592. package/dist/vega/p-debf9e06.entry.js +1 -0
  593. package/dist/vega/p-e0a51e49.js +1 -0
  594. package/dist/vega/{p-1aedbfd2.entry.js → p-e11c6ec4.entry.js} +1 -1
  595. package/dist/vega/{p-1e0a8fd3.js → p-e14323f3.js} +1 -1
  596. package/dist/vega/{p-6d4518d7.entry.js → p-e5abc288.entry.js} +1 -1
  597. package/dist/vega/{p-544ce391.entry.js → p-ea1a0046.entry.js} +1 -1
  598. package/dist/vega/{p-72fd17a1.entry.js → p-edd7aa92.entry.js} +1 -1
  599. package/dist/vega/p-ef1bbf14.js +1 -0
  600. package/dist/vega/{p-9834d5d4.entry.js → p-efc08027.entry.js} +1 -1
  601. package/dist/vega/{p-874e5624.js → p-f485448a.js} +1 -1
  602. package/dist/vega/{p-92528dc9.entry.js → p-f8b2dbb9.entry.js} +1 -1
  603. package/dist/vega/{p-cf4b3d40.entry.js → p-f8bf379c.entry.js} +1 -1
  604. package/dist/vega/{p-b98ead05.entry.js → p-f902305d.entry.js} +1 -1
  605. package/dist/vega/p-fe985b52.js +1 -0
  606. package/dist/vega/vega.esm.js +1 -1
  607. package/package.json +1 -1
  608. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-conttroller.js +0 -85
  609. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +0 -6
  610. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +0 -6
  611. package/dist/vega/p-03eeadc1.entry.js +0 -1
  612. package/dist/vega/p-0eb29065.js +0 -3
  613. package/dist/vega/p-10d30c03.js +0 -1
  614. package/dist/vega/p-1250b1ab.entry.js +0 -1
  615. package/dist/vega/p-1abd3c17.js +0 -1
  616. package/dist/vega/p-2d158cbd.js +0 -1
  617. package/dist/vega/p-2f07d719.entry.js +0 -1
  618. package/dist/vega/p-36d2df7a.entry.js +0 -1
  619. package/dist/vega/p-373541fa.js +0 -1
  620. package/dist/vega/p-3a620268.js +0 -1
  621. package/dist/vega/p-3d0b4074.js +0 -1
  622. package/dist/vega/p-56493601.js +0 -1
  623. package/dist/vega/p-571ec00b.js +0 -1
  624. package/dist/vega/p-585e4f1c.entry.js +0 -1
  625. package/dist/vega/p-5b1f5e4a.entry.js +0 -1
  626. package/dist/vega/p-6234852e.entry.js +0 -1
  627. package/dist/vega/p-67eaf77e.js +0 -1
  628. package/dist/vega/p-6c95a6a3.js +0 -1
  629. package/dist/vega/p-6fd4f2c6.js +0 -1
  630. package/dist/vega/p-7e8fdac4.js +0 -1
  631. package/dist/vega/p-83ad8988.js +0 -1
  632. package/dist/vega/p-94975537.entry.js +0 -1
  633. package/dist/vega/p-a91927eb.entry.js +0 -1
  634. package/dist/vega/p-b3733762.entry.js +0 -1
  635. package/dist/vega/p-b622c455.js +0 -1
  636. package/dist/vega/p-c6d775b8.entry.js +0 -1
  637. package/dist/vega/p-cd69aeae.js +0 -1
  638. package/dist/vega/p-cfe268a8.entry.js +0 -1
  639. package/dist/vega/p-daba4af1.js +0 -1
  640. package/dist/vega/p-de8f0d98.js +0 -1
  641. package/dist/vega/p-f0e828d8.js +0 -1
  642. package/dist/vega/p-f62c5a20.entry.js +0 -1
  643. package/dist/vega/p-f6c0e9e7.entry.js +0 -1
  644. package/dist/vega/p-fa65956c.entry.js +0 -1
  645. /package/dist/types/components/vega-dropdown/slimmers/controllers/{vega-dropdown-keyboard-conttroller.d.ts → vega-dropdown-keyboard-controller.d.ts} +0 -0
@@ -6,50 +6,51 @@ const index = require('./index-58ea899e.js');
6
6
  const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
7
7
  const componentUsageRuntimeMetrics = require('./component-usage-runtime-metrics-389d1548.js');
8
8
  const component = require('./component-1e352960.js');
9
- const accessibility = require('./accessibility-88f8af84.js');
9
+ const accessibility = require('./accessibility-6ca2a237.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-f4d33037.js');
13
13
  const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
14
- const codeBlock = require('./code-block-d78c2b2c.js');
15
- const linkExtension = require('./link-extension-220ff6a9.js');
16
- const typeGuard = require('./type-guard-a57ef3ac.js');
14
+ const codeBlock = require('./code-block-3b42c364.js');
15
+ const typeGuard = require('./type-guard-00b8efc0.js');
16
+ const linkExtension = require('./link-extension-71eeaa9f.js');
17
17
  const internalIconManager = require('./internal-icon-manager-40bcac72.js');
18
- const imageAnnotationAction = require('./image-annotation-action-85c4bd83.js');
18
+ const imageAnnotationAction = require('./image-annotation-action-03d3e01a.js');
19
19
  const vegaEventId = require('./vega-event-id-58afed7a.js');
20
20
  const misc = require('./misc-3d30df91.js');
21
21
  const waitForComponentDidRender = require('./wait-for-component-did-render-44d006ee.js');
22
- const imageExtension = require('./image-extension-260fa69c.js');
23
- const formFieldControllerSlimmer = require('./form-field-controller-slimmer-a743be34.js');
22
+ const imageExtension = require('./image-extension-ccda26d3.js');
23
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-fbaddc91.js');
24
24
  const eventEmitSlimmer = require('./event-emit-slimmer-34aa195e.js');
25
25
  const subStateNotifySlimmer = require('./sub-state-notify-slimmer-e264a120.js');
26
- const contentState = require('./content-state-78a620a9.js');
26
+ const contentState = require('./content-state-87a06c1a.js');
27
27
  const alignLeft = require('./align-left-4a76df69.js');
28
- const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-beb00fea.js');
28
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-bbe3bcaf.js');
29
29
  const observer = require('./observer-f49483e8.js');
30
30
  const timer = require('./timer-5f33058b.js');
31
31
  const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-b454645a.js');
32
32
  const ui = require('./ui-c91c37a7.js');
33
- const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-385c1b61.js');
33
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-05de7f0c.js');
34
34
  const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-e0ac8467.js');
35
- const translationSlimmer = require('./translation-slimmer-77c7f37d.js');
36
- const darkModeStyleController = require('./dark-mode-style-controller-32d4054a.js');
35
+ const translationSlimmer = require('./translation-slimmer-31cd5a57.js');
36
+ const darkModeStyleController = require('./dark-mode-style-controller-f3da3342.js');
37
37
  const autoRunWhenReRenderTaskQueueSlimmer_abstract = require('./auto-run-when-re-render-task-queue-slimmer.abstract-5734634d.js');
38
38
  const array = require('./array-249289f2.js');
39
+ const object = require('./object-b53e9416.js');
40
+ const ariaAttributesValueMapper = require('./aria-attributes-value-mapper-e8c6b0e0.js');
39
41
  const chevronDown = require('./chevron-down-9847bf78.js');
40
42
  const chevronUp = require('./chevron-up-21465cf7.js');
41
43
  const trashCan = require('./trash-can-46a5e19a.js');
42
44
  const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
43
45
  require('./string-39438062.js');
44
46
  require('./typography-3ea4fe41.js');
45
- require('./object-b53e9416.js');
46
47
  require('./breakpoints-ebde4837.js');
47
48
  require('./ui-32120990.js');
48
- require('./internal-translation-controller-1dac2df8.js');
49
+ require('./internal-translation-controller-27bfc8c7.js');
49
50
  require('./icon-manager-be358b32.js');
50
51
  require('./create-public-api-runtime-metrics-slimmer-91b0cbfb.js');
51
52
  require('./dynamic-slimmer-f31fdfd7.js');
52
- require('./index-592b4052.js');
53
+ require('./index-5d1adcd1.js');
53
54
  require('./try-get-document-c0ebd39a.js');
54
55
  require('./page-resize-observer-slimmer-273d62ef.js');
55
56
  require('./breakpoints-1cc2c4c6.js');
@@ -59,9 +60,9 @@ require('./mutation-observer-slimmer-749d5020.js');
59
60
  require('./mutation-observer-filters-38cebc6d.js');
60
61
  require('./sub-state-observer-slimmer-6033b824.js');
61
62
  require('./internal-vega-event-manager-7003c84a.js');
62
- require('./range-c5afd53a.js');
63
- require('./keyboard-manager-slimmer-7043a106.js');
64
- require('./keyboard-manager-c56033b1.js');
63
+ require('./range-d29751e3.js');
64
+ require('./keyboard-manager-slimmer-0a4e556d.js');
65
+ require('./keyboard-manager-16e96b62.js');
65
66
  require('./vega-env-manager-23b8b23c.js');
66
67
  require('./feature-flag-controller-c19d0b58.js');
67
68
  require('./index-3ca118c4.js');
@@ -70,7 +71,7 @@ require('./vega-nonce-manager-df69d3ed.js');
70
71
  require('./synchronize-task-queue-1ee80e94.js');
71
72
  require('./number-4816603d.js');
72
73
 
73
- var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
74
+ var __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
74
75
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
75
76
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
76
77
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -91,11 +92,21 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
91
92
  const containerStyle = this.rows !== undefined
92
93
  ? { height: this.rows >= 2 ? `${this.rows * codeBlock.VegaRTEOneRowHeightPx}px` : defaultHeight }
93
94
  : { minHeight: defaultHeight };
94
- return (index.h("div", { class: {
95
+ return (
96
+ // This container delegates focus to the inner <vega-rich-text-content> editor when
97
+ // clicking anywhere in the editing area. It is a layout wrapper, not an interactive
98
+ // widget, so giving it a widget role (e.g. `textbox`) would expose a second,
99
+ // non-editable textbox that traps VoiceOver focus and prevents typing.
100
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
101
+ index.h("div", { class: {
95
102
  'rich-text-editor-container': true,
96
103
  'disabled': this.disabled,
97
104
  'vega-hidden': this.sourceView,
98
- }, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
105
+ }, style: containerStyle, onClick: this.richTextContentFocus,
106
+ // Keep this wrapper out of the tab order so AT lands directly on the inner text
107
+ // region (focusable via contenteditable when enabled, via tabindex when disabled)
108
+ // rather than announcing this generic wrapper as a group.
109
+ tabIndex: -1, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
99
110
  index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
100
111
  this.renderCharacterCounter()));
101
112
  };
@@ -109,12 +120,20 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
109
120
  });
110
121
  };
111
122
  this.renderCharacterCounter = () => {
123
+ if (!this.wordCountController.shouldShowUI()) {
124
+ return null;
125
+ }
126
+ // The word count extension is registered, so the data is guaranteed to be non-null.
127
+ const data = this.wordCountController.getData();
128
+ const isSetMaxChars = typeGuard.isNonNullable(data.maxChars);
112
129
  return (index.h("div", { class: {
113
130
  'text-editor-counter': true,
114
- 'counter-exceed-max-length': false,
115
- }, style: { display: 'none' } },
116
- index.h("span", null, "0"),
117
- index.h("span", null, "/100")));
131
+ 'counter-exceed-max-length': isSetMaxChars && data.count > data.maxChars,
132
+ } },
133
+ index.h("span", null, data.count),
134
+ isSetMaxChars && index.h("span", null,
135
+ "/",
136
+ data.maxChars)));
118
137
  };
119
138
  this.renderErrorMessage = () => {
120
139
  return index.h("div", { class: "vega-error vega-hidden" });
@@ -163,6 +182,35 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
163
182
  return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
164
183
  }
165
184
  }
185
+ /**
186
+ * Re-injects the zero-width space placeholder into empty text spans.
187
+ * When a commit is rejected and the model rolls back unchanged, the framework
188
+ * short-circuits the text diff and leaves the span empty, collapsing the line
189
+ * height, so the placeholder is restored here.
190
+ */
191
+ restoreEmptyTextPlaceholders() {
192
+ const editableElement = this.getRTEEditableElementRef();
193
+ if (!editableElement) {
194
+ return;
195
+ }
196
+ // The text node will only be rendered as a span and a code.
197
+ editableElement.querySelectorAll('span:empty, code:empty').forEach((element) => {
198
+ const textNode = element.firstChild;
199
+ if (textNode && textNode.nodeType === Node.TEXT_NODE) {
200
+ // Reuse the existing text node, `textContent` would swap in a new one and leave the framework patching a detached node.
201
+ textNode.nodeValue = codeBlock.ZERO_WIDTH_SPACE;
202
+ }
203
+ else {
204
+ element.textContent = codeBlock.ZERO_WIDTH_SPACE;
205
+ }
206
+ });
207
+ }
208
+ /**
209
+ * Forces a re-render of the rich text content component, which is useful when the content has changed but the framework has not detected it.
210
+ */
211
+ forceContentRepaint() {
212
+ index.forceUpdate(this.richTextContentRef);
213
+ }
166
214
  render() {
167
215
  return index.h(index.Host, null, this.renderRichTextEditor());
168
216
  }
@@ -183,59 +231,62 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
183
231
  this.richTextEditorSourceViewRenderer.render()));
184
232
  }
185
233
  }
186
- __decorate$H([
234
+ __decorate$I([
187
235
  globalSlimmerRegistry.MapToComponentField()
188
236
  ], VegaRichTextEditorRenderer.prototype, "host", void 0);
189
- __decorate$H([
237
+ __decorate$I([
190
238
  globalSlimmerRegistry.MapToComponentField()
191
239
  ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
192
- __decorate$H([
240
+ __decorate$I([
193
241
  globalSlimmerRegistry.MapToComponentField()
194
242
  ], VegaRichTextEditorRenderer.prototype, "label", void 0);
195
- __decorate$H([
243
+ __decorate$I([
196
244
  globalSlimmerRegistry.MapToComponentField()
197
245
  ], VegaRichTextEditorRenderer.prototype, "required", void 0);
198
- __decorate$H([
246
+ __decorate$I([
199
247
  globalSlimmerRegistry.MapToComponentField()
200
248
  ], VegaRichTextEditorRenderer.prototype, "optional", void 0);
201
- __decorate$H([
249
+ __decorate$I([
202
250
  globalSlimmerRegistry.MapToComponentField()
203
251
  ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
204
- __decorate$H([
252
+ __decorate$I([
205
253
  globalSlimmerRegistry.MapToComponentField()
206
254
  ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
207
- __decorate$H([
255
+ __decorate$I([
208
256
  globalSlimmerRegistry.MapToComponentField()
209
257
  ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
210
- __decorate$H([
258
+ __decorate$I([
211
259
  globalSlimmerRegistry.MapToComponentField()
212
260
  ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
213
- __decorate$H([
261
+ __decorate$I([
214
262
  globalSlimmerRegistry.MapToComponentField()
215
263
  ], VegaRichTextEditorRenderer.prototype, "value", void 0);
216
- __decorate$H([
264
+ __decorate$I([
217
265
  globalSlimmerRegistry.MapToComponentField()
218
266
  ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
219
- __decorate$H([
267
+ __decorate$I([
220
268
  globalSlimmerRegistry.MapToComponentField()
221
269
  ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
222
- __decorate$H([
270
+ __decorate$I([
223
271
  globalSlimmerRegistry.MapToComponentField()
224
272
  ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
225
- __decorate$H([
273
+ __decorate$I([
226
274
  globalSlimmerRegistry.MapToComponentField()
227
275
  ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
228
- __decorate$H([
276
+ __decorate$I([
229
277
  globalSlimmerRegistry.MapToComponentField()
230
278
  ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
231
- __decorate$H([
279
+ __decorate$I([
280
+ globalSlimmerRegistry.MapToComponentField()
281
+ ], VegaRichTextEditorRenderer.prototype, "wordCountController", void 0);
282
+ __decorate$I([
232
283
  globalSlimmerRegistry.MapToComponentField()
233
284
  ], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
234
- __decorate$H([
285
+ __decorate$I([
235
286
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
236
287
  ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
237
288
 
238
- var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
289
+ var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
239
290
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
240
291
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
241
292
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -287,14 +338,17 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
287
338
  const [renderedItems, totalVisibleCount] = this.renderToolbarItems();
288
339
  return (index.h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" },
289
340
  this.allowSourceEdit && (index.h(index.Fragment, null,
290
- index.h("div", { class: "toolbar-btn-group" }, this.sourceEditToolbarButtonSlimmer.render()),
341
+ index.h("div", { class: "toolbar-btn-group", role: "presentation" }, this.sourceEditToolbarButtonSlimmer.render()),
291
342
  this.uniqueToolbarItems.length > 0 &&
292
343
  totalVisibleCount > 0 &&
293
344
  this.renderVegaDivider())),
294
345
  renderedItems));
295
346
  }
296
347
  renderVegaDivider() {
297
- return (index.h("vega-box", { height: "size-32" },
348
+ // Mark the divider as decorative so screen readers (e.g. VoiceOver
349
+ // on Firefox) skip it when navigating from the Edit Source button
350
+ // to the next toolbar item.
351
+ return (index.h("vega-box", { height: "size-32", "aria-hidden": "true", role: "presentation" },
298
352
  index.h("vega-divider", { direction: "vertical" })));
299
353
  }
300
354
  /**
@@ -333,81 +387,81 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
333
387
  return null;
334
388
  })
335
389
  .filter(typeGuard.isNonNullable);
336
- return (index.h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 } }, groupElement));
390
+ return (index.h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 }, role: "presentation" }, groupElement));
337
391
  });
338
392
  return [renderedItems, totalVisibleCount];
339
393
  }
340
394
  }
341
- __decorate$G([
395
+ __decorate$H([
342
396
  globalSlimmerRegistry.MapToComponentField()
343
397
  ], ToolbarRenderer.prototype, "uniqueToolbarItems", void 0);
344
- __decorate$G([
398
+ __decorate$H([
345
399
  globalSlimmerRegistry.MapToComponentField()
346
400
  ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
347
- __decorate$G([
401
+ __decorate$H([
348
402
  globalSlimmerRegistry.MapToComponentField()
349
403
  ], ToolbarRenderer.prototype, "host", void 0);
350
- __decorate$G([
404
+ __decorate$H([
351
405
  globalSlimmerRegistry.MapToComponentField()
352
406
  ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
353
- __decorate$G([
407
+ __decorate$H([
354
408
  globalSlimmerRegistry.MapToComponentField()
355
409
  ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
356
- __decorate$G([
410
+ __decorate$H([
357
411
  globalSlimmerRegistry.MapToComponentField()
358
412
  ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
359
- __decorate$G([
413
+ __decorate$H([
360
414
  globalSlimmerRegistry.MapToComponentField()
361
415
  ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
362
- __decorate$G([
416
+ __decorate$H([
363
417
  globalSlimmerRegistry.MapToComponentField()
364
418
  ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
365
- __decorate$G([
419
+ __decorate$H([
366
420
  globalSlimmerRegistry.MapToComponentField()
367
421
  ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
368
- __decorate$G([
422
+ __decorate$H([
369
423
  globalSlimmerRegistry.MapToComponentField()
370
424
  ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
371
- __decorate$G([
425
+ __decorate$H([
372
426
  globalSlimmerRegistry.MapToComponentField()
373
427
  ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
374
- __decorate$G([
428
+ __decorate$H([
375
429
  globalSlimmerRegistry.MapToComponentField()
376
430
  ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
377
- __decorate$G([
431
+ __decorate$H([
378
432
  globalSlimmerRegistry.MapToComponentField()
379
433
  ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
380
- __decorate$G([
434
+ __decorate$H([
381
435
  globalSlimmerRegistry.MapToComponentField()
382
436
  ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
383
- __decorate$G([
437
+ __decorate$H([
384
438
  globalSlimmerRegistry.MapToComponentField()
385
439
  ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
386
- __decorate$G([
440
+ __decorate$H([
387
441
  globalSlimmerRegistry.MapToComponentField()
388
442
  ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
389
- __decorate$G([
443
+ __decorate$H([
390
444
  globalSlimmerRegistry.MapToComponentField()
391
445
  ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
392
- __decorate$G([
446
+ __decorate$H([
393
447
  globalSlimmerRegistry.MapToComponentField()
394
448
  ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
395
- __decorate$G([
449
+ __decorate$H([
396
450
  globalSlimmerRegistry.MapToComponentField()
397
451
  ], ToolbarRenderer.prototype, "undoToolbarButtonSlimmer", void 0);
398
- __decorate$G([
452
+ __decorate$H([
399
453
  globalSlimmerRegistry.MapToComponentField()
400
454
  ], ToolbarRenderer.prototype, "redoToolbarButtonSlimmer", void 0);
401
- __decorate$G([
455
+ __decorate$H([
402
456
  globalSlimmerRegistry.MapToComponentField()
403
457
  ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
404
- __decorate$G([
458
+ __decorate$H([
405
459
  globalSlimmerRegistry.MapToComponentField()
406
460
  ], ToolbarRenderer.prototype, "selectionController", void 0);
407
- __decorate$G([
461
+ __decorate$H([
408
462
  globalSlimmerRegistry.MapToComponentField()
409
463
  ], ToolbarRenderer.prototype, "translationSlimmer", void 0);
410
- __decorate$G([
464
+ __decorate$H([
411
465
  globalSlimmerRegistry.MapToComponentField()
412
466
  ], ToolbarRenderer.prototype, "sourceView", void 0);
413
467
 
@@ -415,7 +469,7 @@ const bold = {
415
469
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
416
470
  };
417
471
 
418
- var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
472
+ var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
419
473
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
420
474
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
421
475
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -457,7 +511,7 @@ class BoldToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
457
511
  (() => {
458
512
  internalIconManager.VegaInternalIconManager.register({ bold });
459
513
  })();
460
- __decorate$F([
514
+ __decorate$G([
461
515
  globalSlimmerRegistry.MapToComponentField()
462
516
  ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
463
517
 
@@ -465,7 +519,7 @@ const italic = {
465
519
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>`,
466
520
  };
467
521
 
468
- var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
522
+ var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
469
523
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
470
524
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
471
525
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -505,7 +559,7 @@ class ItalicToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbar
505
559
  (() => {
506
560
  internalIconManager.VegaInternalIconManager.register({ italic });
507
561
  })();
508
- __decorate$E([
562
+ __decorate$F([
509
563
  globalSlimmerRegistry.MapToComponentField()
510
564
  ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
511
565
 
@@ -513,7 +567,7 @@ const underline = {
513
567
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>`,
514
568
  };
515
569
 
516
- var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
570
+ var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
517
571
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
518
572
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
519
573
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -556,7 +610,7 @@ class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
556
610
  (() => {
557
611
  internalIconManager.VegaInternalIconManager.register({ underline });
558
612
  })();
559
- __decorate$D([
613
+ __decorate$E([
560
614
  globalSlimmerRegistry.MapToComponentField()
561
615
  ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
562
616
 
@@ -564,7 +618,7 @@ const textSize = {
564
618
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
565
619
  };
566
620
 
567
- var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
621
+ var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
568
622
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
569
623
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
570
624
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -601,7 +655,7 @@ class TextStylesToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
601
655
  };
602
656
  }
603
657
  renderBtnWrapper(renderBtn) {
604
- return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
658
+ return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
605
659
  this.addDropdownObserver(ref);
606
660
  } },
607
661
  renderBtn({ showArrowIcon: true }),
@@ -692,13 +746,13 @@ TextStylesToolbarButtonSlimmer.allItems = [
692
746
  label: 'Paragraph',
693
747
  },
694
748
  ];
695
- __decorate$C([
749
+ __decorate$D([
696
750
  globalSlimmerRegistry.MapToComponentField()
697
751
  ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
698
- __decorate$C([
752
+ __decorate$D([
699
753
  globalSlimmerRegistry.MapToComponentField()
700
754
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
701
- __decorate$C([
755
+ __decorate$D([
702
756
  globalSlimmerRegistry.MapToComponentField()
703
757
  ], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
704
758
 
@@ -706,7 +760,7 @@ const TextSlash = {
706
760
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
707
761
  };
708
762
 
709
- var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
763
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
710
764
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
711
765
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
712
766
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -743,7 +797,7 @@ class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
743
797
  'text-slash': TextSlash,
744
798
  });
745
799
  })();
746
- __decorate$B([
800
+ __decorate$C([
747
801
  globalSlimmerRegistry.MapToComponentField()
748
802
  ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
749
803
 
@@ -751,7 +805,7 @@ const codeSimple = {
751
805
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
752
806
  };
753
807
 
754
- var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
808
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
755
809
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
756
810
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
757
811
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -789,7 +843,7 @@ class CodeToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
789
843
  (() => {
790
844
  internalIconManager.VegaInternalIconManager.register({ 'code-simple': codeSimple });
791
845
  })();
792
- __decorate$A([
846
+ __decorate$B([
793
847
  globalSlimmerRegistry.MapToComponentField()
794
848
  ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
795
849
 
@@ -797,7 +851,7 @@ const strikethrough = {
797
851
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path fill="currentColor" d="M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z"/></svg>`,
798
852
  };
799
853
 
800
- var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
854
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
801
855
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
802
856
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
803
857
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -840,7 +894,7 @@ class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.VisualMode
840
894
  (() => {
841
895
  internalIconManager.VegaInternalIconManager.register({ strikethrough });
842
896
  })();
843
- __decorate$z([
897
+ __decorate$A([
844
898
  globalSlimmerRegistry.MapToComponentField()
845
899
  ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
846
900
 
@@ -848,12 +902,16 @@ const link = {
848
902
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M562.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L405.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C189.5 251.2 196 330 246 380c56.5 56.5 148 56.5 204.5 0L562.8 267.7zM43.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C57 372 57 321 88.5 289.5L200.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C416.5 260.8 410 182 360 132c-56.5-56.5-148-56.5-204.5 0L43.2 244.3z"/></svg>`,
849
903
  };
850
904
 
851
- var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
905
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
852
906
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
853
907
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
854
908
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
855
909
  return c > 3 && r && Object.defineProperty(target, key, r), r;
856
910
  };
911
+ // One rAF is ~16 ms; 50 ms gives roughly two frames of buffer for the popover's
912
+ // internal focus trap to settle (and for screen readers such as VoiceOver to
913
+ // observe focus on <body>) before we restore focus to the trigger button.
914
+ const FOCUS_RESTORE_DELAY_MS = 50;
857
915
  class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
858
916
  constructor() {
859
917
  super({
@@ -861,7 +919,21 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
861
919
  tooltip: {
862
920
  text: 'Link',
863
921
  },
922
+ ariaLabel: 'Insert Link',
864
923
  });
924
+ // Restoring focus to the link button on Escape: the popover lives in
925
+ // vega-rich-text-link-editor's shadow root and is portalled to <body>, so
926
+ // the popover's built-in focus trap can't put focus back on our trigger.
927
+ // We track an Escape press during the popover lifetime and restore focus
928
+ // on hide; submit / outside-click flows leave the flag false. Stale
929
+ // Escape presses (pressed while the popover was closed) are cleared by
930
+ // `handleWrapperClickCapture` on the next open.
931
+ this.escapePressedDuringPopover = false;
932
+ // Tracks whether the document-level keydown listener has been registered
933
+ // so it can be removed in disconnectedCallback. Without removal, document
934
+ // keeps a strong reference to this slimmer instance after the rich-text
935
+ // editor is destroyed, leaking memory.
936
+ this.documentKeydownRegistered = false;
865
937
  this.handleLinkEditorChange = ({ detail, }) => {
866
938
  switch (detail.action) {
867
939
  case 'link': {
@@ -886,9 +958,97 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
886
958
  }
887
959
  }
888
960
  };
961
+ this.handleWrapperClickCapture = () => {
962
+ // Reset the Escape flag for each new open; only an Escape during this
963
+ // popover's lifetime should trigger focus restoration. Activating the
964
+ // trigger via keyboard (Enter / Space on the inner native <button>) also
965
+ // dispatches a synthetic click in the capture phase, so this handler
966
+ // runs in both pointer and keyboard activation paths. Also clears any
967
+ // stale Escape press recorded while the popover was closed. The
968
+ // `vegaPopoverShow` listener provides the same guarantee for
969
+ // programmatic-open paths that don't go through a wrapper click.
970
+ this.escapePressedDuringPopover = false;
971
+ };
972
+ this.handlePopoverShow = () => {
973
+ // Belt-and-suspenders reset for programmatic opens (e.g. an external
974
+ // caller invoking `linkEditorRef.show()`): without this, an Escape press
975
+ // recorded while the popover was previously closed could survive into
976
+ // the new open and trigger a spurious focus restore on the next hide.
977
+ this.escapePressedDuringPopover = false;
978
+ };
979
+ this.handleDocumentKeydown = (event) => {
980
+ // We cannot guard on a local `isPopoverOpen` flag here: vega-popover's
981
+ // own KeyboardManager registers its capture-phase keydown listener on
982
+ // document before this slimmer's listener, so it runs first, calls
983
+ // hidePopover(), and synchronously fires `vegaPopoverHide` — which
984
+ // would flip our flag to closed before this handler ever observes the
985
+ // Escape key. Instead, always record the Escape press; stale presses
986
+ // (made while the popover was closed) are cleared by
987
+ // `handleWrapperClickCapture` on the next open.
988
+ // Use `event.code` for consistency with vega-modal's Escape handling
989
+ // (vega-modal-open-state-controller.ts).
990
+ if (event.code === 'Escape') {
991
+ this.escapePressedDuringPopover = true;
992
+ }
993
+ };
994
+ this.handlePopoverHide = () => {
995
+ // vegaPopoverHide fires synchronously from the popover's own Escape
996
+ // handler — before our document-capture keydown observes the key, and
997
+ // before the popover's internal focus trap settles focus on <body>.
998
+ // Defer the decision/restore past that internal restore.
999
+ // eslint-disable-next-line no-restricted-globals
1000
+ setTimeout(() => {
1001
+ var _a, _b, _c, _d;
1002
+ const shouldRestore = this.escapePressedDuringPopover;
1003
+ this.escapePressedDuringPopover = false;
1004
+ if (shouldRestore) {
1005
+ // The toolbar button uses shadow DOM without delegatesFocus,
1006
+ // so focusing the host is a no-op — focus the inner <button>.
1007
+ // The toolbar button may have been removed from the DOM during
1008
+ // the timeout window (e.g. editor destroyed), so guard each step.
1009
+ /* istanbul ignore next */
1010
+ (_d = (_c = (_b = (_a = this.linkBtnWrapperRef) === null || _a === void 0 ? void 0 : _a.querySelector('vega-rich-text-editor-toolbar-button')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('button')) === null || _d === void 0 ? void 0 : _d.focus();
1011
+ }
1012
+ }, FOCUS_RESTORE_DELAY_MS);
1013
+ };
1014
+ }
1015
+ /**
1016
+ * Component lifecycle - [disconnectedCallback]
1017
+ *
1018
+ * Removes the document-level Escape listener registered in the wrapper
1019
+ * ref callback so the slimmer instance is not retained by document after
1020
+ * the rich-text editor is destroyed.
1021
+ */
1022
+ disconnectedCallback() {
1023
+ if (this.documentKeydownRegistered) {
1024
+ // eslint-disable-next-line no-restricted-globals
1025
+ document.removeEventListener('keydown', this.handleDocumentKeydown, { capture: true });
1026
+ this.documentKeydownRegistered = false;
1027
+ }
1028
+ this.linkBtnWrapperRef = undefined;
889
1029
  }
890
1030
  renderBtnWrapper(renderBtn) {
891
- return (index.h("div", { class: "toolbar-btn-link-wrapper", ref: (ref) => (this.linkBtnWrapperRef = ref) },
1031
+ return (index.h("div", { class: "toolbar-btn-link-wrapper", role: "presentation", ref: (ref) => {
1032
+ if (ref && ref !== this.linkBtnWrapperRef) {
1033
+ this.linkBtnWrapperRef = ref;
1034
+ ref.addEventListener('click', this.handleWrapperClickCapture, { capture: true });
1035
+ // `vegaPopoverShow` clears any stale Escape recorded while the
1036
+ // popover was closed, covering programmatic-open paths
1037
+ // (e.g. linkEditorRef.show()) where no wrapper click fires.
1038
+ ref.addEventListener('vegaPopoverShow', this.handlePopoverShow);
1039
+ ref.addEventListener('vegaPopoverHide', this.handlePopoverHide);
1040
+ // Esc inside the portalled popover doesn't bubble to the wrapper,
1041
+ // so observe it on document capture. Tracked so it can be removed
1042
+ // in disconnectedCallback to avoid leaking this slimmer instance.
1043
+ if (!this.documentKeydownRegistered) {
1044
+ // eslint-disable-next-line no-restricted-globals
1045
+ document.addEventListener('keydown', this.handleDocumentKeydown, {
1046
+ capture: true,
1047
+ });
1048
+ this.documentKeydownRegistered = true;
1049
+ }
1050
+ }
1051
+ } },
892
1052
  renderBtn(),
893
1053
  index.h("vega-rich-text-link-editor", { resetStatusAfterHide: false, status: "linkEdit", ref: (ref) => {
894
1054
  if (ref) {
@@ -937,15 +1097,18 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
937
1097
  (() => {
938
1098
  internalIconManager.VegaInternalIconManager.register({ link: link });
939
1099
  })();
940
- __decorate$y([
1100
+ __decorate$z([
941
1101
  globalSlimmerRegistry.MapToComponentField()
942
1102
  ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
1103
+ __decorate$z([
1104
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1105
+ ], LinkToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
943
1106
 
944
1107
  const indent = {
945
1108
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>`,
946
1109
  };
947
1110
 
948
- var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1111
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
949
1112
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
950
1113
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
951
1114
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -979,7 +1142,7 @@ class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
979
1142
  (() => {
980
1143
  internalIconManager.VegaInternalIconManager.register({ indent: indent });
981
1144
  })();
982
- __decorate$x([
1145
+ __decorate$y([
983
1146
  globalSlimmerRegistry.MapToComponentField()
984
1147
  ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
985
1148
 
@@ -987,7 +1150,7 @@ const outdent = {
987
1150
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
988
1151
  };
989
1152
 
990
- var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1153
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
991
1154
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
992
1155
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
993
1156
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1022,7 +1185,7 @@ class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1022
1185
  (() => {
1023
1186
  internalIconManager.VegaInternalIconManager.register({ outdent: outdent });
1024
1187
  })();
1025
- __decorate$w([
1188
+ __decorate$x([
1026
1189
  globalSlimmerRegistry.MapToComponentField()
1027
1190
  ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1028
1191
 
@@ -1043,7 +1206,7 @@ class ImageUpdateUrlAction extends codeBlock.ModifyContentAction {
1043
1206
  }
1044
1207
  }
1045
1208
 
1046
- var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1209
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1047
1210
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1048
1211
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1049
1212
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1055,6 +1218,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1055
1218
  icon: 'image',
1056
1219
  tooltip: { text: 'Image' },
1057
1220
  autoFocusOnClick: false,
1221
+ ariaLabel: 'Insert Image',
1058
1222
  });
1059
1223
  this.insertURLImage = async () => {
1060
1224
  const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
@@ -1109,8 +1273,8 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
1109
1273
  if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
1110
1274
  return null;
1111
1275
  }
1112
- return (index.h("vega-box", null,
1113
- shouldRenderDropdown ? (index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
1276
+ return (index.h("vega-box", { role: "presentation" },
1277
+ shouldRenderDropdown ? (index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => {
1114
1278
  this.dropdownRef = ref;
1115
1279
  this.addDropdownObserver(ref);
1116
1280
  } },
@@ -1242,16 +1406,16 @@ ImageToolbarButtonSlimmer.allItems = [
1242
1406
  label: 'Insert via URL',
1243
1407
  },
1244
1408
  ];
1245
- __decorate$v([
1409
+ __decorate$w([
1246
1410
  globalSlimmerRegistry.MapToComponentField()
1247
1411
  ], ImageToolbarButtonSlimmer.prototype, "host", void 0);
1248
- __decorate$v([
1412
+ __decorate$w([
1249
1413
  globalSlimmerRegistry.MapToComponentField()
1250
1414
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1251
- __decorate$v([
1415
+ __decorate$w([
1252
1416
  globalSlimmerRegistry.MapToComponentField()
1253
1417
  ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1254
- __decorate$v([
1418
+ __decorate$w([
1255
1419
  globalSlimmerRegistry.MapToComponentField()
1256
1420
  ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1257
1421
 
@@ -1561,7 +1725,7 @@ class ListShiftTabOutdentHandler extends AbstractListKeyboardHandler {
1561
1725
  }
1562
1726
  }
1563
1727
 
1564
- var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1728
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1565
1729
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1566
1730
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1567
1731
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1713,28 +1877,28 @@ class ListKeyboardSlimmer extends globalSlimmerRegistry.VegaSlimmer {
1713
1877
  this.selectionController.enqueueSelectionRangeFutureState(firstNode, Math.min(startOffset, firstNode.getRangeEndOffset()), lastNode, Math.min(endOffset, lastNode.getRangeEndOffset()), true);
1714
1878
  }
1715
1879
  }
1716
- __decorate$u([
1880
+ __decorate$v([
1717
1881
  globalSlimmerRegistry.MapToComponentField()
1718
1882
  ], ListKeyboardSlimmer.prototype, "selectionController", void 0);
1719
- __decorate$u([
1883
+ __decorate$v([
1720
1884
  globalSlimmerRegistry.MapToComponentField()
1721
1885
  ], ListKeyboardSlimmer.prototype, "valueController", void 0);
1722
- __decorate$u([
1886
+ __decorate$v([
1723
1887
  globalSlimmerRegistry.MapToComponentField()
1724
1888
  ], ListKeyboardSlimmer.prototype, "value", void 0);
1725
- __decorate$u([
1889
+ __decorate$v([
1726
1890
  globalSlimmerRegistry.MapToComponentField()
1727
1891
  ], ListKeyboardSlimmer.prototype, "toolbarItems", void 0);
1728
- __decorate$u([
1892
+ __decorate$v([
1729
1893
  globalSlimmerRegistry.MapToComponentField()
1730
1894
  ], ListKeyboardSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1731
- __decorate$u([
1895
+ __decorate$v([
1732
1896
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1733
1897
  ], ListKeyboardSlimmer.prototype, "disconnectedCallback", null);
1734
- __decorate$u([
1898
+ __decorate$v([
1735
1899
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
1736
1900
  ], ListKeyboardSlimmer.prototype, "componentDidLoad", null);
1737
- __decorate$u([
1901
+ __decorate$v([
1738
1902
  globalSlimmerRegistry.MapToComponentMethod('watchToolbarItems')
1739
1903
  ], ListKeyboardSlimmer.prototype, "watchToolbarItems", null);
1740
1904
 
@@ -1751,7 +1915,7 @@ class TransformListAction extends codeBlock.ModifyContentAction {
1751
1915
  }
1752
1916
  }
1753
1917
 
1754
- var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1918
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1755
1919
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1756
1920
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1757
1921
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1810,14 +1974,14 @@ class BulletsToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1810
1974
  }
1811
1975
  }
1812
1976
  }
1813
- __decorate$t([
1977
+ __decorate$u([
1814
1978
  globalSlimmerRegistry.MapToComponentField()
1815
1979
  ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1816
- __decorate$t([
1980
+ __decorate$u([
1817
1981
  globalSlimmerRegistry.MapToComponentField()
1818
1982
  ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1819
1983
 
1820
- var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1984
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1821
1985
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1822
1986
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1823
1987
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1874,14 +2038,14 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1874
2038
  }
1875
2039
  }
1876
2040
  }
1877
- __decorate$s([
2041
+ __decorate$t([
1878
2042
  globalSlimmerRegistry.MapToComponentField()
1879
2043
  ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1880
- __decorate$s([
2044
+ __decorate$t([
1881
2045
  globalSlimmerRegistry.MapToComponentField()
1882
2046
  ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1883
2047
 
1884
- var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2048
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1885
2049
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1886
2050
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1887
2051
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1894,6 +2058,7 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1894
2058
  tooltip: {
1895
2059
  text: 'Bullets',
1896
2060
  },
2061
+ ariaLabel: 'Bullets and Numbers',
1897
2062
  });
1898
2063
  this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
1899
2064
  this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
@@ -1912,7 +2077,7 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1912
2077
  }
1913
2078
  }
1914
2079
  renderBtnWrapper(renderBtn) {
1915
- return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
2080
+ return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
1916
2081
  index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1917
2082
  index.h("div", { slot: "popover" }, this.renderContent())));
1918
2083
  }
@@ -1961,41 +2126,41 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1961
2126
  'list-ol': ListOL,
1962
2127
  });
1963
2128
  })();
1964
- __decorate$r([
2129
+ __decorate$s([
1965
2130
  globalSlimmerRegistry.MapToComponentField()
1966
2131
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1967
- __decorate$r([
2132
+ __decorate$s([
1968
2133
  globalSlimmerRegistry.MapToComponentField()
1969
2134
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "valueController", void 0);
1970
- __decorate$r([
2135
+ __decorate$s([
1971
2136
  globalSlimmerRegistry.MapToComponentField()
1972
2137
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "value", void 0);
1973
- __decorate$r([
2138
+ __decorate$s([
1974
2139
  globalSlimmerRegistry.MapToComponentField()
1975
2140
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "toolbarItems", void 0);
1976
- __decorate$r([
2141
+ __decorate$s([
1977
2142
  globalSlimmerRegistry.MapToComponentField()
1978
2143
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1979
- __decorate$r([
2144
+ __decorate$s([
1980
2145
  globalSlimmerRegistry.InjectVegaSlimmer()
1981
2146
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1982
- __decorate$r([
2147
+ __decorate$s([
1983
2148
  globalSlimmerRegistry.InjectVegaSlimmer()
1984
2149
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1985
- __decorate$r([
2150
+ __decorate$s([
1986
2151
  globalSlimmerRegistry.InjectVegaSlimmer()
1987
2152
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "listKeyboardSlimmer", void 0);
1988
- __decorate$r([
2153
+ __decorate$s([
1989
2154
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1990
2155
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
1991
- __decorate$r([
2156
+ __decorate$s([
1992
2157
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
1993
2158
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentDidLoad", null);
1994
- __decorate$r([
2159
+ __decorate$s([
1995
2160
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1996
2161
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1997
2162
 
1998
- var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2163
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1999
2164
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2000
2165
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2001
2166
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2030,14 +2195,14 @@ class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
2030
2195
  'align-left': alignLeft.AlignLeft,
2031
2196
  });
2032
2197
  })();
2033
- __decorate$q([
2198
+ __decorate$r([
2034
2199
  globalSlimmerRegistry.MapToComponentField()
2035
2200
  ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2036
- __decorate$q([
2201
+ __decorate$r([
2037
2202
  globalSlimmerRegistry.MapToComponentField()
2038
2203
  ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2039
2204
 
2040
- var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2205
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2041
2206
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2042
2207
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2043
2208
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2072,14 +2237,14 @@ class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTo
2072
2237
  'align-center': alignLeft.AlignCenter,
2073
2238
  });
2074
2239
  })();
2075
- __decorate$p([
2240
+ __decorate$q([
2076
2241
  globalSlimmerRegistry.MapToComponentField()
2077
2242
  ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2078
- __decorate$p([
2243
+ __decorate$q([
2079
2244
  globalSlimmerRegistry.MapToComponentField()
2080
2245
  ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2081
2246
 
2082
- var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2247
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2083
2248
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2084
2249
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2085
2250
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2114,14 +2279,14 @@ class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
2114
2279
  'align-right': alignLeft.AlignRight,
2115
2280
  });
2116
2281
  })();
2117
- __decorate$o([
2282
+ __decorate$p([
2118
2283
  globalSlimmerRegistry.MapToComponentField()
2119
2284
  ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2120
- __decorate$o([
2285
+ __decorate$p([
2121
2286
  globalSlimmerRegistry.MapToComponentField()
2122
2287
  ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2123
2288
 
2124
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2289
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2125
2290
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2126
2291
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2127
2292
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2156,14 +2321,14 @@ class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeT
2156
2321
  'align-justify': alignLeft.AlignJustify,
2157
2322
  });
2158
2323
  })();
2159
- __decorate$n([
2324
+ __decorate$o([
2160
2325
  globalSlimmerRegistry.MapToComponentField()
2161
2326
  ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2162
- __decorate$n([
2327
+ __decorate$o([
2163
2328
  globalSlimmerRegistry.MapToComponentField()
2164
2329
  ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2165
2330
 
2166
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2331
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2167
2332
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2168
2333
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2169
2334
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2176,6 +2341,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
2176
2341
  tooltip: {
2177
2342
  text: 'Left Align',
2178
2343
  },
2344
+ ariaLabel: 'Horizontal Alignment',
2179
2345
  });
2180
2346
  this.leftAlignToolbarButtonSlimmer = new LeftAlignToolbarButtonSlimmer();
2181
2347
  this.centerAlignToolbarButtonSlimmer = new CenterAlignToolbarButtonSlimmer();
@@ -2200,7 +2366,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
2200
2366
  }
2201
2367
  }
2202
2368
  renderBtnWrapper(renderBtn) {
2203
- return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
2369
+ return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
2204
2370
  index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
2205
2371
  index.h("div", { slot: "popover" }, this.renderContent())));
2206
2372
  }
@@ -2221,22 +2387,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
2221
2387
  .some((block) => this.shouldDisabledToolbar(block, codeBlock.HorizontalAlignmentAnnotationAction.name)));
2222
2388
  }
2223
2389
  }
2224
- __decorate$m([
2390
+ __decorate$n([
2225
2391
  globalSlimmerRegistry.MapToComponentField()
2226
2392
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
2227
- __decorate$m([
2393
+ __decorate$n([
2228
2394
  globalSlimmerRegistry.InjectVegaSlimmer()
2229
2395
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
2230
- __decorate$m([
2396
+ __decorate$n([
2231
2397
  globalSlimmerRegistry.InjectVegaSlimmer()
2232
2398
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
2233
- __decorate$m([
2399
+ __decorate$n([
2234
2400
  globalSlimmerRegistry.InjectVegaSlimmer()
2235
2401
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
2236
- __decorate$m([
2402
+ __decorate$n([
2237
2403
  globalSlimmerRegistry.InjectVegaSlimmer()
2238
2404
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
2239
- __decorate$m([
2405
+ __decorate$n([
2240
2406
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
2241
2407
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
2242
2408
 
@@ -2277,7 +2443,7 @@ class RTEEditorState {
2277
2443
  }
2278
2444
  }
2279
2445
 
2280
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2446
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2281
2447
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2282
2448
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2283
2449
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2287,6 +2453,11 @@ var __decorate$l = (undefined && undefined.__decorate) || function (decorators,
2287
2453
  * The value controller is responsible for updating the value of the rich text editor.
2288
2454
  */
2289
2455
  class ValueController extends globalSlimmerRegistry.VegaSlimmer {
2456
+ constructor() {
2457
+ super(...arguments);
2458
+ // Deep clone of the last committed value, kept only while a commit validator is active, used to roll back rejected changes.
2459
+ this.committedSnapshot = null;
2460
+ }
2290
2461
  /**
2291
2462
  * Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.connectedCallback}
2292
2463
  */
@@ -2331,15 +2502,47 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
2331
2502
  });
2332
2503
  }
2333
2504
  this.registerEditorRefAndContent();
2505
+ this.seedCommittedSnapshot();
2506
+ }
2507
+ /**
2508
+ * Seeds the rollback snapshot from the current value while a commit interceptor is active.
2509
+ * Runs on load and on extension changes so runtime re-registration stays protected.
2510
+ */
2511
+ seedCommittedSnapshot() {
2512
+ if (this.wordCountController.hasWordCountHardLimit()) {
2513
+ this.committedSnapshot = this.value ? this.value.clone(true) : null;
2514
+ }
2334
2515
  }
2335
2516
  /**
2336
2517
  * Updates the value of the editor and restore the selection.
2337
2518
  *
2338
2519
  * @param {VegaRTEContent} newValue The new value to set.
2339
2520
  * @param {boolean} recordHistory - Whether to record the change in history.
2340
- */
2341
- async flushChanges(newValue, recordHistory = true) {
2342
- this.value = newValue.clone();
2521
+ * @param {RTEUpdateSource} updateSource - The source of the update, defaulting to 'default'.
2522
+ */
2523
+ async flushChanges(newValue, recordHistory = true, updateSource = codeBlock.RTEUpdateSource.Default) {
2524
+ const previous = this.committedSnapshot;
2525
+ const action = new contentState.CommitValueAction(newValue, previous, this.host);
2526
+ const committed = codeBlock.ActionHandleStrategyRegistry.executeTheStrategy(action, newValue);
2527
+ if (!committed) {
2528
+ if (updateSource === codeBlock.RTEUpdateSource.Composition) {
2529
+ // The composition input characters cannot be deleted, so we force a repaint to restore the content from the model.
2530
+ this.vegaRichTextEditorRenderer.forceContentRepaint();
2531
+ }
2532
+ else {
2533
+ // The commit was vetoed, so restore the placeholder the framework skipped repainting and roll back.
2534
+ this.vegaRichTextEditorRenderer.restoreEmptyTextPlaceholders();
2535
+ }
2536
+ // Deep clone so the rolled-back value never shares nodes with the snapshot, which in-place edits would otherwise corrupt.
2537
+ this.value = (previous !== null && previous !== void 0 ? previous : newValue).clone(true);
2538
+ if (previous) {
2539
+ // Seed the snapshot again so the next commit attempt has a valid rollback point.
2540
+ this.seedCommittedSnapshot();
2541
+ }
2542
+ await waitForComponentDidRender.waitForComponentDidRender(this.host);
2543
+ return;
2544
+ }
2545
+ this.value = committed.clone();
2343
2546
  if (recordHistory) {
2344
2547
  this.historyController.registerHistory(new RTEEditorState(this.value, new componentValueHistoryControllerSlimmer_abstract.RTESelectionState(this.selectionController.getCurrentRange())));
2345
2548
  }
@@ -2363,39 +2566,49 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
2363
2566
  }
2364
2567
  }
2365
2568
  ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
2366
- __decorate$l([
2569
+ __decorate$m([
2367
2570
  globalSlimmerRegistry.MapToComponentField()
2368
2571
  ], ValueController.prototype, "host", void 0);
2369
- __decorate$l([
2572
+ __decorate$m([
2370
2573
  globalSlimmerRegistry.MapToComponentField({ writable: true })
2371
2574
  ], ValueController.prototype, "value", void 0);
2372
- __decorate$l([
2575
+ __decorate$m([
2373
2576
  globalSlimmerRegistry.MapToComponentField()
2374
2577
  ], ValueController.prototype, "changeEventEmitter", void 0);
2375
- __decorate$l([
2578
+ __decorate$m([
2376
2579
  globalSlimmerRegistry.MapToComponentField()
2377
2580
  ], ValueController.prototype, "valueController", void 0);
2378
- __decorate$l([
2581
+ __decorate$m([
2379
2582
  globalSlimmerRegistry.MapToComponentField()
2380
2583
  ], ValueController.prototype, "historyController", void 0);
2381
- __decorate$l([
2584
+ __decorate$m([
2382
2585
  globalSlimmerRegistry.MapToComponentField()
2383
2586
  ], ValueController.prototype, "selectionController", void 0);
2384
- __decorate$l([
2587
+ __decorate$m([
2588
+ globalSlimmerRegistry.MapToComponentField()
2589
+ ], ValueController.prototype, "wordCountController", void 0);
2590
+ __decorate$m([
2591
+ globalSlimmerRegistry.MapToComponentField()
2592
+ ], ValueController.prototype, "vegaRichTextEditorRenderer", void 0);
2593
+ __decorate$m([
2385
2594
  globalSlimmerRegistry.MapToComponentField()
2386
2595
  ], ValueController.prototype, "sourceEditConfig", void 0);
2387
- __decorate$l([
2596
+ __decorate$m([
2388
2597
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
2389
2598
  ], ValueController.prototype, "connectedCallback", null);
2390
- __decorate$l([
2599
+ __decorate$m([
2391
2600
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
2392
2601
  ], ValueController.prototype, "disconnectedCallback", null);
2393
- __decorate$l([
2602
+ __decorate$m([
2394
2603
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
2395
2604
  ], ValueController.prototype, "componentWillLoad", null);
2396
- __decorate$l([
2605
+ __decorate$m([
2397
2606
  globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
2398
2607
  ], ValueController.prototype, "watchValueUpdate", null);
2608
+ __decorate$m([
2609
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad'),
2610
+ globalSlimmerRegistry.MapToComponentMethod('watchExtensions')
2611
+ ], ValueController.prototype, "seedCommittedSnapshot", null);
2399
2612
 
2400
2613
  /**
2401
2614
  * The rich text content controller
@@ -3227,8 +3440,11 @@ class InsertPasteHandler extends BaseHandler {
3227
3440
  const body = parsedDoc.body;
3228
3441
  // Extract plain text from the parsed document
3229
3442
  const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
3230
- // Check for rich inline formatting
3231
- let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
3443
+ // Check for rich inline formatting. Code blocks (`pre` carrying
3444
+ // `data-language`, the marker the code-block strategy recognizes) count as
3445
+ // formatting so they are never flattened to inline plain text, which would
3446
+ // drop the code block on single-line pastes whose text equals the HTML text.
3447
+ let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark,code,pre[data-language]'));
3232
3448
  if (!hasFormatting) {
3233
3449
  hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
3234
3450
  const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
@@ -3319,9 +3535,18 @@ class InsertPasteHandler extends BaseHandler {
3319
3535
  context.restore(rootElements);
3320
3536
  this.normalizeImportedHtmlArtifacts(parsedDoc.body);
3321
3537
  const htmlElements = Array.from(parsedDoc.body.childNodes);
3322
- const resultBlocks = contentState.ElementToDtoStrategyProcessor.process(htmlElements)
3538
+ // Word paste enables custom-annotation processing (skipCustomAnnotations: false)
3539
+ // so that inline styles produced by WordPasteStrategy (colors, font-weight, etc.)
3540
+ // are mapped to RTE annotations. Regular rich paste skips them (undefined → default).
3541
+ const transformOptions = payload.type === codeBlock.RTE_PASTE_MODE_WORD
3542
+ ? {
3543
+ autoMatchFormat: true,
3544
+ skipCustomAnnotations: false,
3545
+ }
3546
+ : undefined;
3547
+ const resultBlocks = contentState.ElementToDtoStrategyProcessor.process(htmlElements, transformOptions)
3323
3548
  .filter(Boolean)
3324
- .map((output) => output.toDto())
3549
+ .map((output) => output.toDto(transformOptions))
3325
3550
  .filter(Boolean);
3326
3551
  // Fallback for synthetic payloads: if strategy conversion yields no blocks
3327
3552
  // but we still have plain text, create paragraph/text blocks directly.
@@ -3590,6 +3815,7 @@ class InsertPasteHandler extends BaseHandler {
3590
3815
  return {
3591
3816
  html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
3592
3817
  text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
3818
+ type: event.dataTransfer.getData(codeBlock.RTE_PASTE_MODE_DATA_TYPE) || '',
3593
3819
  };
3594
3820
  }
3595
3821
  }
@@ -3887,7 +4113,7 @@ class KeyboardLinkHandler extends BaseHandler {
3887
4113
  }
3888
4114
  }
3889
4115
 
3890
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4116
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3891
4117
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3892
4118
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3893
4119
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -3928,6 +4154,7 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3928
4154
  }
3929
4155
  this.insertCompositionTextController.removeObserver();
3930
4156
  let updateFlag = false;
4157
+ let updateSource = codeBlock.RTEUpdateSource.Default;
3931
4158
  switch (inputType) {
3932
4159
  case 'insertParagraph':
3933
4160
  updateFlag = true;
@@ -3935,6 +4162,10 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3935
4162
  break;
3936
4163
  case 'insertText':
3937
4164
  updateFlag = true;
4165
+ updateSource =
4166
+ e[codeBlock.RTE_UPDATE_SOURCE_KEY] === codeBlock.RTEUpdateSource.Composition
4167
+ ? codeBlock.RTEUpdateSource.Composition
4168
+ : codeBlock.RTEUpdateSource.Default;
3938
4169
  this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
3939
4170
  break;
3940
4171
  case 'insertLineBreak':
@@ -3955,7 +4186,7 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3955
4186
  break;
3956
4187
  }
3957
4188
  if (updateFlag) {
3958
- void this.valueController.flushChanges(this.value);
4189
+ void this.valueController.flushChanges(this.value, true, updateSource);
3959
4190
  }
3960
4191
  };
3961
4192
  }
@@ -4031,28 +4262,28 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
4031
4262
  return false;
4032
4263
  }
4033
4264
  }
4034
- __decorate$k([
4265
+ __decorate$l([
4035
4266
  globalSlimmerRegistry.MapToComponentField()
4036
4267
  ], UserInputController.prototype, "host", void 0);
4037
- __decorate$k([
4268
+ __decorate$l([
4038
4269
  globalSlimmerRegistry.MapToComponentField()
4039
4270
  ], UserInputController.prototype, "value", void 0);
4040
- __decorate$k([
4271
+ __decorate$l([
4041
4272
  globalSlimmerRegistry.MapToComponentField()
4042
4273
  ], UserInputController.prototype, "valueController", void 0);
4043
- __decorate$k([
4274
+ __decorate$l([
4044
4275
  globalSlimmerRegistry.MapToComponentField()
4045
4276
  ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
4046
- __decorate$k([
4277
+ __decorate$l([
4047
4278
  globalSlimmerRegistry.MapToComponentField()
4048
4279
  ], UserInputController.prototype, "selectionController", void 0);
4049
- __decorate$k([
4280
+ __decorate$l([
4050
4281
  globalSlimmerRegistry.MapToComponentField()
4051
4282
  ], UserInputController.prototype, "insertCompositionTextController", void 0);
4052
- __decorate$k([
4283
+ __decorate$l([
4053
4284
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4054
4285
  ], UserInputController.prototype, "addActionListener", null);
4055
- __decorate$k([
4286
+ __decorate$l([
4056
4287
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4057
4288
  ], UserInputController.prototype, "removeActionListener", null);
4058
4289
 
@@ -4072,7 +4303,7 @@ class InsertImageToBlockAction extends codeBlock.ModifyContentAction {
4072
4303
  }
4073
4304
  }
4074
4305
 
4075
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4306
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4076
4307
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4077
4308
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4078
4309
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4164,26 +4395,26 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
4164
4395
  }
4165
4396
  }
4166
4397
  }
4167
- __decorate$j([
4398
+ __decorate$k([
4168
4399
  globalSlimmerRegistry.MapToComponentField()
4169
4400
  ], InsertImageController.prototype, "selectionController", void 0);
4170
- __decorate$j([
4401
+ __decorate$k([
4171
4402
  globalSlimmerRegistry.MapToComponentField()
4172
4403
  ], InsertImageController.prototype, "value", void 0);
4173
- __decorate$j([
4404
+ __decorate$k([
4174
4405
  globalSlimmerRegistry.MapToComponentField()
4175
4406
  ], InsertImageController.prototype, "valueController", void 0);
4176
- __decorate$j([
4407
+ __decorate$k([
4177
4408
  globalSlimmerRegistry.MapToComponentField()
4178
4409
  ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
4179
- __decorate$j([
4410
+ __decorate$k([
4180
4411
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4181
4412
  ], InsertImageController.prototype, "registerObserver", null);
4182
- __decorate$j([
4413
+ __decorate$k([
4183
4414
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4184
4415
  ], InsertImageController.prototype, "unRegisterObserver", null);
4185
4416
 
4186
- var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4417
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4187
4418
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4188
4419
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4189
4420
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4249,20 +4480,20 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
4249
4480
  this.selectionController.setSelectionRange(range);
4250
4481
  }
4251
4482
  }
4252
- __decorate$i([
4483
+ __decorate$j([
4253
4484
  globalSlimmerRegistry.MapToComponentField()
4254
4485
  ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
4255
- __decorate$i([
4486
+ __decorate$j([
4256
4487
  globalSlimmerRegistry.MapToComponentField()
4257
4488
  ], FocusController.prototype, "selectionController", void 0);
4258
- __decorate$i([
4489
+ __decorate$j([
4259
4490
  globalSlimmerRegistry.MapToComponentField()
4260
4491
  ], FocusController.prototype, "valueController", void 0);
4261
- __decorate$i([
4492
+ __decorate$j([
4262
4493
  globalSlimmerRegistry.MapToComponentField()
4263
4494
  ], FocusController.prototype, "value", void 0);
4264
4495
 
4265
- var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4496
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4266
4497
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4267
4498
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4268
4499
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4469,38 +4700,39 @@ class InsertCompositionTextController extends globalSlimmerRegistry.VegaSlimmer
4469
4700
  const inputEvent = new CustomEvent('beforeinput');
4470
4701
  inputEvent['data'] = text;
4471
4702
  inputEvent['inputType'] = 'insertText';
4703
+ inputEvent[codeBlock.RTE_UPDATE_SOURCE_KEY] = codeBlock.RTEUpdateSource.Composition;
4472
4704
  this.editableElementRef.dispatchEvent(inputEvent);
4473
4705
  }
4474
4706
  }
4475
- __decorate$h([
4707
+ __decorate$i([
4476
4708
  globalSlimmerRegistry.MapToComponentField()
4477
4709
  ], InsertCompositionTextController.prototype, "selectionController", void 0);
4478
- __decorate$h([
4710
+ __decorate$i([
4479
4711
  globalSlimmerRegistry.MapToComponentField()
4480
4712
  ], InsertCompositionTextController.prototype, "host", void 0);
4481
- __decorate$h([
4713
+ __decorate$i([
4482
4714
  globalSlimmerRegistry.MapToComponentField()
4483
4715
  ], InsertCompositionTextController.prototype, "value", void 0);
4484
- __decorate$h([
4716
+ __decorate$i([
4485
4717
  globalSlimmerRegistry.MapToComponentField()
4486
4718
  ], InsertCompositionTextController.prototype, "valueController", void 0);
4487
- __decorate$h([
4719
+ __decorate$i([
4488
4720
  globalSlimmerRegistry.MapToComponentField()
4489
4721
  ], InsertCompositionTextController.prototype, "userInputController", void 0);
4490
- __decorate$h([
4722
+ __decorate$i([
4491
4723
  globalSlimmerRegistry.MapToComponentField()
4492
4724
  ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
4493
- __decorate$h([
4725
+ __decorate$i([
4494
4726
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4495
4727
  ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
4496
- __decorate$h([
4728
+ __decorate$i([
4497
4729
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4498
4730
  ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
4499
- __decorate$h([
4731
+ __decorate$i([
4500
4732
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
4501
4733
  ], InsertCompositionTextController.prototype, "reConnectObserver", null);
4502
4734
 
4503
- var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4735
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4504
4736
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4505
4737
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4506
4738
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4709,23 +4941,23 @@ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
4709
4941
  }
4710
4942
  }
4711
4943
  }
4712
- __decorate$g([
4944
+ __decorate$h([
4713
4945
  globalSlimmerRegistry.MapToComponentField()
4714
4946
  ], DeleteSelectedNodesController.prototype, "host", void 0);
4715
- __decorate$g([
4947
+ __decorate$h([
4716
4948
  globalSlimmerRegistry.MapToComponentField()
4717
4949
  ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
4718
- __decorate$g([
4950
+ __decorate$h([
4719
4951
  globalSlimmerRegistry.MapToComponentField()
4720
4952
  ], DeleteSelectedNodesController.prototype, "value", void 0);
4721
- __decorate$g([
4953
+ __decorate$h([
4722
4954
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
4723
4955
  ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
4724
- __decorate$g([
4956
+ __decorate$h([
4725
4957
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4726
4958
  ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
4727
4959
 
4728
- var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4960
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4729
4961
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4730
4962
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4731
4963
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4802,22 +5034,22 @@ class HistoryController extends componentValueHistoryControllerSlimmer_abstract.
4802
5034
  await this.valueController.flushChanges(content, false);
4803
5035
  }
4804
5036
  }
4805
- __decorate$f([
5037
+ __decorate$g([
4806
5038
  globalSlimmerRegistry.MapToComponentField()
4807
5039
  ], HistoryController.prototype, "host", void 0);
4808
- __decorate$f([
5040
+ __decorate$g([
4809
5041
  globalSlimmerRegistry.MapToComponentField()
4810
5042
  ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
4811
- __decorate$f([
5043
+ __decorate$g([
4812
5044
  globalSlimmerRegistry.MapToComponentField()
4813
5045
  ], HistoryController.prototype, "valueController", void 0);
4814
- __decorate$f([
5046
+ __decorate$g([
4815
5047
  globalSlimmerRegistry.MapToComponentField()
4816
5048
  ], HistoryController.prototype, "value", void 0);
4817
- __decorate$f([
5049
+ __decorate$g([
4818
5050
  globalSlimmerRegistry.MapToComponentField()
4819
5051
  ], HistoryController.prototype, "selectionController", void 0);
4820
- __decorate$f([
5052
+ __decorate$g([
4821
5053
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4822
5054
  ], HistoryController.prototype, "registerInitState", null);
4823
5055
 
@@ -4838,7 +5070,7 @@ class TransformToCodeBlockAction extends codeBlock.ModifyContentAction {
4838
5070
  }
4839
5071
  }
4840
5072
 
4841
- var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5073
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4842
5074
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4843
5075
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4844
5076
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4894,13 +5126,13 @@ class CodeBlockToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
4894
5126
  (() => {
4895
5127
  internalIconManager.VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
4896
5128
  })();
4897
- __decorate$e([
5129
+ __decorate$f([
4898
5130
  globalSlimmerRegistry.MapToComponentField()
4899
5131
  ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
4900
- __decorate$e([
5132
+ __decorate$f([
4901
5133
  globalSlimmerRegistry.MapToComponentField()
4902
5134
  ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
4903
- __decorate$e([
5135
+ __decorate$f([
4904
5136
  globalSlimmerRegistry.MapToComponentField()
4905
5137
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
4906
5138
 
@@ -4908,7 +5140,7 @@ const undoIcon = {
4908
5140
  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>`,
4909
5141
  };
4910
5142
 
4911
- var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5143
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4912
5144
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4913
5145
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4914
5146
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4937,7 +5169,7 @@ class UndoToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
4937
5169
  (() => {
4938
5170
  internalIconManager.VegaInternalIconManager.register({ 'arrow-turn-left': undoIcon });
4939
5171
  })();
4940
- __decorate$d([
5172
+ __decorate$e([
4941
5173
  globalSlimmerRegistry.MapToComponentField()
4942
5174
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
4943
5175
 
@@ -4945,7 +5177,7 @@ const redoIcon = {
4945
5177
  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>`,
4946
5178
  };
4947
5179
 
4948
- var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5180
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4949
5181
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4950
5182
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4951
5183
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -4974,7 +5206,7 @@ class RedoToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
4974
5206
  (() => {
4975
5207
  internalIconManager.VegaInternalIconManager.register({ 'arrow-turn-right': redoIcon });
4976
5208
  })();
4977
- __decorate$c([
5209
+ __decorate$d([
4978
5210
  globalSlimmerRegistry.MapToComponentField()
4979
5211
  ], RedoToolbarButtonSlimmer.prototype, "historyController", void 0);
4980
5212
 
@@ -5045,7 +5277,7 @@ const displayCode = {
5045
5277
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M512 48c8.8 0 16 7.2 16 16V352c0 8.8-7.2 16-16 16H336.5c-.3 0-.6 0-.8 0H240.4c-.3 0-.6 0-.8 0H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H512zM64 416H211.7l-8 48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h72H352h72c13.3 0 24-10.7 24-24s-10.7-24-24-24H372.3l-8-48H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64zm188.3 48l8-48h55.3l8 48H252.3zM249 177c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM361 143c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"/></svg>`,
5046
5278
  };
5047
5279
 
5048
- var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5280
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5049
5281
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5050
5282
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5051
5283
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -5066,11 +5298,25 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
5066
5298
  if (isSelected) {
5067
5299
  await this.saveSourceCode();
5068
5300
  }
5069
- else {
5070
- this.selectionController.setSelectionRange(new Range());
5071
- }
5301
+ // VD-8789 (keyboard a11y): the previous implementation cleared the editor
5302
+ // selection here via `selectionController.setSelectionRange(new Range())`
5303
+ // when entering source view. That call is intentionally removed so the
5304
+ // caret position is preserved when toggling back to visual mode, and so
5305
+ // the source-edit button can be re-activated from the keyboard without
5306
+ // the selection being reset out from under the user.
5072
5307
  this.sourceView = !isSelected;
5073
5308
  }
5309
+ // VD-8789 (keyboard a11y): the default `preventLostFocus` calls
5310
+ // `e.preventDefault()` on mousedown so the button never receives focus and
5311
+ // the rich-text editor selection is preserved. The source-edit toggle is
5312
+ // different — activating it switches the editor to source-view mode, where
5313
+ // the visual-mode selection is no longer relevant. We override with a no-op
5314
+ // so the button is allowed to take focus on click, matching its keyboard
5315
+ // activation path and giving keyboard / screen-reader users a stable focus
5316
+ // target to toggle back out of source view.
5317
+ preventLostFocus() {
5318
+ return {};
5319
+ }
5074
5320
  isSelected() {
5075
5321
  return this.sourceView;
5076
5322
  }
@@ -5078,7 +5324,9 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
5078
5324
  return super.isDisabled();
5079
5325
  }
5080
5326
  async saveSourceCode() {
5327
+ var _a;
5081
5328
  const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
5329
+ const blockBoundaryRegistry = (_a = linkExtension.extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
5082
5330
  if (!sourceViewValue && this.value.isEmpty()) {
5083
5331
  return;
5084
5332
  }
@@ -5086,6 +5334,7 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
5086
5334
  await this.valueController.flushChanges(contentState.VegaRTEContent.fromHtml(sourceViewValue, {
5087
5335
  autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
5088
5336
  filterInlineStyles: this.sourceEditConfig.filterInlineStyles,
5337
+ blockBoundaryRegistry,
5089
5338
  }));
5090
5339
  }
5091
5340
  }
@@ -5093,26 +5342,61 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
5093
5342
  (() => {
5094
5343
  internalIconManager.VegaInternalIconManager.register({ 'display-code': displayCode });
5095
5344
  })();
5096
- __decorate$b([
5345
+ __decorate$c([
5097
5346
  globalSlimmerRegistry.MapToComponentField({ writable: true })
5098
5347
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
5099
- __decorate$b([
5100
- globalSlimmerRegistry.MapToComponentField()
5101
- ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
5102
- __decorate$b([
5348
+ __decorate$c([
5103
5349
  globalSlimmerRegistry.MapToComponentField()
5104
5350
  ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
5105
- __decorate$b([
5351
+ __decorate$c([
5106
5352
  globalSlimmerRegistry.MapToComponentField()
5107
5353
  ], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
5108
- __decorate$b([
5354
+ __decorate$c([
5109
5355
  globalSlimmerRegistry.MapToComponentField()
5110
5356
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
5111
- __decorate$b([
5357
+ __decorate$c([
5358
+ globalSlimmerRegistry.MapToComponentField()
5359
+ ], SourceEditToolbarButtonSlimmer.prototype, "host", void 0);
5360
+ __decorate$c([
5112
5361
  globalSlimmerRegistry.MapToComponentField()
5113
5362
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
5114
5363
 
5115
- var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5364
+ /**
5365
+ * Per-editor registry for block-boundary predicates contributed by extensions.
5366
+ */
5367
+ class BlockBoundaryRegistry {
5368
+ constructor() {
5369
+ this.predicates = new Set();
5370
+ }
5371
+ /**
5372
+ * Register a block-boundary predicate.
5373
+ *
5374
+ * @param {BlockBoundaryPredicate} predicate - Predicate to register.
5375
+ * @returns {() => void} Unregister callback.
5376
+ */
5377
+ register(predicate) {
5378
+ this.predicates.add(predicate);
5379
+ return () => {
5380
+ this.predicates.delete(predicate);
5381
+ };
5382
+ }
5383
+ /**
5384
+ * Returns true when any registered predicate marks the element as a boundary.
5385
+ *
5386
+ * @param {HTMLElement} element - Element to inspect.
5387
+ * @returns {boolean} Whether the element is a boundary.
5388
+ */
5389
+ isBoundary(element) {
5390
+ for (const predicate of this.predicates) {
5391
+ if (predicate(element)) {
5392
+ return true;
5393
+ }
5394
+ }
5395
+ return false;
5396
+ }
5397
+ }
5398
+
5399
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5116
5400
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5117
5401
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5118
5402
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -5224,37 +5508,114 @@ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
5224
5508
  getSelectedNodes: this.getSelectedNodes,
5225
5509
  setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
5226
5510
  getSelection: this.selectionController.getSelection.bind(this.selectionController),
5511
+ blockBoundaryRegistry: new BlockBoundaryRegistry(),
5227
5512
  };
5228
5513
  }
5229
5514
  }
5230
- __decorate$a([
5515
+ __decorate$b([
5231
5516
  globalSlimmerRegistry.MapToComponentField()
5232
5517
  ], RTEExtensionController.prototype, "extensions", void 0);
5233
- __decorate$a([
5518
+ __decorate$b([
5234
5519
  globalSlimmerRegistry.MapToComponentField()
5235
5520
  ], RTEExtensionController.prototype, "host", void 0);
5236
- __decorate$a([
5521
+ __decorate$b([
5237
5522
  globalSlimmerRegistry.MapToComponentField()
5238
5523
  ], RTEExtensionController.prototype, "sourceView", void 0);
5239
- __decorate$a([
5524
+ __decorate$b([
5240
5525
  globalSlimmerRegistry.MapToComponentField()
5241
5526
  ], RTEExtensionController.prototype, "valueController", void 0);
5242
- __decorate$a([
5527
+ __decorate$b([
5243
5528
  globalSlimmerRegistry.MapToComponentField()
5244
5529
  ], RTEExtensionController.prototype, "selectionController", void 0);
5245
- __decorate$a([
5530
+ __decorate$b([
5246
5531
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
5247
5532
  ], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
5248
- __decorate$a([
5533
+ __decorate$b([
5249
5534
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
5250
5535
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
5251
- __decorate$a([
5536
+ __decorate$b([
5252
5537
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
5253
5538
  ], RTEExtensionController.prototype, "destroyExtension", null);
5254
- __decorate$a([
5539
+ __decorate$b([
5255
5540
  globalSlimmerRegistry.MapToComponentMethod('watchExtensions')
5256
5541
  ], RTEExtensionController.prototype, "handleExtensionsChange", null);
5257
5542
 
5543
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5544
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5545
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5546
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5547
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5548
+ };
5549
+ /**
5550
+ * Bridges the word count extension to the editor component so the footer UI can
5551
+ * read whether the character count should be shown and its current value.
5552
+ */
5553
+ class WordCountController extends globalSlimmerRegistry.VegaSlimmer {
5554
+ constructor() {
5555
+ super(...arguments);
5556
+ this.cachedValue = null;
5557
+ this.cachedConfig = null;
5558
+ this.cachedData = null;
5559
+ }
5560
+ /**
5561
+ * Whether the character count UI should be rendered.
5562
+ *
5563
+ * @returns {boolean} True when a word count extension requests the UI.
5564
+ */
5565
+ shouldShowUI() {
5566
+ var _a;
5567
+ return !!((_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig().showCharCount);
5568
+ }
5569
+ /**
5570
+ * Compute the current character count data from the editor content.
5571
+ *
5572
+ * @returns {Nullable<VegaRTEWordCountData>} The count data or null when no word count extension is registered.
5573
+ */
5574
+ getData() {
5575
+ const extension = this.findWordCountExtension();
5576
+ if (!extension) {
5577
+ return null;
5578
+ }
5579
+ const value = this.host.value;
5580
+ const config = extension.getConfig();
5581
+ // VegaRTEContent is immutable, so a matching value/config reference means the data is unchanged.
5582
+ if (this.cachedData && value === this.cachedValue && object.deepEqual(config, this.cachedConfig)) {
5583
+ return this.cachedData;
5584
+ }
5585
+ this.cachedData = extension.getData(value);
5586
+ this.cachedValue = value;
5587
+ this.cachedConfig = config;
5588
+ return this.cachedData;
5589
+ }
5590
+ /**
5591
+ * Whether the word count extension gates commits with a hard character limit.
5592
+ *
5593
+ * @returns {boolean} True when a hard limit with a max character count is configured for this host.
5594
+ */
5595
+ hasWordCountHardLimit() {
5596
+ var _a;
5597
+ const config = (_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig();
5598
+ return !!config && Boolean(config.hardLimit) && typeGuard.isNonNullable(config.maxChars);
5599
+ }
5600
+ /**
5601
+ * Locate the word count extension by its runtime `type` discriminator.
5602
+ * Use this way instead of instanceof to avoid direct dependency on the extension class.
5603
+ *
5604
+ * @returns {Nullable<VegaRTEWordCountExtension>} The word count extension or null.
5605
+ */
5606
+ findWordCountExtension() {
5607
+ var _a;
5608
+ const extension = ((_a = this.extensions) !== null && _a !== void 0 ? _a : []).find((ext) => 'type' in ext && ext['type'] === codeBlock.RTE_WORD_COUNT_KEY);
5609
+ return extension !== null && extension !== void 0 ? extension : null;
5610
+ }
5611
+ }
5612
+ __decorate$a([
5613
+ globalSlimmerRegistry.MapToComponentField()
5614
+ ], WordCountController.prototype, "extensions", void 0);
5615
+ __decorate$a([
5616
+ globalSlimmerRegistry.MapToComponentField()
5617
+ ], WordCountController.prototype, "host", void 0);
5618
+
5258
5619
  /**
5259
5620
  * Class to format HTML code with proper indentation and style cleanup.
5260
5621
  */
@@ -5439,14 +5800,16 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
5439
5800
  * Handle the blur event of the code block. When the code block loses focus, emit the source code change event with the current source code.
5440
5801
  */
5441
5802
  this.handleCodeBlockBlur = () => {
5442
- var _a;
5803
+ var _a, _b;
5443
5804
  // If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
5444
5805
  if (this.sourceView) {
5445
5806
  const filterInlineStyles = Boolean(this.sourceEditConfig.filterInlineStyles);
5446
5807
  const sourceCode = this.getSourceCode();
5808
+ const blockBoundaryRegistry = (_a = linkExtension.extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
5447
5809
  const newValue = contentState.VegaRTEContent.fromHtml(sourceCode, {
5448
- autoMatchFormat: (_a = this.sourceEditConfig.autoMatchFormat) !== null && _a !== void 0 ? _a : true,
5810
+ autoMatchFormat: (_b = this.sourceEditConfig.autoMatchFormat) !== null && _b !== void 0 ? _b : true,
5449
5811
  filterInlineStyles,
5812
+ blockBoundaryRegistry,
5450
5813
  });
5451
5814
  const newSourceCode = newValue.toHtml({ filterInlineStyles });
5452
5815
  if (newSourceCode !== this.prevRecord) {
@@ -5569,6 +5932,13 @@ const VegaRichTextEditor = class {
5569
5932
  this.vegaSourceCodeChange = index.createEvent(this, "vegaSourceCodeChange", 7);
5570
5933
  this.sourceCodeChange = index.createEvent(this, "sourceCodeChange", 7);
5571
5934
  this.globalSlimmers = {};
5935
+ this.ariaAttributesValueMapper = new ariaAttributesValueMapper.AriaAttributesValueMapper(() => this.vegaRichTextEditorRenderer.getRTEEditableElementRef(), {
5936
+ 'aria-label': {
5937
+ dependency: ['data-aria-label', 'label'],
5938
+ // When no label is provided, announce a meaningful role name
5939
+ defaultValue: () => this.translationSlimmer.t('Rich Text Editor. Editing area: main. '),
5940
+ },
5941
+ });
5572
5942
  this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
5573
5943
  this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
5574
5944
  this.formFieldController = new formFieldControllerSlimmer.FormFieldControllerSlimmer({
@@ -5621,6 +5991,7 @@ const VegaRichTextEditor = class {
5621
5991
  this.historyController = new HistoryController();
5622
5992
  this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
5623
5993
  this.rteExtensionController = new RTEExtensionController();
5994
+ this.wordCountController = new WordCountController();
5624
5995
  this.sourceCodeChangeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, vegaEventId.VegaSourceCodeChange);
5625
5996
  this.richTextEditorSourceViewRenderer = new VegaRichTextEditorSourceViewRenderer();
5626
5997
  this.richTextContentEditable = true;
@@ -5819,6 +6190,9 @@ const VegaRichTextEditor = class {
5819
6190
  __decorate$8([
5820
6191
  componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
5821
6192
  ], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
6193
+ __decorate$8([
6194
+ globalSlimmerRegistry.InjectVegaSlimmer()
6195
+ ], VegaRichTextEditor.prototype, "ariaAttributesValueMapper", void 0);
5822
6196
  __decorate$8([
5823
6197
  globalSlimmerRegistry.InjectVegaSlimmer()
5824
6198
  ], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
@@ -5939,6 +6313,9 @@ __decorate$8([
5939
6313
  __decorate$8([
5940
6314
  globalSlimmerRegistry.InjectVegaSlimmer()
5941
6315
  ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
6316
+ __decorate$8([
6317
+ globalSlimmerRegistry.InjectVegaSlimmer()
6318
+ ], VegaRichTextEditor.prototype, "wordCountController", void 0);
5942
6319
  __decorate$8([
5943
6320
  globalSlimmerRegistry.InjectVegaSlimmer()
5944
6321
  ], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
@@ -5972,7 +6349,7 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
5972
6349
  'rich-text-editor-toolbar-button-hidden': this.hidden,
5973
6350
  'rich-text-editor-toolbar-button-selected': this.selected,
5974
6351
  }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
5975
- index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
6352
+ index.h("vega-flex", { "aria-hidden": "true", gap: "size-8", justifyContent: "center", alignItems: "center" },
5976
6353
  this.icon && (index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) })),
5977
6354
  this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
5978
6355
  index.h("slot", null)));
@@ -6038,6 +6415,12 @@ const VegaRichTextEditorToolbarButton = class {
6038
6415
  },
6039
6416
  });
6040
6417
  this.renderer = new VegaRichTextEditorToolbarButtonRenderer();
6418
+ this.ariaAttributesValueMapper = new ariaAttributesValueMapper.AriaAttributesValueMapper(() => this.host.shadowRoot.querySelector('button'), {
6419
+ 'aria-label': {
6420
+ dependency: ['data-aria-label'],
6421
+ defaultValue: 'No label defined',
6422
+ },
6423
+ });
6041
6424
  /**
6042
6425
  * Specifies whether the rich text editor toolbar button element is disabled.
6043
6426
  *
@@ -6082,7 +6465,9 @@ const VegaRichTextEditorToolbarButton = class {
6082
6465
  this.iconColor = 'text-primary';
6083
6466
  }
6084
6467
  render() {
6085
- return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
6468
+ // The host is a decorative wrapper around the shadow <button>; keep it out of the
6469
+ // a11y tree so VoiceOver doesn't announce it as a "group" when entering the button.
6470
+ return component.sanitizeVegaComponent(index.h(index.Host, { role: "presentation" }, this.renderer.render()), this.host);
6086
6471
  }
6087
6472
  get host() { return index.getElement(this); }
6088
6473
  };
@@ -6101,6 +6486,9 @@ __decorate$6([
6101
6486
  __decorate$6([
6102
6487
  globalSlimmerRegistry.InjectVegaSlimmer()
6103
6488
  ], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
6489
+ __decorate$6([
6490
+ globalSlimmerRegistry.InjectVegaSlimmer()
6491
+ ], VegaRichTextEditorToolbarButton.prototype, "ariaAttributesValueMapper", void 0);
6104
6492
  VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
6105
6493
 
6106
6494
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -6328,6 +6716,11 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
6328
6716
  this.handleFormRef = (ref) => {
6329
6717
  this.formRef = ref;
6330
6718
  };
6719
+ this.handlePopoverContentRef = (ref) => {
6720
+ if (ref) {
6721
+ this.popoverContentRef = ref;
6722
+ }
6723
+ };
6331
6724
  this.handleUrlInputRef = (ref) => {
6332
6725
  if (ref) {
6333
6726
  this.urlInputRef = ref;
@@ -6361,6 +6754,9 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
6361
6754
  getPopoverRef() {
6362
6755
  return this.popoverRef;
6363
6756
  }
6757
+ getPopoverContentRef() {
6758
+ return this.popoverContentRef;
6759
+ }
6364
6760
  getFormRef() {
6365
6761
  return this.formRef;
6366
6762
  }
@@ -6374,7 +6770,7 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
6374
6770
  return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: this.handlePopoverRef },
6375
6771
  index.h("span", { slot: "popover-content" },
6376
6772
  index.h("slot", null)),
6377
- index.h("div", { slot: "popover" },
6773
+ index.h("div", { slot: "popover", ref: this.handlePopoverContentRef },
6378
6774
  this.renderLinkUnlinkContent(),
6379
6775
  this.renderLinkEditContent())));
6380
6776
  }
@@ -6600,10 +6996,41 @@ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6600
6996
  super(...arguments);
6601
6997
  this.linkUrlNormalizer = new LinkUrlNormalizer();
6602
6998
  this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
6999
+ /**
7000
+ * The element the trigger click listener is currently attached to (the link
7001
+ * wrapper acting as the popover target).
7002
+ */
7003
+ this.triggerListenerEl = null;
7004
+ /**
7005
+ * Whether the popover was opened via a keyboard or screen-reader (VoiceOver)
7006
+ * activation. When true, focus is moved into the popover so screen reader
7007
+ * users land on the Edit button.
7008
+ */
7009
+ this.isVoiceOverTrigger = false;
7010
+ /**
7011
+ * The element that had focus when the VoiceOver activation happened, so focus
7012
+ * can be restored to the link once the popover is hidden.
7013
+ */
7014
+ this.focusReturnEl = null;
7015
+ /**
7016
+ * Records whether the popover was opened via a keyboard/VoiceOver activation
7017
+ * and, if so, the element to restore focus to when the popover closes.
7018
+ *
7019
+ * @param {MouseEvent} e - The click event on the link wrapper.
7020
+ * @returns {void} No return value.
7021
+ */
7022
+ this.handleTriggerClick = (e) => {
7023
+ this.isVoiceOverTrigger = this.isKeyboardOrScreenReaderActivation(e);
7024
+ this.focusReturnEl = this.isVoiceOverTrigger
7025
+ ? // eslint-disable-next-line no-restricted-globals
7026
+ ui.getDeepActiveElementInShadow(document, true)
7027
+ : null;
7028
+ };
6603
7029
  }
6604
7030
  /** Initializes the popover target after the component loads. */
6605
7031
  componentDidLoad() {
6606
7032
  this.updatePopoverTarget();
7033
+ this.attachTriggerListener();
6607
7034
  }
6608
7035
  /** Notifies observers after each render cycle. */
6609
7036
  componentDidRender() {
@@ -6622,6 +7049,7 @@ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6622
7049
  watchTargetChange() {
6623
7050
  this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
6624
7051
  this.updatePopoverTarget();
7052
+ this.attachTriggerListener();
6625
7053
  }
6626
7054
  /**
6627
7055
  * Prepares the editor state before the popover is shown.
@@ -6652,6 +7080,9 @@ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6652
7080
  }
6653
7081
  await this.populateEditForm();
6654
7082
  }
7083
+ if (this.status !== 'linkEdit' && this.isVoiceOverTrigger) {
7084
+ this.focusPopoverContentForVoiceOver();
7085
+ }
6655
7086
  }
6656
7087
  /**
6657
7088
  * Clears form state after the popover hides.
@@ -6668,6 +7099,7 @@ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6668
7099
  if (this.resetStatusAfterHide) {
6669
7100
  this.linkEditorStateManager.setShouldResetStatusOnNextShow(true);
6670
7101
  }
7102
+ this.restoreFocusAfterVoiceOver();
6671
7103
  }
6672
7104
  /**
6673
7105
  * Switches the editor into link edit mode.
@@ -6829,6 +7261,93 @@ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6829
7261
  updatePopoverTarget() {
6830
7262
  remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.renderer.getPopoverRef(), vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
6831
7263
  }
7264
+ /**
7265
+ * Attaches a capture-phase click listener to the link wrapper (the popover
7266
+ * target) so a keyboard/VoiceOver activation can be distinguished from a real
7267
+ * pointer click before the popover opens. Re-attaches when the target changes.
7268
+ *
7269
+ * @returns {void} No return value.
7270
+ */
7271
+ attachTriggerListener() {
7272
+ if (this.triggerListenerEl === this.target) {
7273
+ return;
7274
+ }
7275
+ this.detachTriggerListener();
7276
+ if (this.target) {
7277
+ this.triggerListenerEl = this.target;
7278
+ this.target.addEventListener('click', this.handleTriggerClick, { capture: true });
7279
+ }
7280
+ }
7281
+ /**
7282
+ * Removes the trigger listener from the previously observed element.
7283
+ *
7284
+ * @returns {void} No return value.
7285
+ */
7286
+ detachTriggerListener() {
7287
+ if (this.triggerListenerEl) {
7288
+ this.triggerListenerEl.removeEventListener('click', this.handleTriggerClick, { capture: true });
7289
+ this.triggerListenerEl = null;
7290
+ }
7291
+ }
7292
+ /**
7293
+ * Determines whether a click on the link wrapper came from a keyboard or
7294
+ * screen reader (VoiceOver) rather than a real pointer.
7295
+ *
7296
+ * A genuine pointer click lands inside the activated element. Keyboard (Enter,
7297
+ * `detail === 0`) and VoiceOver activations dispatch a click with coordinates
7298
+ * that are not on the element, so we treat any click whose point falls outside
7299
+ * the wrapper as an assistive-technology activation.
7300
+ *
7301
+ * @param {MouseEvent} e - The click event on the link wrapper.
7302
+ * @returns {boolean} True when the activation is keyboard/screen-reader driven.
7303
+ */
7304
+ isKeyboardOrScreenReaderActivation(e) {
7305
+ if (ui.checkIsVoiceOverClick(e)) {
7306
+ return true;
7307
+ }
7308
+ const rect = this.target ? this.target.getBoundingClientRect() : null;
7309
+ if (!rect || (rect.width === 0 && rect.height === 0)) {
7310
+ return false;
7311
+ }
7312
+ const isInsideTarget = e.clientX >= rect.left &&
7313
+ e.clientX <= rect.right &&
7314
+ e.clientY >= rect.top &&
7315
+ e.clientY <= rect.bottom;
7316
+ return !isInsideTarget;
7317
+ }
7318
+ /**
7319
+ * Moves focus to the first focusable element within the popover content (the
7320
+ * Edit button) so VoiceOver users land inside the opened toolbar.
7321
+ *
7322
+ * Deferred to the next macrotask so it runs after the editor has finished
7323
+ * placing the caret/focus into the content area on the activating click.
7324
+ *
7325
+ * @returns {void} No return value.
7326
+ */
7327
+ focusPopoverContentForVoiceOver() {
7328
+ setTimeout(() => {
7329
+ const contentRef = this.renderer.getPopoverContentRef();
7330
+ if (!contentRef) {
7331
+ return;
7332
+ }
7333
+ const focusable = ui.getFirstFocusableElement(contentRef);
7334
+ (focusable !== null && focusable !== void 0 ? focusable : contentRef).focus();
7335
+ });
7336
+ }
7337
+ /**
7338
+ * Restores focus to the link wrapper after the popover is hidden following a
7339
+ * VoiceOver activation.
7340
+ *
7341
+ * @returns {void} No return value.
7342
+ */
7343
+ restoreFocusAfterVoiceOver() {
7344
+ if (this.isVoiceOverTrigger && this.focusReturnEl) {
7345
+ const returnEl = this.focusReturnEl;
7346
+ setTimeout(() => returnEl.focus());
7347
+ }
7348
+ this.isVoiceOverTrigger = false;
7349
+ this.focusReturnEl = null;
7350
+ }
6832
7351
  /**
6833
7352
  * Preserves an unchanged mailto URL when the form edits are equivalent.
6834
7353
  *