@globalpayments/vega 2.98.0 → 2.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/dist/cjs/{accessibility-88f8af84.js → accessibility-6ca2a237.js} +21 -0
  2. package/dist/cjs/{action-color-accessibility-validator-24498816.js → action-color-accessibility-validator-b8a9ef0f.js} +2 -2
  3. package/dist/cjs/{app-globals-b3f05631.js → app-globals-48d067a7.js} +11 -10
  4. package/dist/cjs/{aria-attributes-value-mapper-9a41b9cf.js → aria-attributes-value-mapper-e8c6b0e0.js} +1 -1
  5. package/dist/cjs/{code-block-d78c2b2c.js → code-block-3b42c364.js} +95 -6
  6. package/dist/cjs/{component-global-style-slimmer-93c5fb50.js → component-global-style-slimmer-ba588eb4.js} +1 -1
  7. package/dist/cjs/{component-value-history-controller-slimmer.abstract-beb00fea.js → component-value-history-controller-slimmer.abstract-bbe3bcaf.js} +24 -5
  8. package/dist/cjs/{content-state-78a620a9.js → content-state-87a06c1a.js} +104 -8
  9. package/dist/cjs/{dark-mode-style-controller-32d4054a.js → dark-mode-style-controller-f3da3342.js} +2 -2
  10. package/dist/cjs/{date-required-rule-5250f26d.js → date-required-rule-45c802d3.js} +1 -1
  11. package/dist/cjs/{design-token-74674ee7.js → design-token-9d762da0.js} +3 -3
  12. package/dist/cjs/{element-appender-slimmer-597e9e48.js → element-appender-slimmer-f7ba5d9a.js} +2 -2
  13. package/dist/cjs/{form-field-controller-slimmer-a743be34.js → form-field-controller-slimmer-fbaddc91.js} +2 -2
  14. package/dist/cjs/{image-annotation-action-85c4bd83.js → image-annotation-action-03d3e01a.js} +7 -6
  15. package/dist/cjs/{image-extension-260fa69c.js → image-extension-ccda26d3.js} +2 -2
  16. package/dist/cjs/{index-592b4052.js → index-5d1adcd1.js} +86 -0
  17. package/dist/cjs/index.cjs.js +20 -19
  18. package/dist/cjs/{inject-keyboard-manager-6a6f5c9f.js → inject-keyboard-manager-540f0876.js} +1 -1
  19. package/dist/cjs/{internal-calendar-period-factory-dfcdd3f6.js → internal-calendar-period-factory-b11918ee.js} +1 -1
  20. package/dist/cjs/{internal-translation-controller-1dac2df8.js → internal-translation-controller-27bfc8c7.js} +17 -0
  21. package/dist/cjs/{keyboard-manager-c56033b1.js → keyboard-manager-16e96b62.js} +12 -5
  22. package/dist/cjs/{keyboard-manager-slimmer-7043a106.js → keyboard-manager-slimmer-0a4e556d.js} +1 -1
  23. package/dist/cjs/{link-extension-220ff6a9.js → link-extension-71eeaa9f.js} +26 -7
  24. package/dist/cjs/loader.cjs.js +14 -14
  25. package/dist/cjs/{month-view-generator-7b704a80.js → month-view-generator-0a3e04de.js} +1 -1
  26. package/dist/cjs/overlay-escape-coordination-901d8942.js +38 -0
  27. package/dist/cjs/{public-rules-5657bce4.js → public-rules-3dc5d02d.js} +9 -9
  28. package/dist/cjs/{range-c5afd53a.js → range-d29751e3.js} +1 -1
  29. package/dist/cjs/{responsive-format-facade-493d1763.js → responsive-format-facade-c6d7f0a1.js} +1 -1
  30. package/dist/cjs/{rich-text-editor-required-rule-385c1b61.js → rich-text-editor-required-rule-05de7f0c.js} +1 -1
  31. package/dist/cjs/{split-cell-operation-873d5db7.js → split-cell-operation-ef783850.js} +14 -4
  32. package/dist/cjs/{state-border-formatter-711c7aaa.js → state-border-formatter-dda9109a.js} +1 -1
  33. package/dist/cjs/{string-format-strategy.abstract-b61bdcbd.js → string-format-strategy.abstract-3a968a59.js} +1 -1
  34. package/dist/cjs/{string-input-formatter-slimmer-ef65cca7.js → string-input-formatter-slimmer-9747039f.js} +1 -1
  35. package/dist/cjs/{string-mask-strategy-ad3fa0ac.js → string-mask-strategy-d9f85c21.js} +2 -2
  36. package/dist/cjs/{style-formatter-8f711cb0.js → style-formatter-d21a9784.js} +2 -2
  37. package/dist/cjs/{time-required-rule-87417359.js → time-required-rule-580cbd3d.js} +1 -1
  38. package/dist/cjs/{token-extension-78b5a026.js → token-extension-8d7bd451.js} +3773 -252
  39. package/dist/cjs/{translation-slimmer-77c7f37d.js → translation-slimmer-31cd5a57.js} +1 -1
  40. package/dist/cjs/{type-guard-a57ef3ac.js → type-guard-00b8efc0.js} +1 -1
  41. package/dist/cjs/{valid-credit-card-number-rule-4c0a3040.js → valid-credit-card-number-rule-70885128.js} +1 -1
  42. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  43. package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-app-header-button.cjs.entry.js +6 -6
  45. package/dist/cjs/vega-banner.cjs.entry.js +1 -1
  46. package/dist/cjs/vega-box.cjs.entry.js +7 -7
  47. package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -2
  48. package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
  49. package/dist/cjs/vega-button-circle.cjs.entry.js +7 -7
  50. package/dist/cjs/vega-button-group_2.cjs.entry.js +13 -6
  51. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  52. package/dist/cjs/vega-button.cjs.entry.js +22 -6
  53. package/dist/cjs/vega-calendar_5.cjs.entry.js +22 -11
  54. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
  56. package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
  57. package/dist/cjs/vega-chip.cjs.entry.js +6 -6
  58. package/dist/cjs/vega-code-block.cjs.entry.js +12 -12
  59. package/dist/cjs/vega-color-picker.cjs.entry.js +4 -4
  60. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +4 -4
  61. package/dist/cjs/vega-color-swatch.cjs.entry.js +3 -3
  62. package/dist/cjs/vega-combo-box.cjs.entry.js +10 -10
  63. package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
  64. package/dist/cjs/vega-date-picker_2.cjs.entry.js +15 -15
  65. package/dist/cjs/vega-dialog_2.cjs.entry.js +72 -6
  66. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-dropdown_5.cjs.entry.js +116 -24
  68. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  69. package/dist/cjs/vega-field-label.cjs.entry.js +27 -34
  70. package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
  71. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  72. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  73. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  74. package/dist/cjs/vega-form.cjs.entry.js +2 -2
  75. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  76. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  77. package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
  78. package/dist/cjs/vega-input-credit-card.cjs.entry.js +7 -7
  79. package/dist/cjs/vega-input-numeric.cjs.entry.js +6 -6
  80. package/dist/cjs/vega-input-passcode.cjs.entry.js +6 -6
  81. package/dist/cjs/vega-input-phone-number.cjs.entry.js +42 -8
  82. package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
  83. package/dist/cjs/vega-input-select.cjs.entry.js +25 -8
  84. package/dist/cjs/vega-input.cjs.entry.js +9 -9
  85. package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
  86. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  87. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  88. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  89. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  90. package/dist/cjs/vega-popover_2.cjs.entry.js +58 -9
  91. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +4 -4
  92. package/dist/cjs/vega-radio_2.cjs.entry.js +7 -7
  93. package/dist/cjs/vega-rich-text-content.cjs.entry.js +44 -13
  94. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +767 -248
  95. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +3 -3
  96. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
  97. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +158 -105
  98. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +6 -6
  99. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
  100. package/dist/cjs/vega-sidenav_3.cjs.entry.js +4 -4
  101. package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
  102. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  103. package/dist/cjs/vega-tab-group_2.cjs.entry.js +22 -9
  104. package/dist/cjs/vega-table_11.cjs.entry.js +82 -46
  105. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  106. package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -11
  107. package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -4
  108. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  109. package/dist/cjs/vega.cjs.js +14 -14
  110. package/dist/collection/components/vega-button/vega-button.js +17 -2
  111. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +13 -6
  112. package/dist/collection/components/vega-button-link/vega-button-link.js +2 -2
  113. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +5 -2
  114. package/dist/collection/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.js +9 -1
  115. package/dist/collection/components/vega-code-block/vega-code-block.css +4 -4
  116. package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -2
  117. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-controller.js +148 -0
  118. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +5 -2
  119. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +17 -0
  120. package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +6 -4
  121. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +12 -4
  122. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.css +2 -1
  123. package/dist/collection/components/vega-dropdown/vega-dropdown.js +1 -1
  124. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.js +21 -30
  125. package/dist/collection/components/vega-field-label/vega-field-label.css +1 -0
  126. package/dist/collection/components/vega-field-label/vega-field-label.js +7 -5
  127. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +19 -2
  128. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +66 -0
  129. package/dist/collection/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.js +17 -0
  130. package/dist/collection/components/vega-popover/vega-popover.js +33 -1
  131. package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +4 -1
  132. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +25 -0
  133. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.js +13 -0
  134. package/dist/collection/components/vega-rich-text-editor/dto/actions/commit-value-action.js +20 -0
  135. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +2 -1
  136. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +22 -0
  137. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +10 -0
  138. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
  139. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +2 -1
  140. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +5 -2
  141. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +36 -2
  142. package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +6 -0
  143. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +8 -0
  144. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
  145. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +20 -3
  146. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +12 -0
  147. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +30 -18
  148. package/dist/collection/components/vega-rich-text-editor/extensions/block-boundary-registry.js +34 -0
  149. package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +1 -0
  150. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +1 -0
  151. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +1 -0
  152. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +20 -0
  153. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +51 -0
  154. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.js +2 -2
  155. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +3 -0
  156. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +3 -2
  157. package/dist/collection/components/vega-rich-text-editor/extensions/functions/constants.js +8 -0
  158. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +14 -3
  159. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +2 -1
  160. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +6 -0
  161. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.js +19 -0
  162. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +9 -5
  163. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +3 -3
  164. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +4 -2
  165. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +18 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +5 -2
  167. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +2 -1
  169. package/dist/collection/components/vega-rich-text-editor/extensions/functions/utils.js +36 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/renderers/horizontal-line-toolbar-button-renderer.js +1 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +1 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +5 -3
  173. package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.js +16 -0
  174. package/dist/collection/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.js +21 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.js +13 -0
  176. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.js +295 -0
  177. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.js +116 -0
  178. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +13 -4
  179. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +70 -7
  180. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.js +38 -0
  181. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.js +55 -0
  182. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.js +59 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.js +416 -0
  184. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.js +106 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.js +198 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.js +591 -0
  187. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.js +112 -0
  188. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.js +551 -0
  189. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.js +7 -0
  190. package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-toolbar-button-renderer.js +2 -0
  191. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +10 -0
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +3 -9
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +2 -2
  194. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +81 -1
  195. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.js +148 -0
  196. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +151 -5
  197. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +144 -2
  198. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +26 -1
  199. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
  200. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer.js +11 -2
  201. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +5 -2
  202. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-field-renderer.js +5 -1
  203. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.css +5 -0
  204. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.js +16 -1
  205. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +1 -0
  206. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +1 -0
  207. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +10 -9
  208. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +9 -8
  209. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +25 -10
  210. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +1 -0
  211. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.js +5 -4
  212. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.js +1 -1
  213. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +10 -0
  214. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +2 -0
  215. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +4 -2
  216. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +44 -0
  217. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -0
  218. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.js +70 -0
  219. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/type.js +1 -0
  220. package/dist/collection/components/vega-rich-text-editor/extensions/word-count/word-count-extension.js +62 -0
  221. package/dist/collection/components/vega-rich-text-editor/public-api.js +1 -0
  222. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
  223. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +7 -4
  224. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +17 -0
  225. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +18 -4
  226. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.js +2 -1
  227. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +21 -2
  228. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +7 -1
  229. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +52 -2
  230. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.js +79 -0
  231. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +6 -3
  232. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +2 -1
  233. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
  234. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +3 -2
  235. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +111 -2
  236. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +24 -6
  237. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
  238. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
  239. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +3 -2
  240. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +59 -8
  241. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +5 -2
  242. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.js +1 -1
  243. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +13 -1
  244. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +16 -0
  245. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +124 -0
  246. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +9 -1
  247. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +14 -7
  248. package/dist/collection/components/vega-tab-group/vega-tab-group.css +6 -0
  249. package/dist/collection/components/vega-tab-group/vega-tab-group.js +5 -0
  250. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +31 -1
  251. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +18 -11
  252. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  253. package/dist/collection/helpers/keyboard/keyboard-manager.js +11 -4
  254. package/dist/collection/helpers/keyboard/overlay-escape-coordination.js +33 -0
  255. package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +1 -1
  256. package/dist/collection/helpers/translation/locales/en.js +17 -0
  257. package/dist/collection/polyfill/libphonenumber/as-you-type.js +21 -3
  258. package/dist/collection/polyfill/libphonenumber/metadata.js +16 -0
  259. package/dist/collection/utils/accessibility.js +20 -0
  260. package/dist/collection/utils/sanitize/index.js +3 -2
  261. package/dist/collection/utils/sanitize/strategies/index.js +1 -0
  262. package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +14 -0
  263. package/dist/collection/utils/sanitize/strategies/plain-text-sanitize-strategy.js +70 -0
  264. package/dist/esm/{accessibility-6af5cf2e.js → accessibility-c899a968.js} +21 -1
  265. package/dist/esm/{action-color-accessibility-validator-ce55cb07.js → action-color-accessibility-validator-08877515.js} +2 -2
  266. package/dist/esm/{app-globals-95c7110a.js → app-globals-1e1371d5.js} +11 -10
  267. package/dist/esm/{aria-attributes-value-mapper-2c632641.js → aria-attributes-value-mapper-a5c7478e.js} +1 -1
  268. package/dist/esm/{aria-dialog-focusable-trap-slimmer-f069f54d.js → aria-dialog-focusable-trap-slimmer-b2a24a45.js} +2 -2
  269. package/dist/esm/{child-nodes-notify-observer-slimmer-499a3aa7.js → child-nodes-notify-observer-slimmer-034bc78c.js} +1 -1
  270. package/dist/esm/{code-block-9c513169.js → code-block-741d6b8e.js} +91 -9
  271. package/dist/esm/{component-global-style-slimmer-ac703085.js → component-global-style-slimmer-7d60a04a.js} +1 -1
  272. package/dist/esm/{component-value-history-controller-slimmer.abstract-9cef2a2a.js → component-value-history-controller-slimmer.abstract-2bcd749e.js} +26 -7
  273. package/dist/esm/{content-state-25c81c08.js → content-state-2f6f4204.js} +104 -11
  274. package/dist/esm/{dark-mode-style-controller-ca5afd2d.js → dark-mode-style-controller-352f15ff.js} +2 -2
  275. package/dist/esm/{date-required-rule-85334d0c.js → date-required-rule-2ea3aec8.js} +1 -1
  276. package/dist/esm/{design-token-10ff79b5.js → design-token-82a4e107.js} +3 -3
  277. package/dist/esm/{dom-node-subject-observer-factory-ddff8662.js → dom-node-subject-observer-factory-bb7e68a0.js} +1 -1
  278. package/dist/esm/{element-appender-slimmer-8a06ecdd.js → element-appender-slimmer-c820c0bf.js} +4 -4
  279. package/dist/esm/{event-emit-slimmer-2452278f.js → event-emit-slimmer-e8bb2292.js} +1 -1
  280. package/dist/esm/{form-field-controller-slimmer-68fc5380.js → form-field-controller-slimmer-02165dbe.js} +5 -5
  281. package/dist/esm/{image-annotation-action-d7f2aecc.js → image-annotation-action-972c1074.js} +8 -7
  282. package/dist/esm/{image-extension-fbd1ed6e.js → image-extension-59484e9a.js} +2 -2
  283. package/dist/esm/{index-3b327f29.js → index-35451d12.js} +86 -1
  284. package/dist/esm/index.js +21 -21
  285. package/dist/esm/{inject-keyboard-manager-ea1aad5b.js → inject-keyboard-manager-6a10c9b7.js} +1 -1
  286. package/dist/esm/{internal-calendar-period-factory-7b294fb6.js → internal-calendar-period-factory-d1a60f81.js} +1 -1
  287. package/dist/esm/{internal-translation-controller-fac22598.js → internal-translation-controller-fff376d2.js} +17 -0
  288. package/dist/esm/{keyboard-manager-50da85d7.js → keyboard-manager-a58288df.js} +13 -6
  289. package/dist/esm/{keyboard-manager-slimmer-1f7c8bfb.js → keyboard-manager-slimmer-133b86cd.js} +1 -1
  290. package/dist/esm/{link-extension-e8ee103e.js → link-extension-e89acb5c.js} +26 -7
  291. package/dist/esm/loader.js +16 -16
  292. package/dist/esm/{month-view-generator-a1a9a4ec.js → month-view-generator-20e32b22.js} +1 -1
  293. package/dist/esm/overlay-escape-coordination-439f7d6f.js +35 -0
  294. package/dist/esm/{public-rules-49de79c7.js → public-rules-c154201b.js} +11 -11
  295. package/dist/esm/{range-b678c693.js → range-c818a1eb.js} +2 -2
  296. package/dist/esm/{responsive-format-facade-f19b601c.js → responsive-format-facade-07843ec3.js} +1 -1
  297. package/dist/esm/{rich-text-editor-required-rule-578e0958.js → rich-text-editor-required-rule-878e91c6.js} +1 -1
  298. package/dist/esm/{split-cell-operation-1c8e7585.js → split-cell-operation-cc0cdf90.js} +15 -5
  299. package/dist/esm/{state-border-formatter-bfda33aa.js → state-border-formatter-3b3dcfe8.js} +1 -1
  300. package/dist/esm/{string-format-strategy.abstract-1f4ff1b3.js → string-format-strategy.abstract-44381dcb.js} +1 -1
  301. package/dist/esm/{string-input-formatter-slimmer-0006a107.js → string-input-formatter-slimmer-76fe52d3.js} +3 -3
  302. package/dist/esm/{string-mask-strategy-bbbcdbef.js → string-mask-strategy-999fba4b.js} +2 -2
  303. package/dist/esm/{style-formatter-e9adc8f4.js → style-formatter-c4192c99.js} +2 -2
  304. package/dist/esm/{sub-state-notify-slimmer-23b7d0e8.js → sub-state-notify-slimmer-e306c849.js} +1 -1
  305. package/dist/esm/{sub-state-observer-slimmer-722f6b92.js → sub-state-observer-slimmer-bd85f381.js} +2 -2
  306. package/dist/esm/{time-required-rule-1ce2d0a0.js → time-required-rule-0554b114.js} +1 -1
  307. package/dist/esm/{token-extension-f2d009e3.js → token-extension-35c66684.js} +3773 -253
  308. package/dist/esm/{translation-slimmer-ee0f0e76.js → translation-slimmer-77022f2e.js} +1 -1
  309. package/dist/esm/{type-guard-f2624334.js → type-guard-26d83e7e.js} +1 -1
  310. package/dist/esm/{ui-d73f756a.js → ui-80e610f4.js} +1 -1
  311. package/dist/esm/{valid-credit-card-number-rule-60212b1d.js → valid-credit-card-number-rule-f60b6904.js} +1 -1
  312. package/dist/esm/vega-accordion.entry.js +9 -9
  313. package/dist/esm/vega-app-footer.entry.js +5 -5
  314. package/dist/esm/vega-app-header-button.entry.js +9 -9
  315. package/dist/esm/vega-backdrop.entry.js +1 -1
  316. package/dist/esm/vega-banner.entry.js +4 -4
  317. package/dist/esm/vega-box.entry.js +8 -8
  318. package/dist/esm/vega-brand-logo.entry.js +2 -2
  319. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  320. package/dist/esm/vega-button-circle.entry.js +10 -10
  321. package/dist/esm/vega-button-group_2.entry.js +18 -11
  322. package/dist/esm/vega-button-link.entry.js +7 -7
  323. package/dist/esm/vega-button.entry.js +25 -9
  324. package/dist/esm/vega-calendar_5.entry.js +27 -16
  325. package/dist/esm/vega-card.entry.js +6 -6
  326. package/dist/esm/vega-carousel.entry.js +7 -7
  327. package/dist/esm/vega-checkbox_2.entry.js +9 -9
  328. package/dist/esm/vega-chip.entry.js +9 -9
  329. package/dist/esm/vega-code-block.entry.js +15 -15
  330. package/dist/esm/vega-color-picker.entry.js +8 -8
  331. package/dist/esm/vega-color-swatch-picker.entry.js +8 -8
  332. package/dist/esm/vega-color-swatch.entry.js +6 -6
  333. package/dist/esm/vega-combo-box.entry.js +14 -14
  334. package/dist/esm/vega-counter-badge.entry.js +2 -2
  335. package/dist/esm/vega-date-picker_2.entry.js +21 -21
  336. package/dist/esm/vega-dialog_2.entry.js +76 -10
  337. package/dist/esm/vega-divider.entry.js +5 -5
  338. package/dist/esm/vega-dropdown_5.entry.js +123 -31
  339. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  340. package/dist/esm/vega-field-label.entry.js +30 -37
  341. package/dist/esm/vega-file-uploader.entry.js +9 -9
  342. package/dist/esm/vega-flag-icon.entry.js +5 -5
  343. package/dist/esm/vega-flex.entry.js +7 -7
  344. package/dist/esm/vega-font.entry.js +6 -6
  345. package/dist/esm/vega-form.entry.js +8 -8
  346. package/dist/esm/vega-grid.entry.js +6 -6
  347. package/dist/esm/vega-icon.entry.js +7 -7
  348. package/dist/esm/vega-image-uploader.entry.js +12 -12
  349. package/dist/esm/vega-input-credit-card.entry.js +11 -11
  350. package/dist/esm/vega-input-numeric.entry.js +11 -11
  351. package/dist/esm/vega-input-passcode.entry.js +10 -10
  352. package/dist/esm/vega-input-phone-number.entry.js +46 -12
  353. package/dist/esm/vega-input-range.entry.js +9 -9
  354. package/dist/esm/vega-input-select.entry.js +29 -12
  355. package/dist/esm/vega-input.entry.js +14 -14
  356. package/dist/esm/vega-item-toggle.entry.js +3 -3
  357. package/dist/esm/vega-left-nav_5.entry.js +15 -15
  358. package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
  359. package/dist/esm/vega-page-notification_2.entry.js +3 -3
  360. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
  361. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
  362. package/dist/esm/vega-pagination.entry.js +7 -7
  363. package/dist/esm/vega-popover_2.entry.js +62 -13
  364. package/dist/esm/vega-progress-tracker_2.entry.js +9 -9
  365. package/dist/esm/vega-radio_2.entry.js +12 -12
  366. package/dist/esm/vega-rich-text-content.entry.js +48 -17
  367. package/dist/esm/vega-rich-text-editor_4.entry.js +774 -255
  368. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +6 -6
  369. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
  370. package/dist/esm/vega-rich-text-table-properties_3.entry.js +160 -107
  371. package/dist/esm/vega-segment-control.entry.js +3 -3
  372. package/dist/esm/vega-selection-chip_2.entry.js +11 -11
  373. package/dist/esm/vega-selection-tile_2.entry.js +9 -9
  374. package/dist/esm/vega-sidenav_3.entry.js +9 -9
  375. package/dist/esm/vega-signature-capture.entry.js +12 -12
  376. package/dist/esm/vega-stepper.entry.js +7 -7
  377. package/dist/esm/vega-tab-group_2.entry.js +25 -12
  378. package/dist/esm/vega-table_11.entry.js +59 -23
  379. package/dist/esm/vega-textarea.entry.js +7 -7
  380. package/dist/esm/vega-time-picker_2.entry.js +15 -15
  381. package/dist/esm/vega-toggle-switch.entry.js +8 -8
  382. package/dist/esm/vega-tooltip_2.entry.js +8 -8
  383. package/dist/esm/vega.js +16 -16
  384. package/dist/esm/{wait-for-component-did-render-ff7062aa.js → wait-for-component-did-render-9b91a826.js} +1 -1
  385. package/dist/sri/vega-sri-manifest.json +399 -395
  386. package/dist/types/components/vega-button/vega-button.d.ts +2 -0
  387. package/dist/types/components/vega-button-group/types.d.ts +12 -6
  388. package/dist/types/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.d.ts +2 -0
  389. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
  390. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +1 -1
  391. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.d.ts +3 -10
  392. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +8 -0
  393. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +33 -0
  394. package/dist/types/components/vega-modal/types.d.ts +2 -1
  395. package/dist/types/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.d.ts +9 -0
  396. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +22 -0
  397. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.d.ts +13 -0
  398. package/dist/types/components/vega-rich-text-editor/dto/actions/commit-value-action.d.ts +20 -0
  399. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +1 -0
  400. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +15 -0
  401. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +4 -0
  402. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
  403. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +1 -0
  404. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +3 -2
  405. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +25 -3
  406. package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +4 -0
  407. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +6 -0
  408. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +4 -0
  409. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +7 -0
  410. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +11 -0
  411. package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +5 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/block-boundary-registry.d.ts +21 -0
  413. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +19 -0
  415. package/dist/types/components/vega-rich-text-editor/extensions/functions/constants.d.ts +4 -0
  416. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +7 -0
  417. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +4 -0
  418. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.d.ts +8 -0
  419. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +6 -0
  420. package/dist/types/components/vega-rich-text-editor/extensions/functions/utils.d.ts +29 -0
  421. package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.d.ts +14 -1
  422. package/dist/types/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.d.ts +12 -0
  423. package/dist/types/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.d.ts +11 -0
  424. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.d.ts +136 -0
  425. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.d.ts +68 -0
  426. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +9 -4
  427. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +39 -2
  428. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.d.ts +29 -0
  429. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.d.ts +61 -0
  430. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.d.ts +45 -0
  431. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.d.ts +186 -0
  432. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.d.ts +51 -0
  433. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.d.ts +86 -0
  434. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.d.ts +271 -0
  435. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.d.ts +25 -0
  436. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.d.ts +240 -0
  437. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.d.ts +36 -0
  438. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +8 -0
  439. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +2 -2
  440. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +31 -1
  441. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.d.ts +91 -0
  442. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +46 -0
  443. package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +58 -0
  444. package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +8 -0
  445. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.d.ts +2 -1
  446. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.d.ts +2 -0
  447. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +3 -0
  448. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.d.ts +3 -1
  449. package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +1 -0
  450. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +2 -2
  451. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +19 -1
  452. package/dist/types/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.d.ts +38 -0
  453. package/dist/types/components/vega-rich-text-editor/extensions/word-count/type.d.ts +46 -0
  454. package/dist/types/components/vega-rich-text-editor/extensions/word-count/word-count-extension.d.ts +38 -0
  455. package/dist/types/components/vega-rich-text-editor/interface.d.ts +22 -0
  456. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
  457. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.d.ts +4 -1
  458. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +8 -0
  459. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +11 -1
  460. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.d.ts +40 -0
  461. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.d.ts +14 -0
  462. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +4 -1
  463. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +3 -2
  464. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +12 -0
  465. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +2 -0
  466. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -0
  467. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +68 -0
  468. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.d.ts +3 -0
  469. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +1 -0
  470. package/dist/types/components/vega-tab-group/types.d.ts +3 -1
  471. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
  472. package/dist/types/components/vega-table/interface.d.ts +4 -4
  473. package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +16 -0
  474. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +8 -10
  475. package/dist/types/helpers/keyboard/keyboard-manager.d.ts +9 -0
  476. package/dist/types/helpers/keyboard/overlay-escape-coordination.d.ts +28 -0
  477. package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +1 -1
  478. package/dist/types/helpers/translation/interface.d.ts +18 -1
  479. package/dist/types/polyfill/libphonenumber/as-you-type.d.ts +1 -0
  480. package/dist/types/polyfill/libphonenumber/metadata.d.ts +10 -0
  481. package/dist/types/types/public-api.d.ts +2 -0
  482. package/dist/types/utils/accessibility.d.ts +9 -0
  483. package/dist/types/utils/sanitize/index.d.ts +3 -2
  484. package/dist/types/utils/sanitize/strategies/index.d.ts +1 -0
  485. package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +9 -0
  486. package/dist/types/utils/sanitize/strategies/plain-text-sanitize-strategy.d.ts +36 -0
  487. package/dist/vega/index.esm.js +1 -1
  488. package/dist/vega/{p-6f537797.entry.js → p-01ca92e6.entry.js} +1 -1
  489. package/dist/vega/{p-02d3ce79.entry.js → p-02b5d4ac.entry.js} +1 -1
  490. package/dist/vega/p-06a42a9f.entry.js +1 -0
  491. package/dist/vega/{p-fd23c365.entry.js → p-0cd362f3.entry.js} +1 -1
  492. package/dist/vega/p-0e10798b.entry.js +1 -0
  493. package/dist/vega/{p-2c2e8615.js → p-0eea1ca8.js} +1 -1
  494. package/dist/vega/{p-c98c2f5f.entry.js → p-0f344e02.entry.js} +1 -1
  495. package/dist/vega/{p-4cbfc01e.entry.js → p-23db0a92.entry.js} +1 -1
  496. package/dist/vega/{p-ccbe3f1b.entry.js → p-284a8828.entry.js} +1 -1
  497. package/dist/vega/{p-ac94ba1b.entry.js → p-2b26e182.entry.js} +1 -1
  498. package/dist/vega/{p-56598858.entry.js → p-2c8dc0d2.entry.js} +1 -1
  499. package/dist/vega/{p-2bb5a232.js → p-3091b105.js} +1 -1
  500. package/dist/vega/{p-9abf7d0a.entry.js → p-35d37477.entry.js} +1 -1
  501. package/dist/vega/{p-526e3634.js → p-36a57431.js} +1 -1
  502. package/dist/vega/{p-810c9c29.js → p-379736e2.js} +1 -1
  503. package/dist/vega/p-3abb793c.entry.js +1 -0
  504. package/dist/vega/{p-f29ea345.entry.js → p-3d6a43df.entry.js} +1 -1
  505. package/dist/vega/{p-c2277448.entry.js → p-3f2a4b34.entry.js} +1 -1
  506. package/dist/vega/p-401c6764.js +1 -0
  507. package/dist/vega/{p-da867019.entry.js → p-411cadbc.entry.js} +1 -1
  508. package/dist/vega/{p-ec64cc59.entry.js → p-46f22f6c.entry.js} +1 -1
  509. package/dist/vega/{p-8d2501b2.js → p-493108d5.js} +1 -1
  510. package/dist/vega/{p-085d1647.entry.js → p-49de5559.entry.js} +1 -1
  511. package/dist/vega/{p-781b7a54.js → p-4b35c748.js} +1 -1
  512. package/dist/vega/{p-a8174ad8.entry.js → p-4d1896e0.entry.js} +1 -1
  513. package/dist/vega/{p-b00ec194.entry.js → p-4e23e56c.entry.js} +1 -1
  514. package/dist/vega/{p-1cff027b.entry.js → p-5006404e.entry.js} +1 -1
  515. package/dist/vega/{p-56417ec5.entry.js → p-5789690b.entry.js} +1 -1
  516. package/dist/vega/{p-461100b8.entry.js → p-594cb986.entry.js} +1 -1
  517. package/dist/vega/p-5a086e93.js +1 -0
  518. package/dist/vega/{p-3e09aeed.js → p-5b3c8a56.js} +1 -1
  519. package/dist/vega/p-5b9b1631.entry.js +1 -0
  520. package/dist/vega/{p-c41a2d4a.js → p-5c3649f9.js} +1 -1
  521. package/dist/vega/{p-fb9475ab.entry.js → p-5d9be870.entry.js} +1 -1
  522. package/dist/vega/p-5f377954.js +1 -1
  523. package/dist/vega/{p-d609c3fd.js → p-60a74fb7.js} +1 -1
  524. package/dist/vega/{p-2acf9b42.entry.js → p-61ed7268.entry.js} +1 -1
  525. package/dist/vega/p-6336d446.entry.js +1 -0
  526. package/dist/vega/{p-dbb4b1d1.js → p-638b6a7d.js} +1 -1
  527. package/dist/vega/{p-bdb5180c.js → p-68744e7e.js} +1 -1
  528. package/dist/vega/p-6e9e7131.js +1 -0
  529. package/dist/vega/{p-014cd411.js → p-6eedbc4f.js} +1 -1
  530. package/dist/vega/{p-a090b2be.js → p-6fd8f14b.js} +1 -1
  531. package/dist/vega/{p-0cf3b5c1.entry.js → p-7469d0d1.entry.js} +1 -1
  532. package/dist/vega/p-74b20563.entry.js +1 -0
  533. package/dist/vega/{p-17c69503.entry.js → p-76999ea1.entry.js} +1 -1
  534. package/dist/vega/p-77bcdd35.js +1 -0
  535. package/dist/vega/{p-035e2f05.entry.js → p-79b49e8d.entry.js} +1 -1
  536. package/dist/vega/{p-8d96f0e8.entry.js → p-7a03ef96.entry.js} +1 -1
  537. package/dist/vega/{p-c5fb8a69.entry.js → p-7ae4cf82.entry.js} +1 -1
  538. package/dist/vega/{p-f9bfee81.entry.js → p-7cc8855d.entry.js} +1 -1
  539. package/dist/vega/{p-d470fce2.entry.js → p-7ddc0bec.entry.js} +1 -1
  540. package/dist/vega/{p-ca3c1317.entry.js → p-7e22610b.entry.js} +1 -1
  541. package/dist/vega/p-7f395622.entry.js +1 -0
  542. package/dist/vega/{p-3737b9e2.entry.js → p-816b5fd2.entry.js} +1 -1
  543. package/dist/vega/p-8387896e.js +1 -0
  544. package/dist/vega/p-844ad6aa.entry.js +1 -0
  545. package/dist/vega/p-853a05eb.js +1 -0
  546. package/dist/vega/p-85de755f.js +1 -0
  547. package/dist/vega/p-8663314e.js +1 -0
  548. package/dist/vega/{p-95c18f79.entry.js → p-86fb46d2.entry.js} +1 -1
  549. package/dist/vega/p-8cfdd0e8.entry.js +1 -0
  550. package/dist/vega/p-8ebe30a8.js +1 -0
  551. package/dist/vega/p-8f00dfe6.js +1 -0
  552. package/dist/vega/{p-66647244.js → p-8fc0a820.js} +1 -1
  553. package/dist/vega/{p-4fd0cf01.js → p-9034f709.js} +1 -1
  554. package/dist/vega/{p-456f678b.js → p-941a83db.js} +1 -1
  555. package/dist/vega/{p-ae2abdfa.js → p-96c090c4.js} +1 -1
  556. package/dist/vega/p-9ba2fdff.js +1 -0
  557. package/dist/vega/{p-d319ebb5.js → p-9e9f49f4.js} +1 -1
  558. package/dist/vega/p-9efa5d76.js +1 -0
  559. package/dist/vega/{p-a81ad3bd.js → p-a306bb39.js} +1 -1
  560. package/dist/vega/{p-db11134b.entry.js → p-a48468b5.entry.js} +1 -1
  561. package/dist/vega/{p-56db3323.js → p-a488447f.js} +1 -1
  562. package/dist/vega/p-a647c856.entry.js +1 -0
  563. package/dist/vega/{p-a484e32d.entry.js → p-a6a89f09.entry.js} +1 -1
  564. package/dist/vega/p-a92cd703.js +1 -0
  565. package/dist/vega/p-a93b3aed.js +1 -0
  566. package/dist/vega/{p-528748fa.js → p-aa135628.js} +1 -1
  567. package/dist/vega/{p-4bfe3258.entry.js → p-aaaf21eb.entry.js} +1 -1
  568. package/dist/vega/{p-36d9e782.entry.js → p-ab253867.entry.js} +1 -1
  569. package/dist/vega/{p-dcd3e3a7.js → p-ab9d53e9.js} +1 -1
  570. package/dist/vega/p-ad367b48.entry.js +1 -0
  571. package/dist/vega/{p-e18c0656.entry.js → p-af0cfea0.entry.js} +1 -1
  572. package/dist/vega/p-b07f587a.entry.js +1 -0
  573. package/dist/vega/p-b21cc390.entry.js +1 -0
  574. package/dist/vega/{p-12e8a1b2.js → p-b2a4314a.js} +1 -1
  575. package/dist/vega/p-b52d7724.js +3 -0
  576. package/dist/vega/{p-5f96e741.entry.js → p-b97ed9f7.entry.js} +1 -1
  577. package/dist/vega/{p-7dcd2850.entry.js → p-bc0e5598.entry.js} +1 -1
  578. package/dist/vega/p-bc119e75.entry.js +1 -0
  579. package/dist/vega/{p-0cbf09f7.entry.js → p-bedb575c.entry.js} +1 -1
  580. package/dist/vega/{p-cb81126a.entry.js → p-bfe5dff7.entry.js} +1 -1
  581. package/dist/vega/{p-52c69f9e.entry.js → p-c032f626.entry.js} +1 -1
  582. package/dist/vega/{p-1ea9ad9a.js → p-c34f4cbc.js} +1 -1
  583. package/dist/vega/{p-72ab5cd5.entry.js → p-c422ee02.entry.js} +1 -1
  584. package/dist/vega/{p-39c5054b.js → p-c576e846.js} +1 -1
  585. package/dist/vega/{p-c70748f7.entry.js → p-c7d46740.entry.js} +1 -1
  586. package/dist/vega/p-cc569b54.js +1 -0
  587. package/dist/vega/{p-4e065ef7.entry.js → p-cd04b149.entry.js} +1 -1
  588. package/dist/vega/{p-2a245138.entry.js → p-cd0a108b.entry.js} +1 -1
  589. package/dist/vega/{p-8c56d74d.entry.js → p-d1bb6e7a.entry.js} +1 -1
  590. package/dist/vega/{p-200c8914.entry.js → p-d340ee3d.entry.js} +1 -1
  591. package/dist/vega/p-d897acd5.js +1 -0
  592. package/dist/vega/p-debf9e06.entry.js +1 -0
  593. package/dist/vega/p-e0a51e49.js +1 -0
  594. package/dist/vega/{p-1aedbfd2.entry.js → p-e11c6ec4.entry.js} +1 -1
  595. package/dist/vega/{p-1e0a8fd3.js → p-e14323f3.js} +1 -1
  596. package/dist/vega/{p-6d4518d7.entry.js → p-e5abc288.entry.js} +1 -1
  597. package/dist/vega/{p-544ce391.entry.js → p-ea1a0046.entry.js} +1 -1
  598. package/dist/vega/{p-72fd17a1.entry.js → p-edd7aa92.entry.js} +1 -1
  599. package/dist/vega/p-ef1bbf14.js +1 -0
  600. package/dist/vega/{p-9834d5d4.entry.js → p-efc08027.entry.js} +1 -1
  601. package/dist/vega/{p-874e5624.js → p-f485448a.js} +1 -1
  602. package/dist/vega/{p-92528dc9.entry.js → p-f8b2dbb9.entry.js} +1 -1
  603. package/dist/vega/{p-cf4b3d40.entry.js → p-f8bf379c.entry.js} +1 -1
  604. package/dist/vega/{p-b98ead05.entry.js → p-f902305d.entry.js} +1 -1
  605. package/dist/vega/p-fe985b52.js +1 -0
  606. package/dist/vega/vega.esm.js +1 -1
  607. package/package.json +1 -1
  608. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-conttroller.js +0 -85
  609. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +0 -6
  610. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +0 -6
  611. package/dist/vega/p-03eeadc1.entry.js +0 -1
  612. package/dist/vega/p-0eb29065.js +0 -3
  613. package/dist/vega/p-10d30c03.js +0 -1
  614. package/dist/vega/p-1250b1ab.entry.js +0 -1
  615. package/dist/vega/p-1abd3c17.js +0 -1
  616. package/dist/vega/p-2d158cbd.js +0 -1
  617. package/dist/vega/p-2f07d719.entry.js +0 -1
  618. package/dist/vega/p-36d2df7a.entry.js +0 -1
  619. package/dist/vega/p-373541fa.js +0 -1
  620. package/dist/vega/p-3a620268.js +0 -1
  621. package/dist/vega/p-3d0b4074.js +0 -1
  622. package/dist/vega/p-56493601.js +0 -1
  623. package/dist/vega/p-571ec00b.js +0 -1
  624. package/dist/vega/p-585e4f1c.entry.js +0 -1
  625. package/dist/vega/p-5b1f5e4a.entry.js +0 -1
  626. package/dist/vega/p-6234852e.entry.js +0 -1
  627. package/dist/vega/p-67eaf77e.js +0 -1
  628. package/dist/vega/p-6c95a6a3.js +0 -1
  629. package/dist/vega/p-6fd4f2c6.js +0 -1
  630. package/dist/vega/p-7e8fdac4.js +0 -1
  631. package/dist/vega/p-83ad8988.js +0 -1
  632. package/dist/vega/p-94975537.entry.js +0 -1
  633. package/dist/vega/p-a91927eb.entry.js +0 -1
  634. package/dist/vega/p-b3733762.entry.js +0 -1
  635. package/dist/vega/p-b622c455.js +0 -1
  636. package/dist/vega/p-c6d775b8.entry.js +0 -1
  637. package/dist/vega/p-cd69aeae.js +0 -1
  638. package/dist/vega/p-cfe268a8.entry.js +0 -1
  639. package/dist/vega/p-daba4af1.js +0 -1
  640. package/dist/vega/p-de8f0d98.js +0 -1
  641. package/dist/vega/p-f0e828d8.js +0 -1
  642. package/dist/vega/p-f62c5a20.entry.js +0 -1
  643. package/dist/vega/p-f6c0e9e7.entry.js +0 -1
  644. package/dist/vega/p-fa65956c.entry.js +0 -1
  645. /package/dist/types/components/vega-dropdown/slimmers/controllers/{vega-dropdown-keyboard-conttroller.d.ts → vega-dropdown-keyboard-controller.d.ts} +0 -0
