@globalpayments/vega 2.99.0 → 2.101.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 (649) hide show
  1. package/dist/cjs/{accessibility-88f8af84.js → accessibility-6ca2a237.js} +21 -0
  2. package/dist/cjs/{action-color-accessibility-validator-b8a9ef0f.js → action-color-accessibility-validator-61af71ae.js} +1 -1
  3. package/dist/cjs/{app-globals-a306dce6.js → app-globals-275ea7c7.js} +19 -10
  4. package/dist/cjs/{aria-attributes-value-mapper-9a41b9cf.js → aria-attributes-value-mapper-e8c6b0e0.js} +1 -1
  5. package/dist/cjs/{aria-dialog-focusable-trap-slimmer-62147489.js → aria-dialog-focusable-trap-slimmer-c79cc3f8.js} +1 -1
  6. package/dist/cjs/{child-nodes-event-prevent-slimmer-e0ac8467.js → child-nodes-event-prevent-slimmer-d720d7e9.js} +1 -1
  7. package/dist/cjs/{code-block-ea1f5eb3.js → code-block-c598832d.js} +815 -751
  8. package/dist/cjs/{component-value-history-controller-slimmer.abstract-7071b064.js → component-value-history-controller-slimmer.abstract-4bd47aa1.js} +4 -4
  9. package/dist/cjs/{content-state-8d07d530.js → content-state-da23e822.js} +47 -3
  10. package/dist/cjs/countries-a8e3812a.js +251 -0
  11. package/dist/cjs/{dark-mode-style-controller-f3da3342.js → dark-mode-style-controller-ec04ece9.js} +45 -45
  12. package/dist/cjs/{date-required-rule-c0c498ad.js → date-required-rule-45c802d3.js} +1 -1
  13. package/dist/cjs/{design-token-58bf7fe8.js → design-token-9d762da0.js} +3 -3
  14. package/dist/cjs/{element-appender-slimmer-a0269315.js → element-appender-slimmer-2aaf8e24.js} +22 -3
  15. package/dist/cjs/{event-emit-slimmer-34aa195e.js → event-emit-slimmer-67b5c186.js} +1 -1
  16. package/dist/cjs/{form-field-controller-slimmer-f73f200e.js → form-field-controller-slimmer-ac9337f4.js} +3 -3
  17. package/dist/cjs/{image-annotation-action-2a28038e.js → image-annotation-action-378838c2.js} +8 -7
  18. package/dist/cjs/{image-extension-9659708b.js → image-extension-673ebe7f.js} +2 -2
  19. package/dist/cjs/index.cjs.js +24 -21
  20. package/dist/cjs/{inject-keyboard-manager-4fa45f9c.js → inject-keyboard-manager-540f0876.js} +1 -1
  21. package/dist/cjs/{internal-calendar-period-factory-6196bc80.js → internal-calendar-period-factory-b11918ee.js} +1 -1
  22. package/dist/cjs/{internal-translation-controller-51f7f865.js → internal-translation-controller-27bfc8c7.js} +15 -0
  23. package/dist/cjs/{internal-vega-event-manager-7003c84a.js → internal-vega-event-manager-976b9526.js} +10 -2
  24. package/dist/cjs/{keyboard-manager-482fe257.js → keyboard-manager-16e96b62.js} +12 -5
  25. package/dist/cjs/{keyboard-manager-slimmer-a19430dd.js → keyboard-manager-slimmer-0a4e556d.js} +1 -1
  26. package/dist/cjs/{link-extension-11340e1c.js → link-extension-f493e432.js} +3 -3
  27. package/dist/cjs/loader.cjs.js +17 -16
  28. package/dist/cjs/{month-view-generator-1a534451.js → month-view-generator-0a3e04de.js} +1 -1
  29. package/dist/cjs/overlay-escape-coordination-901d8942.js +38 -0
  30. package/dist/cjs/{public-rules-6c77b545.js → public-rules-bae12c47.js} +9 -9
  31. package/dist/cjs/{range-22ddd452.js → range-9f42fb40.js} +1 -1
  32. package/dist/cjs/{responsive-format-facade-74e6d791.js → responsive-format-facade-c6d7f0a1.js} +1 -1
  33. package/dist/cjs/{rich-text-editor-required-rule-09d1093a.js → rich-text-editor-required-rule-bb232741.js} +1 -1
  34. package/dist/cjs/{split-cell-operation-11bfb305.js → split-cell-operation-0d33123e.js} +4 -4
  35. package/dist/cjs/{state-border-formatter-bf4f9f1c.js → state-border-formatter-dda9109a.js} +1 -1
  36. package/dist/cjs/{string-format-strategy.abstract-bf37b14c.js → string-format-strategy.abstract-3a968a59.js} +1 -1
  37. package/dist/cjs/{string-input-formatter-slimmer-ffeb18a6.js → string-input-formatter-slimmer-2e0a838e.js} +3 -3
  38. package/dist/cjs/{string-mask-strategy-7f394726.js → string-mask-strategy-d9f85c21.js} +2 -2
  39. package/dist/cjs/{style-formatter-4ac63910.js → style-formatter-d21a9784.js} +2 -2
  40. package/dist/cjs/{sub-state-notify-slimmer-e264a120.js → sub-state-notify-slimmer-3b33e31c.js} +1 -1
  41. package/dist/cjs/{sub-state-observer-slimmer-6033b824.js → sub-state-observer-slimmer-5b68ba3f.js} +1 -1
  42. package/dist/cjs/{time-required-rule-e2a50003.js → time-required-rule-580cbd3d.js} +1 -1
  43. package/dist/cjs/{token-extension-4686cb3b.js → token-extension-4badb962.js} +811 -53
  44. package/dist/cjs/{translation-slimmer-e4997f8f.js → translation-slimmer-31cd5a57.js} +1 -1
  45. package/dist/cjs/{type-guard-b8d7bb3f.js → type-guard-00b8efc0.js} +1 -1
  46. package/dist/cjs/{valid-credit-card-number-rule-f5a6f009.js → valid-credit-card-number-rule-70885128.js} +1 -1
  47. package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
  48. package/dist/cjs/vega-app-footer.cjs.entry.js +4 -4
  49. package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -10
  50. package/dist/cjs/vega-banner.cjs.entry.js +4 -4
  51. package/dist/cjs/vega-box.cjs.entry.js +6 -6
  52. package/dist/cjs/vega-brand-logo.cjs.entry.js +1 -1
  53. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  54. package/dist/cjs/vega-button-circle.cjs.entry.js +12 -12
  55. package/dist/cjs/vega-button-group_2.cjs.entry.js +20 -13
  56. package/dist/cjs/vega-button-link.cjs.entry.js +8 -8
  57. package/dist/cjs/vega-button.cjs.entry.js +27 -11
  58. package/dist/cjs/vega-calendar_5.cjs.entry.js +130 -24
  59. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  60. package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
  61. package/dist/cjs/vega-checkbox_2.cjs.entry.js +9 -9
  62. package/dist/cjs/vega-chip.cjs.entry.js +10 -10
  63. package/dist/cjs/vega-code-block.cjs.entry.js +15 -15
  64. package/dist/cjs/vega-color-picker.cjs.entry.js +8 -8
  65. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +9 -9
  66. package/dist/cjs/vega-color-swatch.cjs.entry.js +6 -6
  67. package/dist/cjs/vega-combo-box.cjs.entry.js +15 -15
  68. package/dist/cjs/vega-date-picker_2.cjs.entry.js +22 -22
  69. package/dist/cjs/vega-dialog_2.cjs.entry.js +76 -10
  70. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  71. package/dist/cjs/vega-dropdown_5.cjs.entry.js +108 -25
  72. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  73. package/dist/cjs/{vega-event-id-58afed7a.js → vega-event-id-987a170c.js} +2 -0
  74. package/dist/cjs/vega-field-label.cjs.entry.js +29 -36
  75. package/dist/cjs/vega-file-uploader.cjs.entry.js +9 -9
  76. package/dist/cjs/vega-flag-icon.cjs.entry.js +11 -11
  77. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  78. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  79. package/dist/cjs/vega-form.cjs.entry.js +9 -9
  80. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  81. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  82. package/dist/cjs/vega-image-uploader.cjs.entry.js +13 -13
  83. package/dist/cjs/vega-input-credit-card.cjs.entry.js +12 -12
  84. package/dist/cjs/vega-input-numeric.cjs.entry.js +12 -12
  85. package/dist/cjs/vega-input-passcode.cjs.entry.js +11 -11
  86. package/dist/cjs/vega-input-phone-number.cjs.entry.js +56 -275
  87. package/dist/cjs/vega-input-range.cjs.entry.js +10 -10
  88. package/dist/cjs/vega-input-select.cjs.entry.js +39 -39
  89. package/dist/cjs/vega-input.cjs.entry.js +14 -14
  90. package/dist/cjs/{vega-internal-event-id-f4d33037.js → vega-internal-event-id-98d499d7.js} +6 -2
  91. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  92. package/dist/cjs/vega-left-nav_5.cjs.entry.js +14 -14
  93. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  94. package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
  95. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  96. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +4 -4
  97. package/dist/cjs/vega-pagination.cjs.entry.js +9 -9
  98. package/dist/cjs/vega-popover_2.cjs.entry.js +63 -14
  99. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +10 -10
  100. package/dist/cjs/vega-radio_2.cjs.entry.js +12 -12
  101. package/dist/cjs/vega-rich-text-content.cjs.entry.js +16 -13
  102. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +712 -250
  103. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +6 -6
  104. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +8 -8
  105. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +161 -108
  106. package/dist/cjs/vega-segment-control.cjs.entry.js +11 -4
  107. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +12 -12
  108. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +9 -9
  109. package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
  110. package/dist/cjs/vega-signature-capture.cjs.entry.js +12 -12
  111. package/dist/cjs/vega-stepper.cjs.entry.js +8 -8
  112. package/dist/cjs/vega-tab-group_2.cjs.entry.js +7 -7
  113. package/dist/cjs/vega-table_11.cjs.entry.js +625 -666
  114. package/dist/cjs/vega-textarea.cjs.entry.js +8 -8
  115. package/dist/cjs/vega-time-picker_2.cjs.entry.js +16 -16
  116. package/dist/cjs/vega-toggle-switch.cjs.entry.js +8 -8
  117. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  118. package/dist/cjs/vega.cjs.js +17 -16
  119. package/dist/cjs/{wait-for-component-did-render-44d006ee.js → wait-for-component-did-render-90edbc1a.js} +1 -1
  120. package/dist/collection/components/vega-button/vega-button.css +3 -3
  121. package/dist/collection/components/vega-button/vega-button.js +17 -2
  122. package/dist/collection/components/vega-button-circle/vega-button-circle.css +3 -3
  123. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +13 -6
  124. package/dist/collection/components/vega-button-link/vega-button-link.css +4 -4
  125. package/dist/collection/components/vega-button-link/vega-button-link.js +2 -2
  126. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +45 -5
  127. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-preview-popover-renderer.js +43 -1
  128. package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.js +23 -4
  129. package/dist/collection/components/vega-calendar/vega-calendar.js +77 -1
  130. package/dist/collection/components/vega-code-block/vega-code-block.css +4 -4
  131. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-controller.js +148 -0
  132. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +5 -2
  133. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +17 -0
  134. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +2 -2
  135. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.css +2 -1
  136. package/dist/collection/components/vega-dropdown/vega-dropdown.js +1 -1
  137. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.js +21 -30
  138. package/dist/collection/components/vega-field-label/vega-field-label.js +7 -5
  139. package/dist/collection/components/vega-flag-icon/slimmers/controllers/vega-flag-icon-controller.js +6 -6
  140. package/dist/collection/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.js +4 -8
  141. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +19 -2
  142. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-prefix-icon-renderer.js +8 -28
  143. package/dist/collection/components/vega-input-select/vega-input-select.js +3 -1
  144. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +66 -0
  145. package/dist/collection/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.js +17 -0
  146. package/dist/collection/components/vega-popover/vega-popover.js +33 -1
  147. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +4 -1
  148. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +9 -0
  149. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.js +13 -0
  150. package/dist/collection/components/vega-rich-text-editor/dto/actions/commit-value-action.js +20 -0
  151. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +11 -0
  152. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +11 -2
  153. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +18 -6
  154. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
  155. package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +6 -0
  156. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +8 -0
  157. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +30 -18
  159. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +1 -0
  160. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +1 -0
  161. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +1 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +51 -0
  163. 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
  164. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +3 -0
  165. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +6 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
  167. package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/renderers/horizontal-line-toolbar-button-renderer.js +1 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +5 -3
  169. package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.js +16 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-toolbar-button-renderer.js +2 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +3 -9
  172. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +2 -2
  173. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +81 -1
  174. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.js +148 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +151 -5
  176. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +144 -2
  177. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +26 -1
  178. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
  179. 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
  180. 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
  181. 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
  182. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.css +5 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.js +16 -1
  184. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +1 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +1 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +10 -9
  187. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +9 -8
  188. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +25 -10
  189. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +1 -0
  190. 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
  191. 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
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +10 -0
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +2 -0
  194. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -0
  195. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.js +70 -0
  196. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/type.js +1 -0
  197. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/word-count-extension.js +62 -0
  198. package/dist/collection/components/vega-rich-text-editor/public-api.js +1 -0
  199. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.js +2 -1
  200. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +7 -1
  201. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +52 -2
  202. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.js +79 -0
  203. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +6 -3
  204. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +2 -1
  205. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
  206. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +3 -2
  207. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +111 -2
  208. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +17 -6
  209. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
  210. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
  211. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +3 -2
  212. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +59 -8
  213. 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
  214. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +13 -1
  215. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +16 -0
  216. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +124 -0
  217. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +9 -1
  218. package/dist/collection/components/vega-segment-control/slimmers/renderers/vega-segment-renderer.js +8 -1
  219. package/dist/collection/components/vega-segment-control/vega-segment-control.js +23 -0
  220. package/dist/collection/components/vega-table/slimmers/controllers/dto/column-render-input-model.js +25 -8
  221. package/dist/collection/components/vega-table/slimmers/controllers/dto/row-render-input-model.js +41 -0
  222. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-head-template-structure-controller.js +1 -0
  223. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-render-input-controller.js +316 -18
  224. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-renderer.js +6 -1
  225. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-header-renderer.js +1 -0
  226. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +33 -530
  227. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-row-renderer.js +1 -0
  228. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.css +10 -0
  229. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +25 -8
  230. package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/renderers/vega-table-expand-row-renderer.js +14 -6
  231. package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.css +20 -0
  232. package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.js +7 -0
  233. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +21 -2
  234. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.css +10 -0
  235. package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +12 -1
  236. package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +20 -13
  237. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.css +26 -0
  238. package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +12 -0
  239. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.css +10 -0
  240. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.js +19 -6
  241. package/dist/collection/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.js +21 -46
  242. package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.css +16 -7
  243. package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +9 -2
  244. package/dist/collection/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.js +28 -13
  245. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.css +26 -0
  246. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.js +11 -0
  247. package/dist/collection/constants/tokens/themes/v2-new-brand/dark-mode-border-tokens.js +1 -1
  248. package/dist/collection/constants/tokens/themes/v2-new-brand/dark-mode-color-tokens.js +20 -20
  249. package/dist/collection/constants/tokens/themes/v2-new-brand/dark-mode-ring-tokens.js +1 -1
  250. package/dist/collection/constants/tokens/themes/v2-new-brand/dark-mode-shadow-tokens.js +1 -1
  251. package/dist/collection/constants/tokens/themes/v2-new-brand/light-mode-border-tokens.js +1 -1
  252. package/dist/collection/constants/tokens/themes/v2-new-brand/light-mode-color-tokens.js +19 -19
  253. package/dist/collection/constants/tokens/themes/v2-new-brand/light-mode-shadow-tokens.js +1 -1
  254. package/dist/collection/constants/ui.js +1 -0
  255. package/dist/collection/global/scripts/before-vega-load.js +10 -0
  256. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +10 -2
  257. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  258. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +3 -1
  259. package/dist/collection/helpers/keyboard/keyboard-manager.js +11 -4
  260. package/dist/collection/helpers/keyboard/overlay-escape-coordination.js +33 -0
  261. package/dist/collection/helpers/public-api.js +1 -0
  262. package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +1 -1
  263. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +8 -0
  264. package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +10 -0
  265. package/dist/collection/helpers/slimmers/vega-table-child-render-input-consumer-slimmer.js +2 -0
  266. package/dist/collection/helpers/translation/locales/en.js +15 -0
  267. package/dist/collection/helpers/ui/element-appender.js +1 -0
  268. package/dist/collection/polyfill/libphonenumber/as-you-type.js +21 -3
  269. package/dist/collection/polyfill/libphonenumber/metadata.js +16 -0
  270. package/dist/collection/utils/accessibility.js +20 -0
  271. package/dist/esm/{accessibility-6af5cf2e.js → accessibility-c899a968.js} +21 -1
  272. package/dist/esm/{action-color-accessibility-validator-08877515.js → action-color-accessibility-validator-3e824a59.js} +1 -1
  273. package/dist/esm/{app-globals-c59364c2.js → app-globals-ad3c7cea.js} +19 -10
  274. package/dist/esm/{aria-attributes-value-mapper-2c632641.js → aria-attributes-value-mapper-a5c7478e.js} +1 -1
  275. package/dist/esm/{aria-dialog-focusable-trap-slimmer-f069f54d.js → aria-dialog-focusable-trap-slimmer-27a6aa19.js} +3 -3
  276. package/dist/esm/{child-nodes-event-prevent-slimmer-82626871.js → child-nodes-event-prevent-slimmer-0ebcbf47.js} +1 -1
  277. package/dist/esm/{child-nodes-notify-observer-slimmer-499a3aa7.js → child-nodes-notify-observer-slimmer-034bc78c.js} +1 -1
  278. package/dist/esm/{code-block-e6443949.js → code-block-1cdf7a51.js} +816 -754
  279. package/dist/esm/{component-value-history-controller-slimmer.abstract-ee393213.js → component-value-history-controller-slimmer.abstract-bdeeb43f.js} +6 -6
  280. package/dist/esm/{content-state-43cdacff.js → content-state-6eb610b8.js} +48 -6
  281. package/dist/esm/countries-50d3339b.js +249 -0
  282. package/dist/esm/{dark-mode-style-controller-352f15ff.js → dark-mode-style-controller-4e04a2d3.js} +45 -45
  283. package/dist/esm/{date-required-rule-b5b67498.js → date-required-rule-2ea3aec8.js} +1 -1
  284. package/dist/esm/{design-token-8319bb59.js → design-token-82a4e107.js} +3 -3
  285. package/dist/esm/{dom-node-subject-observer-factory-ddff8662.js → dom-node-subject-observer-factory-bb7e68a0.js} +1 -1
  286. package/dist/esm/{element-appender-slimmer-c81d1fe3.js → element-appender-slimmer-dd4e2908.js} +24 -5
  287. package/dist/esm/{event-emit-slimmer-2452278f.js → event-emit-slimmer-12ee1593.js} +2 -2
  288. package/dist/esm/{form-field-controller-slimmer-511b7ac5.js → form-field-controller-slimmer-5c794b4d.js} +5 -5
  289. package/dist/esm/{image-annotation-action-d7cb80aa.js → image-annotation-action-cdd50dcc.js} +9 -8
  290. package/dist/esm/{image-extension-9b8abd0d.js → image-extension-f6dbd70c.js} +2 -2
  291. package/dist/esm/index.js +24 -23
  292. package/dist/esm/{inject-keyboard-manager-dd368d56.js → inject-keyboard-manager-6a10c9b7.js} +1 -1
  293. package/dist/esm/{internal-calendar-period-factory-d58f35c6.js → internal-calendar-period-factory-d1a60f81.js} +1 -1
  294. package/dist/esm/{internal-translation-controller-b33430c6.js → internal-translation-controller-fff376d2.js} +15 -0
  295. package/dist/esm/{internal-vega-event-manager-2ecc9186.js → internal-vega-event-manager-0c381f3b.js} +10 -2
  296. package/dist/esm/{keyboard-manager-b4a0d97d.js → keyboard-manager-a58288df.js} +13 -6
  297. package/dist/esm/{keyboard-manager-slimmer-0517fc70.js → keyboard-manager-slimmer-133b86cd.js} +1 -1
  298. package/dist/esm/{link-extension-230bae8d.js → link-extension-bc234cf7.js} +3 -3
  299. package/dist/esm/loader.js +19 -18
  300. package/dist/esm/{month-view-generator-f470caac.js → month-view-generator-20e32b22.js} +1 -1
  301. package/dist/esm/overlay-escape-coordination-439f7d6f.js +35 -0
  302. package/dist/esm/{public-rules-28ef32d3.js → public-rules-8dc3fb00.js} +11 -11
  303. package/dist/esm/{range-efad2578.js → range-d2439ba7.js} +2 -2
  304. package/dist/esm/{responsive-format-facade-dec87e46.js → responsive-format-facade-07843ec3.js} +1 -1
  305. package/dist/esm/{rich-text-editor-required-rule-a697e5bd.js → rich-text-editor-required-rule-a0663a84.js} +1 -1
  306. package/dist/esm/{split-cell-operation-89b91a38.js → split-cell-operation-1a889fa0.js} +5 -5
  307. package/dist/esm/{state-border-formatter-1e900a2f.js → state-border-formatter-3b3dcfe8.js} +1 -1
  308. package/dist/esm/{string-format-strategy.abstract-d0ce3f65.js → string-format-strategy.abstract-44381dcb.js} +1 -1
  309. package/dist/esm/{string-input-formatter-slimmer-6546cfc7.js → string-input-formatter-slimmer-69887c40.js} +4 -4
  310. package/dist/esm/{string-mask-strategy-dd13ae21.js → string-mask-strategy-999fba4b.js} +2 -2
  311. package/dist/esm/{style-formatter-057d7120.js → style-formatter-c4192c99.js} +2 -2
  312. package/dist/esm/{sub-state-notify-slimmer-23b7d0e8.js → sub-state-notify-slimmer-ba72f30b.js} +2 -2
  313. package/dist/esm/{sub-state-observer-slimmer-722f6b92.js → sub-state-observer-slimmer-bee1c7fa.js} +3 -3
  314. package/dist/esm/{time-required-rule-73753a54.js → time-required-rule-0554b114.js} +1 -1
  315. package/dist/esm/{token-extension-74a0eeb1.js → token-extension-530d9bde.js} +813 -56
  316. package/dist/esm/{translation-slimmer-ef970ffc.js → translation-slimmer-77022f2e.js} +1 -1
  317. package/dist/esm/{type-guard-6fc96870.js → type-guard-26d83e7e.js} +1 -1
  318. package/dist/esm/{ui-d73f756a.js → ui-80e610f4.js} +1 -1
  319. package/dist/esm/{valid-credit-card-number-rule-b54a31e7.js → valid-credit-card-number-rule-f60b6904.js} +1 -1
  320. package/dist/esm/vega-accordion.entry.js +11 -11
  321. package/dist/esm/vega-app-footer.entry.js +6 -6
  322. package/dist/esm/vega-app-header-button.entry.js +12 -12
  323. package/dist/esm/vega-backdrop.entry.js +1 -1
  324. package/dist/esm/vega-banner.entry.js +6 -6
  325. package/dist/esm/vega-box.entry.js +7 -7
  326. package/dist/esm/vega-brand-logo.entry.js +1 -1
  327. package/dist/esm/vega-breadcrumb.entry.js +6 -6
  328. package/dist/esm/vega-button-circle.entry.js +14 -14
  329. package/dist/esm/vega-button-group_2.entry.js +22 -15
  330. package/dist/esm/vega-button-link.entry.js +10 -10
  331. package/dist/esm/vega-button.entry.js +29 -13
  332. package/dist/esm/vega-calendar_5.entry.js +132 -26
  333. package/dist/esm/vega-card.entry.js +6 -6
  334. package/dist/esm/vega-carousel.entry.js +9 -9
  335. package/dist/esm/vega-checkbox_2.entry.js +12 -12
  336. package/dist/esm/vega-chip.entry.js +12 -12
  337. package/dist/esm/vega-code-block.entry.js +17 -17
  338. package/dist/esm/vega-color-picker.entry.js +10 -10
  339. package/dist/esm/vega-color-swatch-picker.entry.js +11 -11
  340. package/dist/esm/vega-color-swatch.entry.js +8 -8
  341. package/dist/esm/vega-combo-box.entry.js +17 -17
  342. package/dist/esm/vega-date-picker_2.entry.js +24 -24
  343. package/dist/esm/vega-dialog_2.entry.js +78 -12
  344. package/dist/esm/vega-divider.entry.js +5 -5
  345. package/dist/esm/vega-dropdown_5.entry.js +111 -28
  346. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  347. package/dist/esm/{vega-event-id-f55f6977.js → vega-event-id-59cd9297.js} +2 -1
  348. package/dist/esm/vega-field-label.entry.js +31 -38
  349. package/dist/esm/vega-file-uploader.entry.js +11 -11
  350. package/dist/esm/vega-flag-icon.entry.js +11 -11
  351. package/dist/esm/vega-flex.entry.js +7 -7
  352. package/dist/esm/vega-font.entry.js +6 -6
  353. package/dist/esm/vega-form.entry.js +12 -12
  354. package/dist/esm/vega-grid.entry.js +6 -6
  355. package/dist/esm/vega-icon.entry.js +6 -6
  356. package/dist/esm/vega-image-uploader.entry.js +15 -15
  357. package/dist/esm/vega-input-credit-card.entry.js +14 -14
  358. package/dist/esm/vega-input-numeric.entry.js +14 -14
  359. package/dist/esm/vega-input-passcode.entry.js +13 -13
  360. package/dist/esm/vega-input-phone-number.entry.js +55 -274
  361. package/dist/esm/vega-input-range.entry.js +12 -12
  362. package/dist/esm/vega-input-select.entry.js +41 -41
  363. package/dist/esm/vega-input.entry.js +16 -16
  364. package/dist/esm/{vega-internal-event-id-86fce049.js → vega-internal-event-id-02093067.js} +4 -2
  365. package/dist/esm/vega-item-toggle.entry.js +5 -5
  366. package/dist/esm/vega-left-nav_5.entry.js +16 -16
  367. package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
  368. package/dist/esm/vega-page-notification_2.entry.js +4 -4
  369. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +6 -6
  370. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +6 -6
  371. package/dist/esm/vega-pagination.entry.js +11 -11
  372. package/dist/esm/vega-popover_2.entry.js +65 -16
  373. package/dist/esm/vega-progress-tracker_2.entry.js +12 -12
  374. package/dist/esm/vega-radio_2.entry.js +15 -15
  375. package/dist/esm/vega-rich-text-content.entry.js +18 -15
  376. package/dist/esm/vega-rich-text-editor_4.entry.js +715 -253
  377. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +8 -8
  378. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +10 -10
  379. package/dist/esm/vega-rich-text-table-properties_3.entry.js +163 -110
  380. package/dist/esm/vega-segment-control.entry.js +13 -6
  381. package/dist/esm/vega-selection-chip_2.entry.js +14 -14
  382. package/dist/esm/vega-selection-tile_2.entry.js +12 -12
  383. package/dist/esm/vega-sidenav_3.entry.js +12 -12
  384. package/dist/esm/vega-signature-capture.entry.js +14 -14
  385. package/dist/esm/vega-stepper.entry.js +10 -10
  386. package/dist/esm/vega-tab-group_2.entry.js +9 -9
  387. package/dist/esm/vega-table_11.entry.js +627 -668
  388. package/dist/esm/vega-textarea.entry.js +10 -10
  389. package/dist/esm/vega-time-picker_2.entry.js +18 -18
  390. package/dist/esm/vega-toggle-switch.entry.js +10 -10
  391. package/dist/esm/vega-tooltip_2.entry.js +9 -9
  392. package/dist/esm/vega.js +19 -18
  393. package/dist/esm/{wait-for-component-did-render-ff7062aa.js → wait-for-component-did-render-9e84d92d.js} +2 -2
  394. package/dist/sri/vega-sri-manifest.json +415 -407
  395. package/dist/types/components/vega-button/vega-button.d.ts +2 -0
  396. package/dist/types/components/vega-button-group/types.d.ts +12 -6
  397. package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.d.ts +18 -0
  398. package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-preview-popover-renderer.d.ts +9 -0
  399. package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.d.ts +9 -1
  400. package/dist/types/components/vega-calendar/types.d.ts +22 -0
  401. package/dist/types/components/vega-calendar/vega-calendar.d.ts +23 -1
  402. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +1 -1
  403. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.d.ts +3 -10
  404. package/dist/types/components/vega-flag-icon/slimmers/controllers/vega-flag-icon-controller.d.ts +2 -2
  405. package/dist/types/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.d.ts +0 -1
  406. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +8 -0
  407. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-prefix-icon-renderer.d.ts +2 -14
  408. package/dist/types/components/vega-input-select/vega-input-select.d.ts +1 -0
  409. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +33 -0
  410. package/dist/types/components/vega-modal/types.d.ts +2 -1
  411. package/dist/types/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.d.ts +9 -0
  412. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +6 -0
  413. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.d.ts +13 -0
  414. package/dist/types/components/vega-rich-text-editor/dto/actions/commit-value-action.d.ts +20 -0
  415. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +6 -0
  416. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +4 -0
  417. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +11 -1
  418. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
  419. package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +4 -0
  420. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +6 -0
  421. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +4 -0
  422. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +5 -0
  423. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +19 -0
  424. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +4 -0
  425. package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.d.ts +14 -1
  426. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +2 -2
  427. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +31 -1
  428. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.d.ts +91 -0
  429. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +46 -0
  430. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +58 -0
  431. package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +8 -0
  432. 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
  433. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.d.ts +2 -0
  434. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +3 -0
  435. 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
  436. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +1 -0
  437. package/dist/types/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.d.ts +38 -0
  438. package/dist/types/components/vega-rich-text-editor/extensions/word-count/type.d.ts +46 -0
  439. package/dist/types/components/vega-rich-text-editor/extensions/word-count/word-count-extension.d.ts +38 -0
  440. package/dist/types/components/vega-rich-text-editor/interface.d.ts +12 -0
  441. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
  442. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +11 -1
  443. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.d.ts +40 -0
  444. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.d.ts +14 -0
  445. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +3 -1
  446. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +3 -2
  447. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +12 -0
  448. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +2 -0
  449. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -0
  450. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +68 -0
  451. 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
  452. package/dist/types/components/vega-segment-control/slimmers/renderers/vega-segment-renderer.d.ts +1 -0
  453. package/dist/types/components/vega-segment-control/types.d.ts +2 -0
  454. package/dist/types/components/vega-segment-control/vega-segment-control.d.ts +7 -1
  455. package/dist/types/components/vega-table/slimmers/controllers/dto/column-render-input-model.d.ts +17 -0
  456. package/dist/types/components/vega-table/slimmers/controllers/dto/row-render-input-model.d.ts +39 -0
  457. package/dist/types/components/vega-table/slimmers/controllers/vega-table-render-input-controller.d.ts +71 -7
  458. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-renderer.d.ts +1 -0
  459. package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +3 -88
  460. package/dist/types/components/vega-table/vega-table-expand-row/slimmers/renderers/vega-table-expand-row-renderer.d.ts +1 -1
  461. package/dist/types/components/vega-table/vega-table-expand-row/vega-table-expand-row.d.ts +5 -0
  462. package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +1 -0
  463. package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +5 -0
  464. package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +1 -3
  465. package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +5 -0
  466. package/dist/types/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.d.ts +0 -4
  467. package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +2 -2
  468. package/dist/types/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.d.ts +2 -3
  469. package/dist/types/components/vega-table/vega-table-row/vega-table-row.d.ts +4 -0
  470. package/dist/types/components.d.ts +33 -2
  471. package/dist/types/constants/ui.d.ts +1 -1
  472. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  473. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +3 -1
  474. package/dist/types/helpers/keyboard/keyboard-manager.d.ts +9 -0
  475. package/dist/types/helpers/keyboard/overlay-escape-coordination.d.ts +28 -0
  476. package/dist/types/helpers/public-api.d.ts +1 -0
  477. package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +1 -1
  478. package/dist/types/helpers/slimmers/position-calculation/position-calculation-controller.d.ts +6 -0
  479. package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +6 -0
  480. package/dist/types/helpers/slimmers/position-calculation/screen-scroll-position-update.d.ts +2 -1
  481. package/dist/types/helpers/slimmers/vega-table-child-render-input-consumer-slimmer.d.ts +2 -1
  482. package/dist/types/helpers/translation/interface.d.ts +16 -1
  483. package/dist/types/polyfill/libphonenumber/as-you-type.d.ts +1 -0
  484. package/dist/types/polyfill/libphonenumber/metadata.d.ts +10 -0
  485. package/dist/types/types/components.type.d.ts +7 -1
  486. package/dist/types/types/public-api.d.ts +2 -0
  487. package/dist/types/utils/accessibility.d.ts +9 -0
  488. package/dist/vega/index.esm.js +1 -1
  489. package/dist/vega/p-022cbf8a.js +1 -0
  490. package/dist/vega/{p-c8ad7207.entry.js → p-02c1284e.entry.js} +1 -1
  491. package/dist/vega/{p-22edd3cc.js → p-069bbb4a.js} +1 -1
  492. package/dist/vega/p-08fd229c.js +1 -0
  493. package/dist/vega/{p-fcb6b499.js → p-0eea1ca8.js} +1 -1
  494. package/dist/vega/{p-ba6881da.entry.js → p-131ce9df.entry.js} +1 -1
  495. package/dist/vega/{p-024db952.entry.js → p-143ee395.entry.js} +1 -1
  496. package/dist/vega/p-178634f3.js +1 -0
  497. package/dist/vega/{p-9e9f49f4.js → p-1836a6a5.js} +1 -1
  498. package/dist/vega/p-1dbf8d1f.js +1 -0
  499. package/dist/vega/{p-d4d90ce2.entry.js → p-2b26e182.entry.js} +1 -1
  500. package/dist/vega/p-2dda5c65.entry.js +1 -0
  501. package/dist/vega/{p-df63c2fb.entry.js → p-30010c41.entry.js} +1 -1
  502. package/dist/vega/p-32f5a6dd.entry.js +1 -0
  503. package/dist/vega/{p-3c8421d5.entry.js → p-3460a1c5.entry.js} +1 -1
  504. package/dist/vega/p-34b523da.entry.js +1 -0
  505. package/dist/vega/p-357c0226.entry.js +1 -0
  506. package/dist/vega/p-361f8996.js +1 -0
  507. package/dist/vega/{p-526e3634.js → p-36a57431.js} +1 -1
  508. package/dist/vega/p-36ee9d54.js +1 -0
  509. package/dist/vega/{p-6659c910.entry.js → p-37d5c37e.entry.js} +1 -1
  510. package/dist/vega/{p-47a48329.entry.js → p-3d6a43df.entry.js} +1 -1
  511. package/dist/vega/{p-0ca3b4bf.entry.js → p-45ad2d90.entry.js} +1 -1
  512. package/dist/vega/{p-fb9475ab.entry.js → p-4b117bfd.entry.js} +1 -1
  513. package/dist/vega/p-4b35c748.js +1 -0
  514. package/dist/vega/{p-55dc3053.entry.js → p-4e23e56c.entry.js} +1 -1
  515. package/dist/vega/p-4e70836a.entry.js +1 -0
  516. package/dist/vega/{p-66647244.js → p-4ea477d5.js} +1 -1
  517. package/dist/vega/{p-5147c30d.entry.js → p-50e8e24f.entry.js} +1 -1
  518. package/dist/vega/{p-9c5289dc.entry.js → p-522a6eec.entry.js} +1 -1
  519. package/dist/vega/p-53e3f259.js +1 -0
  520. package/dist/vega/{p-2c737fc8.js → p-5536146c.js} +1 -1
  521. package/dist/vega/{p-944e284d.entry.js → p-55c2c0df.entry.js} +1 -1
  522. package/dist/vega/p-587130f6.entry.js +1 -0
  523. package/dist/vega/{p-9c9b0629.js → p-58c8a4ac.js} +1 -1
  524. package/dist/vega/{p-4f6aaac5.entry.js → p-594cb986.entry.js} +1 -1
  525. package/dist/vega/{p-b12de1bf.entry.js → p-5c17ddda.entry.js} +1 -1
  526. package/dist/vega/{p-7977352b.entry.js → p-5c9c0c0d.entry.js} +1 -1
  527. package/dist/vega/p-5f377954.js +1 -1
  528. package/dist/vega/p-60010f14.entry.js +1 -0
  529. package/dist/vega/p-6098c4bb.js +1 -0
  530. package/dist/vega/{p-2044eba9.js → p-60a74fb7.js} +1 -1
  531. package/dist/vega/p-61e63c0e.entry.js +1 -0
  532. package/dist/vega/{p-49d7cfed.entry.js → p-62254dc7.entry.js} +1 -1
  533. package/dist/vega/{p-2af1d8b8.entry.js → p-62ae9327.entry.js} +1 -1
  534. package/dist/vega/{p-b3c4943b.js → p-638b6a7d.js} +1 -1
  535. package/dist/vega/p-66245bc0.entry.js +1 -0
  536. package/dist/vega/{p-bdb5180c.js → p-68744e7e.js} +1 -1
  537. package/dist/vega/{p-f0a0fc77.entry.js → p-68ca8d3c.entry.js} +1 -1
  538. package/dist/vega/p-6a6c1279.js +1 -0
  539. package/dist/vega/{p-5e9e04f3.entry.js → p-6ae93679.entry.js} +1 -1
  540. package/dist/vega/{p-433b1395.entry.js → p-6d90d28d.entry.js} +1 -1
  541. package/dist/vega/p-6e9e7131.js +1 -0
  542. package/dist/vega/{p-014cd411.js → p-6eedbc4f.js} +1 -1
  543. package/dist/vega/{p-c348eaf5.js → p-6fae6768.js} +1 -1
  544. package/dist/vega/p-71813a9e.entry.js +1 -0
  545. package/dist/vega/{p-860e76f5.entry.js → p-729529d6.entry.js} +1 -1
  546. package/dist/vega/{p-aa433430.entry.js → p-75bfbffe.entry.js} +1 -1
  547. package/dist/vega/{p-d6023dc0.entry.js → p-764b4e51.entry.js} +1 -1
  548. package/dist/vega/p-77bcdd35.js +1 -0
  549. package/dist/vega/{p-c41a2d4a.js → p-7d3419c7.js} +1 -1
  550. package/dist/vega/p-8387896e.js +1 -0
  551. package/dist/vega/p-853a05eb.js +1 -0
  552. package/dist/vega/{p-db11134b.entry.js → p-8e8b5790.entry.js} +1 -1
  553. package/dist/vega/{p-444e24c6.js → p-8ebe30a8.js} +1 -1
  554. package/dist/vega/p-8f00dfe6.js +1 -0
  555. package/dist/vega/{p-4022412e.entry.js → p-9236b8d9.entry.js} +1 -1
  556. package/dist/vega/p-9402f32f.js +1 -0
  557. package/dist/vega/{p-691bdc20.js → p-941a83db.js} +1 -1
  558. package/dist/vega/{p-840444c9.entry.js → p-942f9ea6.entry.js} +1 -1
  559. package/dist/vega/{p-5110c84f.js → p-96c090c4.js} +1 -1
  560. package/dist/vega/{p-328ebbdb.entry.js → p-9fdf66a8.entry.js} +1 -1
  561. package/dist/vega/{p-867cc602.entry.js → p-a2c45173.entry.js} +1 -1
  562. package/dist/vega/{p-66fe8b4e.entry.js → p-a54ed341.entry.js} +1 -1
  563. package/dist/vega/{p-44999c88.entry.js → p-a6a89f09.entry.js} +1 -1
  564. package/dist/vega/{p-ccbed811.entry.js → p-a8a246e8.entry.js} +1 -1
  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-a1f220ca.js → p-ab9d53e9.js} +1 -1
  568. package/dist/vega/{p-e18c0656.entry.js → p-af0cfea0.entry.js} +1 -1
  569. package/dist/vega/p-af0e9bd5.entry.js +1 -0
  570. package/dist/vega/{p-daba4af1.js → p-b1557bbe.js} +1 -1
  571. package/dist/vega/{p-f13b39d8.js → p-b2a4314a.js} +1 -1
  572. package/dist/vega/p-b94f164a.entry.js +1 -0
  573. package/dist/vega/{p-23c1f378.entry.js → p-b97ed9f7.entry.js} +1 -1
  574. package/dist/vega/{p-1a37d63c.entry.js → p-bbfffe6b.entry.js} +1 -1
  575. package/dist/vega/{p-aa914dbd.entry.js → p-beccc38c.entry.js} +1 -1
  576. package/dist/vega/{p-dd0bd78b.js → p-c34f4cbc.js} +1 -1
  577. package/dist/vega/p-c51de680.js +3 -0
  578. package/dist/vega/{p-e1c82ca9.js → p-c576e846.js} +1 -1
  579. package/dist/vega/p-c601eea6.js +1 -0
  580. package/dist/vega/{p-200c8914.entry.js → p-c6d2513c.entry.js} +1 -1
  581. package/dist/vega/{p-d62e618a.entry.js → p-ca6bd3a0.entry.js} +1 -1
  582. package/dist/vega/{p-ce82d6bb.entry.js → p-cab890be.entry.js} +1 -1
  583. package/dist/vega/p-cb1cd15f.entry.js +1 -0
  584. package/dist/vega/p-d1f47512.js +1 -0
  585. package/dist/vega/{p-66a785d0.entry.js → p-d37d2ea4.entry.js} +1 -1
  586. package/dist/vega/{p-2f89ee14.entry.js → p-d3e99d4a.entry.js} +1 -1
  587. package/dist/vega/{p-f9bfee81.entry.js → p-d6bd3ce4.entry.js} +1 -1
  588. package/dist/vega/{p-f2384411.entry.js → p-d7838f6e.entry.js} +1 -1
  589. package/dist/vega/{p-a4360b7e.entry.js → p-d8c9ea46.entry.js} +1 -1
  590. package/dist/vega/p-d9588b3f.entry.js +1 -0
  591. package/dist/vega/p-db69a5c9.entry.js +1 -0
  592. package/dist/vega/{p-50eda925.js → p-de1d0284.js} +1 -1
  593. package/dist/vega/{p-3c559c8b.js → p-de6fc52c.js} +1 -1
  594. package/dist/vega/{p-fa5cd8b1.js → p-e14323f3.js} +1 -1
  595. package/dist/vega/{p-bd7725f7.entry.js → p-e48b7a8a.entry.js} +1 -1
  596. package/dist/vega/p-e6f67a44.js +1 -0
  597. package/dist/vega/{p-7754b10f.entry.js → p-e8e3bf74.entry.js} +1 -1
  598. package/dist/vega/p-eadc10bc.entry.js +1 -0
  599. package/dist/vega/p-ee329596.entry.js +1 -0
  600. package/dist/vega/p-f01bc6a2.js +1 -0
  601. package/dist/vega/{p-94b54a95.js → p-f324e90e.js} +1 -1
  602. package/dist/vega/{p-f9a3805d.js → p-f48519d2.js} +1 -1
  603. package/dist/vega/{p-52878ea9.js → p-f485448a.js} +1 -1
  604. package/dist/vega/{p-4afd6715.entry.js → p-f8b2dbb9.entry.js} +1 -1
  605. package/dist/vega/{p-35d37477.entry.js → p-f8d13d01.entry.js} +1 -1
  606. package/dist/vega/{p-4370b954.entry.js → p-f902305d.entry.js} +1 -1
  607. package/dist/vega/{p-3c152bad.entry.js → p-f99f054c.entry.js} +1 -1
  608. package/dist/vega/{p-77fb3971.entry.js → p-fe41e3b6.entry.js} +1 -1
  609. package/dist/vega/vega.esm.js +1 -1
  610. package/package.json +1 -1
  611. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-conttroller.js +0 -85
  612. package/dist/vega/p-0b2c4c0b.js +0 -1
  613. package/dist/vega/p-1fa22fda.js +0 -1
  614. package/dist/vega/p-2529820e.js +0 -1
  615. package/dist/vega/p-35628af4.js +0 -1
  616. package/dist/vega/p-3a230d4b.entry.js +0 -1
  617. package/dist/vega/p-3a620268.js +0 -1
  618. package/dist/vega/p-4473d8b1.js +0 -3
  619. package/dist/vega/p-4a2fe3a4.js +0 -1
  620. package/dist/vega/p-5447a8e8.js +0 -1
  621. package/dist/vega/p-5af312f8.js +0 -1
  622. package/dist/vega/p-5b3c8a56.js +0 -1
  623. package/dist/vega/p-6493f13a.entry.js +0 -1
  624. package/dist/vega/p-66728dd4.entry.js +0 -1
  625. package/dist/vega/p-67e88cd7.entry.js +0 -1
  626. package/dist/vega/p-67eaf77e.js +0 -1
  627. package/dist/vega/p-6d6b4495.entry.js +0 -1
  628. package/dist/vega/p-7b133734.entry.js +0 -1
  629. package/dist/vega/p-7b84a943.entry.js +0 -1
  630. package/dist/vega/p-83ad8988.js +0 -1
  631. package/dist/vega/p-8c30a60d.js +0 -1
  632. package/dist/vega/p-8d2a9012.js +0 -1
  633. package/dist/vega/p-8d4be607.js +0 -1
  634. package/dist/vega/p-8d77c7cf.js +0 -1
  635. package/dist/vega/p-8f3b93db.js +0 -1
  636. package/dist/vega/p-9c2b3279.js +0 -1
  637. package/dist/vega/p-9c9ff871.entry.js +0 -1
  638. package/dist/vega/p-9d90e271.entry.js +0 -1
  639. package/dist/vega/p-a7517760.entry.js +0 -1
  640. package/dist/vega/p-c8fb3aac.entry.js +0 -1
  641. package/dist/vega/p-cede3535.js +0 -1
  642. package/dist/vega/p-cf4b3d40.entry.js +0 -1
  643. package/dist/vega/p-d35a31a5.entry.js +0 -1
  644. package/dist/vega/p-ded1ecc1.entry.js +0 -1
  645. package/dist/vega/p-e1a65e06.entry.js +0 -1
  646. package/dist/vega/p-e469ba27.entry.js +0 -1
  647. package/dist/vega/p-e4c5cb4f.js +0 -1
  648. package/dist/vega/p-fd23c365.entry.js +0 -1
  649. /package/dist/types/components/vega-dropdown/slimmers/controllers/{vega-dropdown-keyboard-conttroller.d.ts → vega-dropdown-keyboard-controller.d.ts} +0 -0