@@ -6,7 +6,7 @@ import { RowOperationEventHandler } from '../setting-event-handlers/row-operatio
6
6
  import { CaptionOperationEventHandler } from '../setting-event-handlers/caption-operation';
7
7
  import { ColumnOperationEventHandler } from '../setting-event-handlers/column-operation';
8
8
  import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
9
- import { VegaPopoverShow } from '../../../../../helpers/event-manager/event-id/vega-event-id';
9
+ import { VegaPopoverShow, VegaPopoverHide, } from '../../../../../helpers/event-manager/event-id/vega-event-id';
10
10
  import { TableDynamicPopoverRenderer } from './table-dynamic-popover-renderer';
11
11
  import { MergeCellsOperationEventHandler } from '../setting-event-handlers/merge-cells-operation';
12
12
  import { SplitCellOperationEventHandler } from '../setting-event-handlers/split-cell-operation';
@@ -57,6 +57,62 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
57
57
  this.tableSettingRef.selectedCells = this.getTableSelectedCells();
58
58
  }
59
59
  };
60
+ /**
61
+ * Hides the table setting toolbar and its dynamic popover. Used when focus leaves the table (e.g.
62
+ * Escape moves focus from a cell back onto the table) so the contextual toolbar does not linger.
63
+ */
64
+ this.hide = () => {
65
+ var _a;
66
+ void this.tableDynamicPopover.hide();
67
+ void ((_a = this.popoverRef) === null || _a === void 0 ? void 0 : _a.hide());
68
+ };
69
+ /**
70
+ * Opens the table setting toolbar for keyboard/screen-reader users and moves focus to its first
71
+ * enabled button. Used by the Alt+F10 shortcut so the toolbar can be reached from inside a cell
72
+ * even when it is currently closed: it re-targets and shows the popover (the same path as a table
73
+ * click) before deferring focus to the first enabled button.
74
+ *
75
+ * @param {RTETableBlock} tableBlock - The table's block data.
76
+ * @param {() => HTMLElement} getTableRef - Getter for the table's DOM element.
77
+ * @param {Nullable<HTMLElement>} returnCell - The cell to return focus to if the toolbar is dismissed with Escape.
78
+ */
79
+ this.openSettingToolbarForKeyboard = (tableBlock, getTableRef, returnCell) => {
80
+ // Re-target and show the popover through the same path as a table click so the toolbar is
81
+ // actually visible before focus lands on it — otherwise focus would be pushed onto a hidden
82
+ // or stale toolbar that isn't shown.
83
+ this.reTarget(tableBlock, getTableRef);
84
+ void this.tableDynamicPopover.hide();
85
+ remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), getTableRef());
86
+ void this.popoverRef.show(true);
87
+ this.focusFirstSettingButton(returnCell);
88
+ };
89
+ /**
90
+ * Moves focus to the first enabled button in the table setting toolbar. Used by the Alt+F10
91
+ * shortcut so keyboard and screen-reader users can reach the toolbar from inside the table.
92
+ *
93
+ * @param {Nullable<HTMLElement>} returnCell - The cell to return focus to if the toolbar is dismissed with Escape.
94
+ */
95
+ this.focusFirstSettingButton = (returnCell) => {
96
+ var _a, _b;
97
+ // Remember the cell to return focus to if the toolbar is dismissed with Escape, and clear any
98
+ // stale Escape recorded before the toolbar was focused.
99
+ this.beginReturnFocusTracking(returnCell);
100
+ // Safari VoiceOver ignores the toolbar's aria-modal and keeps driving a caret through the still
101
+ // editable content, so on Ctrl+Opt+Right it walks the DOM caret out of the table into the editor
102
+ // instead of staying on the toolbar. Clear the caret AND make the editor content inert so there is
103
+ // no text context for VoiceOver to advance; the inert flag is lifted again when the toolbar hides.
104
+ (_b = (_a = this.getTableExtensionContext()) === null || _a === void 0 ? void 0 : _a.getSelection()) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
105
+ this.setEditorContentInert(true);
106
+ // The popover reveals its content asynchronously, so defer to the next tick to make sure
107
+ // the setting buttons are present and focusable.
108
+ // eslint-disable-next-line no-restricted-globals
109
+ setTimeout(() => {
110
+ var _a, _b, _c;
111
+ const buttons = Array.from((_c = (_b = (_a = this.tableSettingRef) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelectorAll('.rte-table-setting-item')) !== null && _c !== void 0 ? _c : []);
112
+ const firstEnabled = buttons.find((button) => !button.hasAttribute('disabled'));
113
+ firstEnabled === null || firstEnabled === void 0 ? void 0 : firstEnabled.focus();
114
+ }, 0);
115
+ };
60
116
  /**
61
117
  * Handles setting menu click events.
62
118
  *
@@ -69,11 +125,16 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
69
125
  extensionContext && handler.execute(event.detail, extensionContext, this.tableBlock);
70
126
  if (event.detail[0] === TableSettingType.CAPTION) {
71
127
  this.updateTableSettingCaption();
128
+ this.moveFocusToCaption();
72
129
  }
73
130
  }
74
131
  if (event.detail[0] === TableSettingType.TABLE || event.detail[0] === TableSettingType.CELL) {
132
+ // Capture the return cell before hiding the setting popover, whose own hide handler clears
133
+ // it, so the properties dialog can move focus into itself and restore it to the cell on
134
+ // Escape for keyboard/screen-reader users.
135
+ const returnCell = this.returnFocusCell;
75
136
  void this.popoverRef.hide();
76
- void this.tableDynamicPopover.show(event.detail[0]);
137
+ void this.tableDynamicPopover.show(event.detail[0], returnCell);
77
138
  }
78
139
  };
79
140
  /**
@@ -81,6 +142,17 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
81
142
  */
82
143
  this.handleTableSettingPopoverShow = () => {
83
144
  this.syncSelectedCells();
145
+ this.labelSettingDialog();
146
+ };
147
+ /**
148
+ * When the setting popover hides after an Escape press, returns focus (and the caret) to the
149
+ * table cell that had focus before the toolbar was reached via Alt+F10.
150
+ */
151
+ this.handleTableSettingPopoverHide = () => {
152
+ // Lift the inert guard on the editor content synchronously, before any focus restore runs, so the
153
+ // cell (or the properties dialog) can receive focus and the editor is interactive again.
154
+ this.setEditorContentInert(false);
155
+ this.restoreFocusOnEscapeHide();
84
156
  };
85
157
  this.tableDynamicPopover = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), renderContext);
86
158
  }
@@ -89,6 +161,8 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
89
161
  */
90
162
  destroy() {
91
163
  this.tableDynamicPopover.destroy();
164
+ this.setEditorContentInert(false);
165
+ this.detachEscapeTracker();
92
166
  if (this.popoverContainer) {
93
167
  this.popoverContainer.remove();
94
168
  }
@@ -109,6 +183,10 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
109
183
  popover.isScreenPosition = true;
110
184
  popover.className = 'rte-table-setting-popover';
111
185
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
186
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverHide, this.handleTableSettingPopoverHide);
187
+ // Escape inside the popover (rendered in a portal) does not bubble back to the table, so
188
+ // observe it on the document (capture phase) to know when to return focus to the cell.
189
+ this.attachEscapeTracker(safeDocument);
112
190
  const slotDiv = safeDocument.createElement('div');
113
191
  slotDiv.setAttribute('slot', 'popover');
114
192
  const tableSetting = safeDocument.createElement('vega-rich-text-table-setting');
@@ -121,6 +199,25 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
121
199
  this.tableSettingRef = tableSetting;
122
200
  }
123
201
  }
202
+ /**
203
+ * Whether the given event originated inside the setting toolbar subtree.
204
+ *
205
+ * @param {Event} event - The event to test.
206
+ * @returns {boolean} `true` when the toolbar is rendered and the event's composed path includes it.
207
+ */
208
+ isEventWithinPopover(event) {
209
+ return !!this.tableSettingRef && event.composedPath().includes(this.tableSettingRef);
210
+ }
211
+ /**
212
+ * Resolves the `.rich-text-content` editor root from the setting toolbar's target so the content
213
+ * can be made inert while the toolbar holds keyboard/VoiceOver focus.
214
+ *
215
+ * @returns {Nullable<HTMLElement>} The editor content element, or `null` when it cannot be resolved.
216
+ */
217
+ getInertContentTarget() {
218
+ var _a, _b, _c;
219
+ return (_c = (_b = (_a = this.tableSettingRef) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.closest('.rich-text-content')) !== null && _c !== void 0 ? _c : null;
220
+ }
124
221
  /**
125
222
  * Updates the table setting component caption state to match the current table data.
126
223
  */
@@ -130,6 +227,35 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
130
227
  this.tableSettingRef.hasCaption = hasCaption;
131
228
  }