@@ -1,47 +1,48 @@
1
- import { h, H as Host, F as Fragment, f as forceUpdate, r as registerInstance, c as createEvent, g as getElement } from './index-090d31ca.js';
1
+ import { h, f as forceUpdate, H as Host, F as Fragment, r as registerInstance, c as createEvent, g as getElement } from './index-090d31ca.js';
2
2
  import { c as MapToComponentField, M as MapToComponentMethod, V as VegaSlimmer, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
3
3
  import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-4b1afd04.js';
4
4
  import { s as sanitizeVegaComponent } from './component-7d906393.js';
5
- import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-6af5cf2e.js';
5
+ import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-c899a968.js';
6
6
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
7
- import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-ddff8662.js';
8
- import { t as VegaInternalComponentDidRender, e as VegaInternalRichTextEditorFlushChanges, d as VegaInternalRichTextEditDeleteSelectedNodes, H as VegaInternalRichTextImageClick, I as VegaInternalRichTextImageDeleteButtonClicked, z as VegaInternalCodeBlockBlur, a as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-86fce049.js';
7
+ import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-bb7e68a0.js';
8
+ import { s as VegaInternalComponentDidRender, e as VegaInternalRichTextEditorFlushChanges, d as VegaInternalRichTextEditDeleteSelectedNodes, G as VegaInternalRichTextImageClick, H as VegaInternalRichTextImageDeleteButtonClicked, y as VegaInternalCodeBlockBlur, a as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-02093067.js';
9
9
  import { S as SHADOW_ROOT_ELEMENT_SCROLLING, F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-1c86e974.js';
10
- import { al as VegaRTEOneRowHeightPx, R as RTETextNode, am as BoldAnnotationAction, N as NodeAnnotationTypeEnum, an as ItalicAnnotationAction, ao as UnderlineAnnotationAction, b as RTETextBlock, ap as TextStyleAnnotationAction, a1 as TextStyleAnnotation, aq as BoldAnnotation, ar as BlockAnnotationTypeEnum, as as ClearFormattingAnnotationAction, at as CodeAnnotationAction, au as StrikethroughAnnotationAction, aj as SelectionChangeAction, ah as LinkAnnotationAction, av as IndentAnnotationAction, M as ModifyContentAction, j as ModifyContentActionType, r as RTEListItemBlock, a2 as RTEHtmlBlock, aw as TransformParagraphAction, t as RTECodeBlockNode, A as ActionHandleStrategyRegistry, G as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, f as AppendChildrenAction, ag as ZERO_WIDTH_SPACE, U as UpdateTextAction, h as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, g as RTENode, a as RTEBlock, l as RemoveChildrenAction, D as ReplaceChildNodesAction, ax as escapeHtml, w as RTE_PASTE_MODE_DATA_TYPE, ay as RTE_PASTE_MODE_WORD, q as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems, af as VegaRTEDefaultTextStyleItems, az as RTE_EMAIL_LINK_TYPE_KEY, aA as RTE_DEFAULT_LINK_TYPE_KEY, aB as RTE_SUPPORTED_LINK_TYPE_KEYS } from './code-block-e6443949.js';
11
- import { R as RTEDTORendererManager, e as extensionContextManager, V as VegaRTELinkExtension } from './link-extension-230bae8d.js';
12
- import { i as isNonNullable } from './type-guard-6fc96870.js';
10
+ import { ah as ZERO_WIDTH_SPACE, am as VegaRTEOneRowHeightPx, R as RTETextNode, an as BoldAnnotationAction, N as NodeAnnotationTypeEnum, ao as ItalicAnnotationAction, ap as UnderlineAnnotationAction, b as RTETextBlock, aq as TextStyleAnnotationAction, a2 as TextStyleAnnotation, ar as BoldAnnotation, as as BlockAnnotationTypeEnum, at as ClearFormattingAnnotationAction, au as CodeAnnotationAction, av as StrikethroughAnnotationAction, ak as SelectionChangeAction, ai as LinkAnnotationAction, aw as IndentAnnotationAction, M as ModifyContentAction, j as ModifyContentActionType, r as RTEListItemBlock, a3 as RTEHtmlBlock, ax as TransformParagraphAction, t as RTECodeBlockNode, A as ActionHandleStrategyRegistry, J as HorizontalAlignmentAnnotationAction, ay as RTEUpdateSource, s as stateEntityRenderingRegistry, f as AppendChildrenAction, U as UpdateTextAction, h as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, g as RTENode, a as RTEBlock, l as RemoveChildrenAction, E as ReplaceChildNodesAction, az as escapeHtml, w as RTE_PASTE_MODE_DATA_TYPE, aA as RTE_PASTE_MODE_WORD, q as RTECodeBlock, aB as RTE_UPDATE_SOURCE_KEY, I as InsertChildrenAfterAction, x as RTE_WORD_COUNT_KEY, V as VegaRTEPresetToolbarItems, ag as VegaRTEDefaultTextStyleItems, aC as RTE_EMAIL_LINK_TYPE_KEY, aD as RTE_DEFAULT_LINK_TYPE_KEY, aE as RTE_SUPPORTED_LINK_TYPE_KEYS } from './code-block-1cdf7a51.js';
11
+ import { i as isNonNullable } from './type-guard-26d83e7e.js';
12
+ import { R as RTEDTORendererManager, e as extensionContextManager, V as VegaRTELinkExtension } from './link-extension-bc234cf7.js';
13
13
  import { V as VegaInternalIconManager } from './internal-icon-manager-e7c57096.js';
14
- import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-d7cb80aa.js';
15
- import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, a0 as VegaImageInserted, a1 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-f55f6977.js';
14
+ import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-cdd50dcc.js';
15
+ import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, a1 as VegaImageInserted, a2 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-59cd9297.js';
16
16
  import { g as generateUUID } from './misc-9fdbcfbb.js';
17
- import { w as waitForComponentDidRender } from './wait-for-component-did-render-ff7062aa.js';
18
- import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-9b8abd0d.js';
19
- import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-511b7ac5.js';
20
- import { c as createEventEmitSlimmer } from './event-emit-slimmer-2452278f.js';
21
- import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-23b7d0e8.js';
22
- import { V as VegaRTEContent, b as RTEImageNode, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, f as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-43cdacff.js';
17
+ import { w as waitForComponentDidRender } from './wait-for-component-did-render-9e84d92d.js';
18
+ import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-f6dbd70c.js';
19
+ import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-5c794b4d.js';
20
+ import { c as createEventEmitSlimmer } from './event-emit-slimmer-12ee1593.js';
21
+ import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-ba72f30b.js';
22
+ import { V as VegaRTEContent, b as RTEImageNode, f as CommitValueAction, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, g as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-6eb610b8.js';
23
23
  import { b as AlignLeft, A as AlignCenter, c as AlignRight, a as AlignJustify } from './align-left-7f959adf.js';
24
- import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-ee393213.js';
24
+ import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-bdeeb43f.js';
25
25
  import { O as Observer } from './observer-3959f9dd.js';
26
26
  import { d as debounce } from './timer-9321173b.js';
27
27
  import { D as DarkModeStateControllerSlimmer } from './dark-mode-state-controller-slimmer-778dd929.js';
28
- import { f as findParent } from './ui-d73f756a.js';
29
- import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-a697e5bd.js';
30
- import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-82626871.js';
31
- import { T as TranslationSlimmer } from './translation-slimmer-ef970ffc.js';
32
- import { V as VegaInternalThemeManager } from './dark-mode-style-controller-352f15ff.js';
28
+ import { f as findParent, b as getDeepActiveElementInShadow, j as checkIsVoiceOverClick, k as getFirstFocusableElement } from './ui-80e610f4.js';
29
+ import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-a0663a84.js';
30
+ import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-0ebcbf47.js';
31
+ import { T as TranslationSlimmer } from './translation-slimmer-77022f2e.js';
32
+ import { V as VegaInternalThemeManager } from './dark-mode-style-controller-4e04a2d3.js';
33
33
  import { A as AutoRunWhenReRenderTaskQueueSlimmer } from './auto-run-when-re-render-task-queue-slimmer.abstract-27820d4c.js';
34
34
  import { i as isArrayEqual } from './array-7888f339.js';
35
+ import { d as deepEqual } from './object-0c277f57.js';
36
+ import { A as AriaAttributesValueMapper } from './aria-attributes-value-mapper-a5c7478e.js';
35
37
  import { c as chevronDown } from './chevron-down-4a75d28e.js';
36
38
  import { c as chevronUp } from './chevron-up-b1989751.js';
37
39
  import { t as trashCan } from './trash-can-8819a939.js';
38
40
  import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
39
41
  import './string-a953eafc.js';
40
42
  import './typography-19c3b9be.js';
41
- import './object-0c277f57.js';
42
43
  import './breakpoints-d9faf11c.js';
43
44
  import './ui-93922c59.js';
44
- import './internal-translation-controller-b33430c6.js';
45
+ import './internal-translation-controller-fff376d2.js';
45
46
  import './icon-manager-4ef3f6dd.js';
46
47
  import './create-public-api-runtime-metrics-slimmer-48f85199.js';
47
48
  import './dynamic-slimmer-90b8af32.js';
@@ -53,11 +54,11 @@ import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
53
54
  import './form-field-key-44ab39d0.js';
54
55
  import './mutation-observer-slimmer-58ebc13c.js';
55
56
  import './mutation-observer-filters-1a054fb0.js';
56
- import './sub-state-observer-slimmer-722f6b92.js';
57
- import './internal-vega-event-manager-2ecc9186.js';
58
- import './range-efad2578.js';
59
- import './keyboard-manager-slimmer-0517fc70.js';
60
- import './keyboard-manager-b4a0d97d.js';
57
+ import './sub-state-observer-slimmer-bee1c7fa.js';
58
+ import './internal-vega-event-manager-0c381f3b.js';
59
+ import './range-d2439ba7.js';
60
+ import './keyboard-manager-slimmer-133b86cd.js';
61
+ import './keyboard-manager-a58288df.js';
61
62
  import './vega-env-manager-8f8dc473.js';
62
63
  import './feature-flag-controller-3fd04ea9.js';
63
64
  import './index-9c9865c0.js';
@@ -66,7 +67,7 @@ import './vega-nonce-manager-497e5eb5.js';
66
67
  import './synchronize-task-queue-ac8acc3b.js';
67
68
  import './number-4398f2e1.js';
68
69
 
69
- var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
70
+ var __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
70
71
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
71
72
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
72
73
  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;
@@ -87,11 +88,21 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
87
88
  const containerStyle = this.rows !== undefined
88
89
  ? { height: this.rows >= 2 ? `${this.rows * VegaRTEOneRowHeightPx}px` : defaultHeight }
89
90
  : { minHeight: defaultHeight };
90
- return (h("div", { class: {
91
+ return (
92
+ // This container delegates focus to the inner <vega-rich-text-content> editor when
93
+ // clicking anywhere in the editing area. It is a layout wrapper, not an interactive
94
+ // widget, so giving it a widget role (e.g. `textbox`) would expose a second,
95
+ // non-editable textbox that traps VoiceOver focus and prevents typing.
96
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
97
+ h("div", { class: {
91
98
  'rich-text-editor-container': true,
92
99
  'disabled': this.disabled,
93
100
  'vega-hidden': this.sourceView,
94
- }, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
101
+ }, style: containerStyle, onClick: this.richTextContentFocus,
102
+ // Keep this wrapper out of the tab order so AT lands directly on the inner text
103
+ // region (focusable via contenteditable when enabled, via tabindex when disabled)
104
+ // rather than announcing this generic wrapper as a group.
105
+ tabIndex: -1, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
95
106
  h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
96
107
  this.renderCharacterCounter()));
97
108
  };
@@ -105,12 +116,20 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
105
116
  });
106
117
  };
107
118
  this.renderCharacterCounter = () => {
119
+ if (!this.wordCountController.shouldShowUI()) {
120
+ return null;
121
+ }
122
+ // The word count extension is registered, so the data is guaranteed to be non-null.
123
+ const data = this.wordCountController.getData();
124
+ const isSetMaxChars = isNonNullable(data.maxChars);
108
125
  return (h("div", { class: {
109
126
  'text-editor-counter': true,
110
- 'counter-exceed-max-length': false,
111
- }, style: { display: 'none' } },
112
- h("span", null, "0"),
113
- h("span", null, "/100")));
127
+ 'counter-exceed-max-length': isSetMaxChars && data.count > data.maxChars,
128
+ } },
129
+ h("span", null, data.count),
130
+ isSetMaxChars && h("span", null,
131
+ "/",
132
+ data.maxChars)));
114
133
  };
115
134
  this.renderErrorMessage = () => {
116
135
  return h("div", { class: "vega-error vega-hidden" });
@@ -159,6 +178,35 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
159
178
  return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
160
179
  }
161
180
  }
181
+ /**
182
+ * Re-injects the zero-width space placeholder into empty text spans.
183
+ * When a commit is rejected and the model rolls back unchanged, the framework
184
+ * short-circuits the text diff and leaves the span empty, collapsing the line
185
+ * height, so the placeholder is restored here.
186
+ */
187
+ restoreEmptyTextPlaceholders() {
188
+ const editableElement = this.getRTEEditableElementRef();
189
+ if (!editableElement) {
190
+ return;
191
+ }
192
+ // The text node will only be rendered as a span and a code.
193
+ editableElement.querySelectorAll('span:empty, code:empty').forEach((element) => {
194
+ const textNode = element.firstChild;
195
+ if (textNode && textNode.nodeType === Node.TEXT_NODE) {
196
+ // Reuse the existing text node, `textContent` would swap in a new one and leave the framework patching a detached node.
197
+ textNode.nodeValue = ZERO_WIDTH_SPACE;
198
+ }
199
+ else {
200
+ element.textContent = ZERO_WIDTH_SPACE;
201
+ }
202
+ });
203
+ }
204
+ /**
205
+ * 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.
206
+ */
207
+ forceContentRepaint() {
208
+ forceUpdate(this.richTextContentRef);
209
+ }
162
210
  render() {
163
211
  return h(Host, null, this.renderRichTextEditor());
164
212
  }
@@ -179,59 +227,62 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
179
227
  this.richTextEditorSourceViewRenderer.render()));