132
229
  }
230
+ /**
231
+ * When the caption is toggled on, moves keyboard/VoiceOver focus and the caret into the caption so
232
+ * the user lands in it to start typing. The setting toolbar is opened as inert-guarded for
233
+ * keyboard/screen-reader users, so lift that guard first; the caption is re-rendered by the toggle,
234
+ * so defer the focus to the next tick when the `<caption>` element exists.
235
+ */
236
+ moveFocusToCaption() {
237
+ if (!this.tableBlock.hasCaption()) {
238
+ return;
239
+ }
240
+ this.setEditorContentInert(false);
241
+ // eslint-disable-next-line no-restricted-globals
242
+ setTimeout(() => {
243
+ var _a, _b, _c, _d, _e, _f, _g;
244
+ const caption = (_c = (_b = (_a = this.tableSettingRef) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.querySelector('caption')) !== null && _c !== void 0 ? _c : null;
245
+ if (!caption) {
246
+ return;
247
+ }
248
+ caption.focus();
249
+ const selection = (_g = (_e = (_d = this.getTableExtensionContext()) === null || _d === void 0 ? void 0 : _d.getSelection()) !== null && _e !== void 0 ? _e : (_f = caption.ownerDocument) === null || _f === void 0 ? void 0 : _f.getSelection()) !== null && _g !== void 0 ? _g : null;
250
+ if (selection) {
251
+ const range = new Range();
252
+ range.selectNodeContents(caption);
253
+ range.collapse(false);
254
+ selection.removeAllRanges();
255
+ selection.addRange(range);
256
+ }
257
+ }, 0);
258
+ }
133
259
  /**
134
260
  * Re-targets the shared popovers to the given table.
135
261
  *
@@ -144,6 +270,22 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
144
270
  this.tableDynamicPopover.reTarget(tableBlock, getTableRef);
145
271
  }
146
272
  }
273
+ /**
274
+ * `vega-popover-content-box` renders `role="dialog"` + `aria-modal="true"`, which on WebKit
275
+ * VoiceOver confines the reading cursor to the popover. Keep those semantics so Ctrl+Opt+Arrow
276
+ * cannot walk the VoiceOver cursor out of the toolbar past the last button (VoiceOver swallows
277
+ * those keys, so this cannot be trapped in JS), and give the dialog an accessible name so it
278
+ * announces "Table tools" on entry.
279
+ */
280
+ labelSettingDialog() {
281
+ var _a, _b;
282
+ const dialog = (_b = (_a = this.tableSettingRef) === null || _a === void 0 ? void 0 : _a.closest('vega-popover-content-box')) !== null && _b !== void 0 ? _b : null;
283
+ if (dialog) {
284
+ dialog.setAttribute('role', 'dialog');
285
+ dialog.setAttribute('aria-modal', 'true');
286
+ dialog.setAttribute('aria-label', 'Table tools');
287
+ }
288
+ }
147
289
  /**
148
290
  * Collects and returns the currently selected table cells.
149
291
  *
@@ -366,11 +366,36 @@ export class RTETableSelection {
366
366
  const commonAncestorContainer = range.commonAncestorContainer;
367
367
  const rangeInTable = !!findParent(commonAncestorContainer, `table`);
368
368
  if (rangeInTable) {
369
- const selectedCells = this.filterSelectedCell(range, commonAncestorContainer);
369
+ let selectedCells = this.filterSelectedCell(range, commonAncestorContainer);
370
+ if (selectedCells.length === 0) {
371
+ // A collapsed caret placed at an element boundary (e.g. keyboard/VoiceOver entry via
372
+ // Ctrl+Option+Space) does not intersect a text node, so filterSelectedCell finds nothing
373
+ // on browsers that keep the caret on the element (Firefox) instead of normalizing it into
374
+ // the text node (Chrome). Resolve the containing cell directly so the setting toolbar is
375
+ // still enabled.
376
+ selectedCells = this.resolveCaretCell(commonAncestorContainer);
377
+ }
370
378
  this.setSelectedCells(selectedCells);
371
379
  }
372
380
  }
373
381
  }
382
+ /**
383
+ * Resolve the single table cell that contains the given selection node. Used as a fallback when a
384
+ * collapsed caret does not intersect any text node (see handleSelectionChange).
385
+ *
386
+ * @param {Node} node - The selection's common ancestor container.
387
+ * @returns {RTETableCellBlock[]} The containing cell block, or an empty list when none is found.
388
+ */
389
+ resolveCaretCell(node) {
390
+ var _a;
391
+ const startElement = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
392
+ const cellRef = (_a = startElement === null || startElement === void 0 ? void 0 : startElement.closest('td, th')) !== null && _a !== void 0 ? _a : null;
393
+ if (!cellRef) {
394
+ return [];
395
+ }
396
+ const cellBlock = stateEntityRenderingRegistry.getEntityByDOM(cellRef);
397
+ return cellBlock ? [cellBlock] : [];
398
+ }
374
399
  /**
375
400
  * Mark the beginning of a drag operation.
376
401
  */
@@ -18,6 +18,7 @@ export class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer
18
18
  return createTablePopoverRenderer.render(h, super.renderButton(h, editorContext, {
19
19
  showArrowIcon: true,
20
20
  icon: 'rte-table',
21
+ ariaLabel: 'Table',
21
22
  tooltip: { text: 'Insert table' },
22
23
  }));
23
24
  }
@@ -76,8 +76,17 @@ export class VegaRichTextCellPropertiesFormFieldRenderer extends VegaRichTextTab
76
76
  return (h("div", { class: "text-alignment-container" },
77
77
  h("vega-font", { variant: "font-field-label", color: "text-primary" }, "Text Alignment"),
78
78
  h("vega-flex", { direction: "row", gap: "size-16" },
79
- this.renderAlignmentField(['left', 'center', 'right', 'justify'], 'align-', 'textAlign'),
80
- this.renderAlignmentField(['top', 'middle', 'bottom'], 'align-', 'verticalAlign'))));
79
+ this.renderAlignmentField(['left', 'center', 'right', 'justify'], 'align-', 'textAlign', {
80
+ left: this.translationSlimmer.t('Align text left'),
81
+ center: this.translationSlimmer.t('Align text center'),
82
+ right: this.translationSlimmer.t('Align text right'),
83
+ justify: this.translationSlimmer.t('Justify text'),
84
+ }),
85
+ this.renderAlignmentField(['top', 'middle', 'bottom'], 'align-', 'verticalAlign', {
86
+ top: this.translationSlimmer.t('Align vertically top'),
87
+ middle: this.translationSlimmer.t('Align vertically middle'),
88
+ bottom: this.translationSlimmer.t('Align vertically bottom'),
89
+ }))));
81
90
  }