180
228
  }
181
229
  }
182
- __decorate$H([
230
+ __decorate$I([
183
231
  MapToComponentField()
184
232
  ], VegaRichTextEditorRenderer.prototype, "host", void 0);
185
- __decorate$H([
233
+ __decorate$I([
186
234
  MapToComponentField()
187
235
  ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
188
- __decorate$H([
236
+ __decorate$I([
189
237
  MapToComponentField()
190
238
  ], VegaRichTextEditorRenderer.prototype, "label", void 0);
191
- __decorate$H([
239
+ __decorate$I([
192
240
  MapToComponentField()
193
241
  ], VegaRichTextEditorRenderer.prototype, "required", void 0);
194
- __decorate$H([
242
+ __decorate$I([
195
243
  MapToComponentField()
196
244
  ], VegaRichTextEditorRenderer.prototype, "optional", void 0);
197
- __decorate$H([
245
+ __decorate$I([
198
246
  MapToComponentField()
199
247
  ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
200
- __decorate$H([
248
+ __decorate$I([
201
249
  MapToComponentField()
202
250
  ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
203
- __decorate$H([
251
+ __decorate$I([
204
252
  MapToComponentField()
205
253
  ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
206
- __decorate$H([
254
+ __decorate$I([
207
255
  MapToComponentField()
208
256
  ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
209
- __decorate$H([
257
+ __decorate$I([
210
258
  MapToComponentField()
211
259
  ], VegaRichTextEditorRenderer.prototype, "value", void 0);
212
- __decorate$H([
260
+ __decorate$I([
213
261
  MapToComponentField()
214
262
  ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
215
- __decorate$H([
263
+ __decorate$I([
216
264
  MapToComponentField()
217
265
  ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
218
- __decorate$H([
266
+ __decorate$I([
219
267
  MapToComponentField()
220
268
  ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
221
- __decorate$H([
269
+ __decorate$I([
222
270
  MapToComponentField()
223
271
  ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
224
- __decorate$H([
272
+ __decorate$I([
225
273
  MapToComponentField()
226
274
  ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
227
- __decorate$H([
275
+ __decorate$I([
276
+ MapToComponentField()
277
+ ], VegaRichTextEditorRenderer.prototype, "wordCountController", void 0);
278
+ __decorate$I([
228
279
  MapToComponentField()
229
280
  ], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
230
- __decorate$H([
281
+ __decorate$I([
231
282
  MapToComponentMethod('componentDidRender')
232
283
  ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
233
284
 
234
- var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
285
+ var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
235
286
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
236
287
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
237
288
  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;
@@ -283,14 +334,17 @@ class ToolbarRenderer extends VegaSlimmer {
283
334
  const [renderedItems, totalVisibleCount] = this.renderToolbarItems();
284
335
  return (h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" },
285
336
  this.allowSourceEdit && (h(Fragment, null,
286
- h("div", { class: "toolbar-btn-group" }, this.sourceEditToolbarButtonSlimmer.render()),
337
+ h("div", { class: "toolbar-btn-group", role: "presentation" }, this.sourceEditToolbarButtonSlimmer.render()),
287
338
  this.uniqueToolbarItems.length > 0 &&
288
339
  totalVisibleCount > 0 &&
289
340
  this.renderVegaDivider())),
290
341
  renderedItems));
291
342
  }
292
343
  renderVegaDivider() {
293
- return (h("vega-box", { height: "size-32" },
344
+ // Mark the divider as decorative so screen readers (e.g. VoiceOver
345
+ // on Firefox) skip it when navigating from the Edit Source button
346
+ // to the next toolbar item.
347
+ return (h("vega-box", { height: "size-32", "aria-hidden": "true", role: "presentation" },
294
348
  h("vega-divider", { direction: "vertical" })));
295
349
  }
296
350
  /**
@@ -329,81 +383,81 @@ class ToolbarRenderer extends VegaSlimmer {
329
383
  return null;
330
384
  })
331
385
  .filter(isNonNullable);
332
- return (h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 } }, groupElement));
386
+ return (h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 }, role: "presentation" }, groupElement));
333
387
  });
334
388
  return [renderedItems, totalVisibleCount];
335
389
  }
336
390
  }
337
- __decorate$G([
391
+ __decorate$H([
338
392
  MapToComponentField()
339
393
  ], ToolbarRenderer.prototype, "uniqueToolbarItems", void 0);
340
- __decorate$G([
394
+ __decorate$H([
341
395
  MapToComponentField()
342
396
  ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
343
- __decorate$G([
397
+ __decorate$H([
344
398
  MapToComponentField()
345
399
  ], ToolbarRenderer.prototype, "host", void 0);
346
- __decorate$G([
400
+ __decorate$H([
347
401
  MapToComponentField()
348
402
  ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
349
- __decorate$G([
403
+ __decorate$H([
350
404
  MapToComponentField()
351
405
  ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
352
- __decorate$G([
406
+ __decorate$H([
353
407
  MapToComponentField()
354
408
  ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
355
- __decorate$G([
409
+ __decorate$H([
356
410
  MapToComponentField()
357
411
  ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
358
- __decorate$G([
412
+ __decorate$H([
359
413
  MapToComponentField()
360
414
  ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
361
- __decorate$G([
415
+ __decorate$H([
362
416
  MapToComponentField()
363
417
  ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
364
- __decorate$G([
418
+ __decorate$H([
365
419
  MapToComponentField()
366
420
  ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
367
- __decorate$G([
421
+ __decorate$H([
368
422
  MapToComponentField()
369
423
  ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
370
- __decorate$G([
424
+ __decorate$H([
371
425
  MapToComponentField()
372
426
  ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
373
- __decorate$G([
427
+ __decorate$H([
374
428
  MapToComponentField()
375
429
  ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
376
- __decorate$G([
430
+ __decorate$H([
377
431
  MapToComponentField()
378
432
  ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
379
- __decorate$G([
433
+ __decorate$H([
380
434
  MapToComponentField()
381
435
  ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
382
- __decorate$G([
436
+ __decorate$H([
383
437
  MapToComponentField()
384
438
  ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
385
- __decorate$G([
439
+ __decorate$H([
386
440
  MapToComponentField()
387
441
  ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
388
- __decorate$G([
442
+ __decorate$H([
389
443
  MapToComponentField()
390
444
  ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
391
- __decorate$G([
445
+ __decorate$H([
392
446
  MapToComponentField()
393
447
  ], ToolbarRenderer.prototype, "undoToolbarButtonSlimmer", void 0);
394
- __decorate$G([
448
+ __decorate$H([
395
449
  MapToComponentField()
396
450
  ], ToolbarRenderer.prototype, "redoToolbarButtonSlimmer", void 0);
397
- __decorate$G([
451
+ __decorate$H([
398
452
  MapToComponentField()
399
453
  ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
400
- __decorate$G([
454
+ __decorate$H([
401
455
  MapToComponentField()
402
456
  ], ToolbarRenderer.prototype, "selectionController", void 0);
403
- __decorate$G([
457
+ __decorate$H([
404
458
  MapToComponentField()
405
459
  ], ToolbarRenderer.prototype, "translationSlimmer", void 0);
406
- __decorate$G([
460
+ __decorate$H([
407
461
  MapToComponentField()
408
462
  ], ToolbarRenderer.prototype, "sourceView", void 0);
409
463
 
@@ -411,7 +465,7 @@ const bold = {
411
465
  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>`,
412
466
  };
413
467
 
414
- var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
468
+ var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
415
469
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
416
470
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
417
471
  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;
@@ -453,7 +507,7 @@ class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
453
507
  (() => {
454
508
  VegaInternalIconManager.register({ bold });
455
509
  })();
456
- __decorate$F([
510
+ __decorate$G([
457
511
  MapToComponentField()
458
512
  ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
459
513
 
@@ -461,7 +515,7 @@ const italic = {
461
515
  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>`,
462
516
  };
463
517
 
464
- var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
518
+ var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
465
519
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
466
520
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
467
521
  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;
@@ -501,7 +555,7 @@ class ItalicToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
501
555
  (() => {
502
556
  VegaInternalIconManager.register({ italic });
503
557
  })();
504
- __decorate$E([
558
+ __decorate$F([
505
559
  MapToComponentField()
506
560
  ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
507
561
 
@@ -509,7 +563,7 @@ const underline = {
509
563
  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>`,
510
564
  };
511
565
 
512
- var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
566
+ var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
513
567
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
514
568
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
515
569
  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;
@@ -552,7 +606,7 @@ class UnderlineToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
552
606
  (() => {
553
607
  VegaInternalIconManager.register({ underline });
554
608
  })();
555
- __decorate$D([
609
+ __decorate$E([
556
610
  MapToComponentField()
557
611
  ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
558
612
 
@@ -560,7 +614,7 @@ const textSize = {
560
614
  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>`,
561
615
  };
562
616
 
563
- var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
617
+ var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
564
618
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
565
619
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
566
620
  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;
@@ -597,7 +651,7 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
597
651
  };
598
652
  }
599
653
  renderBtnWrapper(renderBtn) {
600
- return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
654
+ return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
601
655
  this.addDropdownObserver(ref);
602
656
  } },
603
657
  renderBtn({ showArrowIcon: true }),
@@ -688,13 +742,13 @@ TextStylesToolbarButtonSlimmer.allItems = [
688
742
  label: 'Paragraph',
689
743
  },
690
744
  ];
691
- __decorate$C([
745
+ __decorate$D([
692
746
  MapToComponentField()
693
747
  ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
694
- __decorate$C([
748
+ __decorate$D([
695
749
  MapToComponentField()
696
750
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
697
- __decorate$C([
751
+ __decorate$D([
698
752
  MapToComponentField()
699
753
  ], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
700
754
 
@@ -702,7 +756,7 @@ const TextSlash = {
702
756
  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>`,
703
757
  };
704
758
 
705
- var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
759
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
706
760
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
707
761
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
708
762
  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;
@@ -739,7 +793,7 @@ class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
739
793
  'text-slash': TextSlash,
740
794
  });
741
795
  })();
742
- __decorate$B([
796
+ __decorate$C([
743
797
  MapToComponentField()
744
798
  ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
745
799
 
@@ -747,7 +801,7 @@ const codeSimple = {
747
801
  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>`,
748
802
  };
749
803
 
750
- var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
804
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
751
805
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
752
806
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
753
807
  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;
@@ -785,7 +839,7 @@ class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
785
839
  (() => {
786
840
  VegaInternalIconManager.register({ 'code-simple': codeSimple });
787
841
  })();
788
- __decorate$A([
842
+ __decorate$B([
789
843
  MapToComponentField()
790
844
  ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
791
845
 
@@ -793,7 +847,7 @@ const strikethrough = {
793
847
  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>`,
794
848
  };
795
849
 
796
- var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
850
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
797
851
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
798
852
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
799
853
  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;
@@ -836,7 +890,7 @@ class StrikethroughToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
836
890
  (() => {
837
891
  VegaInternalIconManager.register({ strikethrough });
838
892
  })();
839
- __decorate$z([
893
+ __decorate$A([
840
894
  MapToComponentField()
841
895
  ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
842
896
 
@@ -844,12 +898,16 @@ const link = {
844
898
  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>`,
845
899
  };
846
900
 
847
- var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
901
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
848
902
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
849
903
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
850
904
  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;
851
905
  return c > 3 && r && Object.defineProperty(target, key, r), r;
852
906
  };
907
+ // One rAF is ~16 ms; 50 ms gives roughly two frames of buffer for the popover's
908
+ // internal focus trap to settle (and for screen readers such as VoiceOver to
909
+ // observe focus on <body>) before we restore focus to the trigger button.
910
+ const FOCUS_RESTORE_DELAY_MS = 50;
853
911
  class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
854
912
  constructor() {
855
913
  super({
@@ -857,7 +915,21 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
857
915
  tooltip: {
858
916
  text: 'Link',
859
917
  },
918
+ ariaLabel: 'Insert Link',
860
919
  });
920
+ // Restoring focus to the link button on Escape: the popover lives in
921
+ // vega-rich-text-link-editor's shadow root and is portalled to <body>, so
922
+ // the popover's built-in focus trap can't put focus back on our trigger.
923
+ // We track an Escape press during the popover lifetime and restore focus
924
+ // on hide; submit / outside-click flows leave the flag false. Stale
925
+ // Escape presses (pressed while the popover was closed) are cleared by
926
+ // `handleWrapperClickCapture` on the next open.
927
+ this.escapePressedDuringPopover = false;
928
+ // Tracks whether the document-level keydown listener has been registered
929
+ // so it can be removed in disconnectedCallback. Without removal, document
930
+ // keeps a strong reference to this slimmer instance after the rich-text
931
+ // editor is destroyed, leaking memory.
932
+ this.documentKeydownRegistered = false;
861
933
  this.handleLinkEditorChange = ({ detail, }) => {
862
934
  switch (detail.action) {
863
935
  case 'link': {
@@ -882,9 +954,97 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
882
954
  }
883
955
  }
884
956
  };
957
+ this.handleWrapperClickCapture = () => {
958
+ // Reset the Escape flag for each new open; only an Escape during this
959
+ // popover's lifetime should trigger focus restoration. Activating the
960
+ // trigger via keyboard (Enter / Space on the inner native <button>) also
961
+ // dispatches a synthetic click in the capture phase, so this handler
962
+ // runs in both pointer and keyboard activation paths. Also clears any
963
+ // stale Escape press recorded while the popover was closed. The
964
+ // `vegaPopoverShow` listener provides the same guarantee for
965
+ // programmatic-open paths that don't go through a wrapper click.
966
+ this.escapePressedDuringPopover = false;
967
+ };
968
+ this.handlePopoverShow = () => {
969
+ // Belt-and-suspenders reset for programmatic opens (e.g. an external
970
+ // caller invoking `linkEditorRef.show()`): without this, an Escape press
971
+ // recorded while the popover was previously closed could survive into
972
+ // the new open and trigger a spurious focus restore on the next hide.
973
+ this.escapePressedDuringPopover = false;
974
+ };
975
+ this.handleDocumentKeydown = (event) => {
976
+ // We cannot guard on a local `isPopoverOpen` flag here: vega-popover's
977
+ // own KeyboardManager registers its capture-phase keydown listener on
978
+ // document before this slimmer's listener, so it runs first, calls
979
+ // hidePopover(), and synchronously fires `vegaPopoverHide` — which
980
+ // would flip our flag to closed before this handler ever observes the
981
+ // Escape key. Instead, always record the Escape press; stale presses
982
+ // (made while the popover was closed) are cleared by
983
+ // `handleWrapperClickCapture` on the next open.
984
+ // Use `event.code` for consistency with vega-modal's Escape handling
985
+ // (vega-modal-open-state-controller.ts).
986
+ if (event.code === 'Escape') {
987
+ this.escapePressedDuringPopover = true;
988
+ }
989
+ };
990
+ this.handlePopoverHide = () => {
991
+ // vegaPopoverHide fires synchronously from the popover's own Escape
992
+ // handler — before our document-capture keydown observes the key, and
993
+ // before the popover's internal focus trap settles focus on <body>.
994
+ // Defer the decision/restore past that internal restore.
995
+ // eslint-disable-next-line no-restricted-globals
996
+ setTimeout(() => {
997
+ var _a, _b, _c, _d;
998
+ const shouldRestore = this.escapePressedDuringPopover;
999
+ this.escapePressedDuringPopover = false;
1000
+ if (shouldRestore) {
1001
+ // The toolbar button uses shadow DOM without delegatesFocus,
1002
+ // so focusing the host is a no-op — focus the inner <button>.
1003
+ // The toolbar button may have been removed from the DOM during
1004
+ // the timeout window (e.g. editor destroyed), so guard each step.
1005
+ /* istanbul ignore next */
1006
+ (_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();
1007
+ }
1008
+ }, FOCUS_RESTORE_DELAY_MS);
1009
+ };
1010
+ }
1011
+ /**
1012
+ * Component lifecycle - [disconnectedCallback]
1013
+ *
1014
+ * Removes the document-level Escape listener registered in the wrapper
1015
+ * ref callback so the slimmer instance is not retained by document after
1016
+ * the rich-text editor is destroyed.
1017
+ */
1018
+ disconnectedCallback() {
1019
+ if (this.documentKeydownRegistered) {
1020
+ // eslint-disable-next-line no-restricted-globals
1021
+ document.removeEventListener('keydown', this.handleDocumentKeydown, { capture: true });
1022
+ this.documentKeydownRegistered = false;
1023
+ }
1024
+ this.linkBtnWrapperRef = undefined;
885
1025
  }
886
1026
  renderBtnWrapper(renderBtn) {
887
- return (h("div", { class: "toolbar-btn-link-wrapper", ref: (ref) => (this.linkBtnWrapperRef = ref) },
1027
+ return (h("div", { class: "toolbar-btn-link-wrapper", role: "presentation", ref: (ref) => {
1028
+ if (ref && ref !== this.linkBtnWrapperRef) {
1029
+ this.linkBtnWrapperRef = ref;
1030
+ ref.addEventListener('click', this.handleWrapperClickCapture, { capture: true });
1031
+ // `vegaPopoverShow` clears any stale Escape recorded while the
1032
+ // popover was closed, covering programmatic-open paths
1033
+ // (e.g. linkEditorRef.show()) where no wrapper click fires.
1034
+ ref.addEventListener('vegaPopoverShow', this.handlePopoverShow);
1035
+ ref.addEventListener('vegaPopoverHide', this.handlePopoverHide);
1036
+ // Esc inside the portalled popover doesn't bubble to the wrapper,
1037
+ // so observe it on document capture. Tracked so it can be removed
1038
+ // in disconnectedCallback to avoid leaking this slimmer instance.
1039
+ if (!this.documentKeydownRegistered) {
1040
+ // eslint-disable-next-line no-restricted-globals
1041
+ document.addEventListener('keydown', this.handleDocumentKeydown, {
1042
+ capture: true,
1043
+ });
1044
+ this.documentKeydownRegistered = true;
1045
+ }
1046
+ }
1047
+ } },
888
1048
  renderBtn(),
889
1049
  h("vega-rich-text-link-editor", { resetStatusAfterHide: false, status: "linkEdit", ref: (ref) => {
890
1050
  if (ref) {
@@ -933,15 +1093,18 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
933
1093
  (() => {
934
1094
  VegaInternalIconManager.register({ link: link });
935
1095
  })();
936
- __decorate$y([
1096
+ __decorate$z([
937
1097
  MapToComponentField()
938
1098
  ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
1099
+ __decorate$z([
1100
+ MapToComponentMethod('disconnectedCallback')
1101
+ ], LinkToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
939
1102
 
940
1103
  const indent = {
941
1104
  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>`,
942
1105
  };
943
1106
 
944
- var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1107
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
945
1108
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
946
1109
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
947
1110
  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;
@@ -975,7 +1138,7 @@ class MoreIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
975
1138
  (() => {
976
1139
  VegaInternalIconManager.register({ indent: indent });
977
1140
  })();
978
- __decorate$x([
1141
+ __decorate$y([
979
1142
  MapToComponentField()
980
1143
  ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
981
1144
 
@@ -983,7 +1146,7 @@ const outdent = {
983
1146
  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>`,
984
1147
  };
985
1148
 
986
- var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1149
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
987
1150
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
988
1151
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
989
1152
  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;
@@ -1018,7 +1181,7 @@ class LessIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1018
1181
  (() => {
1019
1182
  VegaInternalIconManager.register({ outdent: outdent });
1020
1183
  })();
1021
- __decorate$w([
1184
+ __decorate$x([
1022
1185
  MapToComponentField()
1023
1186
  ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1024
1187
 
@@ -1039,7 +1202,7 @@ class ImageUpdateUrlAction extends ModifyContentAction {
1039
1202
  }
1040
1203
  }
1041
1204
 
1042
- var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1205
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1043
1206
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1044
1207
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1045
1208
  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;
@@ -1051,6 +1214,7 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1051
1214
  icon: 'image',
1052
1215
  tooltip: { text: 'Image' },
1053
1216
  autoFocusOnClick: false,
1217
+ ariaLabel: 'Insert Image',
1054
1218
  });
1055
1219
  this.insertURLImage = async () => {
1056
1220
  const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
@@ -1105,8 +1269,8 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1105
1269
  if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
1106
1270
  return null;
1107
1271
  }
1108
- return (h("vega-box", null,
1109
- shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
1272
+ return (h("vega-box", { role: "presentation" },
1273
+ shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => {
1110
1274
  this.dropdownRef = ref;
1111
1275
  this.addDropdownObserver(ref);
1112
1276
  } },
@@ -1238,16 +1402,16 @@ ImageToolbarButtonSlimmer.allItems = [
1238
1402
  label: 'Insert via URL',
1239
1403
  },
1240
1404
  ];
1241
- __decorate$v([
1405
+ __decorate$w([
1242
1406
  MapToComponentField()
1243
1407
  ], ImageToolbarButtonSlimmer.prototype, "host", void 0);
1244
- __decorate$v([
1408
+ __decorate$w([
1245
1409
  MapToComponentField()
1246
1410
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1247
- __decorate$v([
1411
+ __decorate$w([
1248
1412
  MapToComponentField()
1249
1413
  ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1250
- __decorate$v([
1414
+ __decorate$w([
1251
1415
  MapToComponentField()
1252
1416
  ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1253
1417
 
@@ -1557,7 +1721,7 @@ class ListShiftTabOutdentHandler extends AbstractListKeyboardHandler {
1557
1721
  }
1558
1722
  }
1559
1723
 
1560
- var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1724
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1561
1725
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1562
1726
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1563
1727
  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;
@@ -1709,28 +1873,28 @@ class ListKeyboardSlimmer extends VegaSlimmer {
1709
1873
  this.selectionController.enqueueSelectionRangeFutureState(firstNode, Math.min(startOffset, firstNode.getRangeEndOffset()), lastNode, Math.min(endOffset, lastNode.getRangeEndOffset()), true);
1710
1874
  }
1711
1875
  }
1712
- __decorate$u([
1876
+ __decorate$v([
1713
1877
  MapToComponentField()
1714
1878
  ], ListKeyboardSlimmer.prototype, "selectionController", void 0);
1715
- __decorate$u([
1879
+ __decorate$v([
1716
1880
  MapToComponentField()
1717
1881
  ], ListKeyboardSlimmer.prototype, "valueController", void 0);
1718
- __decorate$u([
1882
+ __decorate$v([
1719
1883
  MapToComponentField()
1720
1884
  ], ListKeyboardSlimmer.prototype, "value", void 0);
1721
- __decorate$u([
1885
+ __decorate$v([
1722
1886
  MapToComponentField()
1723
1887
  ], ListKeyboardSlimmer.prototype, "toolbarItems", void 0);
1724
- __decorate$u([
1888
+ __decorate$v([
1725
1889
  MapToComponentField()
1726
1890
  ], ListKeyboardSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1727
- __decorate$u([
1891
+ __decorate$v([
1728
1892
  MapToComponentMethod('disconnectedCallback')
1729
1893
  ], ListKeyboardSlimmer.prototype, "disconnectedCallback", null);
1730
- __decorate$u([
1894
+ __decorate$v([
1731
1895
  MapToComponentMethod('componentDidLoad')
1732
1896
  ], ListKeyboardSlimmer.prototype, "componentDidLoad", null);
1733
- __decorate$u([
1897
+ __decorate$v([
1734
1898
  MapToComponentMethod('watchToolbarItems')
1735
1899
  ], ListKeyboardSlimmer.prototype, "watchToolbarItems", null);
1736
1900
 
@@ -1747,7 +1911,7 @@ class TransformListAction extends ModifyContentAction {
1747
1911
  }
1748
1912
  }
1749
1913
 
1750
- var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1914
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1751
1915
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1752
1916
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1753
1917
  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;
@@ -1806,14 +1970,14 @@ class BulletsToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1806
1970
  }
1807
1971
  }
1808
1972
  }
1809
- __decorate$t([
1973
+ __decorate$u([
1810
1974
  MapToComponentField()
1811
1975
  ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1812
- __decorate$t([
1976
+ __decorate$u([
1813
1977
  MapToComponentField()
1814
1978
  ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1815
1979
 
1816
- var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1980
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1817
1981
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1818
1982
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1819
1983
  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;
@@ -1870,14 +2034,14 @@ class NumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1870
2034
  }
1871
2035
  }
1872
2036
  }
1873
- __decorate$s([
2037
+ __decorate$t([
1874
2038
  MapToComponentField()
1875
2039
  ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1876
- __decorate$s([
2040
+ __decorate$t([
1877
2041
  MapToComponentField()
1878
2042
  ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1879
2043
 
1880
- var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2044
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1881
2045
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1882
2046
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1883
2047
  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;
@@ -1890,6 +2054,7 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
1890
2054
  tooltip: {
1891
2055
  text: 'Bullets',
1892
2056
  },
2057
+ ariaLabel: 'Bullets and Numbers',
1893
2058
  });
1894
2059
  this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
1895
2060
  this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
@@ -1908,7 +2073,7 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
1908
2073
  }
1909
2074
  }
1910
2075
  renderBtnWrapper(renderBtn) {
1911
- return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
2076
+ return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
1912
2077
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
1913
2078
  h("div", { slot: "popover" }, this.renderContent())));
1914
2079
  }
@@ -1957,41 +2122,41 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
1957
2122
  'list-ol': ListOL,
1958
2123
  });
1959
2124
  })();
1960
- __decorate$r([
2125
+ __decorate$s([
1961
2126
  MapToComponentField()
1962
2127
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1963
- __decorate$r([
2128
+ __decorate$s([
1964
2129
  MapToComponentField()
1965
2130
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "valueController", void 0);
1966
- __decorate$r([
2131
+ __decorate$s([
1967
2132
  MapToComponentField()
1968
2133
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "value", void 0);
1969
- __decorate$r([
2134
+ __decorate$s([
1970
2135
  MapToComponentField()
1971
2136
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "toolbarItems", void 0);
1972
- __decorate$r([
2137
+ __decorate$s([
1973
2138
  MapToComponentField()
1974
2139
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1975
- __decorate$r([
2140
+ __decorate$s([
1976
2141
  InjectVegaSlimmer()
1977
2142
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1978
- __decorate$r([
2143
+ __decorate$s([
1979
2144
  InjectVegaSlimmer()
1980
2145
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1981
- __decorate$r([
2146
+ __decorate$s([
1982
2147
  InjectVegaSlimmer()
1983
2148
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "listKeyboardSlimmer", void 0);
1984
- __decorate$r([
2149
+ __decorate$s([
1985
2150
  MapToComponentMethod('disconnectedCallback')
1986
2151
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
1987
- __decorate$r([
2152
+ __decorate$s([
1988
2153
  MapToComponentMethod('componentDidLoad')
1989
2154
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentDidLoad", null);
1990
- __decorate$r([
2155
+ __decorate$s([
1991
2156
  MapToComponentMethod('componentWillRender')
1992
2157
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1993
2158
 
1994
- var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2159
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1995
2160
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1996
2161
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1997
2162
  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;
@@ -2026,14 +2191,14 @@ class LeftAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
2026
2191
  'align-left': AlignLeft,
2027
2192
  });
2028
2193
  })();
2029
- __decorate$q([
2194
+ __decorate$r([
2030
2195
  MapToComponentField()
2031
2196
  ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2032
- __decorate$q([
2197
+ __decorate$r([
2033
2198
  MapToComponentField()
2034
2199
  ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2035
2200
 
2036
- var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2201
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2037
2202
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2038
2203
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2039
2204
  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;
@@ -2068,14 +2233,14 @@ class CenterAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
2068
2233
  'align-center': AlignCenter,
2069
2234
  });
2070
2235
  })();
2071
- __decorate$p([
2236
+ __decorate$q([
2072
2237
  MapToComponentField()
2073
2238
  ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2074
- __decorate$p([
2239
+ __decorate$q([
2075
2240
  MapToComponentField()
2076
2241
  ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2077
2242
 
2078
- var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2243
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2079
2244
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2080
2245
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2081
2246
  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;
@@ -2110,14 +2275,14 @@ class RightAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
2110
2275
  'align-right': AlignRight,
2111
2276
  });
2112
2277
  })();
2113
- __decorate$o([
2278
+ __decorate$p([
2114
2279
  MapToComponentField()
2115
2280
  ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2116
- __decorate$o([
2281
+ __decorate$p([
2117
2282
  MapToComponentField()
2118
2283
  ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2119
2284
 
2120
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2285
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2121
2286
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2122
2287
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2123
2288
  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;
@@ -2152,14 +2317,14 @@ class JustifyAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
2152
2317
  'align-justify': AlignJustify,
2153
2318
  });
2154
2319
  })();
2155
- __decorate$n([
2320
+ __decorate$o([
2156
2321
  MapToComponentField()
2157
2322
  ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
2158
- __decorate$n([
2323
+ __decorate$o([
2159
2324
  MapToComponentField()
2160
2325
  ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
2161
2326
 
2162
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2327
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2163
2328
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2164
2329
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2165
2330
  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;
@@ -2172,6 +2337,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
2172
2337
  tooltip: {
2173
2338
  text: 'Left Align',
2174
2339
  },
2340
+ ariaLabel: 'Horizontal Alignment',
2175
2341
  });
2176
2342
  this.leftAlignToolbarButtonSlimmer = new LeftAlignToolbarButtonSlimmer();
2177
2343
  this.centerAlignToolbarButtonSlimmer = new CenterAlignToolbarButtonSlimmer();
@@ -2196,7 +2362,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
2196
2362
  }
2197
2363
  }
2198
2364
  renderBtnWrapper(renderBtn) {
2199
- return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
2365
+ return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
2200
2366
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
2201
2367
  h("div", { slot: "popover" }, this.renderContent())));
2202
2368
  }
@@ -2217,22 +2383,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
2217
2383
  .some((block) => this.shouldDisabledToolbar(block, HorizontalAlignmentAnnotationAction.name)));
2218
2384
  }
2219
2385
  }
2220
- __decorate$m([
2386
+ __decorate$n([
2221
2387
  MapToComponentField()
2222
2388
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
2223
- __decorate$m([
2389
+ __decorate$n([
2224
2390
  InjectVegaSlimmer()
2225
2391
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
2226
- __decorate$m([
2392
+ __decorate$n([
2227
2393
  InjectVegaSlimmer()
2228
2394
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
2229
- __decorate$m([
2395
+ __decorate$n([
2230
2396
  InjectVegaSlimmer()
2231
2397
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
2232
- __decorate$m([
2398
+ __decorate$n([
2233
2399
  InjectVegaSlimmer()
2234
2400
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
2235
- __decorate$m([
2401
+ __decorate$n([
2236
2402
  MapToComponentMethod('componentWillRender')
2237
2403
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
2238
2404
 
@@ -2273,7 +2439,7 @@ class RTEEditorState {
2273
2439
  }
2274
2440
  }
2275
2441
 
2276
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2442
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2277
2443
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2278
2444
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2279
2445
  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;
@@ -2283,6 +2449,11 @@ var __decorate$l = (undefined && undefined.__decorate) || function (decorators,
2283
2449
  * The value controller is responsible for updating the value of the rich text editor.
2284
2450
  */
2285
2451
  class ValueController extends VegaSlimmer {
2452
+ constructor() {
2453
+ super(...arguments);
2454
+ // Deep clone of the last committed value, kept only while a commit validator is active, used to roll back rejected changes.
2455
+ this.committedSnapshot = null;
2456
+ }
2286
2457
  /**
2287
2458
  * Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.connectedCallback}
2288
2459
  */
@@ -2327,15 +2498,47 @@ class ValueController extends VegaSlimmer {
2327
2498
  });
2328
2499
  }
2329
2500
  this.registerEditorRefAndContent();
2501
+ this.seedCommittedSnapshot();
2502
+ }
2503
+ /**
2504
+ * Seeds the rollback snapshot from the current value while a commit interceptor is active.
2505
+ * Runs on load and on extension changes so runtime re-registration stays protected.
2506
+ */
2507
+ seedCommittedSnapshot() {
2508
+ if (this.wordCountController.hasWordCountHardLimit()) {
2509
+ this.committedSnapshot = this.value ? this.value.clone(true) : null;
2510
+ }
2330
2511
  }
2331
2512
  /**
2332
2513
  * Updates the value of the editor and restore the selection.
2333
2514
  *
2334
2515
  * @param {VegaRTEContent} newValue The new value to set.
2335
2516
  * @param {boolean} recordHistory - Whether to record the change in history.
2336
- */
2337
- async flushChanges(newValue, recordHistory = true) {
2338
- this.value = newValue.clone();
2517
+ * @param {RTEUpdateSource} updateSource - The source of the update, defaulting to 'default'.
2518
+ */
2519
+ async flushChanges(newValue, recordHistory = true, updateSource = RTEUpdateSource.Default) {
2520
+ const previous = this.committedSnapshot;
2521
+ const action = new CommitValueAction(newValue, previous, this.host);
2522
+ const committed = ActionHandleStrategyRegistry.executeTheStrategy(action, newValue);
2523
+ if (!committed) {
2524
+ if (updateSource === RTEUpdateSource.Composition) {
2525
+ // The composition input characters cannot be deleted, so we force a repaint to restore the content from the model.
2526
+ this.vegaRichTextEditorRenderer.forceContentRepaint();
2527
+ }
2528
+ else {
2529
+ // The commit was vetoed, so restore the placeholder the framework skipped repainting and roll back.
2530
+ this.vegaRichTextEditorRenderer.restoreEmptyTextPlaceholders();
2531
+ }
2532
+ // Deep clone so the rolled-back value never shares nodes with the snapshot, which in-place edits would otherwise corrupt.
2533
+ this.value = (previous !== null && previous !== void 0 ? previous : newValue).clone(true);
2534
+ if (previous) {
2535
+ // Seed the snapshot again so the next commit attempt has a valid rollback point.
2536
+ this.seedCommittedSnapshot();
2537
+ }
2538
+ await waitForComponentDidRender(this.host);
2539
+ return;
2540
+ }
2541
+ this.value = committed.clone();
2339
2542
  if (recordHistory) {
2340
2543
  this.historyController.registerHistory(new RTEEditorState(this.value, new RTESelectionState(this.selectionController.getCurrentRange())));
2341
2544
  }
@@ -2359,39 +2562,49 @@ class ValueController extends VegaSlimmer {
2359
2562
  }
2360
2563
  }
2361
2564
  ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
2362
- __decorate$l([
2565
+ __decorate$m([
2363
2566
  MapToComponentField()
2364
2567
  ], ValueController.prototype, "host", void 0);
2365
- __decorate$l([
2568
+ __decorate$m([
2366
2569
  MapToComponentField({ writable: true })
2367
2570
  ], ValueController.prototype, "value", void 0);
2368
- __decorate$l([
2571
+ __decorate$m([
2369
2572
  MapToComponentField()
2370
2573
  ], ValueController.prototype, "changeEventEmitter", void 0);
2371
- __decorate$l([
2574
+ __decorate$m([
2372
2575
  MapToComponentField()
2373
2576
  ], ValueController.prototype, "valueController", void 0);
2374
- __decorate$l([
2577
+ __decorate$m([
2375
2578
  MapToComponentField()
2376
2579
  ], ValueController.prototype, "historyController", void 0);
2377
- __decorate$l([
2580
+ __decorate$m([
2378
2581
  MapToComponentField()
2379
2582
  ], ValueController.prototype, "selectionController", void 0);
2380
- __decorate$l([
2583
+ __decorate$m([
2584
+ MapToComponentField()
2585
+ ], ValueController.prototype, "wordCountController", void 0);
2586
+ __decorate$m([
2587
+ MapToComponentField()
2588
+ ], ValueController.prototype, "vegaRichTextEditorRenderer", void 0);
2589
+ __decorate$m([
2381
2590
  MapToComponentField()
2382
2591
  ], ValueController.prototype, "sourceEditConfig", void 0);
2383
- __decorate$l([
2592
+ __decorate$m([
2384
2593
  MapToComponentMethod('connectedCallback')
2385
2594
  ], ValueController.prototype, "connectedCallback", null);
2386
- __decorate$l([
2595
+ __decorate$m([
2387
2596
  MapToComponentMethod('disconnectedCallback')
2388
2597
  ], ValueController.prototype, "disconnectedCallback", null);
2389
- __decorate$l([
2598
+ __decorate$m([
2390
2599
  MapToComponentMethod('componentWillLoad')
2391
2600
  ], ValueController.prototype, "componentWillLoad", null);
2392
- __decorate$l([
2601
+ __decorate$m([
2393
2602
  MapToComponentMethod('watchValueUpdate')
2394
2603
  ], ValueController.prototype, "watchValueUpdate", null);
2604
+ __decorate$m([
2605
+ MapToComponentMethod('componentDidLoad'),
2606
+ MapToComponentMethod('watchExtensions')
2607
+ ], ValueController.prototype, "seedCommittedSnapshot", null);
2395
2608
 
2396
2609
  /**
2397
2610
  * The rich text content controller
@@ -3896,7 +4109,7 @@ class KeyboardLinkHandler extends BaseHandler {
3896
4109
  }
3897
4110
  }
3898
4111
 
3899
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4112
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3900
4113
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3901
4114
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3902
4115
  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;
@@ -3937,6 +4150,7 @@ class UserInputController extends VegaSlimmer {
3937
4150
  }
3938
4151
  this.insertCompositionTextController.removeObserver();
3939
4152
  let updateFlag = false;
4153
+ let updateSource = RTEUpdateSource.Default;
3940
4154
  switch (inputType) {
3941
4155
  case 'insertParagraph':
3942
4156
  updateFlag = true;
@@ -3944,6 +4158,10 @@ class UserInputController extends VegaSlimmer {
3944
4158
  break;
3945
4159
  case 'insertText':
3946
4160
  updateFlag = true;
4161
+ updateSource =
4162
+ e[RTE_UPDATE_SOURCE_KEY] === RTEUpdateSource.Composition
4163
+ ? RTEUpdateSource.Composition
4164
+ : RTEUpdateSource.Default;
3947
4165
  this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
3948
4166
  break;
3949
4167
  case 'insertLineBreak':
@@ -3964,7 +4182,7 @@ class UserInputController extends VegaSlimmer {
3964
4182
  break;
3965
4183
  }
3966
4184
  if (updateFlag) {
3967
- void this.valueController.flushChanges(this.value);
4185
+ void this.valueController.flushChanges(this.value, true, updateSource);
3968
4186
  }
3969
4187
  };
3970
4188
  }
@@ -4040,28 +4258,28 @@ class UserInputController extends VegaSlimmer {
4040
4258
  return false;
4041
4259
  }
4042
4260
  }
4043
- __decorate$k([
4261
+ __decorate$l([
4044
4262
  MapToComponentField()
4045
4263
  ], UserInputController.prototype, "host", void 0);
4046
- __decorate$k([
4264
+ __decorate$l([
4047
4265
  MapToComponentField()
4048
4266
  ], UserInputController.prototype, "value", void 0);
4049
- __decorate$k([
4267
+ __decorate$l([
4050
4268
  MapToComponentField()
4051
4269
  ], UserInputController.prototype, "valueController", void 0);
4052
- __decorate$k([
4270
+ __decorate$l([
4053
4271
  MapToComponentField()
4054
4272
  ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
4055
- __decorate$k([
4273
+ __decorate$l([
4056
4274
  MapToComponentField()
4057
4275
  ], UserInputController.prototype, "selectionController", void 0);
4058
- __decorate$k([
4276
+ __decorate$l([
4059
4277
  MapToComponentField()
4060
4278
  ], UserInputController.prototype, "insertCompositionTextController", void 0);
4061
- __decorate$k([
4279
+ __decorate$l([
4062
4280
  MapToComponentMethod('componentDidLoad')
4063
4281
  ], UserInputController.prototype, "addActionListener", null);
4064
- __decorate$k([
4282
+ __decorate$l([
4065
4283
  MapToComponentMethod('disconnectedCallback')
4066
4284
  ], UserInputController.prototype, "removeActionListener", null);
4067
4285
 
@@ -4081,7 +4299,7 @@ class InsertImageToBlockAction extends ModifyContentAction {
4081
4299
  }
4082
4300
  }
4083
4301
 
4084
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4302
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4085
4303
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4086
4304
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4087
4305
  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;
@@ -4173,26 +4391,26 @@ class InsertImageController extends VegaSlimmer {
4173
4391
  }
4174
4392
  }
4175
4393
  }
4176
- __decorate$j([
4394
+ __decorate$k([
4177
4395
  MapToComponentField()
4178
4396
  ], InsertImageController.prototype, "selectionController", void 0);
4179
- __decorate$j([
4397
+ __decorate$k([
4180
4398
  MapToComponentField()
4181
4399
  ], InsertImageController.prototype, "value", void 0);
4182
- __decorate$j([
4400
+ __decorate$k([
4183
4401
  MapToComponentField()
4184
4402
  ], InsertImageController.prototype, "valueController", void 0);
4185
- __decorate$j([
4403
+ __decorate$k([
4186
4404
  MapToComponentField()
4187
4405
  ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
4188
- __decorate$j([
4406
+ __decorate$k([
4189
4407
  MapToComponentMethod('componentDidLoad')
4190
4408
  ], InsertImageController.prototype, "registerObserver", null);
4191
- __decorate$j([
4409
+ __decorate$k([
4192
4410
  MapToComponentMethod('disconnectedCallback')
4193
4411
  ], InsertImageController.prototype, "unRegisterObserver", null);
4194
4412
 
4195
- var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4413
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4196
4414
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4197
4415
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4198
4416
  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;
@@ -4258,20 +4476,20 @@ class FocusController extends VegaSlimmer {
4258
4476
  this.selectionController.setSelectionRange(range);
4259
4477
  }
4260
4478
  }
4261
- __decorate$i([
4479
+ __decorate$j([
4262
4480
  MapToComponentField()
4263
4481
  ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
4264
- __decorate$i([
4482
+ __decorate$j([
4265
4483
  MapToComponentField()
4266
4484
  ], FocusController.prototype, "selectionController", void 0);
4267
- __decorate$i([
4485
+ __decorate$j([
4268
4486
  MapToComponentField()
4269
4487
  ], FocusController.prototype, "valueController", void 0);
4270
- __decorate$i([
4488
+ __decorate$j([
4271
4489
  MapToComponentField()
4272
4490
  ], FocusController.prototype, "value", void 0);
4273
4491
 
4274
- var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4492
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4275
4493
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4276
4494
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4277
4495
  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;
@@ -4478,38 +4696,39 @@ class InsertCompositionTextController extends VegaSlimmer {
4478
4696
  const inputEvent = new CustomEvent('beforeinput');
4479
4697
  inputEvent['data'] = text;
4480
4698
  inputEvent['inputType'] = 'insertText';
4699
+ inputEvent[RTE_UPDATE_SOURCE_KEY] = RTEUpdateSource.Composition;
4481
4700
  this.editableElementRef.dispatchEvent(inputEvent);
4482
4701
  }
4483
4702
  }
4484
- __decorate$h([
4703
+ __decorate$i([
4485
4704
  MapToComponentField()
4486
4705
  ], InsertCompositionTextController.prototype, "selectionController", void 0);
4487
- __decorate$h([
4706
+ __decorate$i([
4488
4707
  MapToComponentField()
4489
4708
  ], InsertCompositionTextController.prototype, "host", void 0);
4490
- __decorate$h([
4709
+ __decorate$i([
4491
4710
  MapToComponentField()
4492
4711
  ], InsertCompositionTextController.prototype, "value", void 0);
4493
- __decorate$h([
4712
+ __decorate$i([
4494
4713
  MapToComponentField()
4495
4714
  ], InsertCompositionTextController.prototype, "valueController", void 0);
4496
- __decorate$h([
4715
+ __decorate$i([
4497
4716
  MapToComponentField()
4498
4717
  ], InsertCompositionTextController.prototype, "userInputController", void 0);
4499
- __decorate$h([
4718
+ __decorate$i([
4500
4719
  MapToComponentField()
4501
4720
  ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
4502
- __decorate$h([
4721
+ __decorate$i([
4503
4722
  MapToComponentMethod('componentDidLoad')
4504
4723
  ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
4505
- __decorate$h([
4724
+ __decorate$i([
4506
4725
  MapToComponentMethod('disconnectedCallback')
4507
4726
  ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
4508
- __decorate$h([
4727
+ __decorate$i([
4509
4728
  MapToComponentMethod('componentDidRender')
4510
4729
  ], InsertCompositionTextController.prototype, "reConnectObserver", null);
4511
4730
 
4512
- var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4731
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4513
4732
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4514
4733
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4515
4734
  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;
@@ -4718,23 +4937,23 @@ class DeleteSelectedNodesController extends VegaSlimmer {
4718
4937
  }
4719
4938
  }
4720
4939
  }
4721
- __decorate$g([
4940
+ __decorate$h([
4722
4941
  MapToComponentField()
4723
4942
  ], DeleteSelectedNodesController.prototype, "host", void 0);
4724
- __decorate$g([
4943
+ __decorate$h([
4725
4944
  MapToComponentField()
4726
4945
  ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
4727
- __decorate$g([
4946
+ __decorate$h([
4728
4947
  MapToComponentField()
4729
4948
  ], DeleteSelectedNodesController.prototype, "value", void 0);
4730
- __decorate$g([
4949
+ __decorate$h([
4731
4950
  MapToComponentMethod('connectedCallback')
4732
4951
  ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
4733
- __decorate$g([
4952
+ __decorate$h([
4734
4953
  MapToComponentMethod('disconnectedCallback')
4735
4954
  ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
4736
4955
 
4737
- var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4956
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4738
4957
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4739
4958
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4740
4959
  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;
@@ -4811,22 +5030,22 @@ class HistoryController extends ComponentValueHistoryControllerSlimmer {
4811
5030
  await this.valueController.flushChanges(content, false);
4812
5031
  }
4813
5032
  }
4814
- __decorate$f([
5033
+ __decorate$g([
4815
5034
  MapToComponentField()
4816
5035
  ], HistoryController.prototype, "host", void 0);
4817
- __decorate$f([
5036
+ __decorate$g([
4818
5037
  MapToComponentField()
4819
5038
  ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
4820
- __decorate$f([
5039
+ __decorate$g([
4821
5040
  MapToComponentField()
4822
5041
  ], HistoryController.prototype, "valueController", void 0);
4823
- __decorate$f([
5042
+ __decorate$g([
4824
5043
  MapToComponentField()
4825
5044
  ], HistoryController.prototype, "value", void 0);
4826
- __decorate$f([
5045
+ __decorate$g([
4827
5046
  MapToComponentField()
4828
5047
  ], HistoryController.prototype, "selectionController", void 0);
4829
- __decorate$f([
5048
+ __decorate$g([
4830
5049
  MapToComponentMethod('componentDidLoad')
4831
5050
  ], HistoryController.prototype, "registerInitState", null);
4832
5051
 
@@ -4847,7 +5066,7 @@ class TransformToCodeBlockAction extends ModifyContentAction {
4847
5066
  }
4848
5067
  }
4849
5068
 
4850
- var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5069
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4851
5070
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4852
5071
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4853
5072
  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;
@@ -4903,13 +5122,13 @@ class CodeBlockToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
4903
5122
  (() => {
4904
5123
  VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
4905
5124
  })();
4906
- __decorate$e([
5125
+ __decorate$f([
4907
5126
  MapToComponentField()
4908
5127
  ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
4909
- __decorate$e([
5128
+ __decorate$f([
4910
5129
  MapToComponentField()
4911
5130
  ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
4912
- __decorate$e([
5131
+ __decorate$f([
4913
5132
  MapToComponentField()
4914
5133
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
4915
5134
 
@@ -4917,7 +5136,7 @@ const undoIcon = {
4917
5136
  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>`,
4918
5137
  };
4919
5138
 
4920
- var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5139
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4921
5140
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4922
5141
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4923
5142
  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;
@@ -4946,7 +5165,7 @@ class UndoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
4946
5165
  (() => {
4947
5166
  VegaInternalIconManager.register({ 'arrow-turn-left': undoIcon });
4948
5167
  })();
4949
- __decorate$d([
5168
+ __decorate$e([
4950
5169
  MapToComponentField()
4951
5170
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
4952
5171
 
@@ -4954,7 +5173,7 @@ const redoIcon = {
4954
5173
  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>`,
4955
5174
  };
4956
5175
 
4957
- var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5176
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4958
5177
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4959
5178
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4960
5179
  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;
@@ -4983,7 +5202,7 @@ class RedoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
4983
5202
  (() => {
4984
5203
  VegaInternalIconManager.register({ 'arrow-turn-right': redoIcon });
4985
5204
  })();
4986
- __decorate$c([
5205
+ __decorate$d([
4987
5206
  MapToComponentField()
4988
5207
  ], RedoToolbarButtonSlimmer.prototype, "historyController", void 0);
4989
5208
 
@@ -5054,7 +5273,7 @@ const displayCode = {
5054
5273
  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>`,
5055
5274
  };
5056
5275
 
5057
- var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5276
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5058
5277
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5059
5278
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5060
5279
  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;
@@ -5075,11 +5294,25 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
5075
5294
  if (isSelected) {
5076
5295
  await this.saveSourceCode();
5077
5296
  }
5078
- else {
5079
- this.selectionController.setSelectionRange(new Range());
5080
- }
5297
+ // VD-8789 (keyboard a11y): the previous implementation cleared the editor
5298
+ // selection here via `selectionController.setSelectionRange(new Range())`
5299
+ // when entering source view. That call is intentionally removed so the
5300
+ // caret position is preserved when toggling back to visual mode, and so
5301
+ // the source-edit button can be re-activated from the keyboard without
5302
+ // the selection being reset out from under the user.
5081
5303
  this.sourceView = !isSelected;
5082
5304
  }
5305
+ // VD-8789 (keyboard a11y): the default `preventLostFocus` calls
5306
+ // `e.preventDefault()` on mousedown so the button never receives focus and
5307
+ // the rich-text editor selection is preserved. The source-edit toggle is
5308
+ // different — activating it switches the editor to source-view mode, where
5309
+ // the visual-mode selection is no longer relevant. We override with a no-op
5310
+ // so the button is allowed to take focus on click, matching its keyboard
5311
+ // activation path and giving keyboard / screen-reader users a stable focus
5312
+ // target to toggle back out of source view.
5313
+ preventLostFocus() {
5314
+ return {};
5315
+ }
5083
5316
  isSelected() {
5084
5317
  return this.sourceView;
5085
5318
  }
@@ -5105,25 +5338,22 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
5105
5338
  (() => {
5106
5339
  VegaInternalIconManager.register({ 'display-code': displayCode });
5107
5340
  })();
5108
- __decorate$b([
5341
+ __decorate$c([
5109
5342
  MapToComponentField({ writable: true })
5110
5343
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
5111
- __decorate$b([
5112
- MapToComponentField()
5113
- ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
5114
- __decorate$b([
5344
+ __decorate$c([
5115
5345
  MapToComponentField()
5116
5346
  ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
5117
- __decorate$b([
5347
+ __decorate$c([
5118
5348
  MapToComponentField()
5119
5349
  ], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
5120
- __decorate$b([
5350
+ __decorate$c([
5121
5351
  MapToComponentField()
5122
5352
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
5123
- __decorate$b([
5353
+ __decorate$c([
5124
5354
  MapToComponentField()
5125
5355
  ], SourceEditToolbarButtonSlimmer.prototype, "host", void 0);
5126
- __decorate$b([
5356
+ __decorate$c([
5127
5357
  MapToComponentField()
5128
5358
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
5129
5359
 
@@ -5162,7 +5392,7 @@ class BlockBoundaryRegistry {
5162
5392
  }
5163
5393
  }
5164
5394
 
5165
- var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5395
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5166
5396
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5167
5397
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5168
5398
  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;
@@ -5278,34 +5508,110 @@ class RTEExtensionController extends VegaSlimmer {
5278
5508
  };
5279
5509
  }
5280
5510
  }
5281
- __decorate$a([
5511
+ __decorate$b([
5282
5512
  MapToComponentField()
5283
5513
  ], RTEExtensionController.prototype, "extensions", void 0);
5284
- __decorate$a([
5514
+ __decorate$b([
5285
5515
  MapToComponentField()
5286
5516
  ], RTEExtensionController.prototype, "host", void 0);
5287
- __decorate$a([
5517
+ __decorate$b([
5288
5518
  MapToComponentField()
5289
5519
  ], RTEExtensionController.prototype, "sourceView", void 0);
5290
- __decorate$a([
5520
+ __decorate$b([
5291
5521
  MapToComponentField()
5292
5522
  ], RTEExtensionController.prototype, "valueController", void 0);
5293
- __decorate$a([
5523
+ __decorate$b([
5294
5524
  MapToComponentField()
5295
5525
  ], RTEExtensionController.prototype, "selectionController", void 0);
5296
- __decorate$a([
5526
+ __decorate$b([
5297
5527
  MapToComponentMethod('componentWillLoad')
5298
5528
  ], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
5299
- __decorate$a([
5529
+ __decorate$b([
5300
5530
  MapToComponentMethod('componentDidLoad')
5301
5531
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
5302
- __decorate$a([
5532
+ __decorate$b([
5303
5533
  MapToComponentMethod('disconnectedCallback')
5304
5534
  ], RTEExtensionController.prototype, "destroyExtension", null);
5305
- __decorate$a([
5535
+ __decorate$b([
5306
5536
  MapToComponentMethod('watchExtensions')
5307
5537
  ], RTEExtensionController.prototype, "handleExtensionsChange", null);
5308
5538
 
5539
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5540
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5541
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5542
+ 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;
5543
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5544
+ };
5545
+ /**
5546
+ * Bridges the word count extension to the editor component so the footer UI can
5547
+ * read whether the character count should be shown and its current value.
5548
+ */
5549
+ class WordCountController extends VegaSlimmer {
5550
+ constructor() {
5551
+ super(...arguments);
5552
+ this.cachedValue = null;
5553
+ this.cachedConfig = null;
5554
+ this.cachedData = null;
5555
+ }
5556
+ /**
5557
+ * Whether the character count UI should be rendered.
5558
+ *
5559
+ * @returns {boolean} True when a word count extension requests the UI.
5560
+ */
5561
+ shouldShowUI() {
5562
+ var _a;
5563
+ return !!((_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig().showCharCount);
5564
+ }
5565
+ /**
5566
+ * Compute the current character count data from the editor content.
5567
+ *
5568
+ * @returns {Nullable<VegaRTEWordCountData>} The count data or null when no word count extension is registered.
5569
+ */
5570
+ getData() {
5571
+ const extension = this.findWordCountExtension();
5572
+ if (!extension) {
5573
+ return null;
5574
+ }
5575
+ const value = this.host.value;
5576
+ const config = extension.getConfig();
5577
+ // VegaRTEContent is immutable, so a matching value/config reference means the data is unchanged.
5578
+ if (this.cachedData && value === this.cachedValue && deepEqual(config, this.cachedConfig)) {
5579
+ return this.cachedData;
5580
+ }
5581
+ this.cachedData = extension.getData(value);
5582
+ this.cachedValue = value;
5583
+ this.cachedConfig = config;
5584
+ return this.cachedData;
5585
+ }
5586
+ /**
5587
+ * Whether the word count extension gates commits with a hard character limit.
5588
+ *
5589
+ * @returns {boolean} True when a hard limit with a max character count is configured for this host.
5590
+ */
5591
+ hasWordCountHardLimit() {
5592
+ var _a;
5593
+ const config = (_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig();
5594
+ return !!config && Boolean(config.hardLimit) && isNonNullable(config.maxChars);
5595
+ }
5596
+ /**
5597
+ * Locate the word count extension by its runtime `type` discriminator.
5598
+ * Use this way instead of instanceof to avoid direct dependency on the extension class.
5599
+ *
5600
+ * @returns {Nullable<VegaRTEWordCountExtension>} The word count extension or null.
5601
+ */
5602
+ findWordCountExtension() {
5603
+ var _a;
5604
+ const extension = ((_a = this.extensions) !== null && _a !== void 0 ? _a : []).find((ext) => 'type' in ext && ext['type'] === RTE_WORD_COUNT_KEY);
5605
+ return extension !== null && extension !== void 0 ? extension : null;
5606
+ }
5607
+ }
5608
+ __decorate$a([
5609
+ MapToComponentField()
5610
+ ], WordCountController.prototype, "extensions", void 0);
5611
+ __decorate$a([
5612
+ MapToComponentField()
5613
+ ], WordCountController.prototype, "host", void 0);
5614
+
5309
5615
  /**
5310
5616
  * Class to format HTML code with proper indentation and style cleanup.
5311
5617
  */
@@ -5622,6 +5928,13 @@ const VegaRichTextEditor = class {
5622
5928
  this.vegaSourceCodeChange = createEvent(this, "vegaSourceCodeChange", 7);
5623
5929
  this.sourceCodeChange = createEvent(this, "sourceCodeChange", 7);
5624
5930
  this.globalSlimmers = {};
5931
+ this.ariaAttributesValueMapper = new AriaAttributesValueMapper(() => this.vegaRichTextEditorRenderer.getRTEEditableElementRef(), {
5932
+ 'aria-label': {
5933
+ dependency: ['data-aria-label', 'label'],
5934
+ // When no label is provided, announce a meaningful role name
5935
+ defaultValue: () => this.translationSlimmer.t('Rich Text Editor. Editing area: main. '),
5936
+ },
5937
+ });
5625
5938
  this.translationSlimmer = new TranslationSlimmer();
5626
5939
  this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
5627
5940
  this.formFieldController = new FormFieldControllerSlimmer({
@@ -5674,6 +5987,7 @@ const VegaRichTextEditor = class {
5674
5987
  this.historyController = new HistoryController();
5675
5988
  this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
5676
5989
  this.rteExtensionController = new RTEExtensionController();
5990
+ this.wordCountController = new WordCountController();
5677
5991
  this.sourceCodeChangeEventEmitter = createEventEmitSlimmer(VegaRichTextEditor, VegaSourceCodeChange);
5678
5992
  this.richTextEditorSourceViewRenderer = new VegaRichTextEditorSourceViewRenderer();
5679
5993
  this.richTextContentEditable = true;
@@ -5872,6 +6186,9 @@ const VegaRichTextEditor = class {
5872
6186
  __decorate$8([
5873
6187
  InjectVegaGlobalSlimmer()
5874
6188
  ], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
6189
+ __decorate$8([
6190
+ InjectVegaSlimmer()
6191
+ ], VegaRichTextEditor.prototype, "ariaAttributesValueMapper", void 0);
5875
6192
  __decorate$8([
5876
6193
  InjectVegaSlimmer()
5877
6194
  ], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
@@ -5992,6 +6309,9 @@ __decorate$8([
5992
6309
  __decorate$8([
5993
6310
  InjectVegaSlimmer()
5994
6311
  ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
6312
+ __decorate$8([
6313
+ InjectVegaSlimmer()
6314
+ ], VegaRichTextEditor.prototype, "wordCountController", void 0);
5995
6315
  __decorate$8([
5996
6316
  InjectVegaSlimmer()
5997
6317
  ], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
@@ -6025,7 +6345,7 @@ class VegaRichTextEditorToolbarButtonRenderer extends VegaSlimmer {
6025
6345
  'rich-text-editor-toolbar-button-hidden': this.hidden,
6026
6346
  'rich-text-editor-toolbar-button-selected': this.selected,
6027
6347
  }, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
6028
- h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
6348
+ h("vega-flex", { "aria-hidden": "true", gap: "size-8", justifyContent: "center", alignItems: "center" },
6029
6349
  this.icon && (h("vega-icon", { size: "size-16", color: this.iconColor, icon: VegaInternalIconManager.getIconKey(this.icon) })),
6030
6350
  this.showArrowIcon && (h("vega-icon", { size: "size-8", color: "text-secondary", icon: VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
6031
6351
  h("slot", null)));
@@ -6091,6 +6411,12 @@ const VegaRichTextEditorToolbarButton = class {
6091
6411
  },
6092
6412
  });
6093
6413
  this.renderer = new VegaRichTextEditorToolbarButtonRenderer();
6414
+ this.ariaAttributesValueMapper = new AriaAttributesValueMapper(() => this.host.shadowRoot.querySelector('button'), {
6415
+ 'aria-label': {
6416
+ dependency: ['data-aria-label'],
6417
+ defaultValue: 'No label defined',
6418
+ },
6419
+ });
6094
6420
  /**
6095
6421
  * Specifies whether the rich text editor toolbar button element is disabled.
6096
6422
  *
@@ -6135,7 +6461,9 @@ const VegaRichTextEditorToolbarButton = class {
6135
6461
  this.iconColor = 'text-primary';
6136
6462
  }
6137
6463
  render() {
6138
- return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
6464
+ // The host is a decorative wrapper around the shadow <button>; keep it out of the
6465
+ // a11y tree so VoiceOver doesn't announce it as a "group" when entering the button.
6466
+ return sanitizeVegaComponent(h(Host, { role: "presentation" }, this.renderer.render()), this.host);
6139
6467
  }
6140
6468
  get host() { return getElement(this); }
6141
6469
  };
@@ -6154,6 +6482,9 @@ __decorate$6([
6154
6482
  __decorate$6([
6155
6483
  InjectVegaSlimmer()
6156
6484
  ], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
6485
+ __decorate$6([
6486
+ InjectVegaSlimmer()
6487
+ ], VegaRichTextEditorToolbarButton.prototype, "ariaAttributesValueMapper", void 0);
6157
6488
  VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
6158
6489
 
6159
6490
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -6381,6 +6712,11 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
6381
6712
  this.handleFormRef = (ref) => {
6382
6713
  this.formRef = ref;
6383
6714
  };
6715
+ this.handlePopoverContentRef = (ref) => {
6716
+ if (ref) {
6717
+ this.popoverContentRef = ref;
6718
+ }
6719
+ };
6384
6720
  this.handleUrlInputRef = (ref) => {
6385
6721
  if (ref) {
6386
6722
  this.urlInputRef = ref;
@@ -6414,6 +6750,9 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
6414
6750
  getPopoverRef() {
6415
6751
  return this.popoverRef;
6416
6752
  }
6753
+ getPopoverContentRef() {
6754
+ return this.popoverContentRef;
6755
+ }
6417
6756
  getFormRef() {
6418
6757
  return this.formRef;
6419
6758
  }
@@ -6427,7 +6766,7 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
6427
6766
  return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: this.handlePopoverRef },
6428
6767
  h("span", { slot: "popover-content" },
6429
6768
  h("slot", null)),
6430
- h("div", { slot: "popover" },
6769
+ h("div", { slot: "popover", ref: this.handlePopoverContentRef },
6431
6770
  this.renderLinkUnlinkContent(),
6432
6771
  this.renderLinkEditContent())));
6433
6772
  }
@@ -6653,10 +6992,41 @@ class LinkEditorController extends VegaSlimmer {
6653
6992
  super(...arguments);
6654
6993
  this.linkUrlNormalizer = new LinkUrlNormalizer();
6655
6994
  this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
6995
+ /**
6996
+ * The element the trigger click listener is currently attached to (the link
6997
+ * wrapper acting as the popover target).
6998
+ */
6999
+ this.triggerListenerEl = null;
7000
+ /**
7001
+ * Whether the popover was opened via a keyboard or screen-reader (VoiceOver)
7002
+ * activation. When true, focus is moved into the popover so screen reader
7003
+ * users land on the Edit button.
7004
+ */
7005
+ this.isVoiceOverTrigger = false;
7006
+ /**
7007
+ * The element that had focus when the VoiceOver activation happened, so focus
7008
+ * can be restored to the link once the popover is hidden.
7009
+ */
7010
+ this.focusReturnEl = null;
7011
+ /**
7012
+ * Records whether the popover was opened via a keyboard/VoiceOver activation
7013
+ * and, if so, the element to restore focus to when the popover closes.
7014
+ *
7015
+ * @param {MouseEvent} e - The click event on the link wrapper.
7016
+ * @returns {void} No return value.
7017
+ */
7018
+ this.handleTriggerClick = (e) => {
7019
+ this.isVoiceOverTrigger = this.isKeyboardOrScreenReaderActivation(e);
7020
+ this.focusReturnEl = this.isVoiceOverTrigger
7021
+ ? // eslint-disable-next-line no-restricted-globals
7022
+ getDeepActiveElementInShadow(document, true)
7023
+ : null;
7024
+ };
6656
7025
  }
6657
7026
  /** Initializes the popover target after the component loads. */
6658
7027
  componentDidLoad() {
6659
7028
  this.updatePopoverTarget();
7029
+ this.attachTriggerListener();
6660
7030
  }
6661
7031
  /** Notifies observers after each render cycle. */
6662
7032
  componentDidRender() {
@@ -6675,6 +7045,7 @@ class LinkEditorController extends VegaSlimmer {
6675
7045
  watchTargetChange() {
6676
7046
  this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
6677
7047
  this.updatePopoverTarget();
7048
+ this.attachTriggerListener();
6678
7049
  }
6679
7050
  /**
6680
7051
  * Prepares the editor state before the popover is shown.
@@ -6705,6 +7076,9 @@ class LinkEditorController extends VegaSlimmer {
6705
7076
  }
6706
7077
  await this.populateEditForm();
6707
7078
  }
7079
+ if (this.status !== 'linkEdit' && this.isVoiceOverTrigger) {
7080
+ this.focusPopoverContentForVoiceOver();
7081
+ }
6708
7082
  }
6709
7083
  /**
6710
7084
  * Clears form state after the popover hides.
@@ -6721,6 +7095,7 @@ class LinkEditorController extends VegaSlimmer {
6721
7095
  if (this.resetStatusAfterHide) {
6722
7096
  this.linkEditorStateManager.setShouldResetStatusOnNextShow(true);
6723
7097
  }
7098
+ this.restoreFocusAfterVoiceOver();
6724
7099
  }
6725
7100
  /**
6726
7101
  * Switches the editor into link edit mode.
@@ -6882,6 +7257,93 @@ class LinkEditorController extends VegaSlimmer {
6882
7257
  updatePopoverTarget() {
6883
7258
  remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.renderer.getPopoverRef(), VegaInternalPopoverUpdateTarget), this.target);
6884
7259
  }
7260
+ /**
7261
+ * Attaches a capture-phase click listener to the link wrapper (the popover
7262
+ * target) so a keyboard/VoiceOver activation can be distinguished from a real
7263
+ * pointer click before the popover opens. Re-attaches when the target changes.
7264
+ *
7265
+ * @returns {void} No return value.
7266
+ */
7267
+ attachTriggerListener() {
7268
+ if (this.triggerListenerEl === this.target) {
7269
+ return;
7270
+ }
7271
+ this.detachTriggerListener();
7272
+ if (this.target) {
7273
+ this.triggerListenerEl = this.target;
7274
+ this.target.addEventListener('click', this.handleTriggerClick, { capture: true });
7275
+ }
7276
+ }
7277
+ /**
7278
+ * Removes the trigger listener from the previously observed element.
7279
+ *
7280
+ * @returns {void} No return value.
7281
+ */
7282
+ detachTriggerListener() {
7283
+ if (this.triggerListenerEl) {
7284
+ this.triggerListenerEl.removeEventListener('click', this.handleTriggerClick, { capture: true });
7285
+ this.triggerListenerEl = null;
7286
+ }
7287
+ }
7288
+ /**
7289
+ * Determines whether a click on the link wrapper came from a keyboard or
7290
+ * screen reader (VoiceOver) rather than a real pointer.
7291
+ *
7292
+ * A genuine pointer click lands inside the activated element. Keyboard (Enter,
7293
+ * `detail === 0`) and VoiceOver activations dispatch a click with coordinates
7294
+ * that are not on the element, so we treat any click whose point falls outside
7295
+ * the wrapper as an assistive-technology activation.
7296
+ *
7297
+ * @param {MouseEvent} e - The click event on the link wrapper.
7298
+ * @returns {boolean} True when the activation is keyboard/screen-reader driven.
7299
+ */
7300
+ isKeyboardOrScreenReaderActivation(e) {
7301
+ if (checkIsVoiceOverClick(e)) {
7302
+ return true;
7303
+ }
7304
+ const rect = this.target ? this.target.getBoundingClientRect() : null;
7305
+ if (!rect || (rect.width === 0 && rect.height === 0)) {
7306
+ return false;
7307
+ }
7308
+ const isInsideTarget = e.clientX >= rect.left &&
7309
+ e.clientX <= rect.right &&
7310
+ e.clientY >= rect.top &&
7311
+ e.clientY <= rect.bottom;
7312
+ return !isInsideTarget;
7313
+ }
7314
+ /**
7315
+ * Moves focus to the first focusable element within the popover content (the
7316
+ * Edit button) so VoiceOver users land inside the opened toolbar.
7317
+ *
7318
+ * Deferred to the next macrotask so it runs after the editor has finished
7319
+ * placing the caret/focus into the content area on the activating click.
7320
+ *
7321
+ * @returns {void} No return value.
7322
+ */
7323
+ focusPopoverContentForVoiceOver() {
7324
+ setTimeout(() => {
7325
+ const contentRef = this.renderer.getPopoverContentRef();
7326
+ if (!contentRef) {
7327
+ return;
7328
+ }
7329
+ const focusable = getFirstFocusableElement(contentRef);
7330
+ (focusable !== null && focusable !== void 0 ? focusable : contentRef).focus();
7331
+ });
7332
+ }
7333
+ /**
7334
+ * Restores focus to the link wrapper after the popover is hidden following a
7335
+ * VoiceOver activation.
7336
+ *
7337
+ * @returns {void} No return value.
7338
+ */
7339
+ restoreFocusAfterVoiceOver() {
7340
+ if (this.isVoiceOverTrigger && this.focusReturnEl) {
7341
+ const returnEl = this.focusReturnEl;
7342
+ setTimeout(() => returnEl.focus());
7343
+ }
7344
+ this.isVoiceOverTrigger = false;
7345
+ this.focusReturnEl = null;
7346
+ }
6885
7347
  /**
6886
7348
  * Preserves an unchanged mailto URL when the form edits are equivalent.
6887
7349
  *