82
91
  /**
83
92
  * Merge form data with style map for all selected cell blocks.
@@ -182,11 +182,11 @@ export class VegaRichTextTablePropertiesBaseFormFieldRenderer extends VegaSlimme
182
182
  h("vega-input", { ref: this.handleFormChange, "data-vega-form": "height", label: "Height", validationRules: this.dimensionFieldValidationRule }),
183
183
  withPadding && (h("vega-input", { ref: this.handleFormChange, "data-vega-form": "padding", label: "Padding", validationRules: this.dimensionFieldValidationRule }))));
184
184
  }
185
- renderAlignmentField(alignmentList, iconPrefix, formFieldName) {
185
+ renderAlignmentField(alignmentList, iconPrefix, formFieldName, ariaLabelMap) {
186
186
  return (h("vega-flex", { direction: "row", gap: "0", class: "text-alignment-button-group" },
187
187
  h("vega-input", { ref: this.handleFormChange, "data-vega-form": formFieldName, type: "hidden" }),
188
188
  alignmentList.map((key) => {
189
- return (h("button", { "data-id": key, "data-form-field-name": formFieldName, class: `text-alignment-${key}`, onClick: this.handleAlignmentButtonClick },
189
+ return (h("button", { "data-id": key, "data-form-field-name": formFieldName, class: `text-alignment-${key}`, "aria-label": ariaLabelMap[key], onClick: this.handleAlignmentButtonClick },
190
190
  h("vega-icon", { icon: VegaInternalIconManager.getIconKey(`${iconPrefix}${key}`) })));
191
191
  })));
192
192
  }
@@ -274,6 +274,9 @@ __decorate([
274
274
  __decorate([
275
275
  MapToComponentField()
276
276
  ], VegaRichTextTablePropertiesBaseFormFieldRenderer.prototype, "defaultValue", void 0);
277
+ __decorate([
278
+ MapToComponentField()
279
+ ], VegaRichTextTablePropertiesBaseFormFieldRenderer.prototype, "translationSlimmer", void 0);
277
280
  __decorate([
278
281
  MapToComponentField()
279
282
  ], VegaRichTextTablePropertiesBaseFormFieldRenderer.prototype, "renderer", void 0);
@@ -53,6 +53,10 @@ export class VegaRichTextTablePropertiesFormFieldRenderer extends VegaRichTextTa
53
53
  renderTextAlignmentField() {
54
54
  return (h("div", { class: "text-alignment-container" },
55
55
  h("vega-font", { variant: "font-field-label", color: "text-primary" }, "Alignment"),
56
- h("vega-flex", { direction: "row", gap: "size-16" }, this.renderAlignmentField(['left', 'center', 'right'], 'objects-align-', 'textAlign'))));
56
+ h("vega-flex", { direction: "row", gap: "size-16" }, this.renderAlignmentField(['left', 'center', 'right'], 'objects-align-', 'textAlign', {
57
+ left: this.translationSlimmer.t('Align table left'),
58
+ center: this.translationSlimmer.t('Align table center'),
59
+ right: this.translationSlimmer.t('Align table right'),
60
+ }))));
57
61
  }
58
62
  }
@@ -70,6 +70,11 @@
70
70
  background-color: rgba(var(--v-bg-quaternary, 241, 248, 251, 1));
71
71
  z-index: 1;
72
72
  }
73
+ :host .text-alignment-button-group button:focus-visible {
74
+ outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
75
+ outline-offset: -2px;
76
+ z-index: 2;
77
+ }
73
78
  :host .text-alignment-button-group vega-input[value=left] ~ .text-alignment-left,
74
79
  :host .text-alignment-button-group vega-input[value=center] ~ .text-alignment-center,
75
80
  :host .text-alignment-button-group vega-input[value=right] ~ .text-alignment-right,
@@ -17,6 +17,7 @@ import { VegaRichTextTablePropertiesFormFieldRenderer } from './slimmers/rendere
17
17
  import { VegaRichTextCellPropertiesFormFieldRenderer } from './slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer';
18
18
  import { VegaInternalThemeManager } from '../../../../../helpers/theme/internal-theme-manager';
19
19
  import { DarkModeStateControllerSlimmer } from '../../../../../helpers/slimmers/dark-mode-state-controller-slimmer';
20
+ import { AriaAttributesValueMapper } from '../../../../../helpers/slimmers/mutation-observer/aria-attributes-value-mapper';
20
21
  /**
21
22
  * @vegaVersion 2.79.0
22
23
  */
@@ -30,6 +31,17 @@ export class VegaRichTextTableProperties {
30
31
  this.cellFormRenderer = new VegaRichTextCellPropertiesFormFieldRenderer();
31
32
  this.controller = new TableColorController();
32
33
  this.darkModeStateSlimmer = new DarkModeStateControllerSlimmer();
34
+ this.ariaAttributesValueMapper = new AriaAttributesValueMapper(() => this.host, {
35
+ 'aria-label': {
36
+ dependency: ['data-aria-label'],
37
+ // Derive the fallback accessible name from `type` so the component
38
+ // announces the correct form even when consumers don't set
39
+ // `data-aria-label` explicitly.
40
+ defaultValue: () => this.type === 'CELL'
41
+ ? this.translationSlimmer.t('Cell properties')
42
+ : this.translationSlimmer.t('Table properties'),
43
+ },
44
+ });
33
45
  this.changeEventPreventSlimmer = new ChildNodesEventPreventSlimmer([VegaChange], () => this.renderer.getFormRef());
34
46
  this.isInDarkMode = VegaInternalThemeManager.isDarkMode();
35
47
  /**
@@ -45,7 +57,7 @@ export class VegaRichTextTableProperties {
45
57
  methodPlaceholder(newValue);
46
58
  }
47
59
  render() {
48
- return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
60
+ return sanitizeVegaComponent(h(Host, { role: "form" }, this.renderer.render()), this.host);
49
61
  }
50
62
  static get is() { return "vega-rich-text-table-properties"; }
51
63
  static get encapsulation() { return "shadow"; }
@@ -246,6 +258,9 @@ __decorate([
246
258
  __decorate([
247
259
  InjectVegaSlimmer()
248
260
  ], VegaRichTextTableProperties.prototype, "darkModeStateSlimmer", void 0);
261
+ __decorate([
262
+ InjectVegaSlimmer()
263
+ ], VegaRichTextTableProperties.prototype, "ariaAttributesValueMapper", void 0);
249
264
  __decorate([
250
265
  InjectVegaSlimmer()
251
266
  ], VegaRichTextTableProperties.prototype, "changeEventPreventSlimmer", void 0);
@@ -9,6 +9,7 @@ export class CaptionButtonSlimmer extends TableSettingButtonSlimmer {
9
9
  icon: 'rte-table-caption',
10
10
  title: 'caption off',
11
11
  showArrowIcon: false,
12
+ ariaLabel: 'Insert/Edit Caption',
12
13
  });
13
14
  }
14
15
  isSelected() {
@@ -9,6 +9,7 @@ export class CellPropertiesButtonSlimmer extends TableSettingButtonSlimmer {
9
9
  icon: 'rte-table-cell-properties',
10
10
  title: 'cell properties',
11
11
  showArrowIcon: false,
12
+ ariaLabel: 'Cell Properties',
12
13
  });
13
14
  }
14
15
  renderBtnWrapper(renderBtn) {
@@ -23,6 +23,7 @@ export class ColumnButtonSlimmer extends TableSettingButtonSlimmer {
23
23
  icon: 'rte-table-column',
24
24
  title: 'Column',
25
25
  showArrowIcon: true,
26
+ ariaLabel: 'Column Operations',
26
27
  });
27
28
  this.handleDropdownItemClick = (input) => {
28
29
  this.emitClickEvent([TableSettingType.COLUMN, input.detail]);
@@ -32,7 +33,7 @@ export class ColumnButtonSlimmer extends TableSettingButtonSlimmer {
32
33
  };
33
34
  }
34
35
  renderBtnWrapper(renderBtn) {
35
- return (h("vega-dropdown", { minWidth: 210, trigger: "click", ref: (el) => {
36
+ return (h("vega-dropdown", { role: "presentation", isScreenPosition: true, minWidth: 210, trigger: "click", ref: (el) => {
36
37
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
37
38
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownShow, this.handleDropdownVisibilityChange);
38
39
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownHide, this.handleDropdownVisibilityChange);
@@ -55,15 +56,15 @@ export class ColumnButtonSlimmer extends TableSettingButtonSlimmer {
55
56
  * @returns {HTMLElement} The action list element.
56
57
  */
57
58
  renderActionList() {
59
+ const isHeaderColumnSelected = ToggleHeaderTableColumnStrategy.isFullHeaderSelection(this.selectedCells);
58
60
  return (h("div", { tabIndex: 0, role: "menu", slot: "items", onMouseDown: this.preventDefaultEvent, onKeyDown: this.preventDefaultEvent },
59
- h("vega-dropdown-item", { itemKey: ColumnOperationType.HEADER_COLUMN },
60
- h("vega-flex", { alignItems: "center", gap: "size-8" },
61
- h("vega-toggle-switch", { checked: ToggleHeaderTableColumnStrategy.isFullHeaderSelection(this.selectedCells), size: "small" }),
62
- "Header Column")),
63
- h("vega-dropdown-item", { itemKey: ColumnOperationType.ADD_COLUMN_LEFT }, "Insert column left"),
64
- h("vega-dropdown-item", { itemKey: ColumnOperationType.ADD_COLUMN_RIGHT }, "Insert column right"),
65
- h("vega-dropdown-item", { itemKey: ColumnOperationType.DELETE_COLUMN, disabled: this.allColumnSelected(this.selectedCells) }, "Delete column"),
66
- h("vega-dropdown-item", { itemKey: ColumnOperationType.SELECT_COLUMN }, "Select column")));
61
+ h("vega-dropdown-item", { itemKey: ColumnOperationType.HEADER_COLUMN, label: "Header Column" },
62
+ h("vega-flex", { alignItems: "center", gap: "size-8", "aria-hidden": "true" },
63
+ h("vega-toggle-switch", { checked: isHeaderColumnSelected, size: "small", label: "Header Column" }))),
64
+ h("vega-dropdown-item", { itemKey: ColumnOperationType.ADD_COLUMN_LEFT, label: "Insert column left" }, "Insert column left"),
65
+ h("vega-dropdown-item", { itemKey: ColumnOperationType.ADD_COLUMN_RIGHT, label: "Insert column right" }, "Insert column right"),
66
+ h("vega-dropdown-item", { itemKey: ColumnOperationType.DELETE_COLUMN, label: "Delete column", disabled: this.allColumnSelected(this.selectedCells) }, "Delete column"),
67
+ h("vega-dropdown-item", { itemKey: ColumnOperationType.SELECT_COLUMN, label: "Select column" }, "Select column")));
67
68
  }
68
69
  /**
69
70
  * Determine if all columns are selected based on the selected cell range.
@@ -22,6 +22,7 @@ export class MergeCellsButtonSlimmer extends TableSettingButtonSlimmer {
22
22
  icon: 'rte-table-merge-cells',
23
23
  title: 'Merge cells',
24
24
  showArrowIcon: true,
25
+ ariaLabel: 'Merge Cells',
25
26
  });
26
27
  this.handleDropdownItemClick = (input) => {
27
28
  if (Object.values(SplitCellOperationType).includes(input.detail)) {
@@ -35,7 +36,7 @@ export class MergeCellsButtonSlimmer extends TableSettingButtonSlimmer {
35
36
  };
36
37
  }
37
38
  renderBtnWrapper(renderBtn) {
38
- return (h("vega-dropdown", { minWidth: 150, trigger: "click", ref: (el) => {
39
+ return (h("vega-dropdown", { role: "presentation", isScreenPosition: true, minWidth: 150, trigger: "click", ref: (el) => {
39
40
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
40
41
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownShow, this.handleDropdownVisibilityChange);
41
42
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownHide, this.handleDropdownVisibilityChange);
@@ -68,13 +69,13 @@ export class MergeCellsButtonSlimmer extends TableSettingButtonSlimmer {
68
69
  renderActionList() {
69
70
  const disabledMap = this.getMergeDirectionDisabledMap();
70
71
  return (h("div", { tabIndex: 0, role: "menu", slot: "items", onMouseDown: this.preventDefaultEvent, onKeyDown: this.preventDefaultEvent },
71
- h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELLS }, "Merge cells"),
72
- h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_UP, disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_UP] }, "Merge cell up"),
73
- h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_RIGHT, disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_RIGHT] }, "Merge cell right"),
74
- h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_DOWN, disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_DOWN] }, "Merge cell down"),
75
- h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_LEFT, disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_LEFT] }, "Merge cell left"),
76
- h("vega-dropdown-item", { itemKey: SplitCellOperationType.SPLIT_CELL_VERTICALLY, disabled: !this.selectSingleCell() }, "Split cell vertically"),
77
- h("vega-dropdown-item", { itemKey: SplitCellOperationType.SPLIT_CELL_HORIZONTALLY, disabled: !this.selectSingleCell() }, "Split cell horizontally")));
72
+ h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELLS, label: "Merge cells" }, "Merge cells"),
73
+ h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_UP, label: "Merge cell up", disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_UP] }, "Merge cell up"),
74
+ h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_RIGHT, label: "Merge cell right", disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_RIGHT] }, "Merge cell right"),
75
+ h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_DOWN, label: "Merge cell down", disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_DOWN] }, "Merge cell down"),
76
+ h("vega-dropdown-item", { itemKey: MergeCellsOperationType.MERGE_CELL_LEFT, label: "Merge cell left", disabled: disabledMap[MergeCellsOperationType.MERGE_CELL_LEFT] }, "Merge cell left"),
77
+ h("vega-dropdown-item", { itemKey: SplitCellOperationType.SPLIT_CELL_VERTICALLY, label: "Split cell vertically", disabled: !this.selectSingleCell() }, "Split cell vertically"),
78
+ h("vega-dropdown-item", { itemKey: SplitCellOperationType.SPLIT_CELL_HORIZONTALLY, label: "Split cell horizontally", disabled: !this.selectSingleCell() }, "Split cell horizontally")));
78
79
  }
79
80
  selectSingleCell() {
80
81
  return this.selectedCells.length === 1;
@@ -1,13 +1,20 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
1
7
  import { h } from '@stencil/core';
2
8
  import { TableSettingButtonSlimmer } from './table-setting-button-slimmer.abstract';
3
9
  import { DomNodeSubjectObserverFactory } from '../../../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
4
- import { VegaDropdownClick } from '../../../../../../../helpers/event-manager/event-id/vega-event-id';
10
+ import { VegaDropdownClick, VegaDropdownHide, VegaDropdownShow, } from '../../../../../../../helpers/event-manager/event-id/vega-event-id';
5
11
  import { TableSettingType } from '../../../setting-event-handlers/setting-event-handler.abstract';
6
12
  import { RowOperationType } from '../../../setting-event-handlers/row-operation';
7
13
  import { RTETableHeadBlock } from '../../../dto/table-head-block';
8
14
  import { RTETableBlock } from '../../../dto/table-block';
9
15
  import { getParentBlockByType } from '../../../utils/utils';
10
16
  import { RTETableBodyBlock } from '../../../dto/table-body-block';
17
+ import { MapToComponentField } from 'vega-slimmer/core';
11
18
  /**
12
19
  * Slimmer dedicated to building the row button.
13
20
  */
@@ -17,14 +24,20 @@ export class RowButtonSlimmer extends TableSettingButtonSlimmer {
17
24
  icon: 'rte-table-row',
18
25
  title: 'Row',
19
26
  showArrowIcon: true,
27
+ ariaLabel: 'Row Operations',
20
28
  });
21
29
  this.handleDropdownItemClick = (input) => {
22
30
  this.emitClickEvent([TableSettingType.ROW, input.detail]);
23
31
  };
32
+ this.handleDropdownVisibilityChange = ({ eventName }) => {
33
+ this.isRowDropdownOpen = eventName.toLocaleLowerCase().indexOf('show') >= 0;
34
+ };
24
35
  }
25
36
  renderBtnWrapper(renderBtn) {
26
- return (h("vega-dropdown", { minWidth: 180, trigger: "click", ref: (el) => {
37
+ return (h("vega-dropdown", { role: "presentation", isScreenPosition: true, minWidth: 180, trigger: "click", ref: (el) => {
27
38
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
39
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownShow, this.handleDropdownVisibilityChange);
40
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownHide, this.handleDropdownVisibilityChange);
28
41
  } },
29
42
  renderBtn(),
30
43
  this.renderActionList()));
@@ -46,14 +59,13 @@ export class RowButtonSlimmer extends TableSettingButtonSlimmer {
46
59
  renderActionList() {
47
60
  const shouldChecked = this.areSelectedRowsHeaderRows();
48
61
  return (h("div", { tabIndex: 0, role: "menu", slot: "items", onMouseDown: this.preventDefaultEvent, onKeyDown: this.preventDefaultEvent },
49
- h("vega-dropdown-item", { itemKey: RowOperationType.HEADER_ROW },
50
- h("vega-flex", { alignItems: "center", direction: "row", gap: "size-8" },
51
- h("vega-toggle-switch", { key: shouldChecked.toString(), size: "small", checked: shouldChecked }),
52
- h("span", null, "Header row"))),
53
- h("vega-dropdown-item", { itemKey: RowOperationType.ADD_ROW_ABOVE }, "Insert row above"),
54
- h("vega-dropdown-item", { itemKey: RowOperationType.ADD_ROW_BELOW }, "Insert row below"),
55
- h("vega-dropdown-item", { disabled: this.areAllRowsSelected(), itemKey: RowOperationType.DELETE_ROW }, "Delete row"),
56
- h("vega-dropdown-item", { itemKey: RowOperationType.SELECT_ROW }, "Select row")));
62
+ h("vega-dropdown-item", { itemKey: RowOperationType.HEADER_ROW, label: "Header Row" },
63
+ h("vega-flex", { alignItems: "center", direction: "row", gap: "size-8", "aria-hidden": "true" },
64
+ h("vega-toggle-switch", { key: shouldChecked.toString(), size: "small", checked: shouldChecked, label: "Header Row" }))),
65
+ h("vega-dropdown-item", { itemKey: RowOperationType.ADD_ROW_ABOVE, label: "Insert row above" }, "Insert row above"),
66
+ h("vega-dropdown-item", { itemKey: RowOperationType.ADD_ROW_BELOW, label: "Insert row below" }, "Insert row below"),
67
+ h("vega-dropdown-item", { disabled: this.areAllRowsSelected(), itemKey: RowOperationType.DELETE_ROW, label: "Delete row" }, "Delete row"),
68
+ h("vega-dropdown-item", { itemKey: RowOperationType.SELECT_ROW, label: "Select row" }, "Select row")));
57
69
  }
58
70
  /**
59
71
  * Check if all selected rows are header rows.
@@ -101,3 +113,6 @@ export class RowButtonSlimmer extends TableSettingButtonSlimmer {
101
113
  return Array.from(selectedRows);
102
114
  }
103
115
  }
116
+ __decorate([
117
+ MapToComponentField({ writable: true })
118
+ ], RowButtonSlimmer.prototype, "isRowDropdownOpen", void 0);
@@ -9,6 +9,7 @@ export class TablePropertiesButtonSlimmer extends TableSettingButtonSlimmer {
9
9
  icon: 'rte-table-properties',
10
10
  title: 'table properties',
11
11
  showArrowIcon: false,
12
+ ariaLabel: 'Table Properties',
12
13
  });
13
14
  }
14
15
  renderBtnWrapper(renderBtn) {
@@ -8,13 +8,13 @@ import { h } from '@stencil/core';
8
8
  import { VegaInternalIconManager } from '../../../../../../../helpers/icon/internal-icon-manager';
9
9
  import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
10
10
  export class TableSettingButtonSlimmer extends VegaSlimmer {
11
- constructor({ icon, title, showArrowIcon }) {
11
+ constructor({ icon, title, showArrowIcon, ariaLabel }) {
12
12
  super();
13
13
  this.renderBtn = () => {
14
14
  const selected = this.isSelected();
15
15
  const disable = this.isDisabled();
16
- return (h("vega-tooltip", { key: `table-setting-${this.icon}`, text: this.getTitle(), placement: ['bottom', 'top'], trigger: "hover" },
17
- h("button", { type: "button", class: {
16
+ return (h("vega-tooltip", { role: "presentation", key: `table-setting-${this.icon}`, text: this.getTitle(), placement: ['bottom', 'top'], trigger: "hover" },
17
+ h("button", { type: "button", "aria-label": this.ariaLabel, class: {
18
18
  'rte-table-setting-item': true,
19
19
  'rte-table-setting-item-disabled': disable,
20
20
  'rte-table-setting-item-selected': selected,
@@ -26,13 +26,14 @@ export class TableSettingButtonSlimmer extends VegaSlimmer {
26
26
  }
27
27
  this.handleClick(event);
28
28
  }, onKeyDown: this.preventDefaultEvent, onMouseDown: this.preventDefaultEvent },
29
- h("vega-flex", { alignItems: "center", justifyContent: "center" },
29
+ h("vega-flex", { alignItems: "center", justifyContent: "center", "aria-hidden": "true" },
30
30
  h("vega-icon", { icon: VegaInternalIconManager.getIconKey(this.icon), size: "size-16", color: this.getIconColor() }),
31
31
  this.showArrowIcon ? (h("vega-icon", { size: "size-8", style: { marginLeft: '8px' }, icon: VegaInternalIconManager.getIconKey('chevron-down'), color: this.getIconColor() })) : null))));
32
32
  };
33
33
  this.icon = icon;
34
34
  this.title = title;
35
35
  this.showArrowIcon = showArrowIcon;
36
+ this.ariaLabel = ariaLabel;
36
37
  }
37
38
  render() {
38
39
  return typeof this.renderBtnWrapper === 'function'
@@ -16,7 +16,7 @@ const buttonList = [
16
16
  ];
17
17
  export class VegaRichTextTableSettingRenderer extends VegaSlimmer {
18
18
  render() {
19
- return (h("vega-flex", { gap: "size-8", class: "rte-table-setting-content" }, buttonList.map((item) => this.renderButton(item))));
19
+ return (h("div", { class: "rte-table-setting-content" }, buttonList.map((item) => this.renderButton(item))));
20
20
  }
21
21
  renderButton(item) {
22
22
  switch (item) {
@@ -3,8 +3,14 @@
3
3
  * Deprecated. Not for use in new websites.
4
4
  * https://developer.mozilla.org/en-US/docs/Web/CSS/word-break#break-word
5
5
  */
6
+ :host .rte-table-setting-content {
7
+ display: flex;
8
+ gap: 8px;
9
+ align-items: center;
10
+ }
6
11
  :host .rte-table-setting-item {
7
12
  border: none;
13
+ border-radius: 4px;
8
14
  padding-top: 4px;
9
15
  padding-bottom: 4px;
10
16
  padding-left: 4px;
@@ -12,6 +18,10 @@
12
18
  cursor: pointer;
13
19
  background-color: rgba(var(--v-bg-primary, 252, 252, 252, 1));
14
20
  }
21
+ :host .rte-table-setting-item:focus {
22
+ outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
23
+ outline-offset: -1px;
24
+ }
15
25
  :host .rte-table-setting-item:not(.rte-table-setting-item-disabled, .rte-table-setting-item-selected):hover {
16
26
  background-color: rgba(var(--v-bg-quaternary, 241, 248, 251, 1));
17
27
  }