@globalpayments/vega 2.95.0 → 2.97.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 (518) hide show
  1. package/dist/cjs/{app-globals-76815382.js → app-globals-3f57f7b9.js} +10 -10
  2. package/dist/cjs/{code-block-493c7ce7.js → code-block-28a7732e.js} +1508 -56
  3. package/dist/cjs/{component-value-history-controller-slimmer.abstract-ab21fcbf.js → component-value-history-controller-slimmer.abstract-50cdba6e.js} +3 -3
  4. package/dist/cjs/{content-state-fc34a814.js → content-state-e2ab0f06.js} +143 -581
  5. package/dist/cjs/{date-required-rule-4ab06a82.js → date-required-rule-5250f26d.js} +1 -1
  6. package/dist/cjs/{design-token-d3d12fa0.js → design-token-74674ee7.js} +3 -3
  7. package/dist/cjs/{element-appender-slimmer-1d6323c2.js → element-appender-slimmer-ccb2e3c2.js} +117 -2
  8. package/dist/cjs/{form-field-controller-slimmer-d638ba12.js → form-field-controller-slimmer-58621b5e.js} +5 -14
  9. package/dist/cjs/form-field-key-8d5edf75.js +25 -0
  10. package/dist/cjs/{image-annotation-action-7c4cd316.js → image-annotation-action-b54dc669.js} +2 -2
  11. package/dist/cjs/{image-extension-30a7c10f.js → image-extension-1e3eeaa3.js} +2 -2
  12. package/dist/cjs/index.cjs.js +19 -19
  13. package/dist/cjs/{inject-keyboard-manager-5a105612.js → inject-keyboard-manager-6a6f5c9f.js} +1 -1
  14. package/dist/cjs/{internal-calendar-period-factory-b76006f7.js → internal-calendar-period-factory-dfcdd3f6.js} +1 -1
  15. package/dist/cjs/{internal-translation-controller-eb02c3b1.js → internal-translation-controller-1dac2df8.js} +7 -0
  16. package/dist/cjs/{keyboard-manager-ca76d4dc.js → keyboard-manager-c56033b1.js} +1 -1
  17. package/dist/cjs/{keyboard-manager-slimmer-a1223714.js → keyboard-manager-slimmer-7043a106.js} +1 -1
  18. package/dist/cjs/{link-extension-92a63cb7.js → link-extension-71c27ff3.js} +3 -3
  19. package/dist/cjs/loader.cjs.js +12 -12
  20. package/dist/cjs/{month-view-generator-876c50d4.js → month-view-generator-7b704a80.js} +1 -1
  21. package/dist/cjs/{public-rules-9e1ea1d9.js → public-rules-55e34d2e.js} +7 -7
  22. package/dist/cjs/{range-30219330.js → range-eebe0e3c.js} +1 -1
  23. package/dist/cjs/{responsive-format-facade-25e9f30d.js → responsive-format-facade-493d1763.js} +1 -1
  24. package/dist/cjs/{rich-text-editor-required-rule-23bf7485.js → rich-text-editor-required-rule-4fdee376.js} +1 -1
  25. package/dist/cjs/{split-cell-operation-43752212.js → split-cell-operation-51097409.js} +3 -3
  26. package/dist/cjs/{state-border-formatter-f1ce0f3b.js → state-border-formatter-711c7aaa.js} +1 -1
  27. package/dist/cjs/{string-format-strategy.abstract-b22f7754.js → string-format-strategy.abstract-b61bdcbd.js} +1 -1
  28. package/dist/cjs/{string-input-formatter-slimmer-d2c248f7.js → string-input-formatter-slimmer-18d45942.js} +1 -1
  29. package/dist/cjs/{string-mask-strategy-fc01a500.js → string-mask-strategy-ad3fa0ac.js} +2 -2
  30. package/dist/cjs/{style-formatter-73205450.js → style-formatter-8f711cb0.js} +2 -2
  31. package/dist/cjs/{time-required-rule-12d2f394.js → time-required-rule-87417359.js} +1 -1
  32. package/dist/cjs/{token-extension-d123d9d0.js → token-extension-608bbf7b.js} +38 -14
  33. package/dist/cjs/{translation-slimmer-9099f56c.js → translation-slimmer-77c7f37d.js} +1 -1
  34. package/dist/cjs/{type-guard-f354af8b.js → type-guard-a57ef3ac.js} +1 -1
  35. package/dist/cjs/{valid-credit-card-number-rule-8d370163.js → valid-credit-card-number-rule-4c0a3040.js} +1 -1
  36. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  37. package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
  38. package/dist/cjs/vega-backdrop.cjs.entry.js +63 -8
  39. package/dist/cjs/vega-box.cjs.entry.js +6 -6
  40. package/dist/cjs/vega-button-circle.cjs.entry.js +5 -5
  41. package/dist/cjs/vega-button.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-calendar_5.cjs.entry.js +7 -7
  43. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  44. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  45. package/dist/cjs/vega-checkbox_2.cjs.entry.js +20 -3
  46. package/dist/cjs/vega-chip.cjs.entry.js +5 -5
  47. package/dist/cjs/vega-code-block.cjs.entry.js +8 -8
  48. package/dist/cjs/vega-color-picker.cjs.entry.js +11 -2
  49. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +12 -3
  50. package/dist/cjs/vega-color-swatch.cjs.entry.js +2 -2
  51. package/dist/cjs/vega-combo-box.cjs.entry.js +17 -8
  52. package/dist/cjs/vega-date-picker_2.cjs.entry.js +22 -13
  53. package/dist/cjs/vega-dialog_2.cjs.entry.js +3 -3
  54. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  55. package/dist/cjs/vega-dropdown_5.cjs.entry.js +33 -10
  56. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  57. package/dist/cjs/vega-field-label.cjs.entry.js +2 -2
  58. package/dist/cjs/vega-file-uploader.cjs.entry.js +12 -3
  59. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  60. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  61. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-form.cjs.entry.js +28 -25
  63. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  64. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  65. package/dist/cjs/vega-image-uploader.cjs.entry.js +14 -5
  66. package/dist/cjs/vega-input-credit-card.cjs.entry.js +16 -7
  67. package/dist/cjs/vega-input-numeric.cjs.entry.js +14 -5
  68. package/dist/cjs/vega-input-passcode.cjs.entry.js +14 -5
  69. package/dist/cjs/vega-input-phone-number.cjs.entry.js +13 -4
  70. package/dist/cjs/vega-input-range.cjs.entry.js +12 -3
  71. package/dist/cjs/vega-input-select.cjs.entry.js +14 -5
  72. package/dist/cjs/vega-input.cjs.entry.js +9 -7
  73. package/dist/cjs/vega-left-nav_5.cjs.entry.js +71 -11
  74. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  75. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  76. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  77. package/dist/cjs/vega-popover_2.cjs.entry.js +8 -8
  78. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  79. package/dist/cjs/vega-radio_2.cjs.entry.js +17 -5
  80. package/dist/cjs/vega-rich-text-content.cjs.entry.js +86 -14
  81. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +2122 -451
  82. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +1 -1
  83. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
  84. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +8 -8
  85. package/dist/cjs/vega-section-title.cjs.entry.js +896 -14
  86. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +13 -4
  87. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +11 -2
  88. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  89. package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -7
  90. package/dist/cjs/vega-stepper.cjs.entry.js +12 -3
  91. package/dist/cjs/vega-table_11.cjs.entry.js +4 -4
  92. package/dist/cjs/vega-textarea.cjs.entry.js +12 -3
  93. package/dist/cjs/vega-time-picker_2.cjs.entry.js +18 -9
  94. package/dist/cjs/vega-toggle-switch.cjs.entry.js +12 -3
  95. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  96. package/dist/cjs/vega.cjs.js +12 -12
  97. package/dist/collection/components/vega-backdrop/slimmers/controller/vega-backdrop-visible-controller.js +63 -8
  98. package/dist/collection/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.js +33 -1
  99. package/dist/collection/components/vega-checkbox/vega-checkbox.js +34 -2
  100. package/dist/collection/components/vega-color-picker/vega-color-picker.js +33 -1
  101. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +33 -1
  102. package/dist/collection/components/vega-combo-box/vega-combo-box.js +35 -3
  103. package/dist/collection/components/vega-date-picker/vega-date-picker.js +33 -1
  104. package/dist/collection/components/vega-dropdown/vega-dropdown.js +30 -7
  105. package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +33 -1
  106. package/dist/collection/components/vega-form/slimmers/controllers/vega-form-field-controller.js +9 -9
  107. package/dist/collection/components/vega-form/slimmers/controllers/vega-form-field-validation-state-controller.js +5 -5
  108. package/dist/collection/components/vega-form/slimmers/renderers/native-form-renderer.js +4 -1
  109. package/dist/collection/components/vega-form/vega-form.js +32 -0
  110. package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +33 -1
  111. package/dist/collection/components/vega-input/vega-input.js +5 -4
  112. package/dist/collection/components/vega-input-credit-card/vega-input-credit-card.js +34 -2
  113. package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +33 -1
  114. package/dist/collection/components/vega-input-passcode/vega-input-passcode.js +33 -1
  115. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +33 -1
  116. package/dist/collection/components/vega-input-range/vega-input-range.js +33 -1
  117. package/dist/collection/components/vega-input-select/vega-input-select.js +35 -3
  118. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.js +17 -1
  119. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +48 -5
  120. package/dist/collection/components/vega-radio/vega-radio-group/vega-radio-group.js +18 -3
  121. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.css +4 -0
  122. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +3 -0
  123. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +29 -0
  124. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +10 -1
  125. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.js +8 -3
  126. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-annotation-strategy.abstract.js +60 -0
  127. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.js +36 -4
  128. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-items-strategy.abstract.js +27 -0
  129. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-nest-items-strategy.js +74 -0
  130. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.js +81 -1
  131. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-selection.js +30 -0
  132. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.js +160 -9
  133. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.js +376 -10
  134. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-unnest-items-strategy.js +104 -0
  135. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +2 -0
  136. package/dist/collection/components/vega-rich-text-editor/dto/actions/nest-list-items-action.js +12 -0
  137. package/dist/collection/components/vega-rich-text-editor/dto/actions/unnest-list-items-action.js +12 -0
  138. package/dist/collection/components/vega-rich-text-editor/dto/annotations/list-annotation.js +12 -0
  139. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +10 -1
  140. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +11 -3
  141. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +7 -1
  142. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.js +8 -4
  143. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.js +26 -3
  144. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +34 -1
  145. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +20 -3
  146. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.js +25 -1
  147. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/li-to-rte-list-item-block-strategy.js +2 -0
  148. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.js +29 -0
  149. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +1 -1
  150. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/keyboard-link-handler.js +297 -0
  151. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +13 -0
  152. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +30 -1
  153. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/abstract-list-keyboard-handler.js +204 -0
  154. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-shift-tab-outdent-handler.js +42 -0
  155. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-tab-indent-handler.js +34 -0
  156. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/list-keyboard-slimmer.js +180 -0
  157. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +8 -2
  158. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +33 -1
  159. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +398 -0
  160. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-state-manager.js +111 -0
  161. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-type-config-controller.js +173 -0
  162. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/link-type-handler.js +49 -0
  163. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +114 -106
  164. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/utils/link-url-normalizer.js +80 -0
  165. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.js +44 -1
  166. package/dist/collection/components/vega-section-title/slimmers/a11y-tree/build-section-title-a11y-tree.js +54 -0
  167. package/dist/collection/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.js +4 -4
  168. package/dist/collection/components/vega-section-title/vega-section-title.js +18 -2
  169. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.js +33 -1
  170. package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.js +33 -1
  171. package/dist/collection/components/vega-signature-capture/vega-signature-capture.js +33 -1
  172. package/dist/collection/components/vega-stepper/vega-stepper.js +34 -2
  173. package/dist/collection/components/vega-textarea/vega-textarea.js +34 -2
  174. package/dist/collection/components/vega-time-picker/vega-time-picker.js +33 -1
  175. package/dist/collection/components/vega-toggle-switch/vega-toggle-switch.js +34 -2
  176. package/dist/collection/helpers/a11y-tree/a11y-node-dto.js +210 -0
  177. package/dist/collection/helpers/a11y-tree/a11y-tree-applier.js +189 -0
  178. package/dist/collection/helpers/a11y-tree/a11y-tree.types.js +48 -0
  179. package/dist/collection/helpers/a11y-tree/strategies/baseline-strategy.js +78 -0
  180. package/dist/collection/helpers/a11y-tree/strategies/firefox-nvda-strategy.js +56 -0
  181. package/dist/collection/helpers/a11y-tree/strategies/webkit-voiceover-strategy.js +140 -0
  182. package/dist/collection/helpers/a11y-tree/strategy-resolver.js +172 -0
  183. package/dist/collection/helpers/slimmers/a11y-tree-slimmer.js +54 -0
  184. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +29 -0
  185. package/dist/collection/helpers/slimmers/element-appender/visibility-modifiers/clip-on-scroll-modifier.js +70 -0
  186. package/dist/collection/helpers/slimmers/element-appender/visibility-modifiers/visibility-modifier.interface.js +1 -0
  187. package/dist/collection/helpers/slimmers/{field-error-controller-silmmer.js → form/field-error-controller-silmmer.js} +3 -3
  188. package/dist/collection/helpers/slimmers/{field-error-ui-controller-slimmer.js → form/field-error-ui-controller-slimmer.js} +9 -9
  189. package/dist/collection/helpers/slimmers/{form-field-controller-slimmer.js → form/form-field-controller-slimmer.js} +9 -18
  190. package/dist/collection/helpers/slimmers/{form-field-message-translator.js → form/form-field-message-translator.js} +1 -1
  191. package/dist/collection/helpers/slimmers/{form-field-state-controller-slimmer.js → form/form-field-state-controller-slimmer.js} +1 -1
  192. package/dist/collection/helpers/slimmers/{form-field-valid-invoke-slimmer.js → form/form-field-valid-invoke-slimmer.js} +2 -2
  193. package/dist/collection/helpers/slimmers/form/utils/form-field-key.js +20 -0
  194. package/dist/collection/helpers/translation/locales/en.js +7 -0
  195. package/dist/collection/helpers/ui/element-appender.js +16 -0
  196. package/dist/collection/helpers/validator/form-field-controller.js +5 -4
  197. package/dist/esm/{app-globals-eafcc7a1.js → app-globals-d3991e53.js} +10 -10
  198. package/dist/esm/{code-block-e12588fe.js → code-block-8df86434.js} +1499 -52
  199. package/dist/esm/{component-value-history-controller-slimmer.abstract-4e8eb313.js → component-value-history-controller-slimmer.abstract-e4b95997.js} +3 -3
  200. package/dist/esm/{content-state-8032467a.js → content-state-c63fbeda.js} +106 -542
  201. package/dist/esm/{date-required-rule-b88e1650.js → date-required-rule-85334d0c.js} +1 -1
  202. package/dist/esm/{design-token-76bd217c.js → design-token-10ff79b5.js} +3 -3
  203. package/dist/esm/{element-appender-slimmer-7fcb944b.js → element-appender-slimmer-24be8e94.js} +117 -2
  204. package/dist/esm/{form-field-controller-slimmer-395c23e3.js → form-field-controller-slimmer-d8628837.js} +5 -14
  205. package/dist/esm/form-field-key-44ab39d0.js +22 -0
  206. package/dist/esm/{image-annotation-action-08a20d5e.js → image-annotation-action-fcceff95.js} +2 -2
  207. package/dist/esm/{image-extension-b6c7e4a7.js → image-extension-3280bdb0.js} +2 -2
  208. package/dist/esm/index.js +17 -17
  209. package/dist/esm/{inject-keyboard-manager-86126b5b.js → inject-keyboard-manager-ea1aad5b.js} +1 -1
  210. package/dist/esm/{internal-calendar-period-factory-3a07dba0.js → internal-calendar-period-factory-7b294fb6.js} +1 -1
  211. package/dist/esm/{internal-translation-controller-16709132.js → internal-translation-controller-fac22598.js} +7 -0
  212. package/dist/esm/{keyboard-manager-a0c3e1cf.js → keyboard-manager-50da85d7.js} +1 -1
  213. package/dist/esm/{keyboard-manager-slimmer-f3f66c15.js → keyboard-manager-slimmer-1f7c8bfb.js} +1 -1
  214. package/dist/esm/{link-extension-97fcb8fb.js → link-extension-f92c06ef.js} +3 -3
  215. package/dist/esm/loader.js +12 -12
  216. package/dist/esm/{month-view-generator-fd0e1856.js → month-view-generator-a1a9a4ec.js} +1 -1
  217. package/dist/esm/{public-rules-c06f0d2a.js → public-rules-3695aaf7.js} +7 -7
  218. package/dist/esm/{range-e999837f.js → range-717d552d.js} +1 -1
  219. package/dist/esm/{responsive-format-facade-ced96b0b.js → responsive-format-facade-f19b601c.js} +1 -1
  220. package/dist/esm/{rich-text-editor-required-rule-71f8ee98.js → rich-text-editor-required-rule-2e39264a.js} +1 -1
  221. package/dist/esm/{split-cell-operation-359f8082.js → split-cell-operation-6c26af91.js} +3 -3
  222. package/dist/esm/{state-border-formatter-b680e922.js → state-border-formatter-bfda33aa.js} +1 -1
  223. package/dist/esm/{string-format-strategy.abstract-23faab71.js → string-format-strategy.abstract-1f4ff1b3.js} +1 -1
  224. package/dist/esm/{string-input-formatter-slimmer-4b4866a6.js → string-input-formatter-slimmer-68b2af39.js} +1 -1
  225. package/dist/esm/{string-mask-strategy-66586cd8.js → string-mask-strategy-bbbcdbef.js} +2 -2
  226. package/dist/esm/{style-formatter-f4e16af5.js → style-formatter-e9adc8f4.js} +2 -2
  227. package/dist/esm/{time-required-rule-6e80a9ab.js → time-required-rule-1ce2d0a0.js} +1 -1
  228. package/dist/esm/{token-extension-f5bf9c21.js → token-extension-5082a4d2.js} +33 -9
  229. package/dist/esm/{translation-slimmer-21748a0e.js → translation-slimmer-ee0f0e76.js} +1 -1
  230. package/dist/esm/{type-guard-ec5e8628.js → type-guard-f2624334.js} +1 -1
  231. package/dist/esm/{valid-credit-card-number-rule-ca5a47d6.js → valid-credit-card-number-rule-60212b1d.js} +1 -1
  232. package/dist/esm/vega-accordion.entry.js +6 -6
  233. package/dist/esm/vega-app-header-button.entry.js +5 -5
  234. package/dist/esm/vega-backdrop.entry.js +63 -8
  235. package/dist/esm/vega-box.entry.js +6 -6
  236. package/dist/esm/vega-button-circle.entry.js +5 -5
  237. package/dist/esm/vega-button.entry.js +3 -3
  238. package/dist/esm/vega-calendar_5.entry.js +7 -7
  239. package/dist/esm/vega-card.entry.js +5 -5
  240. package/dist/esm/vega-carousel.entry.js +3 -3
  241. package/dist/esm/vega-checkbox_2.entry.js +20 -3
  242. package/dist/esm/vega-chip.entry.js +5 -5
  243. package/dist/esm/vega-code-block.entry.js +8 -8
  244. package/dist/esm/vega-color-picker.entry.js +11 -2
  245. package/dist/esm/vega-color-swatch-picker.entry.js +12 -3
  246. package/dist/esm/vega-color-swatch.entry.js +2 -2
  247. package/dist/esm/vega-combo-box.entry.js +17 -8
  248. package/dist/esm/vega-date-picker_2.entry.js +22 -13
  249. package/dist/esm/vega-dialog_2.entry.js +3 -3
  250. package/dist/esm/vega-divider.entry.js +5 -5
  251. package/dist/esm/vega-dropdown_5.entry.js +33 -10
  252. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  253. package/dist/esm/vega-field-label.entry.js +2 -2
  254. package/dist/esm/vega-file-uploader.entry.js +12 -3
  255. package/dist/esm/vega-flag-icon.entry.js +5 -5
  256. package/dist/esm/vega-flex.entry.js +6 -6
  257. package/dist/esm/vega-font.entry.js +5 -5
  258. package/dist/esm/vega-form.entry.js +28 -25
  259. package/dist/esm/vega-grid.entry.js +5 -5
  260. package/dist/esm/vega-icon.entry.js +5 -5
  261. package/dist/esm/vega-image-uploader.entry.js +14 -5
  262. package/dist/esm/vega-input-credit-card.entry.js +16 -7
  263. package/dist/esm/vega-input-numeric.entry.js +14 -5
  264. package/dist/esm/vega-input-passcode.entry.js +14 -5
  265. package/dist/esm/vega-input-phone-number.entry.js +13 -4
  266. package/dist/esm/vega-input-range.entry.js +12 -3
  267. package/dist/esm/vega-input-select.entry.js +14 -5
  268. package/dist/esm/vega-input.entry.js +9 -7
  269. package/dist/esm/vega-left-nav_5.entry.js +71 -11
  270. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  271. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  272. package/dist/esm/vega-pagination.entry.js +4 -4
  273. package/dist/esm/vega-popover_2.entry.js +8 -8
  274. package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
  275. package/dist/esm/vega-radio_2.entry.js +17 -5
  276. package/dist/esm/vega-rich-text-content.entry.js +86 -14
  277. package/dist/esm/vega-rich-text-editor_4.entry.js +2118 -447
  278. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +1 -1
  279. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +5 -5
  280. package/dist/esm/vega-rich-text-table-properties_3.entry.js +8 -8
  281. package/dist/esm/vega-section-title.entry.js +897 -15
  282. package/dist/esm/vega-selection-chip_2.entry.js +13 -4
  283. package/dist/esm/vega-selection-tile_2.entry.js +11 -2
  284. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  285. package/dist/esm/vega-signature-capture.entry.js +16 -7
  286. package/dist/esm/vega-stepper.entry.js +12 -3
  287. package/dist/esm/vega-table_11.entry.js +4 -4
  288. package/dist/esm/vega-textarea.entry.js +12 -3
  289. package/dist/esm/vega-time-picker_2.entry.js +18 -9
  290. package/dist/esm/vega-toggle-switch.entry.js +12 -3
  291. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  292. package/dist/esm/vega.js +12 -12
  293. package/dist/sri/vega-sri-manifest.json +319 -315
  294. package/dist/types/components/vega-backdrop/slimmers/controller/vega-backdrop-visible-controller.d.ts +21 -0
  295. package/dist/types/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.d.ts +9 -1
  296. package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +9 -1
  297. package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +9 -1
  298. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +9 -1
  299. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +15 -7
  300. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +9 -1
  301. package/dist/types/components/vega-dropdown/types.d.ts +2 -2
  302. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +32 -9
  303. package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +9 -1
  304. package/dist/types/components/vega-form/slimmers/controllers/vega-form-field-controller.d.ts +3 -2
  305. package/dist/types/components/vega-form/slimmers/renderers/native-form-renderer.d.ts +1 -0
  306. package/dist/types/components/vega-form/vega-form.d.ts +8 -0
  307. package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +9 -1
  308. package/dist/types/components/vega-input/vega-input.d.ts +3 -2
  309. package/dist/types/components/vega-input-credit-card/vega-input-credit-card.d.ts +9 -1
  310. package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +9 -1
  311. package/dist/types/components/vega-input-passcode/vega-input-passcode.d.ts +9 -1
  312. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +9 -1
  313. package/dist/types/components/vega-input-range/vega-input-range.d.ts +9 -1
  314. package/dist/types/components/vega-input-select/vega-input-select.d.ts +15 -7
  315. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.d.ts +7 -0
  316. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +17 -0
  317. package/dist/types/components/vega-radio/vega-radio-group/vega-radio-group.d.ts +5 -1
  318. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +3 -0
  319. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-annotation-strategy.abstract.d.ts +36 -0
  320. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.d.ts +14 -2
  321. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-items-strategy.abstract.d.ts +22 -0
  322. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-nest-items-strategy.d.ts +21 -0
  323. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.d.ts +14 -0
  324. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-selection.d.ts +15 -0
  325. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.d.ts +30 -3
  326. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.d.ts +99 -3
  327. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-unnest-items-strategy.d.ts +22 -0
  328. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -0
  329. package/dist/types/components/vega-rich-text-editor/dto/actions/nest-list-items-action.d.ts +11 -0
  330. package/dist/types/components/vega-rich-text-editor/dto/actions/unnest-list-items-action.d.ts +11 -0
  331. package/dist/types/components/vega-rich-text-editor/dto/annotations/list-annotation.d.ts +8 -0
  332. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +6 -1
  333. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +5 -1
  334. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +2 -2
  335. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +2 -0
  336. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.d.ts +8 -0
  337. package/dist/types/components/vega-rich-text-editor/extensions/link/type.d.ts +34 -0
  338. package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.d.ts +18 -0
  339. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.d.ts +4 -4
  340. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/keyboard-link-handler.d.ts +111 -0
  341. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.d.ts +7 -0
  342. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.d.ts +8 -0
  343. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/abstract-list-keyboard-handler.d.ts +99 -0
  344. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-shift-tab-outdent-handler.d.ts +15 -0
  345. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-tab-indent-handler.d.ts +15 -0
  346. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/list-keyboard-slimmer.d.ts +73 -0
  347. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +9 -1
  348. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +149 -0
  349. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-state-manager.d.ts +84 -0
  350. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-type-config-controller.d.ts +82 -0
  351. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/link-type-handler.d.ts +33 -0
  352. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.d.ts +24 -17
  353. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/utils/link-url-normalizer.d.ts +37 -0
  354. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/types.d.ts +4 -0
  355. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.d.ts +12 -0
  356. package/dist/types/components/vega-section-title/slimmers/a11y-tree/build-section-title-a11y-tree.d.ts +41 -0
  357. package/dist/types/components/vega-section-title/vega-section-title.d.ts +9 -0
  358. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.d.ts +9 -1
  359. package/dist/types/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.d.ts +9 -1
  360. package/dist/types/components/vega-signature-capture/vega-signature-capture.d.ts +9 -1
  361. package/dist/types/components/vega-stepper/vega-stepper.d.ts +9 -1
  362. package/dist/types/components/vega-textarea/vega-textarea.d.ts +9 -1
  363. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +9 -1
  364. package/dist/types/components/vega-toggle-switch/vega-toggle-switch.d.ts +9 -1
  365. package/dist/types/components.d.ts +297 -14
  366. package/dist/types/helpers/a11y-tree/a11y-node-dto.d.ts +173 -0
  367. package/dist/types/helpers/a11y-tree/a11y-tree-applier.d.ts +28 -0
  368. package/dist/types/helpers/a11y-tree/a11y-tree.types.d.ts +137 -0
  369. package/dist/types/helpers/a11y-tree/strategies/baseline-strategy.d.ts +18 -0
  370. package/dist/types/helpers/a11y-tree/strategies/firefox-nvda-strategy.d.ts +16 -0
  371. package/dist/types/helpers/a11y-tree/strategies/webkit-voiceover-strategy.d.ts +23 -0
  372. package/dist/types/helpers/a11y-tree/strategy-resolver.d.ts +59 -0
  373. package/dist/types/helpers/slimmers/a11y-tree-slimmer.d.ts +49 -0
  374. package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +9 -0
  375. package/dist/types/helpers/slimmers/element-appender/visibility-modifiers/clip-on-scroll-modifier.d.ts +37 -0
  376. package/dist/types/helpers/slimmers/element-appender/visibility-modifiers/visibility-modifier.interface.d.ts +56 -0
  377. package/dist/types/helpers/slimmers/{field-error-controller-silmmer.d.ts → form/field-error-controller-silmmer.d.ts} +1 -1
  378. package/dist/types/helpers/slimmers/{field-error-ui-controller-slimmer.d.ts → form/field-error-ui-controller-slimmer.d.ts} +2 -2
  379. package/dist/types/helpers/slimmers/{form-field-controller-slimmer.d.ts → form/form-field-controller-slimmer.d.ts} +6 -14
  380. package/dist/types/helpers/slimmers/{form-field-message-translator.d.ts → form/form-field-message-translator.d.ts} +2 -2
  381. package/dist/types/helpers/slimmers/{form-field-state-controller-slimmer.d.ts → form/form-field-state-controller-slimmer.d.ts} +2 -2
  382. package/dist/types/helpers/slimmers/{form-field-valid-invoke-slimmer.d.ts → form/form-field-valid-invoke-slimmer.d.ts} +3 -3
  383. package/dist/types/helpers/slimmers/form/utils/form-field-key.d.ts +17 -0
  384. package/dist/types/helpers/translation/interface.d.ts +7 -0
  385. package/dist/types/helpers/ui/element-appender.d.ts +7 -0
  386. package/dist/types/helpers/validator/form-field-controller.d.ts +3 -3
  387. package/dist/vega/index.esm.js +1 -1
  388. package/dist/vega/p-040ea356.entry.js +1 -0
  389. package/dist/vega/p-046203cb.entry.js +1 -0
  390. package/dist/vega/p-0499e65a.entry.js +1 -0
  391. package/dist/vega/{p-0be4df0a.js → p-0809c651.js} +1 -1
  392. package/dist/vega/{p-02355de8.js → p-09524fec.js} +1 -1
  393. package/dist/vega/{p-74f86ff9.entry.js → p-0cf3b5c1.entry.js} +1 -1
  394. package/dist/vega/p-10d43a80.entry.js +1 -0
  395. package/dist/vega/{p-3d6f761a.entry.js → p-1132a74e.entry.js} +1 -1
  396. package/dist/vega/{p-ba662fe5.js → p-12e8a1b2.js} +1 -1
  397. package/dist/vega/p-1d5e05d9.js +3 -0
  398. package/dist/vega/{p-3dee1e55.js → p-1e0a8fd3.js} +1 -1
  399. package/dist/vega/{p-919cddc3.js → p-1ea9ad9a.js} +1 -1
  400. package/dist/vega/p-21626b93.entry.js +1 -0
  401. package/dist/vega/p-21f608e8.entry.js +1 -0
  402. package/dist/vega/p-2540fd1c.entry.js +1 -0
  403. package/dist/vega/{p-9f201152.entry.js → p-26760c66.entry.js} +1 -1
  404. package/dist/vega/{p-892edf88.entry.js → p-2acf9b42.entry.js} +1 -1
  405. package/dist/vega/p-2bb60f89.js +1 -0
  406. package/dist/vega/{p-b1eb9ff0.js → p-2c2e8615.js} +1 -1
  407. package/dist/vega/p-2d158cbd.js +1 -0
  408. package/dist/vega/p-2d7388c9.entry.js +1 -0
  409. package/dist/vega/{p-b3a2ce06.entry.js → p-2eb8e167.entry.js} +1 -1
  410. package/dist/vega/p-2ff4ae1c.js +1 -0
  411. package/dist/vega/p-3488a3f1.entry.js +1 -0
  412. package/dist/vega/p-363ee8a5.entry.js +1 -0
  413. package/dist/vega/p-36c89520.entry.js +1 -0
  414. package/dist/vega/{p-e1737c8e.entry.js → p-3980dfa8.entry.js} +1 -1
  415. package/dist/vega/{p-14baa886.js → p-39c5054b.js} +1 -1
  416. package/dist/vega/p-3af5e87b.entry.js +1 -0
  417. package/dist/vega/{p-8db904dc.js → p-456f678b.js} +1 -1
  418. package/dist/vega/{p-6c9c2f8c.entry.js → p-461100b8.entry.js} +1 -1
  419. package/dist/vega/p-4c3a08be.entry.js +1 -0
  420. package/dist/vega/p-53fd3c41.entry.js +1 -0
  421. package/dist/vega/{p-6fcec7c7.entry.js → p-56417ec5.entry.js} +1 -1
  422. package/dist/vega/{p-8a001caa.js → p-5e37b041.js} +1 -1
  423. package/dist/vega/p-5f377954.js +1 -1
  424. package/dist/vega/{p-a0a58295.entry.js → p-5f96e741.entry.js} +1 -1
  425. package/dist/vega/p-65fee02f.entry.js +1 -0
  426. package/dist/vega/p-6b76b572.entry.js +1 -0
  427. package/dist/vega/{p-75e33859.js → p-6c95a6a3.js} +1 -1
  428. package/dist/vega/p-703ac992.entry.js +1 -0
  429. package/dist/vega/p-71909102.js +1 -0
  430. package/dist/vega/{p-e1b57e8f.entry.js → p-72ab5cd5.entry.js} +1 -1
  431. package/dist/vega/{p-8720816e.js → p-781b7a54.js} +1 -1
  432. package/dist/vega/{p-7950f3e2.entry.js → p-81d4dfcb.entry.js} +1 -1
  433. package/dist/vega/p-8611465f.entry.js +1 -0
  434. package/dist/vega/{p-0d18368b.js → p-874e5624.js} +1 -1
  435. package/dist/vega/{p-4fe40b76.js → p-8e7932bc.js} +1 -1
  436. package/dist/vega/p-8ed3b2b6.entry.js +1 -0
  437. package/dist/vega/{p-9c39f90b.entry.js → p-8ff92914.entry.js} +1 -1
  438. package/dist/vega/{p-9bdc6e11.entry.js → p-92528dc9.entry.js} +1 -1
  439. package/dist/vega/p-9664e914.entry.js +1 -0
  440. package/dist/vega/p-98fc5821.entry.js +1 -0
  441. package/dist/vega/{p-fe24b459.js → p-9be02fa5.js} +1 -1
  442. package/dist/vega/p-9c4c474e.entry.js +1 -0
  443. package/dist/vega/{p-8354cff0.entry.js → p-a034dfc0.entry.js} +1 -1
  444. package/dist/vega/{p-e48a870f.entry.js → p-a484e32d.entry.js} +1 -1
  445. package/dist/vega/{p-b9e72de2.entry.js → p-a8174ad8.entry.js} +1 -1
  446. package/dist/vega/{p-49e1cf4d.entry.js → p-a91927eb.entry.js} +1 -1
  447. package/dist/vega/{p-b187b82d.entry.js → p-abbceebf.entry.js} +1 -1
  448. package/dist/vega/{p-e4266b45.entry.js → p-ac94ba1b.entry.js} +1 -1
  449. package/dist/vega/{p-b775e51f.js → p-ae2abdfa.js} +1 -1
  450. package/dist/vega/{p-bb60e381.entry.js → p-aeb50cad.entry.js} +1 -1
  451. package/dist/vega/{p-a890d60b.entry.js → p-b00ec194.entry.js} +1 -1
  452. package/dist/vega/{p-f78944d7.entry.js → p-b3733762.entry.js} +1 -1
  453. package/dist/vega/p-b594a11c.entry.js +1 -0
  454. package/dist/vega/{p-b4e7c967.js → p-b622c455.js} +1 -1
  455. package/dist/vega/{p-1232b553.entry.js → p-b98ead05.entry.js} +1 -1
  456. package/dist/vega/{p-e5ff77f7.entry.js → p-c2277448.entry.js} +1 -1
  457. package/dist/vega/{p-9f7154d2.js → p-c29934ef.js} +1 -1
  458. package/dist/vega/p-c3646101.entry.js +1 -0
  459. package/dist/vega/p-ca270da3.entry.js +1 -0
  460. package/dist/vega/{p-b4c26035.entry.js → p-ccbe3f1b.entry.js} +1 -1
  461. package/dist/vega/{p-6cde45fc.js → p-cd69aeae.js} +1 -1
  462. package/dist/vega/{p-579cdeae.js → p-d25c1a48.js} +1 -1
  463. package/dist/vega/{p-5924adae.entry.js → p-d2cbcf5e.entry.js} +1 -1
  464. package/dist/vega/{p-df828d90.entry.js → p-d3413a78.entry.js} +1 -1
  465. package/dist/vega/{p-f1974321.js → p-d609c3fd.js} +1 -1
  466. package/dist/vega/{p-a7209700.js → p-dad7d2ac.js} +1 -1
  467. package/dist/vega/{p-61ce8029.js → p-dbb4b1d1.js} +1 -1
  468. package/dist/vega/p-dcd3e3a7.js +1 -0
  469. package/dist/vega/p-de8f0d98.js +1 -0
  470. package/dist/vega/{p-e235020b.entry.js → p-deaf037a.entry.js} +1 -1
  471. package/dist/vega/p-e1029acc.js +1 -0
  472. package/dist/vega/p-e18c0656.entry.js +1 -0
  473. package/dist/vega/p-e3fdb65c.entry.js +1 -0
  474. package/dist/vega/p-e7e963ba.entry.js +1 -0
  475. package/dist/vega/{p-f7e459cd.js → p-e9b005df.js} +1 -1
  476. package/dist/vega/{p-88be9ec5.js → p-e9d09211.js} +1 -1
  477. package/dist/vega/{p-3c309a38.js → p-f1078e63.js} +1 -1
  478. package/dist/vega/{p-595998d9.entry.js → p-f29ea345.entry.js} +1 -1
  479. package/dist/vega/p-f5095035.entry.js +1 -0
  480. package/dist/vega/{p-05d04c07.entry.js → p-f95d8d10.entry.js} +1 -1
  481. package/dist/vega/vega.esm.js +1 -1
  482. package/package.json +3 -2
  483. package/dist/vega/p-0512308f.entry.js +0 -1
  484. package/dist/vega/p-1d8312d3.entry.js +0 -1
  485. package/dist/vega/p-2d77ae73.entry.js +0 -1
  486. package/dist/vega/p-2d8d4d5b.entry.js +0 -1
  487. package/dist/vega/p-320091b7.js +0 -1
  488. package/dist/vega/p-36949349.js +0 -1
  489. package/dist/vega/p-38c9d782.js +0 -1
  490. package/dist/vega/p-4151f53a.entry.js +0 -1
  491. package/dist/vega/p-4ff48b84.js +0 -1
  492. package/dist/vega/p-513bc0d9.js +0 -1
  493. package/dist/vega/p-5e4517eb.entry.js +0 -1
  494. package/dist/vega/p-6680ba17.entry.js +0 -1
  495. package/dist/vega/p-80b7945a.entry.js +0 -1
  496. package/dist/vega/p-841b3281.entry.js +0 -1
  497. package/dist/vega/p-87e5cb56.entry.js +0 -1
  498. package/dist/vega/p-8d4b85e7.entry.js +0 -1
  499. package/dist/vega/p-91303402.entry.js +0 -1
  500. package/dist/vega/p-97215133.js +0 -1
  501. package/dist/vega/p-9d96d83f.entry.js +0 -1
  502. package/dist/vega/p-a05a2f1e.entry.js +0 -1
  503. package/dist/vega/p-a775825e.entry.js +0 -1
  504. package/dist/vega/p-ae146458.entry.js +0 -1
  505. package/dist/vega/p-b8c13ac9.entry.js +0 -1
  506. package/dist/vega/p-ba2b9663.entry.js +0 -1
  507. package/dist/vega/p-bbad318e.entry.js +0 -1
  508. package/dist/vega/p-c079c935.entry.js +0 -1
  509. package/dist/vega/p-c0e42c03.entry.js +0 -1
  510. package/dist/vega/p-c41f5684.entry.js +0 -1
  511. package/dist/vega/p-c54b5a8f.entry.js +0 -1
  512. package/dist/vega/p-c5d3b008.entry.js +0 -1
  513. package/dist/vega/p-cd1e976c.entry.js +0 -1
  514. package/dist/vega/p-d25ca0c3.entry.js +0 -1
  515. package/dist/vega/p-ebe32b25.entry.js +0 -1
  516. package/dist/vega/p-ec162599.entry.js +0 -1
  517. package/dist/vega/p-f4da615a.js +0 -3
  518. package/dist/vega/p-fc7e4c8a.entry.js +0 -1
@@ -11,41 +11,41 @@ const changeManager = require('./change-manager-a297e4d2.js');
11
11
  const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-c82df135.js');
12
12
  const vegaInternalEventId = require('./vega-internal-event-id-ecc5b87a.js');
13
13
  const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
14
- const codeBlock = require('./code-block-493c7ce7.js');
15
- const linkExtension = require('./link-extension-92a63cb7.js');
16
- const typeGuard = require('./type-guard-f354af8b.js');
14
+ const codeBlock = require('./code-block-28a7732e.js');
15
+ const linkExtension = require('./link-extension-71c27ff3.js');
16
+ const typeGuard = require('./type-guard-a57ef3ac.js');
17
17
  const internalIconManager = require('./internal-icon-manager-40bcac72.js');
18
- const imageAnnotationAction = require('./image-annotation-action-7c4cd316.js');
18
+ const imageAnnotationAction = require('./image-annotation-action-b54dc669.js');
19
19
  const vegaEventId = require('./vega-event-id-58afed7a.js');
20
20
  const misc = require('./misc-3d30df91.js');
21
21
  const waitForComponentDidRender = require('./wait-for-component-did-render-02ca4bee.js');
22
- const imageExtension = require('./image-extension-30a7c10f.js');
23
- const formFieldControllerSlimmer = require('./form-field-controller-slimmer-d638ba12.js');
22
+ const imageExtension = require('./image-extension-1e3eeaa3.js');
23
+ const formFieldControllerSlimmer = require('./form-field-controller-slimmer-58621b5e.js');
24
24
  const eventEmitSlimmer = require('./event-emit-slimmer-34aa195e.js');
25
25
  const subStateNotifySlimmer = require('./sub-state-notify-slimmer-18891389.js');
26
- const contentState = require('./content-state-fc34a814.js');
26
+ const contentState = require('./content-state-e2ab0f06.js');
27
27
  const alignLeft = require('./align-left-4a76df69.js');
28
- const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-ab21fcbf.js');
28
+ const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-50cdba6e.js');
29
29
  const observer = require('./observer-f49483e8.js');
30
30
  const timer = require('./timer-5f33058b.js');
31
31
  const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-b454645a.js');
32
- const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-23bf7485.js');
32
+ const ui = require('./ui-c91c37a7.js');
33
+ const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-4fdee376.js');
33
34
  const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-e0ac8467.js');
34
- const translationSlimmer = require('./translation-slimmer-9099f56c.js');
35
+ const translationSlimmer = require('./translation-slimmer-77c7f37d.js');
35
36
  const darkModeStyleController = require('./dark-mode-style-controller-32d4054a.js');
36
37
  const autoRunWhenReRenderTaskQueueSlimmer_abstract = require('./auto-run-when-re-render-task-queue-slimmer.abstract-5734634d.js');
37
38
  const array = require('./array-249289f2.js');
38
39
  const chevronDown = require('./chevron-down-9847bf78.js');
39
40
  const chevronUp = require('./chevron-up-21465cf7.js');
40
41
  const trashCan = require('./trash-can-46a5e19a.js');
41
- const ui = require('./ui-c91c37a7.js');
42
42
  const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
43
43
  require('./string-39438062.js');
44
44
  require('./typography-3ea4fe41.js');
45
45
  require('./object-b53e9416.js');
46
46
  require('./breakpoints-ebde4837.js');
47
47
  require('./ui-32120990.js');
48
- require('./internal-translation-controller-eb02c3b1.js');
48
+ require('./internal-translation-controller-1dac2df8.js');
49
49
  require('./icon-manager-be358b32.js');
50
50
  require('./create-public-api-runtime-metrics-slimmer-91b0cbfb.js');
51
51
  require('./dynamic-slimmer-f31fdfd7.js');
@@ -54,13 +54,14 @@ require('./try-get-document-c0ebd39a.js');
54
54
  require('./page-resize-observer-slimmer-273d62ef.js');
55
55
  require('./breakpoints-1cc2c4c6.js');
56
56
  require('./internal-form-field-validation-rule.abstract-07cdff46.js');
57
+ require('./form-field-key-8d5edf75.js');
57
58
  require('./mutation-observer-slimmer-749d5020.js');
58
59
  require('./mutation-observer-filters-38cebc6d.js');
59
60
  require('./sub-state-observer-slimmer-eee2f0ae.js');
60
61
  require('./internal-vega-event-manager-7003c84a.js');
61
- require('./range-30219330.js');
62
- require('./keyboard-manager-slimmer-a1223714.js');
63
- require('./keyboard-manager-ca76d4dc.js');
62
+ require('./range-eebe0e3c.js');
63
+ require('./keyboard-manager-slimmer-7043a106.js');
64
+ require('./keyboard-manager-c56033b1.js');
64
65
  require('./vega-env-manager-23b8b23c.js');
65
66
  require('./feature-flag-controller-c19d0b58.js');
66
67
  require('./index-3ca118c4.js');
@@ -69,7 +70,7 @@ require('./vega-nonce-manager-df69d3ed.js');
69
70
  require('./synchronize-task-queue-1ee80e94.js');
70
71
  require('./number-4816603d.js');
71
72
 
72
- var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
73
+ var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
73
74
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
74
75
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
75
76
  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;
@@ -182,59 +183,59 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
182
183
  this.richTextEditorSourceViewRenderer.render()));
183
184
  }
184
185
  }
185
- __decorate$E([
186
+ __decorate$H([
186
187
  globalSlimmerRegistry.MapToComponentField()
187
188
  ], VegaRichTextEditorRenderer.prototype, "host", void 0);
188
- __decorate$E([
189
+ __decorate$H([
189
190
  globalSlimmerRegistry.MapToComponentField()
190
191
  ], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
191
- __decorate$E([
192
+ __decorate$H([
192
193
  globalSlimmerRegistry.MapToComponentField()
193
194
  ], VegaRichTextEditorRenderer.prototype, "label", void 0);
194
- __decorate$E([
195
+ __decorate$H([
195
196
  globalSlimmerRegistry.MapToComponentField()
196
197
  ], VegaRichTextEditorRenderer.prototype, "required", void 0);
197
- __decorate$E([
198
+ __decorate$H([
198
199
  globalSlimmerRegistry.MapToComponentField()
199
200
  ], VegaRichTextEditorRenderer.prototype, "optional", void 0);
200
- __decorate$E([
201
+ __decorate$H([
201
202
  globalSlimmerRegistry.MapToComponentField()
202
203
  ], VegaRichTextEditorRenderer.prototype, "hint", void 0);
203
- __decorate$E([
204
+ __decorate$H([
204
205
  globalSlimmerRegistry.MapToComponentField()
205
206
  ], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
206
- __decorate$E([
207
+ __decorate$H([
207
208
  globalSlimmerRegistry.MapToComponentField()
208
209
  ], VegaRichTextEditorRenderer.prototype, "rows", void 0);
209
- __decorate$E([
210
+ __decorate$H([
210
211
  globalSlimmerRegistry.MapToComponentField()
211
212
  ], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
212
- __decorate$E([
213
+ __decorate$H([
213
214
  globalSlimmerRegistry.MapToComponentField()
214
215
  ], VegaRichTextEditorRenderer.prototype, "value", void 0);
215
- __decorate$E([
216
+ __decorate$H([
216
217
  globalSlimmerRegistry.MapToComponentField()
217
218
  ], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
218
- __decorate$E([
219
+ __decorate$H([
219
220
  globalSlimmerRegistry.MapToComponentField()
220
221
  ], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
221
- __decorate$E([
222
+ __decorate$H([
222
223
  globalSlimmerRegistry.MapToComponentField()
223
224
  ], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
224
- __decorate$E([
225
+ __decorate$H([
225
226
  globalSlimmerRegistry.MapToComponentField()
226
227
  ], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
227
- __decorate$E([
228
+ __decorate$H([
228
229
  globalSlimmerRegistry.MapToComponentField()
229
230
  ], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
230
- __decorate$E([
231
+ __decorate$H([
231
232
  globalSlimmerRegistry.MapToComponentField()
232
233
  ], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
233
- __decorate$E([
234
+ __decorate$H([
234
235
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
235
236
  ], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
236
237
 
237
- var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
238
+ var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
238
239
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
239
240
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
240
241
  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;
@@ -337,76 +338,76 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
337
338
  return [renderedItems, totalVisibleCount];
338
339
  }
339
340
  }
340
- __decorate$D([
341
+ __decorate$G([
341
342
  globalSlimmerRegistry.MapToComponentField()
342
343
  ], ToolbarRenderer.prototype, "uniqueToolbarItems", void 0);
343
- __decorate$D([
344
+ __decorate$G([
344
345
  globalSlimmerRegistry.MapToComponentField()
345
346
  ], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
346
- __decorate$D([
347
+ __decorate$G([
347
348
  globalSlimmerRegistry.MapToComponentField()
348
349
  ], ToolbarRenderer.prototype, "host", void 0);
349
- __decorate$D([
350
+ __decorate$G([
350
351
  globalSlimmerRegistry.MapToComponentField()
351
352
  ], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
352
- __decorate$D([
353
+ __decorate$G([
353
354
  globalSlimmerRegistry.MapToComponentField()
354
355
  ], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
355
- __decorate$D([
356
+ __decorate$G([
356
357
  globalSlimmerRegistry.MapToComponentField()
357
358
  ], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
358
- __decorate$D([
359
+ __decorate$G([
359
360
  globalSlimmerRegistry.MapToComponentField()
360
361
  ], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
361
- __decorate$D([
362
+ __decorate$G([
362
363
  globalSlimmerRegistry.MapToComponentField()
363
364
  ], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
364
- __decorate$D([
365
+ __decorate$G([
365
366
  globalSlimmerRegistry.MapToComponentField()
366
367
  ], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
367
- __decorate$D([
368
+ __decorate$G([
368
369
  globalSlimmerRegistry.MapToComponentField()
369
370
  ], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
370
- __decorate$D([
371
+ __decorate$G([
371
372
  globalSlimmerRegistry.MapToComponentField()
372
373
  ], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
373
- __decorate$D([
374
+ __decorate$G([
374
375
  globalSlimmerRegistry.MapToComponentField()
375
376
  ], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
376
- __decorate$D([
377
+ __decorate$G([
377
378
  globalSlimmerRegistry.MapToComponentField()
378
379
  ], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
379
- __decorate$D([
380
+ __decorate$G([
380
381
  globalSlimmerRegistry.MapToComponentField()
381
382
  ], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
382
- __decorate$D([
383
+ __decorate$G([
383
384
  globalSlimmerRegistry.MapToComponentField()
384
385
  ], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
385
- __decorate$D([
386
+ __decorate$G([
386
387
  globalSlimmerRegistry.MapToComponentField()
387
388
  ], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
388
- __decorate$D([
389
+ __decorate$G([
389
390
  globalSlimmerRegistry.MapToComponentField()
390
391
  ], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
391
- __decorate$D([
392
+ __decorate$G([
392
393
  globalSlimmerRegistry.MapToComponentField()
393
394
  ], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
394
- __decorate$D([
395
+ __decorate$G([
395
396
  globalSlimmerRegistry.MapToComponentField()
396
397
  ], ToolbarRenderer.prototype, "undoToolbarButtonSlimmer", void 0);
397
- __decorate$D([
398
+ __decorate$G([
398
399
  globalSlimmerRegistry.MapToComponentField()
399
400
  ], ToolbarRenderer.prototype, "redoToolbarButtonSlimmer", void 0);
400
- __decorate$D([
401
+ __decorate$G([
401
402
  globalSlimmerRegistry.MapToComponentField()
402
403
  ], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
403
- __decorate$D([
404
+ __decorate$G([
404
405
  globalSlimmerRegistry.MapToComponentField()
405
406
  ], ToolbarRenderer.prototype, "selectionController", void 0);
406
- __decorate$D([
407
+ __decorate$G([
407
408
  globalSlimmerRegistry.MapToComponentField()
408
409
  ], ToolbarRenderer.prototype, "translationSlimmer", void 0);
409
- __decorate$D([
410
+ __decorate$G([
410
411
  globalSlimmerRegistry.MapToComponentField()
411
412
  ], ToolbarRenderer.prototype, "sourceView", void 0);
412
413
 
@@ -414,7 +415,7 @@ const bold = {
414
415
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
415
416
  };
416
417
 
417
- var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
418
+ var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
418
419
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
419
420
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
420
421
  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;
@@ -456,7 +457,7 @@ class BoldToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
456
457
  (() => {
457
458
  internalIconManager.VegaInternalIconManager.register({ bold });
458
459
  })();
459
- __decorate$C([
460
+ __decorate$F([
460
461
  globalSlimmerRegistry.MapToComponentField()
461
462
  ], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
462
463
 
@@ -464,7 +465,7 @@ const italic = {
464
465
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>`,
465
466
  };
466
467
 
467
- var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
468
+ var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
468
469
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
469
470
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
470
471
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -504,7 +505,7 @@ class ItalicToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbar
504
505
  (() => {
505
506
  internalIconManager.VegaInternalIconManager.register({ italic });
506
507
  })();
507
- __decorate$B([
508
+ __decorate$E([
508
509
  globalSlimmerRegistry.MapToComponentField()
509
510
  ], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
510
511
 
@@ -512,7 +513,7 @@ const underline = {
512
513
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>`,
513
514
  };
514
515
 
515
- var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
516
+ var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
516
517
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
517
518
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
518
519
  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;
@@ -555,7 +556,7 @@ class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
555
556
  (() => {
556
557
  internalIconManager.VegaInternalIconManager.register({ underline });
557
558
  })();
558
- __decorate$A([
559
+ __decorate$D([
559
560
  globalSlimmerRegistry.MapToComponentField()
560
561
  ], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
561
562
 
@@ -563,7 +564,7 @@ const textSize = {
563
564
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
564
565
  };
565
566
 
566
- var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
567
+ var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
567
568
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
568
569
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
569
570
  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;
@@ -691,13 +692,13 @@ TextStylesToolbarButtonSlimmer.allItems = [
691
692
  label: 'Paragraph',
692
693
  },
693
694
  ];
694
- __decorate$z([
695
+ __decorate$C([
695
696
  globalSlimmerRegistry.MapToComponentField()
696
697
  ], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
697
- __decorate$z([
698
+ __decorate$C([
698
699
  globalSlimmerRegistry.MapToComponentField()
699
700
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
700
- __decorate$z([
701
+ __decorate$C([
701
702
  globalSlimmerRegistry.MapToComponentField()
702
703
  ], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
703
704
 
@@ -705,7 +706,7 @@ const TextSlash = {
705
706
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
706
707
  };
707
708
 
708
- var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
709
+ var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
709
710
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
710
711
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
711
712
  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;
@@ -742,7 +743,7 @@ class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
742
743
  'text-slash': TextSlash,
743
744
  });
744
745
  })();
745
- __decorate$y([
746
+ __decorate$B([
746
747
  globalSlimmerRegistry.MapToComponentField()
747
748
  ], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
748
749
 
@@ -750,7 +751,7 @@ const codeSimple = {
750
751
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
751
752
  };
752
753
 
753
- var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
754
+ var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
754
755
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
755
756
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
756
757
  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;
@@ -788,7 +789,7 @@ class CodeToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
788
789
  (() => {
789
790
  internalIconManager.VegaInternalIconManager.register({ 'code-simple': codeSimple });
790
791
  })();
791
- __decorate$x([
792
+ __decorate$A([
792
793
  globalSlimmerRegistry.MapToComponentField()
793
794
  ], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
794
795
 
@@ -796,7 +797,7 @@ const strikethrough = {
796
797
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path fill="currentColor" d="M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z"/></svg>`,
797
798
  };
798
799
 
799
- var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
800
+ var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
800
801
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
801
802
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
802
803
  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;
@@ -839,7 +840,7 @@ class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.VisualMode
839
840
  (() => {
840
841
  internalIconManager.VegaInternalIconManager.register({ strikethrough });
841
842
  })();
842
- __decorate$w([
843
+ __decorate$z([
843
844
  globalSlimmerRegistry.MapToComponentField()
844
845
  ], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
845
846
 
@@ -847,7 +848,7 @@ const link = {
847
848
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M562.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L405.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C189.5 251.2 196 330 246 380c56.5 56.5 148 56.5 204.5 0L562.8 267.7zM43.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C57 372 57 321 88.5 289.5L200.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C416.5 260.8 410 182 360 132c-56.5-56.5-148-56.5-204.5 0L43.2 244.3z"/></svg>`,
848
849
  };
849
850
 
850
- var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
851
+ var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
851
852
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
852
853
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
853
854
  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;
@@ -864,12 +865,18 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
864
865
  this.handleLinkEditorChange = ({ detail, }) => {
865
866
  switch (detail.action) {
866
867
  case 'link': {
867
- const { url, text } = detail.payload;
868
+ const { url, text, linkType } = detail.payload;
868
869
  const textChanged = text !== this.currentSelectedText;
869
870
  const groupKey = misc.generateUUID();
870
871
  this.currentSelectedNodes.forEach((node) => {
871
872
  node.apply(new codeBlock.SelectionChangeAction(this.currentRange)).apply(new codeBlock.LinkAnnotationAction({
872
- link: { href: url, groupKey: groupKey },
873
+ link: Object.assign({ href: url, groupKey: groupKey }, (linkType
874
+ ? {
875
+ customAttribute: {
876
+ 'data-link-type': linkType,
877
+ },
878
+ }
879
+ : {})),
873
880
  newText: textChanged ? text : undefined,
874
881
  needMergeNode: textChanged && this.currentSelectedNodes.length > 1,
875
882
  type: 'link',
@@ -930,7 +937,7 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
930
937
  (() => {
931
938
  internalIconManager.VegaInternalIconManager.register({ link: link });
932
939
  })();
933
- __decorate$v([
940
+ __decorate$y([
934
941
  globalSlimmerRegistry.MapToComponentField()
935
942
  ], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
936
943
 
@@ -938,7 +945,7 @@ const indent = {
938
945
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>`,
939
946
  };
940
947
 
941
- var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
948
+ var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
942
949
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
943
950
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
944
951
  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;
@@ -972,7 +979,7 @@ class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
972
979
  (() => {
973
980
  internalIconManager.VegaInternalIconManager.register({ indent: indent });
974
981
  })();
975
- __decorate$u([
982
+ __decorate$x([
976
983
  globalSlimmerRegistry.MapToComponentField()
977
984
  ], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
978
985
 
@@ -980,7 +987,7 @@ const outdent = {
980
987
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
981
988
  };
982
989
 
983
- var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
990
+ var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
984
991
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
985
992
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
986
993
  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;
@@ -1015,7 +1022,7 @@ class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1015
1022
  (() => {
1016
1023
  internalIconManager.VegaInternalIconManager.register({ outdent: outdent });
1017
1024
  })();
1018
- __decorate$t([
1025
+ __decorate$w([
1019
1026
  globalSlimmerRegistry.MapToComponentField()
1020
1027
  ], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1021
1028
 
@@ -1036,7 +1043,7 @@ class ImageUpdateUrlAction extends codeBlock.ModifyContentAction {
1036
1043
  }
1037
1044
  }
1038
1045
 
1039
- var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1046
+ var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1040
1047
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1041
1048
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1042
1049
  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;
@@ -1235,16 +1242,16 @@ ImageToolbarButtonSlimmer.allItems = [
1235
1242
  label: 'Insert via URL',
1236
1243
  },
1237
1244
  ];
1238
- __decorate$s([
1245
+ __decorate$v([
1239
1246
  globalSlimmerRegistry.MapToComponentField()
1240
1247
  ], ImageToolbarButtonSlimmer.prototype, "host", void 0);
1241
- __decorate$s([
1248
+ __decorate$v([
1242
1249
  globalSlimmerRegistry.MapToComponentField()
1243
1250
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
1244
- __decorate$s([
1251
+ __decorate$v([
1245
1252
  globalSlimmerRegistry.MapToComponentField()
1246
1253
  ], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
1247
- __decorate$s([
1254
+ __decorate$v([
1248
1255
  globalSlimmerRegistry.MapToComponentField()
1249
1256
  ], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
1250
1257
 
@@ -1257,111 +1264,574 @@ const ListOL = {
1257
1264
  };
1258
1265
 
1259
1266
  /**
1260
- * Action to toggle bullet annotation
1267
+ * Action to nest the selected list items under the previous sibling.
1261
1268
  */
1262
- class TransformListAction extends codeBlock.ModifyContentAction {
1263
- constructor(listType, selectedBlocks) {
1269
+ class NestListItemsAction extends codeBlock.ModifyContentAction {
1270
+ constructor(selectedBlocks) {
1264
1271
  super();
1265
- this.type = codeBlock.ModifyContentActionType.TRANSFORM_LIST_BLOCK;
1272
+ this.type = codeBlock.ModifyContentActionType.NEST_LIST_ITEMS;
1266
1273
  this.isFlushable = true;
1267
- this.listType = listType;
1268
1274
  this.selectedBlocks = selectedBlocks;
1269
1275
  }
1270
1276
  }
1271
1277
 
1272
1278
  /**
1273
- * Action to toggle bullet annotation
1279
+ * Abstract base for list keyboard (Tab / Shift+Tab) handlers.
1280
+ * Provides shared selection-normalization utilities used by both the indent
1281
+ * and outdent concrete handlers.
1274
1282
  */
1275
- class TransformParagraphAction extends codeBlock.ModifyContentAction {
1276
- constructor(selectedBlocks) {
1277
- super();
1278
- this.type = codeBlock.ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK;
1279
- this.isFlushable = true;
1280
- this.selectedBlocks = selectedBlocks;
1283
+ class AbstractListKeyboardHandler {
1284
+ /**
1285
+ * Filter the ordered selection down to only the "root" items —
1286
+ * items whose ancestor is not also present in the selection.
1287
+ *
1288
+ * @param {RTEListItemBlock[]} selection - Ordered selected list items.
1289
+ * @returns {RTEListItemBlock[]} Root items that do not have selected ancestors.
1290
+ */
1291
+ getOutdentRoots(selection) {
1292
+ const selectedItems = new Set(selection);
1293
+ return selection.filter((item) => !this.hasSelectedAncestor(item, selectedItems));
1281
1294
  }
1282
- }
1283
-
1284
- var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1285
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1286
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1287
- 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;
1288
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1289
- };
1290
- class BulletsToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1291
- constructor() {
1292
- super({
1293
- icon: 'list-ul',
1294
- tooltip: {
1295
- text: 'Bullets',
1296
- },
1295
+ /**
1296
+ * Check whether a list item has an ancestor that is also selected.
1297
+ *
1298
+ * @param {RTEListItemBlock} item - Item to inspect.
1299
+ * @param {Set<RTEListItemBlock>} selectedItems - Selected items lookup set.
1300
+ * @returns {boolean} True when an ancestor item is selected.
1301
+ */
1302
+ hasSelectedAncestor(item, selectedItems) {
1303
+ var _a, _b;
1304
+ let currentParent = (_a = item.parent) === null || _a === void 0 ? void 0 : _a.parent;
1305
+ while (currentParent instanceof codeBlock.RTEListItemBlock) {
1306
+ if (selectedItems.has(currentParent)) {
1307
+ return true;
1308
+ }
1309
+ currentParent = (_b = currentParent.parent) === null || _b === void 0 ? void 0 : _b.parent;
1310
+ }
1311
+ return false;
1312
+ }
1313
+ /**
1314
+ * Split an ordered flat list of items into groups that share the same
1315
+ * parent list and are contiguous siblings.
1316
+ *
1317
+ * @param {RTEListItemBlock[]} selection - Ordered list-item selection.
1318
+ * @returns {RTEListItemBlock[][]} Contiguous parent-based segments.
1319
+ */
1320
+ splitSelectionIntoParentSegments(selection) {
1321
+ const segments = [];
1322
+ let currentSegment = [];
1323
+ selection.forEach((item) => {
1324
+ if (currentSegment.length === 0) {
1325
+ currentSegment.push(item);
1326
+ return;
1327
+ }
1328
+ const previousItem = currentSegment[currentSegment.length - 1];
1329
+ const isSameParent = previousItem.parent === item.parent;
1330
+ const isContiguousSibling = isSameParent &&
1331
+ item.parent.children.indexOf(item) - item.parent.children.indexOf(previousItem) === 1;
1332
+ if (isContiguousSibling) {
1333
+ currentSegment.push(item);
1334
+ return;
1335
+ }
1336
+ segments.push(currentSegment);
1337
+ currentSegment = [item];
1297
1338
  });
1339
+ if (currentSegment.length > 0) {
1340
+ segments.push(currentSegment);
1341
+ }
1342
+ return segments;
1298
1343
  }
1299
- isSelected() {
1300
- const selectedBlocks = this.selectionController.getSelectedBlocks();
1301
- return this.isListType(selectedBlocks);
1344
+ /**
1345
+ * Normalize the selection and split into parent-based contiguous segments.
1346
+ * Returns null when the result is empty.
1347
+ *
1348
+ * @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
1349
+ * @returns {RTEListItemBlock[][] | null} Contiguous segments or null when invalid.
1350
+ */
1351
+ normalizeToSegments(selectedBlocks) {
1352
+ const normalizedSelection = this.getOrderedListItems(selectedBlocks);
1353
+ if (!normalizedSelection) {
1354
+ return null;
1355
+ }
1356
+ const roots = this.getOutdentRoots(normalizedSelection);
1357
+ const segments = this.splitSelectionIntoParentSegments(roots);
1358
+ return segments.length ? segments : null;
1302
1359
  }
1303
- onClick() {
1304
- if (this.isSelected()) {
1305
- this.deselectBulletList();
1360
+ /**
1361
+ * Return the first and last RTETextNode spanning the provided blocks,
1362
+ * or null when either boundary cannot be resolved.
1363
+ *
1364
+ * @param {RTEBlock[]} blocks - Blocks defining the range boundary.
1365
+ * @returns {Nullable<[RTETextNode, RTETextNode]>} First and last boundary nodes.
1366
+ */
1367
+ getSelectionBoundary(blocks) {
1368
+ var _a, _b, _c, _d;
1369
+ const firstNode = (_b = (_a = blocks[0]) === null || _a === void 0 ? void 0 : _a.getFirstNode()) !== null && _b !== void 0 ? _b : null;
1370
+ const lastNode = (_d = (_c = blocks[blocks.length - 1]) === null || _c === void 0 ? void 0 : _c.getLastNode()) !== null && _d !== void 0 ? _d : null;
1371
+ if (!firstNode || !lastNode) {
1372
+ return null;
1306
1373
  }
1307
- else {
1308
- this.selectBulletList();
1374
+ return [firstNode, lastNode];
1375
+ }
1376
+ /**
1377
+ * Normalize the raw selectedBlocks into an ordered list of RTEListItemBlocks,
1378
+ * truncating at the first non-list block. Returns null when no list items
1379
+ * are present.
1380
+ *
1381
+ * @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
1382
+ * @returns {RTEListItemBlock[] | null} Ordered list items or null.
1383
+ */
1384
+ getOrderedListItems(selectedBlocks) {
1385
+ const selectedListItems = this.getSelectedListItemsUntilFirstNonList(selectedBlocks);
1386
+ if (!selectedListItems.length) {
1387
+ return null;
1309
1388
  }
1310
- void this.popoverRef.hide();
1389
+ return [...selectedListItems].sort((a, b) => this.compareTreePath(this.getTreePath(a), this.getTreePath(b)));
1311
1390
  }
1312
- isDisabled() {
1313
- const selectedNodes = this.selectionController.getSelectedNodes();
1314
- return (super.isDisabled() ||
1315
- selectedNodes.some((node) => node instanceof contentState.RTEImageNode || node instanceof codeBlock.RTECodeBlockNode));
1391
+ /**
1392
+ * Collect contiguous selected list items until a non-list block is found.
1393
+ *
1394
+ * @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
1395
+ * @returns {RTEListItemBlock[]} Selected list items up to first non-list block.
1396
+ */
1397
+ getSelectedListItemsUntilFirstNonList(selectedBlocks) {
1398
+ const selectedListItems = [];
1399
+ for (const block of selectedBlocks) {
1400
+ if (!(block instanceof codeBlock.RTEListItemBlock)) {
1401
+ if (selectedListItems.length > 0) {
1402
+ break;
1403
+ }
1404
+ return [];
1405
+ }
1406
+ selectedListItems.push(block);
1407
+ }
1408
+ return selectedListItems;
1316
1409
  }
1317
- isListType(selectedBlocks, type = 'bullet-list') {
1318
- return (selectedBlocks.length > 0 &&
1319
- selectedBlocks.every((block) => block instanceof contentState.RTEListItemBlock && block.parent.type === type));
1410
+ /**
1411
+ * Build a hierarchical index path for a list item in the list tree.
1412
+ *
1413
+ * @param {RTEListItemBlock} item - Item whose tree path is being resolved.
1414
+ * @returns {number[]} Tree index path from root to the item.
1415
+ */
1416
+ getTreePath(item) {
1417
+ var _a;
1418
+ const path = [];
1419
+ const visitedLists = new Set();
1420
+ let currentItem = item;
1421
+ let currentList = item.parent;
1422
+ while (currentList && this.hasChildren(currentList) && !visitedLists.has(currentList)) {
1423
+ visitedLists.add(currentList);
1424
+ const itemIndex = currentList.children.indexOf(currentItem);
1425
+ if (itemIndex < 0) {
1426
+ break;
1427
+ }
1428
+ path.unshift(itemIndex);
1429
+ const listParent = currentList.parent;
1430
+ if (listParent instanceof codeBlock.RTEListItemBlock) {
1431
+ const nestListIndex = ((_a = listParent.nestList) !== null && _a !== void 0 ? _a : []).indexOf(currentList);
1432
+ if (nestListIndex < 0) {
1433
+ break;
1434
+ }
1435
+ path.unshift(nestListIndex);
1436
+ currentItem = listParent;
1437
+ currentList = listParent.parent;
1438
+ continue;
1439
+ }
1440
+ let child = currentList;
1441
+ let container = listParent;
1442
+ while (container && this.hasChildren(container)) {
1443
+ const childIndex = container.children.indexOf(child);
1444
+ if (childIndex < 0) {
1445
+ return path;
1446
+ }
1447
+ path.unshift(childIndex);
1448
+ child = container;
1449
+ container = container.parent;
1450
+ }
1451
+ break;
1452
+ }
1453
+ return path;
1320
1454
  }
1321
1455
  /**
1322
- * Deselect bullet list item to convert it to default paragraph
1456
+ * Compare two list-item tree paths.
1457
+ *
1458
+ * @param {number[]} a - First tree path.
1459
+ * @param {number[]} b - Second tree path.
1460
+ * @returns {number} Negative when a < b, positive when a > b, otherwise 0.
1461
+ */
1462
+ compareTreePath(a, b) {
1463
+ const length = Math.min(a.length, b.length);
1464
+ for (let i = 0; i < length; i++) {
1465
+ if (a[i] !== b[i]) {
1466
+ return a[i] - b[i];
1467
+ }
1468
+ }
1469
+ return a.length - b.length;
1470
+ }
1471
+ /**
1472
+ * Check whether a value exposes a children array.
1473
+ *
1474
+ * @param {unknown} entity - Candidate value.
1475
+ * @returns {boolean} True when entity has children array.
1323
1476
  */
1324
- deselectBulletList() {
1325
- const selectedBlocks = this.selectionController.getSelectedBlocks();
1326
- if (selectedBlocks[0]) {
1327
- selectedBlocks[0].parent.apply(new TransformParagraphAction(selectedBlocks));
1477
+ hasChildren(entity) {
1478
+ return !!entity && Array.isArray(entity.children);
1479
+ }
1480
+ }
1481
+
1482
+ /**
1483
+ * Handles Tab key list indentation.
1484
+ * Normalizes the selection, applies a command-style gate on the first
1485
+ * eligible segment, then nests each qualifying segment.
1486
+ */
1487
+ class ListTabIndentHandler extends AbstractListKeyboardHandler {
1488
+ /**
1489
+ * @inheritDoc
1490
+ */
1491
+ execute(selectedBlocks) {
1492
+ const segments = this.normalizeToSegments(selectedBlocks);
1493
+ if (!segments) {
1494
+ return null;
1495
+ }
1496
+ const firstSegment = segments[0];
1497
+ const firstParentList = firstSegment[0].parent;
1498
+ if (firstParentList.children.indexOf(firstSegment[0]) <= 0) {
1499
+ return null;
1500
+ }
1501
+ const segmentSelectionBoundaries = new Array(segments.length).fill(null);
1502
+ for (let i = segments.length - 1; i >= 0; i--) {
1503
+ const segment = segments[i];
1504
+ const parentList = segment[0].parent;
1505
+ if (parentList.children.indexOf(segment[0]) <= 0) {
1506
+ continue;
1507
+ }
1508
+ parentList.apply(new NestListItemsAction(segment));
1509
+ segmentSelectionBoundaries[i] = this.getSelectionBoundary(segment);
1328
1510
  }
1511
+ return segmentSelectionBoundaries.some(Boolean) ? segmentSelectionBoundaries : null;
1512
+ }
1513
+ }
1514
+
1515
+ /**
1516
+ * Action to promote the selected nested list items one level up.
1517
+ */
1518
+ class UnnestListItemsAction extends codeBlock.ModifyContentAction {
1519
+ constructor(selectedBlocks) {
1520
+ super();
1521
+ this.type = codeBlock.ModifyContentActionType.UNNEST_LIST_ITEMS;
1522
+ this.isFlushable = true;
1523
+ this.selectedBlocks = selectedBlocks;
1329
1524
  }
1525
+ }
1526
+
1527
+ /**
1528
+ * Handles Shift+Tab key list outdent.
1529
+ * Normalizes the selection, then promotes each segment, either moving nested
1530
+ * items or promoting top-level items to paragraphs.
1531
+ */
1532
+ class ListShiftTabOutdentHandler extends AbstractListKeyboardHandler {
1330
1533
  /**
1331
- * Select texts or list items or texts and list items to convert it to bullet list
1534
+ * @inheritDoc
1332
1535
  */
1333
- selectBulletList() {
1334
- const selectedBlocks = this.selectionController.getSelectedBlocks();
1335
- if (selectedBlocks[0]) {
1336
- const selectedFirstBlock = selectedBlocks[0].type === 'list-item'
1337
- ? selectedBlocks[0].parent
1338
- : selectedBlocks[0];
1339
- selectedFirstBlock.apply(new TransformListAction('bullet-list', selectedBlocks));
1536
+ execute(selectedBlocks) {
1537
+ const segments = this.normalizeToSegments(selectedBlocks);
1538
+ if (!segments) {
1539
+ return null;
1340
1540
  }
1541
+ const segmentSelectionBoundaries = new Array(segments.length).fill(null);
1542
+ for (let i = segments.length - 1; i >= 0; i--) {
1543
+ const segment = segments[i];
1544
+ const parentList = segment[0].parent;
1545
+ if (parentList.parent instanceof contentState.VegaRTEContent || parentList.parent instanceof codeBlock.RTEHtmlBlock) {
1546
+ // Capture boundary before action moves text nodes into new paragraphs
1547
+ const boundary = this.getSelectionBoundary(segment);
1548
+ parentList.apply(new codeBlock.TransformParagraphAction(segment));
1549
+ segmentSelectionBoundaries[i] = boundary;
1550
+ continue;
1551
+ }
1552
+ if (parentList.parent instanceof codeBlock.RTEListItemBlock) {
1553
+ parentList.apply(new UnnestListItemsAction(segment));
1554
+ segmentSelectionBoundaries[i] = this.getSelectionBoundary(segment);
1555
+ }
1556
+ }
1557
+ if (segmentSelectionBoundaries.some(Boolean)) {
1558
+ return segmentSelectionBoundaries;
1559
+ }
1560
+ return null;
1341
1561
  }
1342
1562
  }
1343
- __decorate$r([
1344
- globalSlimmerRegistry.MapToComponentField()
1345
- ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1346
- __decorate$r([
1347
- globalSlimmerRegistry.MapToComponentField()
1348
- ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1349
1563
 
1350
- var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1564
+ var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1351
1565
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1352
1566
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1353
1567
  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;
1354
1568
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1355
1569
  };
1356
- class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1570
+ const LIST_TOOLBAR_ITEMS = ['bullets', 'numbers', 'bulletsNumbers'];
1571
+ /**
1572
+ * Handles list keyboard shortcuts (Tab/Shift+Tab) for list tooling.
1573
+ */
1574
+ class ListKeyboardSlimmer extends globalSlimmerRegistry.VegaSlimmer {
1357
1575
  constructor() {
1358
- super({
1359
- icon: 'list-ol',
1360
- tooltip: { text: 'Numbers' },
1361
- });
1362
- }
1363
- isSelected() {
1364
- const selectedBlocks = this.selectionController.getSelectedBlocks();
1576
+ super(...arguments);
1577
+ this.isKeyboardListenerBound = false;
1578
+ this.listTabIndentHandler = new ListTabIndentHandler();
1579
+ this.listShiftTabOutdentHandler = new ListShiftTabOutdentHandler();
1580
+ // Keyboard action execution
1581
+ /**
1582
+ * Handle Tab and Shift+Tab list keyboard interactions.
1583
+ *
1584
+ * @param {KeyboardEvent} e - Keyboard event to process.
1585
+ * @returns {void}
1586
+ */
1587
+ this.handleListKeyboardAction = (e) => {
1588
+ if (e.key !== 'Tab') {
1589
+ return;
1590
+ }
1591
+ if (this.hasNonShiftModifierForTab(e)) {
1592
+ return;
1593
+ }
1594
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1595
+ const currentRange = this.selectionController.getCurrentRange().clone();
1596
+ if (e.shiftKey) {
1597
+ const selectionBoundaries = this.listShiftTabOutdentHandler.execute(selectedBlocks);
1598
+ if (selectionBoundaries) {
1599
+ e.preventDefault();
1600
+ void this.valueController.flushChanges(this.value).then(() => {
1601
+ this.restoreListSelection(selectionBoundaries, currentRange.startNode instanceof codeBlock.RTETextNode ? currentRange.startNode : null, currentRange.endNode instanceof codeBlock.RTETextNode ? currentRange.endNode : null, currentRange.startOffset, currentRange.endOffset);
1602
+ });
1603
+ }
1604
+ return;
1605
+ }
1606
+ const selectionBoundaries = this.listTabIndentHandler.execute(selectedBlocks);
1607
+ if (!selectionBoundaries) {
1608
+ return;
1609
+ }
1610
+ e.preventDefault();
1611
+ void this.valueController.flushChanges(this.value).then(() => {
1612
+ this.restoreListSelection(selectionBoundaries, currentRange.startNode instanceof codeBlock.RTETextNode ? currentRange.startNode : null, currentRange.endNode instanceof codeBlock.RTETextNode ? currentRange.endNode : null, currentRange.startOffset, currentRange.endOffset);
1613
+ });
1614
+ };
1615
+ }
1616
+ // Listener lifecycle and gating
1617
+ /**
1618
+ * @inheritDoc
1619
+ */
1620
+ disconnectedCallback() {
1621
+ this.removeListKeyboardListener();
1622
+ }
1623
+ /**
1624
+ * @inheritDoc
1625
+ */
1626
+ componentDidLoad() {
1627
+ this.syncListKeyboardListener();
1628
+ }
1629
+ /**
1630
+ * Re-sync keyboard listener when toolbarItems prop changes at runtime,
1631
+ * ensuring list shortcuts are bound/unbound as tools are added/removed.
1632
+ */
1633
+ watchToolbarItems() {
1634
+ this.syncListKeyboardListener();
1635
+ }
1636
+ /**
1637
+ * Synchronize the DOM keydown listener with the configured toolbar items.
1638
+ */
1639
+ syncListKeyboardListener() {
1640
+ if (this.hasListToolbarConfigured()) {
1641
+ this.addListKeyboardListener();
1642
+ return;
1643
+ }
1644
+ this.removeListKeyboardListener();
1645
+ }
1646
+ /**
1647
+ * Determine whether any list keyboard controls are enabled in the toolbar.
1648
+ *
1649
+ * @returns {boolean} True when any list toolbar item is configured.
1650
+ */
1651
+ hasListToolbarConfigured() {
1652
+ const flatToolbarItems = this.toolbarItems.flat();
1653
+ return flatToolbarItems.some((item) => LIST_TOOLBAR_ITEMS.includes(item));
1654
+ }
1655
+ /**
1656
+ * Attach the keydown listener to the current editable element when available.
1657
+ * Handles element ref changes by rebinding when the target element differs.
1658
+ */
1659
+ addListKeyboardListener() {
1660
+ const editableElement = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
1661
+ if (this.isKeyboardListenerBound && this.boundEditableElement === editableElement) {
1662
+ return;
1663
+ }
1664
+ if (this.isKeyboardListenerBound) {
1665
+ this.removeListKeyboardListener();
1666
+ }
1667
+ if (!editableElement) {
1668
+ return;
1669
+ }
1670
+ editableElement.addEventListener('keydown', this.handleListKeyboardAction);
1671
+ this.boundEditableElement = editableElement;
1672
+ this.isKeyboardListenerBound = true;
1673
+ }
1674
+ /**
1675
+ * Detach the keydown listener from the previously bound editable element.
1676
+ */
1677
+ removeListKeyboardListener() {
1678
+ if (!this.isKeyboardListenerBound || !this.boundEditableElement) {
1679
+ return;
1680
+ }
1681
+ this.boundEditableElement.removeEventListener('keydown', this.handleListKeyboardAction);
1682
+ this.boundEditableElement = null;
1683
+ this.isKeyboardListenerBound = false;
1684
+ }
1685
+ /**
1686
+ * Check whether the Tab event includes modifiers other than Shift.
1687
+ *
1688
+ * @param {KeyboardEvent} e - Keyboard event to inspect.
1689
+ * @returns {boolean} True when non-shift modifier keys are pressed.
1690
+ */
1691
+ hasNonShiftModifierForTab(e) {
1692
+ return e.altKey || e.ctrlKey || e.metaKey || e.getModifierState('AltGraph');
1693
+ }
1694
+ /**
1695
+ * Restore the logical selection after a list keyboard action completes.
1696
+ *
1697
+ * @param {Array<Nullable<[RTETextNode, RTETextNode]>>} selectionBoundaries - Boundaries produced by the handler.
1698
+ * @param {Nullable<RTETextNode>} preferredStartNode - Preferred start node from prior selection.
1699
+ * @param {Nullable<RTETextNode>} preferredEndNode - Preferred end node from prior selection.
1700
+ * @param {number} startOffset - Preferred start offset.
1701
+ * @param {number} endOffset - Preferred end offset.
1702
+ * @returns {void}
1703
+ */
1704
+ restoreListSelection(selectionBoundaries, preferredStartNode, preferredEndNode, startOffset, endOffset) {
1705
+ var _a, _b, _c, _d;
1706
+ const firstBoundary = (_a = selectionBoundaries.find(Boolean)) !== null && _a !== void 0 ? _a : null;
1707
+ const lastBoundary = (_b = [...selectionBoundaries].reverse().find(Boolean)) !== null && _b !== void 0 ? _b : null;
1708
+ const firstNode = (_c = preferredStartNode !== null && preferredStartNode !== void 0 ? preferredStartNode : firstBoundary === null || firstBoundary === void 0 ? void 0 : firstBoundary[0]) !== null && _c !== void 0 ? _c : null;
1709
+ const lastNode = (_d = preferredEndNode !== null && preferredEndNode !== void 0 ? preferredEndNode : lastBoundary === null || lastBoundary === void 0 ? void 0 : lastBoundary[1]) !== null && _d !== void 0 ? _d : null;
1710
+ if (!firstNode || !lastNode) {
1711
+ return;
1712
+ }
1713
+ this.selectionController.enqueueSelectionRangeFutureState(firstNode, Math.min(startOffset, firstNode.getRangeEndOffset()), lastNode, Math.min(endOffset, lastNode.getRangeEndOffset()), true);
1714
+ }
1715
+ }
1716
+ __decorate$u([
1717
+ globalSlimmerRegistry.MapToComponentField()
1718
+ ], ListKeyboardSlimmer.prototype, "selectionController", void 0);
1719
+ __decorate$u([
1720
+ globalSlimmerRegistry.MapToComponentField()
1721
+ ], ListKeyboardSlimmer.prototype, "valueController", void 0);
1722
+ __decorate$u([
1723
+ globalSlimmerRegistry.MapToComponentField()
1724
+ ], ListKeyboardSlimmer.prototype, "value", void 0);
1725
+ __decorate$u([
1726
+ globalSlimmerRegistry.MapToComponentField()
1727
+ ], ListKeyboardSlimmer.prototype, "toolbarItems", void 0);
1728
+ __decorate$u([
1729
+ globalSlimmerRegistry.MapToComponentField()
1730
+ ], ListKeyboardSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1731
+ __decorate$u([
1732
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1733
+ ], ListKeyboardSlimmer.prototype, "disconnectedCallback", null);
1734
+ __decorate$u([
1735
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
1736
+ ], ListKeyboardSlimmer.prototype, "componentDidLoad", null);
1737
+ __decorate$u([
1738
+ globalSlimmerRegistry.MapToComponentMethod('watchToolbarItems')
1739
+ ], ListKeyboardSlimmer.prototype, "watchToolbarItems", null);
1740
+
1741
+ /**
1742
+ * Action to toggle bullet annotation
1743
+ */
1744
+ class TransformListAction extends codeBlock.ModifyContentAction {
1745
+ constructor(listType, selectedBlocks) {
1746
+ super();
1747
+ this.type = codeBlock.ModifyContentActionType.TRANSFORM_LIST_BLOCK;
1748
+ this.isFlushable = true;
1749
+ this.listType = listType;
1750
+ this.selectedBlocks = selectedBlocks;
1751
+ }
1752
+ }
1753
+
1754
+ var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1755
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1756
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1757
+ 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;
1758
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1759
+ };
1760
+ class BulletsToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1761
+ constructor() {
1762
+ super({
1763
+ icon: 'list-ul',
1764
+ tooltip: {
1765
+ text: 'Bullets',
1766
+ },
1767
+ });
1768
+ }
1769
+ isSelected() {
1770
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1771
+ return this.isListType(selectedBlocks);
1772
+ }
1773
+ onClick() {
1774
+ if (this.isSelected()) {
1775
+ this.deselectBulletList();
1776
+ }
1777
+ else {
1778
+ this.selectBulletList();
1779
+ }
1780
+ void this.popoverRef.hide();
1781
+ }
1782
+ isDisabled() {
1783
+ const selectedNodes = this.selectionController.getSelectedNodes();
1784
+ return (super.isDisabled() ||
1785
+ selectedNodes.some((node) => node instanceof contentState.RTEImageNode || node instanceof codeBlock.RTECodeBlockNode));
1786
+ }
1787
+ isListType(selectedBlocks, type = 'bullet-list') {
1788
+ return (selectedBlocks.length > 0 &&
1789
+ selectedBlocks.every((block) => block instanceof codeBlock.RTEListItemBlock && block.parent.type === type));
1790
+ }
1791
+ /**
1792
+ * Deselect bullet list item to convert it to default paragraph
1793
+ */
1794
+ deselectBulletList() {
1795
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1796
+ if (selectedBlocks[0]) {
1797
+ selectedBlocks[0].parent.apply(new codeBlock.TransformParagraphAction(selectedBlocks));
1798
+ }
1799
+ }
1800
+ /**
1801
+ * Select texts or list items or texts and list items to convert it to bullet list
1802
+ */
1803
+ selectBulletList() {
1804
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1805
+ if (selectedBlocks[0]) {
1806
+ const selectedFirstBlock = selectedBlocks[0].type === 'list-item'
1807
+ ? selectedBlocks[0].parent
1808
+ : selectedBlocks[0];
1809
+ selectedFirstBlock.apply(new TransformListAction('bullet-list', selectedBlocks));
1810
+ }
1811
+ }
1812
+ }
1813
+ __decorate$t([
1814
+ globalSlimmerRegistry.MapToComponentField()
1815
+ ], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
1816
+ __decorate$t([
1817
+ globalSlimmerRegistry.MapToComponentField()
1818
+ ], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1819
+
1820
+ var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1821
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1822
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1823
+ 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;
1824
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1825
+ };
1826
+ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarButtonSlimmer {
1827
+ constructor() {
1828
+ super({
1829
+ icon: 'list-ol',
1830
+ tooltip: { text: 'Numbers' },
1831
+ });
1832
+ }
1833
+ isSelected() {
1834
+ const selectedBlocks = this.selectionController.getSelectedBlocks();
1365
1835
  return this.isListType(selectedBlocks);
1366
1836
  }
1367
1837
  onClick() {
@@ -1380,7 +1850,7 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1380
1850
  }
1381
1851
  isListType(selectedBlocks, type = 'number-list') {
1382
1852
  return (selectedBlocks.length > 0 &&
1383
- selectedBlocks.every((block) => block instanceof contentState.RTEListItemBlock && block.parent.type === type));
1853
+ selectedBlocks.every((block) => block instanceof codeBlock.RTEListItemBlock && block.parent.type === type));
1384
1854
  }
1385
1855
  /**
1386
1856
  * Deselect bullet list item to convert it to default paragraph
@@ -1388,7 +1858,7 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1388
1858
  deselectNumberList() {
1389
1859
  const selectedBlocks = this.selectionController.getSelectedBlocks();
1390
1860
  if (selectedBlocks[0]) {
1391
- selectedBlocks[0].parent.apply(new TransformParagraphAction(selectedBlocks));
1861
+ selectedBlocks[0].parent.apply(new codeBlock.TransformParagraphAction(selectedBlocks));
1392
1862
  }
1393
1863
  }
1394
1864
  /**
@@ -1404,14 +1874,14 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolba
1404
1874
  }
1405
1875
  }
1406
1876
  }
1407
- __decorate$q([
1877
+ __decorate$s([
1408
1878
  globalSlimmerRegistry.MapToComponentField()
1409
1879
  ], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1410
- __decorate$q([
1880
+ __decorate$s([
1411
1881
  globalSlimmerRegistry.MapToComponentField()
1412
1882
  ], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1413
1883
 
1414
- var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1884
+ var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1415
1885
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1416
1886
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1417
1887
  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;
@@ -1427,6 +1897,11 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1427
1897
  });
1428
1898
  this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
1429
1899
  this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
1900
+ this.listKeyboardSlimmer = new ListKeyboardSlimmer();
1901
+ }
1902
+ disconnectedCallback() {
1903
+ }
1904
+ componentDidLoad() {
1430
1905
  }
1431
1906
  componentWillRender() {
1432
1907
  if (this.numbersToolbarButtonSlimmer.isSelected()) {
@@ -1486,20 +1961,41 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
1486
1961
  'list-ol': ListOL,
1487
1962
  });
1488
1963
  })();
1489
- __decorate$p([
1964
+ __decorate$r([
1490
1965
  globalSlimmerRegistry.MapToComponentField()
1491
1966
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
1492
- __decorate$p([
1967
+ __decorate$r([
1968
+ globalSlimmerRegistry.MapToComponentField()
1969
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "valueController", void 0);
1970
+ __decorate$r([
1971
+ globalSlimmerRegistry.MapToComponentField()
1972
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "value", void 0);
1973
+ __decorate$r([
1974
+ globalSlimmerRegistry.MapToComponentField()
1975
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "toolbarItems", void 0);
1976
+ __decorate$r([
1977
+ globalSlimmerRegistry.MapToComponentField()
1978
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
1979
+ __decorate$r([
1493
1980
  globalSlimmerRegistry.InjectVegaSlimmer()
1494
1981
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
1495
- __decorate$p([
1982
+ __decorate$r([
1496
1983
  globalSlimmerRegistry.InjectVegaSlimmer()
1497
1984
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
1498
- __decorate$p([
1985
+ __decorate$r([
1986
+ globalSlimmerRegistry.InjectVegaSlimmer()
1987
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "listKeyboardSlimmer", void 0);
1988
+ __decorate$r([
1989
+ globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1990
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
1991
+ __decorate$r([
1992
+ globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
1993
+ ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentDidLoad", null);
1994
+ __decorate$r([
1499
1995
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1500
1996
  ], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
1501
1997
 
1502
- var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1998
+ var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1503
1999
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1504
2000
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1505
2001
  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;
@@ -1534,14 +2030,14 @@ class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
1534
2030
  'align-left': alignLeft.AlignLeft,
1535
2031
  });
1536
2032
  })();
1537
- __decorate$o([
2033
+ __decorate$q([
1538
2034
  globalSlimmerRegistry.MapToComponentField()
1539
2035
  ], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1540
- __decorate$o([
2036
+ __decorate$q([
1541
2037
  globalSlimmerRegistry.MapToComponentField()
1542
2038
  ], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1543
2039
 
1544
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2040
+ var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1545
2041
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1546
2042
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1547
2043
  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;
@@ -1576,14 +2072,14 @@ class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTo
1576
2072
  'align-center': alignLeft.AlignCenter,
1577
2073
  });
1578
2074
  })();
1579
- __decorate$n([
2075
+ __decorate$p([
1580
2076
  globalSlimmerRegistry.MapToComponentField()
1581
2077
  ], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1582
- __decorate$n([
2078
+ __decorate$p([
1583
2079
  globalSlimmerRegistry.MapToComponentField()
1584
2080
  ], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1585
2081
 
1586
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2082
+ var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1587
2083
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1588
2084
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1589
2085
  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;
@@ -1618,14 +2114,14 @@ class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
1618
2114
  'align-right': alignLeft.AlignRight,
1619
2115
  });
1620
2116
  })();
1621
- __decorate$m([
2117
+ __decorate$o([
1622
2118
  globalSlimmerRegistry.MapToComponentField()
1623
2119
  ], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1624
- __decorate$m([
2120
+ __decorate$o([
1625
2121
  globalSlimmerRegistry.MapToComponentField()
1626
2122
  ], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1627
2123
 
1628
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2124
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1629
2125
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1630
2126
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1631
2127
  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;
@@ -1660,14 +2156,14 @@ class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.VisualModeT
1660
2156
  'align-justify': alignLeft.AlignJustify,
1661
2157
  });
1662
2158
  })();
1663
- __decorate$l([
2159
+ __decorate$n([
1664
2160
  globalSlimmerRegistry.MapToComponentField()
1665
2161
  ], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
1666
- __decorate$l([
2162
+ __decorate$n([
1667
2163
  globalSlimmerRegistry.MapToComponentField()
1668
2164
  ], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
1669
2165
 
1670
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2166
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1671
2167
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1672
2168
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1673
2169
  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;
@@ -1725,22 +2221,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
1725
2221
  .some((block) => this.shouldDisabledToolbar(block, codeBlock.HorizontalAlignmentAnnotationAction.name)));
1726
2222
  }
1727
2223
  }
1728
- __decorate$k([
2224
+ __decorate$m([
1729
2225
  globalSlimmerRegistry.MapToComponentField()
1730
2226
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
1731
- __decorate$k([
2227
+ __decorate$m([
1732
2228
  globalSlimmerRegistry.InjectVegaSlimmer()
1733
2229
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
1734
- __decorate$k([
2230
+ __decorate$m([
1735
2231
  globalSlimmerRegistry.InjectVegaSlimmer()
1736
2232
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
1737
- __decorate$k([
2233
+ __decorate$m([
1738
2234
  globalSlimmerRegistry.InjectVegaSlimmer()
1739
2235
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
1740
- __decorate$k([
2236
+ __decorate$m([
1741
2237
  globalSlimmerRegistry.InjectVegaSlimmer()
1742
2238
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
1743
- __decorate$k([
2239
+ __decorate$m([
1744
2240
  globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
1745
2241
  ], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
1746
2242
 
@@ -1781,7 +2277,7 @@ class RTEEditorState {
1781
2277
  }
1782
2278
  }
1783
2279
 
1784
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2280
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1785
2281
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1786
2282
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1787
2283
  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;
@@ -1867,37 +2363,37 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
1867
2363
  }
1868
2364
  }
1869
2365
  ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
1870
- __decorate$j([
2366
+ __decorate$l([
1871
2367
  globalSlimmerRegistry.MapToComponentField()
1872
2368
  ], ValueController.prototype, "host", void 0);
1873
- __decorate$j([
2369
+ __decorate$l([
1874
2370
  globalSlimmerRegistry.MapToComponentField({ writable: true })
1875
2371
  ], ValueController.prototype, "value", void 0);
1876
- __decorate$j([
2372
+ __decorate$l([
1877
2373
  globalSlimmerRegistry.MapToComponentField()
1878
2374
  ], ValueController.prototype, "changeEventEmitter", void 0);
1879
- __decorate$j([
2375
+ __decorate$l([
1880
2376
  globalSlimmerRegistry.MapToComponentField()
1881
2377
  ], ValueController.prototype, "valueController", void 0);
1882
- __decorate$j([
2378
+ __decorate$l([
1883
2379
  globalSlimmerRegistry.MapToComponentField()
1884
2380
  ], ValueController.prototype, "historyController", void 0);
1885
- __decorate$j([
2381
+ __decorate$l([
1886
2382
  globalSlimmerRegistry.MapToComponentField()
1887
2383
  ], ValueController.prototype, "selectionController", void 0);
1888
- __decorate$j([
2384
+ __decorate$l([
1889
2385
  globalSlimmerRegistry.MapToComponentField()
1890
2386
  ], ValueController.prototype, "sourceEditConfig", void 0);
1891
- __decorate$j([
2387
+ __decorate$l([
1892
2388
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
1893
2389
  ], ValueController.prototype, "connectedCallback", null);
1894
- __decorate$j([
2390
+ __decorate$l([
1895
2391
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
1896
2392
  ], ValueController.prototype, "disconnectedCallback", null);
1897
- __decorate$j([
2393
+ __decorate$l([
1898
2394
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
1899
2395
  ], ValueController.prototype, "componentWillLoad", null);
1900
- __decorate$j([
2396
+ __decorate$l([
1901
2397
  globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
1902
2398
  ], ValueController.prototype, "watchValueUpdate", null);
1903
2399
 
@@ -1926,7 +2422,7 @@ class BaseHandler {
1926
2422
  * @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
1927
2423
  * @param {SelectionController} selectionController - Manages the selection of items in the user interface.
1928
2424
  * @param {HTMLElement} richTextEditor - The current rich text editor component
1929
- * @param {InputEvent} [event] - It is used to pass an input event to the method for handling.
2425
+ * @param {Event} [event] - It is used to pass an input event to the method for handling.
1930
2426
  */
1931
2427
  execute(currentState, selectionController, richTextEditor, event) {
1932
2428
  this.initCurrentStateAndSelection(currentState, selectionController);
@@ -2385,11 +2881,25 @@ class AbstractDeleteContentHandler extends BaseHandler {
2385
2881
  * @returns {Nullable<RTENode>} The next node, or null when the given node is the last node of the content.
2386
2882
  */
2387
2883
  getNextNode(node) {
2884
+ var _a;
2388
2885
  const block = node.parent;
2389
2886
  const nodeIndex = block.children.indexOf(node);
2390
2887
  if (nodeIndex >= 0 && nodeIndex < block.children.length - 1) {
2391
2888
  return block.children[nodeIndex + 1];
2392
2889
  }
2890
+ // When the caret is at the end of a list item that owns nested lists, the next
2891
+ // caret position is the first node of the first non-empty nested list, not the following sibling
2892
+ // block. Descend into the item's own nestList before ascending to siblings so that
2893
+ // a forward delete merges the first nested item up instead of skipping the whole
2894
+ // nested list and merging the following sibling into the deepest nested item.
2895
+ if (block.isListItemBlock() && ((_a = block.nestList) === null || _a === void 0 ? void 0 : _a.length)) {
2896
+ for (const nestedList of block.nestList) {
2897
+ const firstNestedNode = nestedList.getFirstNode();
2898
+ if (firstNestedNode) {
2899
+ return firstNestedNode;
2900
+ }
2901
+ }
2902
+ }
2393
2903
  const nextBlock = this.getNextBlock(block);
2394
2904
  return nextBlock ? nextBlock.getFirstNode() : null;
2395
2905
  }
@@ -2400,10 +2910,25 @@ class AbstractDeleteContentHandler extends BaseHandler {
2400
2910
  * @returns {Nullable<RTEBlock>} The next block, or null when the given block is the last block of the content.
2401
2911
  */
2402
2912
  getNextBlock(block) {
2913
+ var _a, _b;
2403
2914
  const parent = block.parent;
2404
2915
  if (!parent || !parent.children) {
2405
2916
  return null;
2406
2917
  }
2918
+ // Nested lists are owned through a list item's nestList collection rather than
2919
+ // its children collection. Traverse the remaining nested-list branches before
2920
+ // ascending to the owning item and its following siblings.
2921
+ if (parent instanceof codeBlock.RTEBlock && parent.isListItemBlock()) {
2922
+ const nestedListIndex = ((_a = parent.nestList) !== null && _a !== void 0 ? _a : []).indexOf(block);
2923
+ if (nestedListIndex >= 0) {
2924
+ for (const nestedList of ((_b = parent.nestList) !== null && _b !== void 0 ? _b : []).slice(nestedListIndex + 1)) {
2925
+ if (nestedList.getFirstNode()) {
2926
+ return nestedList;
2927
+ }
2928
+ }
2929
+ return this.getNextBlock(parent);
2930
+ }
2931
+ }
2407
2932
  const siblings = parent.children;
2408
2933
  const blockIndex = siblings.indexOf(block);
2409
2934
  if (blockIndex >= 0 && siblings[blockIndex + 1]) {
@@ -3069,7 +3594,300 @@ class InsertPasteHandler extends BaseHandler {
3069
3594
  }
3070
3595
  }
3071
3596
 
3072
- var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3597
+ /**
3598
+ * Handles keyboard-based rich text link interactions (Escape close, Tab into the link popover, and
3599
+ * the Command/Control+K open shortcut). Follows the input-event handler workflow so the keyboard
3600
+ * link logic stays consistent with the other RTE handlers.
3601
+ */
3602
+ class KeyboardLinkHandler extends BaseHandler {
3603
+ constructor() {
3604
+ super(...arguments);
3605
+ this.activeLinkEditor = null;
3606
+ this.activeLinkWrapper = null;
3607
+ this.linkPopoverHideHandler = null;
3608
+ this.linkPopoverHideOwner = null;
3609
+ }
3610
+ /**
3611
+ * Handles keyboard shortcuts for link popover open, close, and focus behavior.
3612
+ *
3613
+ * @param {KeyboardEvent} [event] - The keydown event fired from the editor.
3614
+ */
3615
+ handleEvent(event) {
3616
+ if (!event) {
3617
+ return;
3618
+ }
3619
+ if (event.key === 'Escape') {
3620
+ if (this.activeLinkEditor) {
3621
+ event.preventDefault();
3622
+ event.stopPropagation();
3623
+ void this.activeLinkEditor.hide();
3624
+ return;
3625
+ }
3626
+ const linkWrapper = this.getFocusedLinkWrapper(event.target);
3627
+ const linkEditor = this.getLinkEditorFromWrapper(linkWrapper);
3628
+ if (linkEditor) {
3629
+ event.preventDefault();
3630
+ event.stopPropagation();
3631
+ void linkEditor.hide();
3632
+ return;
3633
+ }
3634
+ }
3635
+ const linkWrapper = this.getFocusedLinkWrapper(event.target);
3636
+ if (event.key === 'Tab' && !event.shiftKey && this.focusVisibleLinkPopoverAction(linkWrapper)) {
3637
+ event.preventDefault();
3638
+ event.stopPropagation();
3639
+ const linkEditor = this.getLinkEditorFromWrapper(linkWrapper) || this.activeLinkEditor;
3640
+ if (linkWrapper && linkEditor) {
3641
+ this.registerLinkPopoverHideHandler(linkEditor, () => {
3642
+ this.handleLinkPopoverHide(linkEditor, linkWrapper);
3643
+ });
3644
+ }
3645
+ return;
3646
+ }
3647
+ const isOpenLinkShortcut = (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k';
3648
+ if (!isOpenLinkShortcut || !linkWrapper) {
3649
+ return;
3650
+ }
3651
+ event.preventDefault();
3652
+ event.stopPropagation();
3653
+ const linkEditor = linkWrapper.querySelector('vega-rich-text-link-editor');
3654
+ if (!linkEditor) {
3655
+ return;
3656
+ }
3657
+ this.activeLinkEditor = linkEditor;
3658
+ this.activeLinkWrapper = linkWrapper;
3659
+ this.registerLinkPopoverHideHandler(linkEditor, () => {
3660
+ this.handleLinkPopoverHide(linkEditor, linkWrapper);
3661
+ });
3662
+ void linkEditor.show();
3663
+ }
3664
+ /**
3665
+ * Releases any registered popover-hide listener when the owning controller is torn down.
3666
+ */
3667
+ dispose() {
3668
+ this.unregisterLinkPopoverHideHandler();
3669
+ }
3670
+ /**
3671
+ * Registers a one-time hide listener on the currently open link editor popover.
3672
+ *
3673
+ * @param {Nullable<HTMLElement>} linkEditor - Link editor that owns the popover.
3674
+ * @param {EventListener} handler - Callback invoked when the popover hides.
3675
+ */
3676
+ registerLinkPopoverHideHandler(linkEditor, handler) {
3677
+ const linkPopoverHideOwner = this.getLinkEditorPopover(linkEditor);
3678
+ if (!linkPopoverHideOwner) {
3679
+ return;
3680
+ }
3681
+ this.unregisterLinkPopoverHideHandler();
3682
+ this.linkPopoverHideHandler = this.onLinkPopoverHide.bind(this, handler);
3683
+ this.linkPopoverHideOwner = linkPopoverHideOwner;
3684
+ linkPopoverHideOwner.addEventListener('vegaPopoverHide', this.linkPopoverHideHandler, {
3685
+ once: true,
3686
+ });
3687
+ }
3688
+ /**
3689
+ * Executes the registered popover-hide callback and clears hide-listener state.
3690
+ *
3691
+ * @param {EventListener} handler - Registered callback for popover hide.
3692
+ * @param {Event} event - Hide event payload.
3693
+ */
3694
+ onLinkPopoverHide(handler, event) {
3695
+ handler(event);
3696
+ this.linkPopoverHideHandler = null;
3697
+ this.linkPopoverHideOwner = null;
3698
+ }
3699
+ /**
3700
+ * Removes the currently registered popover hide listener if present.
3701
+ */
3702
+ unregisterLinkPopoverHideHandler() {
3703
+ if (this.linkPopoverHideOwner && this.linkPopoverHideHandler) {
3704
+ this.linkPopoverHideOwner.removeEventListener('vegaPopoverHide', this.linkPopoverHideHandler);
3705
+ }
3706
+ this.linkPopoverHideHandler = null;
3707
+ this.linkPopoverHideOwner = null;
3708
+ }
3709
+ /**
3710
+ * Resolves the closest focused link wrapper from event target or current selection.
3711
+ *
3712
+ * @param {EventTarget | null} target - Event target from the keydown event.
3713
+ * @returns {Nullable<HTMLElement>} Link wrapper element if found.
3714
+ */
3715
+ getFocusedLinkWrapper(target) {
3716
+ var _a;
3717
+ const targetElement = target && target.nodeType === Node.ELEMENT_NODE ? target : null;
3718
+ if (targetElement) {
3719
+ const directWrapper = targetElement.classList.contains('link-editor-wrapper')
3720
+ ? targetElement
3721
+ : ui.findParent(targetElement, '.link-editor-wrapper');
3722
+ if (directWrapper) {
3723
+ return directWrapper;
3724
+ }
3725
+ }
3726
+ const anchorNode = ((_a = this.selectionController.getSelection()) === null || _a === void 0 ? void 0 : _a.anchorNode) || null;
3727
+ const anchorElement = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) === Node.ELEMENT_NODE
3728
+ ? anchorNode
3729
+ : (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement) || null;
3730
+ if (!anchorElement) {
3731
+ return null;
3732
+ }
3733
+ return anchorElement.classList.contains('link-editor-wrapper')
3734
+ ? anchorElement
3735
+ : ui.findParent(anchorElement, '.link-editor-wrapper');
3736
+ }
3737
+ /**
3738
+ * Finds the link editor element inside a link wrapper.
3739
+ *
3740
+ * @typedef HTMLVegaRichTextLinkEditorElement - The type of the link editor element.
3741
+ * @param {Nullable<HTMLElement>} linkWrapper - Wrapper that may contain the link editor component.
3742
+ * @returns {Nullable<HTMLVegaRichTextLinkEditorElement>} Link editor if present.
3743
+ */
3744
+ getLinkEditorFromWrapper(linkWrapper) {
3745
+ return ((linkWrapper === null || linkWrapper === void 0 ? void 0 : linkWrapper.querySelector('vega-rich-text-link-editor')) ||
3746
+ null);
3747
+ }
3748
+ /**
3749
+ * Gets the popover element rendered by a link editor.
3750
+ *
3751
+ * @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
3752
+ * @returns {Nullable<LinkEditorPopoverElement>} Popover element when available.
3753
+ */
3754
+ getLinkEditorPopover(linkEditor) {
3755
+ var _a;
3756
+ return ((_a = linkEditor === null || linkEditor === void 0 ? void 0 : linkEditor.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-popover')) || null;
3757
+ }
3758
+ /**
3759
+ * Returns the popover content box associated with a link editor.
3760
+ *
3761
+ * @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
3762
+ * @returns {Nullable<HTMLElement>} Popover content box element.
3763
+ */
3764
+ getLinkEditorPopoverContentBox(linkEditor) {
3765
+ var _a, _b;
3766
+ const popover = this.getLinkEditorPopover(linkEditor);
3767
+ return ((_b = (_a = popover === null || popover === void 0 ? void 0 : popover.appenderRenderer) === null || _a === void 0 ? void 0 : _a.getPopoverContentBox) === null || _b === void 0 ? void 0 : _b.call(_a)) || null;
3768
+ }
3769
+ /**
3770
+ * Clears active link editor state and restores focus to the provided wrapper.
3771
+ *
3772
+ * @param {Nullable<HTMLElement>} linkEditor - Link editor that has just hidden.
3773
+ * @param {Nullable<HTMLElement>} [focusTarget] - Optional element to receive focus.
3774
+ */
3775
+ handleLinkPopoverHide(linkEditor, focusTarget) {
3776
+ const resolvedFocusTarget = focusTarget || this.activeLinkWrapper;
3777
+ if (!linkEditor || this.activeLinkEditor === linkEditor) {
3778
+ this.activeLinkEditor = null;
3779
+ this.activeLinkWrapper = null;
3780
+ }
3781
+ if (resolvedFocusTarget) {
3782
+ this.placeLinkCaretAtEnd(resolvedFocusTarget);
3783
+ }
3784
+ }
3785
+ /**
3786
+ * Focuses the first visible link action in the current link popover.
3787
+ *
3788
+ * @param {Nullable<HTMLElement>} [linkWrapper] - Optional focused link wrapper context.
3789
+ * @returns {boolean} True when focus moved to an action button.
3790
+ */
3791
+ focusVisibleLinkPopoverAction(linkWrapper) {
3792
+ var _a;
3793
+ const ownerDocument = ((_a = this.richTextEditorRef) === null || _a === void 0 ? void 0 : _a.ownerDocument) || null;
3794
+ if (!ownerDocument) {
3795
+ return false;
3796
+ }
3797
+ const linkEditor = this.getLinkEditorFromWrapper(linkWrapper || null) || this.activeLinkEditor;
3798
+ const popoverContentBox = this.getPreferredLinkActionPopover(ownerDocument, linkEditor);
3799
+ if (!popoverContentBox) {
3800
+ return false;
3801
+ }
3802
+ const focusableActionButton = this.getFirstFocusableLinkActionButton(popoverContentBox);
3803
+ if (!focusableActionButton) {
3804
+ return false;
3805
+ }
3806
+ focusableActionButton.focus();
3807
+ return true;
3808
+ }
3809
+ /**
3810
+ * Prefers a scoped link-action popover and falls back to globally visible ones.
3811
+ *
3812
+ * @param {Document} ownerDocument - Document owning editor popovers.
3813
+ * @param {Nullable<HTMLElement>} [linkEditor] - Optional scoped link editor.
3814
+ * @returns {Nullable<HTMLElement>} Best popover content box to target.
3815
+ */
3816
+ getPreferredLinkActionPopover(ownerDocument, linkEditor) {
3817
+ const scopedPopoverContentBox = this.getLinkEditorPopoverContentBox(linkEditor || null);
3818
+ if (scopedPopoverContentBox &&
3819
+ !scopedPopoverContentBox.classList.contains('vega-force-hidden') &&
3820
+ this.isLinkActionPopover(scopedPopoverContentBox)) {
3821
+ return scopedPopoverContentBox;
3822
+ }
3823
+ const popoverContentBoxes = Array.from(ownerDocument.querySelectorAll('vega-popover-content-box'));
3824
+ const linkActionPopovers = popoverContentBoxes.filter((box) => this.isLinkActionPopover(box));
3825
+ const visibleLinkActionPopovers = linkActionPopovers.filter((box) => !box.classList.contains('vega-force-hidden'));
3826
+ return visibleLinkActionPopovers[visibleLinkActionPopovers.length - 1] || null;
3827
+ }
3828
+ /**
3829
+ * Checks whether a popover represents the link action menu.
3830
+ *
3831
+ * @param {HTMLElement} popoverContentBox - Popover content box to inspect.
3832
+ * @returns {boolean} True when both edit and unlink actions exist.
3833
+ */
3834
+ isLinkActionPopover(popoverContentBox) {
3835
+ const items = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
3836
+ const hasEditAction = items.some((item) => item.itemKey === 'edit');
3837
+ const hasUnlinkAction = items.some((item) => item.itemKey === 'unlink');
3838
+ return hasEditAction && hasUnlinkAction;
3839
+ }
3840
+ /**
3841
+ * Gets the preferred focusable element from the first link action item.
3842
+ *
3843
+ * @param {HTMLElement} popoverContentBox - Link action popover content box.
3844
+ * @returns {Nullable<HTMLElement>} Focusable anchor or button element.
3845
+ */
3846
+ getFirstFocusableLinkActionButton(popoverContentBox) {
3847
+ var _a, _b, _c, _d;
3848
+ const allItems = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
3849
+ const firstActionItem = allItems.find((item) => item.itemKey === 'edit') ||
3850
+ allItems[0] ||
3851
+ null;
3852
+ if (!firstActionItem) {
3853
+ return null;
3854
+ }
3855
+ const firstActionLinkWrapper = ((_a = firstActionItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-button-link')) || null;
3856
+ const firstActionButtonWrapper = ((_b = firstActionItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('vega-button')) || null;
3857
+ return (((_c = firstActionLinkWrapper === null || firstActionLinkWrapper === void 0 ? void 0 : firstActionLinkWrapper.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('a')) ||
3858
+ ((_d = firstActionButtonWrapper === null || firstActionButtonWrapper === void 0 ? void 0 : firstActionButtonWrapper.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('button')) ||
3859
+ null);
3860
+ }
3861
+ /**
3862
+ * Places the editor caret at the end of the link when the popover closes.
3863
+ *
3864
+ * @param {Nullable<HTMLElement>} linkWrapper - The link wrapper element containing link text nodes.
3865
+ */
3866
+ placeLinkCaretAtEnd(linkWrapper) {
3867
+ var _a;
3868
+ if (!linkWrapper) {
3869
+ return;
3870
+ }
3871
+ const allTextSpans = Array.from(linkWrapper.querySelectorAll('span'));
3872
+ if (allTextSpans.length === 0) {
3873
+ return;
3874
+ }
3875
+ const lastTextSpan = allTextSpans[allTextSpans.length - 1];
3876
+ const lastNodeEntity = codeBlock.stateEntityRenderingRegistry.getEntityByDOM(lastTextSpan);
3877
+ if (!lastNodeEntity || lastNodeEntity instanceof codeBlock.RTEBlock) {
3878
+ return;
3879
+ }
3880
+ if (!(lastNodeEntity instanceof codeBlock.RTETextNode)) {
3881
+ return;
3882
+ }
3883
+ const lastNode = lastNodeEntity;
3884
+ const endOffset = ((_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) || 0;
3885
+ // Place caret at the end of the link when popover closes
3886
+ this.selectionController.enqueueSelectionRangeFutureState(lastNode, endOffset, lastNode, endOffset, true);
3887
+ }
3888
+ }
3889
+
3890
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3073
3891
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3074
3892
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3075
3893
  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;
@@ -3085,6 +3903,15 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3085
3903
  this.forwardDeleteContentHandler = new ForwardDeleteContentHandler();
3086
3904
  this.backwardDeleteContentHandler = new BackwardDeleteContentHandler();
3087
3905
  this.insertPasteHandler = new InsertPasteHandler();
3906
+ this.keyboardLinkHandler = new KeyboardLinkHandler();
3907
+ /**
3908
+ * Dispatches editor keydown events to the keyboard link handler using the shared handler workflow.
3909
+ *
3910
+ * @param {KeyboardEvent} event - The keydown event fired from the editor.
3911
+ */
3912
+ this.handleKeyboardAction = (event) => {
3913
+ this.keyboardLinkHandler.execute(this.value, this.selectionController, this.host, event);
3914
+ };
3088
3915
  /**
3089
3916
  * When a user performs an input action within the editable element, this function is triggered.
3090
3917
  *
@@ -3139,6 +3966,7 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3139
3966
  const editableElement = this.getEditableElementRef();
3140
3967
  if (editableElement) {
3141
3968
  editableElement.addEventListener('beforeinput', this.handleUserInputAction);
3969
+ editableElement.addEventListener('keydown', this.handleKeyboardAction);
3142
3970
  editableElement.addEventListener('drop', this.preventDropEvent);
3143
3971
  }
3144
3972
  }
@@ -3149,8 +3977,10 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3149
3977
  const editableElement = this.getEditableElementRef();
3150
3978
  if (editableElement) {
3151
3979
  editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
3980
+ editableElement.removeEventListener('keydown', this.handleKeyboardAction);
3152
3981
  editableElement.removeEventListener('drop', this.preventDropEvent);
3153
3982
  }
3983
+ this.keyboardLinkHandler.dispose();
3154
3984
  }
3155
3985
  /**
3156
3986
  * The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
@@ -3201,28 +4031,28 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
3201
4031
  return false;
3202
4032
  }
3203
4033
  }
3204
- __decorate$i([
4034
+ __decorate$k([
3205
4035
  globalSlimmerRegistry.MapToComponentField()
3206
4036
  ], UserInputController.prototype, "host", void 0);
3207
- __decorate$i([
4037
+ __decorate$k([
3208
4038
  globalSlimmerRegistry.MapToComponentField()
3209
4039
  ], UserInputController.prototype, "value", void 0);
3210
- __decorate$i([
4040
+ __decorate$k([
3211
4041
  globalSlimmerRegistry.MapToComponentField()
3212
4042
  ], UserInputController.prototype, "valueController", void 0);
3213
- __decorate$i([
4043
+ __decorate$k([
3214
4044
  globalSlimmerRegistry.MapToComponentField()
3215
4045
  ], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
3216
- __decorate$i([
4046
+ __decorate$k([
3217
4047
  globalSlimmerRegistry.MapToComponentField()
3218
4048
  ], UserInputController.prototype, "selectionController", void 0);
3219
- __decorate$i([
4049
+ __decorate$k([
3220
4050
  globalSlimmerRegistry.MapToComponentField()
3221
4051
  ], UserInputController.prototype, "insertCompositionTextController", void 0);
3222
- __decorate$i([
4052
+ __decorate$k([
3223
4053
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3224
4054
  ], UserInputController.prototype, "addActionListener", null);
3225
- __decorate$i([
4055
+ __decorate$k([
3226
4056
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3227
4057
  ], UserInputController.prototype, "removeActionListener", null);
3228
4058
 
@@ -3242,7 +4072,7 @@ class InsertImageToBlockAction extends codeBlock.ModifyContentAction {
3242
4072
  }
3243
4073
  }
3244
4074
 
3245
- var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4075
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3246
4076
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3247
4077
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3248
4078
  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;
@@ -3334,26 +4164,26 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
3334
4164
  }
3335
4165
  }
3336
4166
  }
3337
- __decorate$h([
4167
+ __decorate$j([
3338
4168
  globalSlimmerRegistry.MapToComponentField()
3339
4169
  ], InsertImageController.prototype, "selectionController", void 0);
3340
- __decorate$h([
4170
+ __decorate$j([
3341
4171
  globalSlimmerRegistry.MapToComponentField()
3342
4172
  ], InsertImageController.prototype, "value", void 0);
3343
- __decorate$h([
4173
+ __decorate$j([
3344
4174
  globalSlimmerRegistry.MapToComponentField()
3345
4175
  ], InsertImageController.prototype, "valueController", void 0);
3346
- __decorate$h([
4176
+ __decorate$j([
3347
4177
  globalSlimmerRegistry.MapToComponentField()
3348
4178
  ], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
3349
- __decorate$h([
4179
+ __decorate$j([
3350
4180
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3351
4181
  ], InsertImageController.prototype, "registerObserver", null);
3352
- __decorate$h([
4182
+ __decorate$j([
3353
4183
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3354
4184
  ], InsertImageController.prototype, "unRegisterObserver", null);
3355
4185
 
3356
- var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4186
+ var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3357
4187
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3358
4188
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3359
4189
  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;
@@ -3419,20 +4249,20 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
3419
4249
  this.selectionController.setSelectionRange(range);
3420
4250
  }
3421
4251
  }
3422
- __decorate$g([
4252
+ __decorate$i([
3423
4253
  globalSlimmerRegistry.MapToComponentField()
3424
4254
  ], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
3425
- __decorate$g([
4255
+ __decorate$i([
3426
4256
  globalSlimmerRegistry.MapToComponentField()
3427
4257
  ], FocusController.prototype, "selectionController", void 0);
3428
- __decorate$g([
4258
+ __decorate$i([
3429
4259
  globalSlimmerRegistry.MapToComponentField()
3430
4260
  ], FocusController.prototype, "valueController", void 0);
3431
- __decorate$g([
4261
+ __decorate$i([
3432
4262
  globalSlimmerRegistry.MapToComponentField()
3433
4263
  ], FocusController.prototype, "value", void 0);
3434
4264
 
3435
- var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4265
+ var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3436
4266
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3437
4267
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3438
4268
  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;
@@ -3642,35 +4472,35 @@ class InsertCompositionTextController extends globalSlimmerRegistry.VegaSlimmer
3642
4472
  this.editableElementRef.dispatchEvent(inputEvent);
3643
4473
  }
3644
4474
  }
3645
- __decorate$f([
4475
+ __decorate$h([
3646
4476
  globalSlimmerRegistry.MapToComponentField()
3647
4477
  ], InsertCompositionTextController.prototype, "selectionController", void 0);
3648
- __decorate$f([
4478
+ __decorate$h([
3649
4479
  globalSlimmerRegistry.MapToComponentField()
3650
4480
  ], InsertCompositionTextController.prototype, "host", void 0);
3651
- __decorate$f([
4481
+ __decorate$h([
3652
4482
  globalSlimmerRegistry.MapToComponentField()
3653
4483
  ], InsertCompositionTextController.prototype, "value", void 0);
3654
- __decorate$f([
4484
+ __decorate$h([
3655
4485
  globalSlimmerRegistry.MapToComponentField()
3656
4486
  ], InsertCompositionTextController.prototype, "valueController", void 0);
3657
- __decorate$f([
4487
+ __decorate$h([
3658
4488
  globalSlimmerRegistry.MapToComponentField()
3659
4489
  ], InsertCompositionTextController.prototype, "userInputController", void 0);
3660
- __decorate$f([
4490
+ __decorate$h([
3661
4491
  globalSlimmerRegistry.MapToComponentField()
3662
4492
  ], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
3663
- __decorate$f([
4493
+ __decorate$h([
3664
4494
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3665
4495
  ], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
3666
- __decorate$f([
4496
+ __decorate$h([
3667
4497
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3668
4498
  ], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
3669
- __decorate$f([
4499
+ __decorate$h([
3670
4500
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
3671
4501
  ], InsertCompositionTextController.prototype, "reConnectObserver", null);
3672
4502
 
3673
- var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4503
+ var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3674
4504
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3675
4505
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3676
4506
  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;
@@ -3879,23 +4709,23 @@ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
3879
4709
  }
3880
4710
  }
3881
4711
  }
3882
- __decorate$e([
4712
+ __decorate$g([
3883
4713
  globalSlimmerRegistry.MapToComponentField()
3884
4714
  ], DeleteSelectedNodesController.prototype, "host", void 0);
3885
- __decorate$e([
4715
+ __decorate$g([
3886
4716
  globalSlimmerRegistry.MapToComponentField()
3887
4717
  ], DeleteSelectedNodesController.prototype, "selectionController", void 0);
3888
- __decorate$e([
4718
+ __decorate$g([
3889
4719
  globalSlimmerRegistry.MapToComponentField()
3890
4720
  ], DeleteSelectedNodesController.prototype, "value", void 0);
3891
- __decorate$e([
4721
+ __decorate$g([
3892
4722
  globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
3893
4723
  ], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
3894
- __decorate$e([
4724
+ __decorate$g([
3895
4725
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
3896
4726
  ], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
3897
4727
 
3898
- var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4728
+ var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3899
4729
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3900
4730
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3901
4731
  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;
@@ -3972,22 +4802,22 @@ class HistoryController extends componentValueHistoryControllerSlimmer_abstract.
3972
4802
  await this.valueController.flushChanges(content, false);
3973
4803
  }
3974
4804
  }
3975
- __decorate$d([
4805
+ __decorate$f([
3976
4806
  globalSlimmerRegistry.MapToComponentField()
3977
4807
  ], HistoryController.prototype, "host", void 0);
3978
- __decorate$d([
4808
+ __decorate$f([
3979
4809
  globalSlimmerRegistry.MapToComponentField()
3980
4810
  ], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
3981
- __decorate$d([
4811
+ __decorate$f([
3982
4812
  globalSlimmerRegistry.MapToComponentField()
3983
4813
  ], HistoryController.prototype, "valueController", void 0);
3984
- __decorate$d([
4814
+ __decorate$f([
3985
4815
  globalSlimmerRegistry.MapToComponentField()
3986
4816
  ], HistoryController.prototype, "value", void 0);
3987
- __decorate$d([
4817
+ __decorate$f([
3988
4818
  globalSlimmerRegistry.MapToComponentField()
3989
4819
  ], HistoryController.prototype, "selectionController", void 0);
3990
- __decorate$d([
4820
+ __decorate$f([
3991
4821
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
3992
4822
  ], HistoryController.prototype, "registerInitState", null);
3993
4823
 
@@ -4008,7 +4838,7 @@ class TransformToCodeBlockAction extends codeBlock.ModifyContentAction {
4008
4838
  }
4009
4839
  }
4010
4840
 
4011
- var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4841
+ var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4012
4842
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4013
4843
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4014
4844
  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;
@@ -4064,13 +4894,13 @@ class CodeBlockToolbarButtonSlimmer extends imageAnnotationAction.VisualModeTool
4064
4894
  (() => {
4065
4895
  internalIconManager.VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
4066
4896
  })();
4067
- __decorate$c([
4897
+ __decorate$e([
4068
4898
  globalSlimmerRegistry.MapToComponentField()
4069
4899
  ], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
4070
- __decorate$c([
4900
+ __decorate$e([
4071
4901
  globalSlimmerRegistry.MapToComponentField()
4072
4902
  ], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
4073
- __decorate$c([
4903
+ __decorate$e([
4074
4904
  globalSlimmerRegistry.MapToComponentField()
4075
4905
  ], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
4076
4906
 
@@ -4078,7 +4908,7 @@ const undoIcon = {
4078
4908
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M464 424c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-53-43-96-96-96l-334.1 0 95-95c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239c-4.5 4.5-7 10.6-7 17s2.5 12.5 7 17L143 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-95-95 334.1 0c26.5 0 48 21.5 48 48l0 96z"/></svg>`,
4079
4909
  };
4080
4910
 
4081
- var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4911
+ var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4082
4912
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4083
4913
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4084
4914
  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;
@@ -4107,7 +4937,7 @@ class UndoToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
4107
4937
  (() => {
4108
4938
  internalIconManager.VegaInternalIconManager.register({ 'arrow-turn-left': undoIcon });
4109
4939
  })();
4110
- __decorate$b([
4940
+ __decorate$d([
4111
4941
  globalSlimmerRegistry.MapToComponentField()
4112
4942
  ], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
4113
4943
 
@@ -4115,7 +4945,7 @@ const redoIcon = {
4115
4945
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M48 424c0 13.3-10.7 24-24 24S0 437.3 0 424l0-96c0-53 43-96 96-96l334.1 0-95-95c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L505 239c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17L369 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l95-95-334.1 0c-26.5 0-48 21.5-48 48l0 96z"/></svg>`,
4116
4946
  };
4117
4947
 
4118
- var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4948
+ var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4119
4949
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4120
4950
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4121
4951
  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;
@@ -4144,7 +4974,7 @@ class RedoToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarBu
4144
4974
  (() => {
4145
4975
  internalIconManager.VegaInternalIconManager.register({ 'arrow-turn-right': redoIcon });
4146
4976
  })();
4147
- __decorate$a([
4977
+ __decorate$c([
4148
4978
  globalSlimmerRegistry.MapToComponentField()
4149
4979
  ], RedoToolbarButtonSlimmer.prototype, "historyController", void 0);
4150
4980
 
@@ -4215,7 +5045,7 @@ const displayCode = {
4215
5045
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M512 48c8.8 0 16 7.2 16 16V352c0 8.8-7.2 16-16 16H336.5c-.3 0-.6 0-.8 0H240.4c-.3 0-.6 0-.8 0H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H512zM64 416H211.7l-8 48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h72H352h72c13.3 0 24-10.7 24-24s-10.7-24-24-24H372.3l-8-48H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64zm188.3 48l8-48h55.3l8 48H252.3zM249 177c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM361 143c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"/></svg>`,
4216
5046
  };
4217
5047
 
4218
- var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5048
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4219
5049
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4220
5050
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4221
5051
  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;
@@ -4263,26 +5093,26 @@ class SourceEditToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
4263
5093
  (() => {
4264
5094
  internalIconManager.VegaInternalIconManager.register({ 'display-code': displayCode });
4265
5095
  })();
4266
- __decorate$9([
5096
+ __decorate$b([
4267
5097
  globalSlimmerRegistry.MapToComponentField({ writable: true })
4268
5098
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
4269
- __decorate$9([
5099
+ __decorate$b([
4270
5100
  globalSlimmerRegistry.MapToComponentField()
4271
5101
  ], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
4272
- __decorate$9([
5102
+ __decorate$b([
4273
5103
  globalSlimmerRegistry.MapToComponentField()
4274
5104
  ], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
4275
- __decorate$9([
5105
+ __decorate$b([
4276
5106
  globalSlimmerRegistry.MapToComponentField()
4277
5107
  ], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
4278
- __decorate$9([
5108
+ __decorate$b([
4279
5109
  globalSlimmerRegistry.MapToComponentField()
4280
5110
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
4281
- __decorate$9([
5111
+ __decorate$b([
4282
5112
  globalSlimmerRegistry.MapToComponentField()
4283
5113
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
4284
5114
 
4285
- var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5115
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4286
5116
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4287
5117
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4288
5118
  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;
@@ -4397,31 +5227,31 @@ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
4397
5227
  };
4398
5228
  }
4399
5229
  }
4400
- __decorate$8([
5230
+ __decorate$a([
4401
5231
  globalSlimmerRegistry.MapToComponentField()
4402
5232
  ], RTEExtensionController.prototype, "extensions", void 0);
4403
- __decorate$8([
5233
+ __decorate$a([
4404
5234
  globalSlimmerRegistry.MapToComponentField()
4405
5235
  ], RTEExtensionController.prototype, "host", void 0);
4406
- __decorate$8([
5236
+ __decorate$a([
4407
5237
  globalSlimmerRegistry.MapToComponentField()
4408
5238
  ], RTEExtensionController.prototype, "sourceView", void 0);
4409
- __decorate$8([
5239
+ __decorate$a([
4410
5240
  globalSlimmerRegistry.MapToComponentField()
4411
5241
  ], RTEExtensionController.prototype, "valueController", void 0);
4412
- __decorate$8([
5242
+ __decorate$a([
4413
5243
  globalSlimmerRegistry.MapToComponentField()
4414
5244
  ], RTEExtensionController.prototype, "selectionController", void 0);
4415
- __decorate$8([
5245
+ __decorate$a([
4416
5246
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
4417
5247
  ], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
4418
- __decorate$8([
5248
+ __decorate$a([
4419
5249
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
4420
5250
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
4421
- __decorate$8([
5251
+ __decorate$a([
4422
5252
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4423
5253
  ], RTEExtensionController.prototype, "destroyExtension", null);
4424
- __decorate$8([
5254
+ __decorate$a([
4425
5255
  globalSlimmerRegistry.MapToComponentMethod('watchExtensions')
4426
5256
  ], RTEExtensionController.prototype, "handleExtensionsChange", null);
4427
5257
 
@@ -4592,7 +5422,7 @@ CodeFormatter.VOID_TAGS = new Set([
4592
5422
  CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
4593
5423
  const CodeFormatter$1 = new CodeFormatter();
4594
5424
 
4595
- var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5425
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4596
5426
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4597
5427
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4598
5428
  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;
@@ -4692,34 +5522,34 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
4692
5522
  });
4693
5523
  }
4694
5524
  }
4695
- __decorate$7([
5525
+ __decorate$9([
4696
5526
  globalSlimmerRegistry.MapToComponentField()
4697
5527
  ], VegaRichTextEditorSourceViewRenderer.prototype, "host", void 0);
4698
- __decorate$7([
5528
+ __decorate$9([
4699
5529
  globalSlimmerRegistry.MapToComponentField()
4700
5530
  ], VegaRichTextEditorSourceViewRenderer.prototype, "allowSourceEdit", void 0);
4701
- __decorate$7([
5531
+ __decorate$9([
4702
5532
  globalSlimmerRegistry.MapToComponentField()
4703
5533
  ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceView", void 0);
4704
- __decorate$7([
5534
+ __decorate$9([
4705
5535
  globalSlimmerRegistry.MapToComponentField()
4706
5536
  ], VegaRichTextEditorSourceViewRenderer.prototype, "value", void 0);
4707
- __decorate$7([
5537
+ __decorate$9([
4708
5538
  globalSlimmerRegistry.MapToComponentField()
4709
5539
  ], VegaRichTextEditorSourceViewRenderer.prototype, "disabled", void 0);
4710
- __decorate$7([
5540
+ __decorate$9([
4711
5541
  globalSlimmerRegistry.MapToComponentField()
4712
5542
  ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceEditConfig", void 0);
4713
- __decorate$7([
5543
+ __decorate$9([
4714
5544
  globalSlimmerRegistry.MapToComponentField()
4715
5545
  ], VegaRichTextEditorSourceViewRenderer.prototype, "sourceCodeChangeEventEmitter", void 0);
4716
- __decorate$7([
5546
+ __decorate$9([
4717
5547
  globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
4718
5548
  ], VegaRichTextEditorSourceViewRenderer.prototype, "clearCodeBlockBlurObserver", null);
4719
5549
 
4720
5550
  const vegaRichTextEditorCss = ":host{display:block}:host vega-field-label{margin-bottom:8px}:host vega-text{margin-bottom:16px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container{display:flex;box-sizing:content-box;position:relative;box-sizing:content-box;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));border-radius:8px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));margin-top:12px;overflow:hidden;resize:vertical;padding-top:12px;padding-right:16px;padding-bottom:12px;padding-left:16px}:host .rich-text-editor-container:hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1))}:host .rich-text-editor-container:focus-within{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-focus, 19, 98, 226, 1))}:host .rich-text-editor-container.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host .rich-text-editor-container.disabled:hover,:host .rich-text-editor-container.disabled:focus-within{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host .rich-text-editor-container.disabled:focus-within{outline:none}:host .rich-text-editor-container.disabled vega-rich-text-content{pointer-events:none;opacity:0.35}:host .rich-text-editor-container.error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1))}:host .rich-text-editor-container.error:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1))}:host .rich-text-editor-container.error:focus-within{outline:2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-danger-focus, 233, 71, 104, 1))}:host .rich-text-editor-container .text-editor-counter{position:absolute;bottom:8px;right:8px;display:flex;padding-left:4px;padding-right:4px;padding-top:2px;padding-bottom:2px;border-radius:4px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-inverted-primary, 252, 252, 252, 1));background-color:rgba(var(--v-bg-textarea-count, 4, 4, 28, 0.6))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container .text-editor-counter.counter-exceed-max-length{background-color:rgba(var(--v-bg-textarea-counter-exceed-max-length, 214, 46, 81))}.toolbar-btn-group{display:flex;justify-content:center;align-items:center}.toolbar-btn-group>*:not(:first-child):not(:last-child) ::part(rich-text-editor-toolbar-button){border-radius:0px}.toolbar-btn-group>*:first-child:not(:last-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0px;border-bottom-right-radius:0px}.toolbar-btn-group>*:last-child:not(:first-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:0px;border-bottom-left-radius:0px;border-top-right-radius:4px;border-bottom-right-radius:4px}.toolbar-btn-group>*:not(:first-child) ::part(rich-text-editor-toolbar-button){margin-left:-1px}.toolbar-btn-group .toolbar-btn-color-preview-box{display:flex;border:1px solid rgba(var(--v-border-chip, 205, 209, 211, 1));box-sizing:border-box;border-radius:4px;width:16px;height:16px;justify-content:center;align-items:center;margin-left:6px}.toolbar-btn-group .toolbar-btn-color-preview-box.disabled{opacity:0.35}.toolbar-btn-group .toolbar-btn-link-wrapper{position:relative}.toolbar-btn-group .toolbar-btn-link-wrapper vega-rich-text-link-editor{position:absolute;bottom:0;left:0;right:0}.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1));display:block;margin-top:12px}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-hidden{display:none !important}.source-view-container{margin-top:12px}.source-view-container vega-code-block::part(editor-toolbar){display:none}";
4721
5551
 
4722
- var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5552
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4723
5553
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4724
5554
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4725
5555
  r = Reflect.decorate(decorators, target, key, desc);
@@ -4835,6 +5665,14 @@ const VegaRichTextEditor = class {
4835
5665
  * @vegaVersion 2.88.0
4836
5666
  */
4837
5667
  this.optional = false;
5668
+ /**
5669
+ * Specifies the name attribute used to identify the form field during data submission.
5670
+ * It functions identically to the `data-vega-form` attribute but operates at a lower priority.
5671
+ *
5672
+ * @default ''
5673
+ * @vegaVersion 2.97.0
5674
+ */
5675
+ this.name = '';
4838
5676
  /**
4839
5677
  * Specifies a placeholder string that displays as a
4840
5678
  * temporary hint or example within the rich text editor.
@@ -4978,138 +5816,138 @@ const VegaRichTextEditor = class {
4978
5816
  "extensions": ["watchExtensions"]
4979
5817
  }; }
4980
5818
  };
4981
- __decorate$6([
5819
+ __decorate$8([
4982
5820
  componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
4983
5821
  ], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
4984
- __decorate$6([
5822
+ __decorate$8([
4985
5823
  globalSlimmerRegistry.InjectVegaSlimmer()
4986
5824
  ], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
4987
- __decorate$6([
5825
+ __decorate$8([
4988
5826
  globalSlimmerRegistry.InjectVegaSlimmer()
4989
5827
  ], VegaRichTextEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
4990
- __decorate$6([
5828
+ __decorate$8([
4991
5829
  globalSlimmerRegistry.InjectVegaSlimmer()
4992
5830
  ], VegaRichTextEditor.prototype, "formFieldController", void 0);
4993
- __decorate$6([
5831
+ __decorate$8([
4994
5832
  globalSlimmerRegistry.InjectVegaSlimmer()
4995
5833
  ], VegaRichTextEditor.prototype, "changeEventEmitter", void 0);
4996
- __decorate$6([
5834
+ __decorate$8([
4997
5835
  globalSlimmerRegistry.InjectVegaSlimmer()
4998
5836
  ], VegaRichTextEditor.prototype, "vegaRichTextEditorRenderer", void 0);
4999
- __decorate$6([
5837
+ __decorate$8([
5000
5838
  globalSlimmerRegistry.InjectVegaSlimmer()
5001
5839
  ], VegaRichTextEditor.prototype, "valueController", void 0);
5002
- __decorate$6([
5840
+ __decorate$8([
5003
5841
  globalSlimmerRegistry.InjectVegaSlimmer()
5004
5842
  ], VegaRichTextEditor.prototype, "selectionController", void 0);
5005
- __decorate$6([
5843
+ __decorate$8([
5006
5844
  globalSlimmerRegistry.InjectVegaSlimmer()
5007
5845
  ], VegaRichTextEditor.prototype, "focusController", void 0);
5008
- __decorate$6([
5846
+ __decorate$8([
5009
5847
  globalSlimmerRegistry.InjectVegaSlimmer()
5010
5848
  ], VegaRichTextEditor.prototype, "darkModeStateControllerSlimmer", void 0);
5011
- __decorate$6([
5849
+ __decorate$8([
5012
5850
  globalSlimmerRegistry.InjectVegaSlimmer()
5013
5851
  ], VegaRichTextEditor.prototype, "toolbarRenderer", void 0);
5014
- __decorate$6([
5852
+ __decorate$8([
5015
5853
  globalSlimmerRegistry.InjectVegaSlimmer()
5016
5854
  ], VegaRichTextEditor.prototype, "clearStyleToolbarButtonSlimmer", void 0);
5017
- __decorate$6([
5855
+ __decorate$8([
5018
5856
  globalSlimmerRegistry.InjectVegaSlimmer()
5019
5857
  ], VegaRichTextEditor.prototype, "boldToolbarButtonSlimmer", void 0);
5020
- __decorate$6([
5858
+ __decorate$8([
5021
5859
  globalSlimmerRegistry.InjectVegaSlimmer()
5022
5860
  ], VegaRichTextEditor.prototype, "italicToolbarButtonSlimmer", void 0);
5023
- __decorate$6([
5861
+ __decorate$8([
5024
5862
  globalSlimmerRegistry.InjectVegaSlimmer()
5025
5863
  ], VegaRichTextEditor.prototype, "underlineToolbarButtonSlimmer", void 0);
5026
- __decorate$6([
5864
+ __decorate$8([
5027
5865
  globalSlimmerRegistry.InjectVegaSlimmer()
5028
5866
  ], VegaRichTextEditor.prototype, "textColorToolbarButtonSlimmer", void 0);
5029
- __decorate$6([
5867
+ __decorate$8([
5030
5868
  globalSlimmerRegistry.InjectVegaSlimmer()
5031
5869
  ], VegaRichTextEditor.prototype, "textStylesToolbarButtonSlimmer", void 0);
5032
- __decorate$6([
5870
+ __decorate$8([
5033
5871
  globalSlimmerRegistry.InjectVegaSlimmer()
5034
5872
  ], VegaRichTextEditor.prototype, "codeToolbarButtonSlimmer", void 0);
5035
- __decorate$6([
5873
+ __decorate$8([
5036
5874
  globalSlimmerRegistry.InjectVegaSlimmer()
5037
5875
  ], VegaRichTextEditor.prototype, "strikethroughToolbarButtonSlimmer", void 0);
5038
- __decorate$6([
5876
+ __decorate$8([
5039
5877
  globalSlimmerRegistry.InjectVegaSlimmer()
5040
5878
  ], VegaRichTextEditor.prototype, "imageToolbarButtonSlimmer", void 0);
5041
- __decorate$6([
5879
+ __decorate$8([
5042
5880
  globalSlimmerRegistry.InjectVegaSlimmer()
5043
5881
  ], VegaRichTextEditor.prototype, "linkToolbarButtonSlimmer", void 0);
5044
- __decorate$6([
5882
+ __decorate$8([
5045
5883
  globalSlimmerRegistry.InjectVegaSlimmer()
5046
5884
  ], VegaRichTextEditor.prototype, "moreIndentToolbarButtonSlimmer", void 0);
5047
- __decorate$6([
5885
+ __decorate$8([
5048
5886
  globalSlimmerRegistry.InjectVegaSlimmer()
5049
5887
  ], VegaRichTextEditor.prototype, "lessIndentToolbarButtonSlimmer", void 0);
5050
- __decorate$6([
5888
+ __decorate$8([
5051
5889
  globalSlimmerRegistry.InjectVegaSlimmer()
5052
5890
  ], VegaRichTextEditor.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
5053
- __decorate$6([
5891
+ __decorate$8([
5054
5892
  globalSlimmerRegistry.InjectVegaSlimmer()
5055
5893
  ], VegaRichTextEditor.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
5056
- __decorate$6([
5894
+ __decorate$8([
5057
5895
  globalSlimmerRegistry.InjectVegaSlimmer()
5058
5896
  ], VegaRichTextEditor.prototype, "codeBlockToolbarButtonSlimmer", void 0);
5059
- __decorate$6([
5897
+ __decorate$8([
5060
5898
  globalSlimmerRegistry.InjectVegaSlimmer()
5061
5899
  ], VegaRichTextEditor.prototype, "undoToolbarButtonSlimmer", void 0);
5062
- __decorate$6([
5900
+ __decorate$8([
5063
5901
  globalSlimmerRegistry.InjectVegaSlimmer()
5064
5902
  ], VegaRichTextEditor.prototype, "redoToolbarButtonSlimmer", void 0);
5065
- __decorate$6([
5903
+ __decorate$8([
5066
5904
  globalSlimmerRegistry.InjectVegaSlimmer()
5067
5905
  ], VegaRichTextEditor.prototype, "sourceEditToolbarButtonSlimmer", void 0);
5068
- __decorate$6([
5906
+ __decorate$8([
5069
5907
  globalSlimmerRegistry.InjectVegaSlimmer()
5070
5908
  ], VegaRichTextEditor.prototype, "placeholderNotifySlimmer", void 0);
5071
- __decorate$6([
5909
+ __decorate$8([
5072
5910
  globalSlimmerRegistry.InjectVegaSlimmer()
5073
5911
  ], VegaRichTextEditor.prototype, "disabledNotifySlimmer", void 0);
5074
- __decorate$6([
5912
+ __decorate$8([
5075
5913
  globalSlimmerRegistry.InjectVegaSlimmer()
5076
5914
  ], VegaRichTextEditor.prototype, "richTextContentController", void 0);
5077
- __decorate$6([
5915
+ __decorate$8([
5078
5916
  globalSlimmerRegistry.InjectVegaSlimmer()
5079
5917
  ], VegaRichTextEditor.prototype, "userInputController", void 0);
5080
- __decorate$6([
5918
+ __decorate$8([
5081
5919
  globalSlimmerRegistry.InjectVegaSlimmer()
5082
5920
  ], VegaRichTextEditor.prototype, "insertImageController", void 0);
5083
- __decorate$6([
5921
+ __decorate$8([
5084
5922
  globalSlimmerRegistry.InjectVegaSlimmer()
5085
5923
  ], VegaRichTextEditor.prototype, "insertCompositionTextController", void 0);
5086
- __decorate$6([
5924
+ __decorate$8([
5087
5925
  globalSlimmerRegistry.InjectVegaSlimmer()
5088
5926
  ], VegaRichTextEditor.prototype, "imageInsertedEventEmitter", void 0);
5089
- __decorate$6([
5927
+ __decorate$8([
5090
5928
  globalSlimmerRegistry.InjectVegaSlimmer()
5091
5929
  ], VegaRichTextEditor.prototype, "changeEventPreventSlimmer", void 0);
5092
- __decorate$6([
5930
+ __decorate$8([
5093
5931
  globalSlimmerRegistry.InjectVegaSlimmer()
5094
5932
  ], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
5095
- __decorate$6([
5933
+ __decorate$8([
5096
5934
  globalSlimmerRegistry.InjectVegaSlimmer()
5097
5935
  ], VegaRichTextEditor.prototype, "historyController", void 0);
5098
- __decorate$6([
5936
+ __decorate$8([
5099
5937
  globalSlimmerRegistry.InjectVegaSlimmer()
5100
5938
  ], VegaRichTextEditor.prototype, "internalCodeBlockSelectionController", void 0);
5101
- __decorate$6([
5939
+ __decorate$8([
5102
5940
  globalSlimmerRegistry.InjectVegaSlimmer()
5103
5941
  ], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
5104
- __decorate$6([
5942
+ __decorate$8([
5105
5943
  globalSlimmerRegistry.InjectVegaSlimmer()
5106
5944
  ], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
5107
- __decorate$6([
5945
+ __decorate$8([
5108
5946
  globalSlimmerRegistry.InjectVegaSlimmer()
5109
5947
  ], VegaRichTextEditor.prototype, "richTextEditorSourceViewRenderer", void 0);
5110
5948
  VegaRichTextEditor.style = vegaRichTextEditorCss;
5111
5949
 
5112
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5950
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5113
5951
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5114
5952
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5115
5953
  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;
@@ -5146,34 +5984,34 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
5146
5984
  'chevron-up': chevronUp.chevronUp,
5147
5985
  });
5148
5986
  })();
5149
- __decorate$5([
5987
+ __decorate$7([
5150
5988
  globalSlimmerRegistry.MapToComponentField()
5151
5989
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "disabled", void 0);
5152
- __decorate$5([
5990
+ __decorate$7([
5153
5991
  globalSlimmerRegistry.MapToComponentField()
5154
5992
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "hidden", void 0);
5155
- __decorate$5([
5993
+ __decorate$7([
5156
5994
  globalSlimmerRegistry.MapToComponentField()
5157
5995
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "selected", void 0);
5158
- __decorate$5([
5996
+ __decorate$7([
5159
5997
  globalSlimmerRegistry.MapToComponentField()
5160
5998
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
5161
- __decorate$5([
5999
+ __decorate$7([
5162
6000
  globalSlimmerRegistry.MapToComponentField()
5163
6001
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
5164
- __decorate$5([
6002
+ __decorate$7([
5165
6003
  globalSlimmerRegistry.MapToComponentField()
5166
6004
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
5167
- __decorate$5([
6005
+ __decorate$7([
5168
6006
  globalSlimmerRegistry.MapToComponentField()
5169
6007
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "iconColor", void 0);
5170
- __decorate$5([
6008
+ __decorate$7([
5171
6009
  globalSlimmerRegistry.MapToComponentField()
5172
6010
  ], VegaRichTextEditorToolbarButtonRenderer.prototype, "clickEventEmitter", void 0);
5173
6011
 
5174
6012
  const vegaRichTextEditorToolbarButtonCss = ":host{display:inline-block}:host ::slotted(vega-font.v-font-field-label-sm){line-height:16px}.rich-text-editor-toolbar-btn{display:flex;justify-content:center;align-items:center;border-radius:4px;border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));padding-top:8px;padding-bottom:8px;padding-left:12px;padding-right:12px;cursor:pointer;position:relative;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1))}.rich-text-editor-toolbar-btn:hover{background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1));z-index:1}.rich-text-editor-toolbar-btn:active{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:-1px;z-index:2}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-selected{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));cursor:not-allowed}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-disabled vega-icon{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-hidden{display:none}";
5175
6013
 
5176
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6014
+ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5177
6015
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5178
6016
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
5179
6017
  r = Reflect.decorate(decorators, target, key, desc);
@@ -5248,24 +6086,24 @@ const VegaRichTextEditorToolbarButton = class {
5248
6086
  }
5249
6087
  get host() { return index.getElement(this); }
5250
6088
  };
5251
- __decorate$4([
6089
+ __decorate$6([
5252
6090
  componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
5253
6091
  ], VegaRichTextEditorToolbarButton.prototype, "globalSlimmers", void 0);
5254
- __decorate$4([
6092
+ __decorate$6([
5255
6093
  globalSlimmerRegistry.InjectVegaSlimmer()
5256
6094
  ], VegaRichTextEditorToolbarButton.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
5257
- __decorate$4([
6095
+ __decorate$6([
5258
6096
  globalSlimmerRegistry.InjectVegaSlimmer()
5259
6097
  ], VegaRichTextEditorToolbarButton.prototype, "clickEventEmitter", void 0);
5260
- __decorate$4([
6098
+ __decorate$6([
5261
6099
  globalSlimmerRegistry.InjectVegaSlimmer()
5262
6100
  ], VegaRichTextEditorToolbarButton.prototype, "eventPrevent", void 0);
5263
- __decorate$4([
6101
+ __decorate$6([
5264
6102
  globalSlimmerRegistry.InjectVegaSlimmer()
5265
6103
  ], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
5266
6104
  VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
5267
6105
 
5268
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6106
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5269
6107
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5270
6108
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5271
6109
  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;
@@ -5373,34 +6211,34 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
5373
6211
  (() => {
5374
6212
  internalIconManager.VegaInternalIconManager.register({ 'trash-can': trashCan.trashCan });
5375
6213
  })();
5376
- __decorate$3([
6214
+ __decorate$5([
5377
6215
  globalSlimmerRegistry.MapToComponentField({ writable: true })
5378
6216
  ], VegaRichTextImageEditorRenderer.prototype, "currentPage", void 0);
5379
- __decorate$3([
6217
+ __decorate$5([
5380
6218
  globalSlimmerRegistry.MapToComponentField({ writable: true })
5381
6219
  ], VegaRichTextImageEditorRenderer.prototype, "selected", void 0);
5382
- __decorate$3([
6220
+ __decorate$5([
5383
6221
  globalSlimmerRegistry.MapToComponentField()
5384
6222
  ], VegaRichTextImageEditorRenderer.prototype, "host", void 0);
5385
- __decorate$3([
6223
+ __decorate$5([
5386
6224
  globalSlimmerRegistry.MapToComponentField()
5387
6225
  ], VegaRichTextImageEditorRenderer.prototype, "alt", void 0);
5388
- __decorate$3([
6226
+ __decorate$5([
5389
6227
  globalSlimmerRegistry.MapToComponentField({ writable: true })
5390
6228
  ], VegaRichTextImageEditorRenderer.prototype, "size", void 0);
5391
- __decorate$3([
6229
+ __decorate$5([
5392
6230
  globalSlimmerRegistry.MapToComponentField()
5393
6231
  ], VegaRichTextImageEditorRenderer.prototype, "changeEventEmitter", void 0);
5394
- __decorate$3([
6232
+ __decorate$5([
5395
6233
  globalSlimmerRegistry.MapToComponentField()
5396
6234
  ], VegaRichTextImageEditorRenderer.prototype, "translationSlimmer", void 0);
5397
- __decorate$3([
6235
+ __decorate$5([
5398
6236
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
5399
6237
  ], VegaRichTextImageEditorRenderer.prototype, "findParentContainerRef", null);
5400
6238
 
5401
6239
  const vegaRichTextImageEditorCss = ":host{display:inline-block}:host(.rte-image-selected){outline:2px solid rgba(var(--v-border-color-tile-selected, 19, 98, 226, 1));outline-offset:-2px}";
5402
6240
 
5403
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6241
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5404
6242
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5405
6243
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
5406
6244
  r = Reflect.decorate(decorators, target, key, desc);
@@ -5441,24 +6279,24 @@ const VegaRichTextImageEditor = class {
5441
6279
  }
5442
6280
  get host() { return index.getElement(this); }
5443
6281
  };
5444
- __decorate$2([
6282
+ __decorate$4([
5445
6283
  componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
5446
6284
  ], VegaRichTextImageEditor.prototype, "globalSlimmers", void 0);
5447
- __decorate$2([
6285
+ __decorate$4([
5448
6286
  globalSlimmerRegistry.InjectVegaSlimmer()
5449
6287
  ], VegaRichTextImageEditor.prototype, "translationSlimmer", void 0);
5450
- __decorate$2([
6288
+ __decorate$4([
5451
6289
  globalSlimmerRegistry.InjectVegaSlimmer()
5452
6290
  ], VegaRichTextImageEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
5453
- __decorate$2([
6291
+ __decorate$4([
5454
6292
  globalSlimmerRegistry.InjectVegaSlimmer()
5455
6293
  ], VegaRichTextImageEditor.prototype, "renderer", void 0);
5456
- __decorate$2([
6294
+ __decorate$4([
5457
6295
  globalSlimmerRegistry.InjectVegaSlimmer()
5458
6296
  ], VegaRichTextImageEditor.prototype, "changeEventEmitter", void 0);
5459
6297
  VegaRichTextImageEditor.style = vegaRichTextImageEditorCss;
5460
6298
 
5461
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6299
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5462
6300
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5463
6301
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5464
6302
  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;
@@ -5467,66 +6305,73 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
5467
6305
  class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
5468
6306
  constructor() {
5469
6307
  super(...arguments);
5470
- this.handleKeyDown = (e) => {
5471
- if (e.key === 'Enter') {
5472
- void this.formRef.getValue().then(({ text, url }) => {
5473
- const normalizedUrl = this.normalizeUrlByDefaultProtocol(url);
5474
- if (normalizedUrl.length > 0) {
5475
- this.changeEventEmitter.emit({
5476
- action: 'link',
5477
- payload: { text: text || normalizedUrl, url: normalizedUrl },
5478
- });
5479
- void this.popoverRef.hide();
6308
+ this.handlePopoverRef = (ref) => {
6309
+ this.popoverRef = ref;
6310
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverShow, () => this.linkEditorController.handlePopoverShow());
6311
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverHide, () => {
6312
+ this.linkEditorController.handlePopoverHide();
6313
+ });
6314
+ };
6315
+ this.handleButtonGroupRef = (node) => {
6316
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, vegaEventId.VegaClick, ({ detail }) => {
6317
+ switch (detail) {
6318
+ case 'edit': {
6319
+ this.linkEditorController.handleEditAction();
6320
+ return;
5480
6321
  }
5481
- });
6322
+ case 'unlink': {
6323
+ void this.linkEditorController.handleUnlinkAction();
6324
+ }
6325
+ }
6326
+ });
6327
+ };
6328
+ this.handleFormRef = (ref) => {
6329
+ this.formRef = ref;
6330
+ };
6331
+ this.handleUrlInputRef = (ref) => {
6332
+ if (ref) {
6333
+ this.urlInputRef = ref;
5482
6334
  }
5483
6335
  };
5484
- }
5485
- /**
5486
- * Component lifecycle - [componentDidLoad]{@link VegaRichTextLinkEditor.componentDidLoad}
5487
- */
5488
- componentDidLoad() {
5489
- this.updatePopoverTarget();
5490
- }
5491
- /**
5492
- * Component lifecycle - [componentDidRender]{@link VegaRichTextLinkEditor.componentDidRender}
5493
- */
5494
- componentDidRender() {
5495
- changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
5496
- }
5497
- watchStatusChange() {
5498
- if (this.status === 'linkEdit') {
5499
- setTimeout(() => {
5500
- void this.urlInputRef.doFocus();
6336
+ this.handleTextInputRef = (ref) => {
6337
+ this.textInputRef = ref;
6338
+ };
6339
+ this.handleLinkFieldKeyDown = (e) => {
6340
+ this.linkEditorController.handleKeyDown(e);
6341
+ };
6342
+ this.handleUrlVegaChange = (e) => {
6343
+ this.linkEditorController.handleUrlVegaChange(e);
6344
+ };
6345
+ this.handleLinkTypeSelectRef = (ref) => {
6346
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaChange, (payload) => {
6347
+ void this.linkEditorController.handleLinkTypeChange(payload);
5501
6348
  });
5502
- }
5503
- }
5504
- watchTargetChange() {
5505
- this.updatePopoverTarget();
6349
+ };
6350
+ this.handleCancelButtonRef = (ref) => {
6351
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaClick, () => {
6352
+ void this.getPopoverRef().hide();
6353
+ });
6354
+ };
6355
+ this.handleSubmitButtonRef = (ref) => {
6356
+ domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaClick, () => {
6357
+ void this.linkEditorController.submitLink();
6358
+ });
6359
+ };
5506
6360
  }
5507
6361
  getPopoverRef() {
5508
6362
  return this.popoverRef;
5509
6363
  }
6364
+ getFormRef() {
6365
+ return this.formRef;
6366
+ }
6367
+ getUrlInputRef() {
6368
+ return this.urlInputRef;
6369
+ }
6370
+ getTextInputRef() {
6371
+ return this.textInputRef;
6372
+ }
5510
6373
  render() {
5511
- return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
5512
- this.popoverRef = ref;
5513
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverShow, () => {
5514
- var _a, _b, _c;
5515
- if (this.status === 'linkEdit') {
5516
- void this.urlInputRef.doFocus();
5517
- }
5518
- void this.formRef.setValue({
5519
- text: (_a = this.record) === null || _a === void 0 ? void 0 : _a.text,
5520
- url: this.normalizeUrlByDefaultProtocol((_c = (_b = this.record) === null || _b === void 0 ? void 0 : _b.url) !== null && _c !== void 0 ? _c : ''),
5521
- });
5522
- });
5523
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverHide, () => {
5524
- void this.formRef.reset();
5525
- if (this.resetStatusAfterHide) {
5526
- this.status = 'editOrUnlinkSelection';
5527
- }
5528
- });
5529
- } },
6374
+ return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: this.handlePopoverRef },
5530
6375
  index.h("span", { slot: "popover-content" },
5531
6376
  index.h("slot", null)),
5532
6377
  index.h("div", { slot: "popover" },
@@ -5535,74 +6380,879 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
5535
6380
  }
5536
6381
  renderLinkUnlinkContent() {
5537
6382
  return (index.h("vega-box", { display: this.status === 'editOrUnlinkSelection' ? 'block' : 'none' },
5538
- index.h("vega-button-group", { size: "small", variant: "tertiary", ref: (node) => {
5539
- domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, vegaEventId.VegaClick, ({ detail }) => {
5540
- switch (detail) {
5541
- case 'edit': {
5542
- this.status = 'linkEdit';
5543
- return;
5544
- }
5545
- case 'unlink': {
5546
- this.changeEventEmitter.emit({ action: 'unlink' });
5547
- void this.popoverRef.hide();
5548
- }
5549
- }
5550
- });
5551
- } },
6383
+ index.h("vega-button-group", { size: "small", variant: "tertiary", ref: this.handleButtonGroupRef, onKeyDown: this.handleLinkFieldKeyDown },
5552
6384
  index.h("vega-button-group-item", { label: this.translationSlimmer.t('Edit'), itemKey: "edit" }),
5553
6385
  index.h("vega-button-group-item", { label: this.translationSlimmer.t('Unlink'), itemKey: "unlink" }))));
5554
6386
  }
5555
6387
  renderLinkEditContent() {
5556
6388
  return (index.h("vega-box", { display: this.status === 'linkEdit' ? 'block' : 'none' },
5557
- index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
5558
- index.h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
5559
- index.h("vega-input", { "data-vega-form": "url", ref: (ref) => {
5560
- this.urlInputRef = ref;
5561
- }, size: "small", label: this.translationSlimmer.t('URL'), onKeyDown: this.handleKeyDown }),
5562
- index.h("vega-input", { size: "small", label: this.translationSlimmer.t('Text'), "data-vega-form": "text", onKeyDown: this.handleKeyDown })))));
6389
+ index.h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
6390
+ this.renderLinkTypeSelector(),
6391
+ index.h("vega-form", { ref: this.handleFormRef },
6392
+ index.h("vega-flex", { direction: "col", gap: "size-16" },
6393
+ this.renderTextInput(),
6394
+ this.renderCurrentLinkTypeEditFields())),
6395
+ this.renderActionButtons())));
6396
+ }
6397
+ renderCurrentLinkTypeEditFields() {
6398
+ switch (this.linkEditorStateManager.getSelectedLinkTypeKey()) {
6399
+ case codeBlock.RTE_EMAIL_LINK_TYPE_KEY:
6400
+ return this.renderEmailLinkEditFields();
6401
+ default:
6402
+ return this.renderUrlLinkEditFields();
6403
+ }
6404
+ }
6405
+ renderTextInput() {
6406
+ return (index.h("vega-input", { size: "small", label: this.translationSlimmer.t('Text'), "data-vega-form": "text", ref: this.handleTextInputRef, onKeyDown: this.handleLinkFieldKeyDown }));
6407
+ }
6408
+ renderEmailLinkEditFields() {
6409
+ return [
6410
+ index.h("vega-input", { key: "emailAddress", "data-vega-form": "emailAddress", required: true, ref: this.handleUrlInputRef, size: "small", label: this.translationSlimmer.t('E-Mail Address'), onVegaChange: this.handleUrlVegaChange, onKeyDown: this.handleLinkFieldKeyDown }),
6411
+ index.h("vega-input", { key: "messageSubject", size: "small", label: this.translationSlimmer.t('Message Subject'), "data-vega-form": "messageSubject", onKeyDown: this.handleLinkFieldKeyDown }),
6412
+ index.h("vega-textarea", { key: "messageBody", label: this.translationSlimmer.t('Message Body'), "data-vega-form": "messageBody", rows: 4, resizable: false }),
6413
+ ];
5563
6414
  }
5564
- updatePopoverTarget() {
5565
- remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
6415
+ renderUrlLinkEditFields() {
6416
+ return [
6417
+ index.h("vega-input", { key: "url", "data-vega-form": "url", ref: this.handleUrlInputRef, size: "small", label: this.translationSlimmer.t('URL'), required: this.linkTypeConfigController.hasConfiguredLinkTypes(), onVegaChange: this.handleUrlVegaChange, onKeyDown: this.handleLinkFieldKeyDown }),
6418
+ ];
5566
6419
  }
5567
- normalizeUrlByDefaultProtocol(url) {
5568
- const rteHost = ui.findParent(this.host, 'vega-rich-text-editor');
5569
- const linkConfig = linkExtension.VegaRTELinkExtension.configStore.get(rteHost) || {};
5570
- return imageAnnotationAction.normalizeUrlByDefaultProtocol(url, linkConfig.defaultProtocol);
6420
+ renderLinkTypeSelector() {
6421
+ if (!this.linkTypeConfigController.hasConfiguredLinkTypes()) {
6422
+ return null;
6423
+ }
6424
+ return (index.h("vega-input-select", { label: this.translationSlimmer.t('Link Type'), size: "small", source: this.linkTypeConfigController
6425
+ .getConfiguredLinkTypes()
6426
+ .map((item) => ({
6427
+ id: item.key,
6428
+ displayName: this.translationSlimmer.t(item.label),
6429
+ })), vegaDropdownProps: { searchable: false }, value: this.linkEditorStateManager.getSelectedLinkTypeKey(), ref: this.handleLinkTypeSelectRef }));
5571
6430
  }
5572
- }
5573
- __decorate$1([
6431
+ renderActionButtons() {
6432
+ if (!this.linkTypeConfigController.hasConfiguredLinkTypes()) {
6433
+ return null;
6434
+ }
6435
+ return (index.h("vega-flex", { style: { width: '100%' }, gap: "size-8", alignItems: "center", justifyContent: "end" },
6436
+ index.h("vega-button", { variant: "secondary", label: this.translationSlimmer.t('Cancel'), ref: this.handleCancelButtonRef }),
6437
+ index.h("vega-button", { label: this.translationSlimmer.t('Submit'), disabled: this.linkEditorStateManager.getIsSubmitDisabled(), ref: this.handleSubmitButtonRef })));
6438
+ }
6439
+ }
6440
+ __decorate$3([
5574
6441
  globalSlimmerRegistry.MapToComponentField()
5575
6442
  ], VegaRichTextLinkEditorRenderer.prototype, "host", void 0);
5576
- __decorate$1([
5577
- globalSlimmerRegistry.MapToComponentField({ writable: true })
6443
+ __decorate$3([
6444
+ globalSlimmerRegistry.MapToComponentField()
5578
6445
  ], VegaRichTextLinkEditorRenderer.prototype, "status", void 0);
5579
- __decorate$1([
6446
+ __decorate$3([
6447
+ globalSlimmerRegistry.MapToComponentField()
6448
+ ], VegaRichTextLinkEditorRenderer.prototype, "translationSlimmer", void 0);
6449
+ __decorate$3([
6450
+ globalSlimmerRegistry.MapToComponentField()
6451
+ ], VegaRichTextLinkEditorRenderer.prototype, "linkEditorController", void 0);
6452
+ __decorate$3([
6453
+ globalSlimmerRegistry.MapToComponentField()
6454
+ ], VegaRichTextLinkEditorRenderer.prototype, "linkTypeConfigController", void 0);
6455
+ __decorate$3([
6456
+ globalSlimmerRegistry.MapToComponentField()
6457
+ ], VegaRichTextLinkEditorRenderer.prototype, "linkEditorStateManager", void 0);
6458
+
6459
+ const urlLinkTypeHandler = {
6460
+ key: 'url',
6461
+ defaultFallbackProtocol: undefined,
6462
+ /** @inheritDoc */
6463
+ getRequiredValue: (record) => { var _a; return (_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : ''; },
6464
+ /** @inheritDoc */
6465
+ getTextValue: (formValues) => formValues.text || '',
6466
+ /** @inheritDoc */
6467
+ getFallbackText: () => '',
6468
+ /** @inheritDoc */
6469
+ buildFinalUrl: (formValues, { normalizeUrl }) => normalizeUrl(formValues.url || ''),
6470
+ /** @inheritDoc */
6471
+ getInitialFormValues: (record, { normalizeUrl }) => {
6472
+ var _a, _b;
6473
+ return ({
6474
+ text: (_a = record === null || record === void 0 ? void 0 : record.text) !== null && _a !== void 0 ? _a : '',
6475
+ url: normalizeUrl((_b = record === null || record === void 0 ? void 0 : record.url) !== null && _b !== void 0 ? _b : ''),
6476
+ });
6477
+ },
6478
+ };
6479
+ const emailLinkTypeHandler = {
6480
+ key: 'email',
6481
+ defaultFallbackProtocol: 'mailto:',
6482
+ /** @inheritDoc */
6483
+ getRequiredValue: (record, { parseMailtoUrl }) => {
6484
+ var _a;
6485
+ const { emailAddress } = parseMailtoUrl((_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : '');
6486
+ return emailAddress;
6487
+ },
6488
+ /** @inheritDoc */
6489
+ getTextValue: (formValues) => formValues.text || '',
6490
+ /** @inheritDoc */
6491
+ getFallbackText: (formValues) => formValues.emailAddress || '',
6492
+ /** @inheritDoc */
6493
+ buildFinalUrl: (formValues, { buildEmailUrl }) => buildEmailUrl(formValues.emailAddress || '', formValues.messageSubject || '', formValues.messageBody || ''),
6494
+ /** @inheritDoc */
6495
+ getInitialFormValues: (record, { parseMailtoUrl }) => {
6496
+ var _a, _b;
6497
+ const { emailAddress, subject, body } = parseMailtoUrl((_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : '');
6498
+ return {
6499
+ text: (_b = record === null || record === void 0 ? void 0 : record.text) !== null && _b !== void 0 ? _b : '',
6500
+ emailAddress,
6501
+ messageSubject: subject,
6502
+ messageBody: body,
6503
+ };
6504
+ },
6505
+ };
6506
+ const LINK_TYPE_HANDLERS = [urlLinkTypeHandler, emailLinkTypeHandler];
6507
+ const LINK_TYPE_HANDLER_MAP = new Map(LINK_TYPE_HANDLERS.map((handler) => [handler.key, handler]));
6508
+
6509
+ /**
6510
+ * Normalizes link URLs and mailto values for the link editor.
6511
+ */
6512
+ class LinkUrlNormalizer {
6513
+ /**
6514
+ * Normalizes a URL with the provided default protocol.
6515
+ *
6516
+ * @param {string} url - URL to normalize.
6517
+ * @param {string} defaultProtocol - Default protocol to apply.
6518
+ * @returns {string} The normalized URL.
6519
+ */
6520
+ normalizeUrlByDefaultProtocol(url, defaultProtocol) {
6521
+ return imageAnnotationAction.normalizeUrlByDefaultProtocol(url, defaultProtocol);
6522
+ }
6523
+ /**
6524
+ * Parses a mailto URL into its structured parts.
6525
+ *
6526
+ * @param {string} url - Mailto URL to parse.
6527
+ * @returns {MailtoUrlParts} The parsed mailto parts.
6528
+ */
6529
+ parseMailtoUrl(url) {
6530
+ var _a, _b;
6531
+ if (!url) {
6532
+ return { emailAddress: '', subject: '', body: '' };
6533
+ }
6534
+ const withoutProtocol = url.startsWith('mailto:') ? url.slice('mailto:'.length) : url;
6535
+ const questionIndex = withoutProtocol.indexOf('?');
6536
+ if (questionIndex === -1) {
6537
+ return {
6538
+ emailAddress: this.decodeURIComponentSafely(withoutProtocol),
6539
+ subject: '',
6540
+ body: '',
6541
+ };
6542
+ }
6543
+ const emailAddress = this.decodeURIComponentSafely(withoutProtocol.slice(0, questionIndex));
6544
+ const params = new URLSearchParams(withoutProtocol.slice(questionIndex + 1));
6545
+ return {
6546
+ emailAddress,
6547
+ subject: (_a = params.get('subject')) !== null && _a !== void 0 ? _a : '',
6548
+ body: (_b = params.get('body')) !== null && _b !== void 0 ? _b : '',
6549
+ };
6550
+ }
6551
+ /**
6552
+ * Builds a mailto URL from the provided fields.
6553
+ *
6554
+ * @param {string} emailAddress - Email address value.
6555
+ * @param {string} subject - Subject value.
6556
+ * @param {string} body - Body value.
6557
+ * @returns {string} The generated mailto URL.
6558
+ */
6559
+ buildEmailLinkUrl(emailAddress, subject, body) {
6560
+ const normalizedEmailAddress = (emailAddress || '').trim().replace(/^(mailto:)+/i, '');
6561
+ if (normalizedEmailAddress.length === 0) {
6562
+ return '';
6563
+ }
6564
+ const queryParams = [];
6565
+ if ((subject || '').trim().length > 0) {
6566
+ queryParams.push(`subject=${encodeURIComponent(subject.trim())}`);
6567
+ }
6568
+ if ((body || '').trim().length > 0) {
6569
+ queryParams.push(`body=${encodeURIComponent(body.trim())}`);
6570
+ }
6571
+ return `mailto:${normalizedEmailAddress}${queryParams.length > 0 ? `?${queryParams.join('&')}` : ''}`;
6572
+ }
6573
+ /**
6574
+ * Decodes a URI component without throwing on malformed input.
6575
+ *
6576
+ * @param {string} value - Encoded value.
6577
+ * @returns {string} The decoded value.
6578
+ */
6579
+ decodeURIComponentSafely(value) {
6580
+ try {
6581
+ return decodeURIComponent(value);
6582
+ }
6583
+ catch (_a) {
6584
+ return value;
6585
+ }
6586
+ }
6587
+ }
6588
+
6589
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6590
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6591
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6592
+ 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;
6593
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6594
+ };
6595
+ /**
6596
+ * Coordinates link editor state, popover behavior, and submit actions.
6597
+ */
6598
+ class LinkEditorController extends globalSlimmerRegistry.VegaSlimmer {
6599
+ constructor() {
6600
+ super(...arguments);
6601
+ this.linkUrlNormalizer = new LinkUrlNormalizer();
6602
+ this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
6603
+ }
6604
+ /** Initializes the popover target after the component loads. */
6605
+ componentDidLoad() {
6606
+ this.updatePopoverTarget();
6607
+ }
6608
+ /** Notifies observers after each render cycle. */
6609
+ componentDidRender() {
6610
+ changeManager.ChangeManager.notify(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
6611
+ }
6612
+ /** Focuses the URL input when the status changes to linkEdit. */
6613
+ watchStatusChange() {
6614
+ if (this.status === 'linkEdit') {
6615
+ setTimeout(() => {
6616
+ var _a;
6617
+ void ((_a = this.renderer.getUrlInputRef()) === null || _a === void 0 ? void 0 : _a.doFocus());
6618
+ });
6619
+ }
6620
+ }
6621
+ /** Invalidates link type cache and updates the popover target when the target changes. */
6622
+ watchTargetChange() {
6623
+ this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
6624
+ this.updatePopoverTarget();
6625
+ }
6626
+ /**
6627
+ * Prepares the editor state before the popover is shown.
6628
+ *
6629
+ * @returns {Promise<void>} Resolves when the popover show work completes.
6630
+ * Resolves when the popover show work completes.
6631
+ */
6632
+ async handlePopoverShow() {
6633
+ var _a, _b, _c, _d;
6634
+ this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
6635
+ this.linkEditorStateManager.clearFormValues();
6636
+ if (this.linkEditorStateManager.getShouldResetStatusOnNextShow()) {
6637
+ this.linkEditorStateManager.setShouldResetStatusOnNextShow(false);
6638
+ if (this.status !== 'editOrUnlinkSelection') {
6639
+ this.status = 'editOrUnlinkSelection';
6640
+ index.forceUpdate(this.host);
6641
+ await this.waitForRender();
6642
+ }
6643
+ }
6644
+ if (this.status === 'linkEdit') {
6645
+ const resolvedKey = this.linkTypeConfigController.resolveInitialLinkTypeKey((_a = this.record) === null || _a === void 0 ? void 0 : _a.linkType, (_b = this.record) === null || _b === void 0 ? void 0 : _b.url);
6646
+ if (resolvedKey !== this.linkEditorStateManager.getSelectedLinkTypeKey()) {
6647
+ this.linkEditorStateManager.setSelectedLinkTypeKey(resolvedKey);
6648
+ this.linkEditorStateManager.setSubmitDisabled(true);
6649
+ await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.reset) === null || _d === void 0 ? void 0 : _d.call(_c));
6650
+ index.forceUpdate(this.host);
6651
+ await this.waitForRender();
6652
+ }
6653
+ await this.populateEditForm();
6654
+ }
6655
+ }
6656
+ /**
6657
+ * Clears form state after the popover hides.
6658
+ *
6659
+ * @returns {void} No return value.
6660
+ */
6661
+ handlePopoverHide() {
6662
+ var _a, _b;
6663
+ void ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.reset) === null || _b === void 0 ? void 0 : _b.call(_a));
6664
+ this.linkEditorStateManager.clearFormValues();
6665
+ if (this.linkTypeConfigController.hasConfiguredLinkTypes()) {
6666
+ this.updateSubmitDisabledState('');
6667
+ }
6668
+ if (this.resetStatusAfterHide) {
6669
+ this.linkEditorStateManager.setShouldResetStatusOnNextShow(true);
6670
+ }
6671
+ }
6672
+ /**
6673
+ * Switches the editor into link edit mode.
6674
+ *
6675
+ * @returns {void} No return value.
6676
+ */
6677
+ handleEditAction() {
6678
+ var _a, _b;
6679
+ this.linkEditorStateManager.setSelectedLinkTypeKey(this.linkTypeConfigController.resolveInitialLinkTypeKey((_a = this.record) === null || _a === void 0 ? void 0 : _a.linkType, (_b = this.record) === null || _b === void 0 ? void 0 : _b.url));
6680
+ this.status = 'linkEdit';
6681
+ index.forceUpdate(this.host);
6682
+ void this.waitForRender().then(() => this.populateEditForm());
6683
+ }
6684
+ /**
6685
+ * Removes the current selection link and closes the popover.
6686
+ *
6687
+ * @returns {Promise<void>} Resolves when unlinking finishes.
6688
+ */
6689
+ async handleUnlinkAction() {
6690
+ this.changeEventEmitter.emit({ action: 'unlink' });
6691
+ await this.renderer.getPopoverRef().hide();
6692
+ }
6693
+ /**
6694
+ * Updates submit state from URL input changes.
6695
+ *
6696
+ * @param {CustomEvent<string>} e - URL input change event.
6697
+ * @returns {void} No return value.
6698
+ */
6699
+ handleUrlVegaChange(e) {
6700
+ if (this.linkTypeConfigController.hasConfiguredLinkTypes()) {
6701
+ this.updateSubmitDisabledState(e.detail);
6702
+ }
6703
+ }
6704
+ /**
6705
+ * Submits the current link when Enter is pressed or hides the popover when Escape is pressed.
6706
+ *
6707
+ * @param {KeyboardEvent} e - Key down event.
6708
+ * @returns {void} No return value.
6709
+ */
6710
+ handleKeyDown(e) {
6711
+ if (e.key === 'Escape') {
6712
+ void this.renderer.getPopoverRef().hide();
6713
+ return;
6714
+ }
6715
+ if (e.key === 'Enter') {
6716
+ if (this.linkTypeConfigController.hasConfiguredLinkTypes() &&
6717
+ this.linkEditorStateManager.getIsSubmitDisabled()) {
6718
+ return;
6719
+ }
6720
+ void this.submitLink();
6721
+ }
6722
+ }
6723
+ /**
6724
+ * Switches the active form when the link type changes.
6725
+ *
6726
+ * @param {NotifyObserverPayload<string>} payload - Selected link type change payload.
6727
+ * @returns {Promise<void>} Resolves when the link type switch completes.
6728
+ */
6729
+ async handleLinkTypeChange(payload) {
6730
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
6731
+ const previousLinkTypeKey = this.linkEditorStateManager.getSelectedLinkTypeKey();
6732
+ const nextLinkTypeKey = payload.detail ||
6733
+ ((_a = this.linkTypeConfigController.getConfiguredLinkTypes()[0]) === null || _a === void 0 ? void 0 : _a.key) ||
6734
+ codeBlock.RTE_DEFAULT_LINK_TYPE_KEY;
6735
+ if (previousLinkTypeKey === nextLinkTypeKey) {
6736
+ return;
6737
+ }
6738
+ const currentFormValues = (_d = (await ((_c = (_b = this.renderer.getFormRef()) === null || _b === void 0 ? void 0 : _b.getValue) === null || _c === void 0 ? void 0 : _c.call(_b)))) !== null && _d !== void 0 ? _d : {};
6739
+ const currentSharedTextValue = (_e = currentFormValues.text) !== null && _e !== void 0 ? _e : this.linkEditorStateManager.getSharedTextValue();
6740
+ this.linkEditorStateManager.setSharedTextValue(currentSharedTextValue);
6741
+ const currentTypeValues = Object.assign({}, currentFormValues);
6742
+ delete currentTypeValues.text;
6743
+ const hasAnyValue = Object.values(currentTypeValues).some((value) => value);
6744
+ if (hasAnyValue) {
6745
+ this.linkEditorStateManager.cacheFormValues(previousLinkTypeKey, currentTypeValues);
6746
+ }
6747
+ const savedValues = this.linkEditorStateManager.getCachedFormValues(nextLinkTypeKey);
6748
+ this.linkEditorStateManager.setSelectedLinkTypeKey(nextLinkTypeKey);
6749
+ this.linkEditorStateManager.setSubmitDisabled(true);
6750
+ index.forceUpdate(this.host);
6751
+ if (savedValues && ((_f = this.renderer.getFormRef()) === null || _f === void 0 ? void 0 : _f.setValue)) {
6752
+ void this.waitForRender().then(() => this.performFormRestore(Object.assign(Object.assign({}, savedValues), { text: this.linkEditorStateManager.getSharedTextValue() })));
6753
+ return;
6754
+ }
6755
+ await ((_h = (_g = this.renderer.getFormRef()) === null || _g === void 0 ? void 0 : _g.reset) === null || _h === void 0 ? void 0 : _h.call(_g));
6756
+ void this.waitForRender().then(() => { var _a; return (_a = this.renderer.getUrlInputRef()) === null || _a === void 0 ? void 0 : _a.doFocus(); });
6757
+ const sharedTextValue = this.linkEditorStateManager.getSharedTextValue();
6758
+ await ((_k = (_j = this.renderer.getFormRef()) === null || _j === void 0 ? void 0 : _j.setValue) === null || _k === void 0 ? void 0 : _k.call(_j, { text: sharedTextValue }));
6759
+ this.syncTextInputValue(sharedTextValue);
6760
+ }
6761
+ /**
6762
+ * Builds and emits the final link payload.
6763
+ *
6764
+ * @returns {Promise<void>} Resolves when the link submit flow completes.
6765
+ */
6766
+ async submitLink() {
6767
+ var _a, _b, _c, _d;
6768
+ const formValues = (_c = (await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.getValue) === null || _b === void 0 ? void 0 : _b.call(_a)))) !== null && _c !== void 0 ? _c : {};
6769
+ const selectedLinkTypeKey = this.linkEditorStateManager.getSelectedLinkTypeKey();
6770
+ const handler = this.linkTypeHandlers.get(selectedLinkTypeKey);
6771
+ if (!handler) {
6772
+ return;
6773
+ }
6774
+ const deps = {
6775
+ normalizeUrl: this.normalizeUrlByDefaultProtocol.bind(this),
6776
+ buildEmailUrl: this.buildEmailLinkUrl.bind(this),
6777
+ };
6778
+ const text = handler.getTextValue(formValues);
6779
+ let normalizedUrl = handler.buildFinalUrl(formValues, deps);
6780
+ normalizedUrl = this.preserveExistingMailtoUrlIfUnchanged(formValues, normalizedUrl);
6781
+ if (normalizedUrl.length === 0) {
6782
+ if ((_d = this.record) === null || _d === void 0 ? void 0 : _d.url) {
6783
+ this.changeEventEmitter.emit({ action: 'unlink' });
6784
+ await this.renderer.getPopoverRef().hide();
6785
+ }
6786
+ return;
6787
+ }
6788
+ if (normalizedUrl.length > 0) {
6789
+ this.changeEventEmitter.emit({
6790
+ action: 'link',
6791
+ payload: Object.assign({ text: text || handler.getFallbackText(formValues) || normalizedUrl, url: normalizedUrl }, (this.linkTypeConfigController.hasConfiguredLinkTypes()
6792
+ ? { linkType: selectedLinkTypeKey }
6793
+ : {})),
6794
+ });
6795
+ await this.renderer.getPopoverRef().hide();
6796
+ }
6797
+ }
6798
+ /**
6799
+ * Populates the edit form from the active record.
6800
+ *
6801
+ * @returns {Promise<void>} Resolves when the edit form is populated.
6802
+ */
6803
+ async populateEditForm() {
6804
+ var _a, _b, _c, _d, _e;
6805
+ const handler = this.linkTypeHandlers.get(this.linkEditorStateManager.getSelectedLinkTypeKey());
6806
+ if (!handler) {
6807
+ return;
6808
+ }
6809
+ const deps = {
6810
+ parseMailtoUrl: this.parseMailtoUrl.bind(this),
6811
+ normalizeUrl: this.normalizeUrlByDefaultProtocol.bind(this),
6812
+ };
6813
+ const requiredValue = this.linkTypeConfigController.hasConfiguredLinkTypes()
6814
+ ? handler.getRequiredValue(this.record, deps)
6815
+ : '';
6816
+ const initialFormValues = handler.getInitialFormValues(this.record, deps);
6817
+ this.linkEditorStateManager.setSharedTextValue(initialFormValues.text || '');
6818
+ await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.setValue) === null || _b === void 0 ? void 0 : _b.call(_a, initialFormValues));
6819
+ this.syncTextInputValue(initialFormValues.text || '');
6820
+ this.updateSubmitDisabledState(requiredValue);
6821
+ await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.setValue) === null || _d === void 0 ? void 0 : _d.call(_c, handler.getInitialFormValues(this.record, deps)));
6822
+ await ((_e = this.renderer.getUrlInputRef()) === null || _e === void 0 ? void 0 : _e.doFocus());
6823
+ }
6824
+ /**
6825
+ * Updates the popover target via the remote invocation registry.
6826
+ *
6827
+ * @returns {void} No return value.
6828
+ */
6829
+ updatePopoverTarget() {
6830
+ remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectObserverFactory.domNodeSubjectFactory.getSubject(this.renderer.getPopoverRef(), vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
6831
+ }
6832
+ /**
6833
+ * Preserves an unchanged mailto URL when the form edits are equivalent.
6834
+ *
6835
+ * @param {Record<string, string>} formValues - Current form values.
6836
+ * @param {string} normalizedUrl - Normalized URL candidate.
6837
+ * @returns {string} The preserved or normalized URL.
6838
+ */
6839
+ preserveExistingMailtoUrlIfUnchanged(formValues, normalizedUrl) {
6840
+ var _a;
6841
+ if (this.linkEditorStateManager.getSelectedLinkTypeKey() !== codeBlock.RTE_EMAIL_LINK_TYPE_KEY ||
6842
+ !((_a = this.record) === null || _a === void 0 ? void 0 : _a.url)) {
6843
+ return normalizedUrl;
6844
+ }
6845
+ const existingUrl = this.record.url;
6846
+ if (!existingUrl.startsWith('mailto:')) {
6847
+ return normalizedUrl;
6848
+ }
6849
+ const existingMailto = this.parseMailtoUrl(existingUrl);
6850
+ const nextEmailAddress = (formValues.emailAddress || '').trim();
6851
+ const nextSubject = (formValues.messageSubject || '').trim();
6852
+ const nextBody = (formValues.messageBody || '').trim();
6853
+ if (nextEmailAddress === existingMailto.emailAddress &&
6854
+ nextSubject === existingMailto.subject &&
6855
+ nextBody === existingMailto.body) {
6856
+ return existingUrl;
6857
+ }
6858
+ return normalizedUrl;
6859
+ }
6860
+ /**
6861
+ * Normalizes a URL using the currently selected link type protocol.
6862
+ *
6863
+ * @param {string} url - URL to normalize.
6864
+ * @returns {string} The normalized URL.
6865
+ */
6866
+ normalizeUrlByDefaultProtocol(url) {
6867
+ return this.linkUrlNormalizer.normalizeUrlByDefaultProtocol(url, this.linkTypeConfigController.getDefaultProtocolForLinkType(this.linkEditorStateManager.getSelectedLinkTypeKey()));
6868
+ }
6869
+ /**
6870
+ * Parses a mailto URL into structured parts.
6871
+ *
6872
+ * @param {string} url - Mailto URL to parse.
6873
+ * @returns {MailtoUrlParts} The parsed mailto parts.
6874
+ */
6875
+ parseMailtoUrl(url) {
6876
+ return this.linkUrlNormalizer.parseMailtoUrl(url);
6877
+ }
6878
+ /**
6879
+ * Builds a mailto URL from the email form fields.
6880
+ *
6881
+ * @param {string} emailAddress - Email address value.
6882
+ * @param {string} subject - Subject value.
6883
+ * @param {string} body - Body value.
6884
+ * @returns {string} The generated mailto URL.
6885
+ */
6886
+ buildEmailLinkUrl(emailAddress, subject, body) {
6887
+ return this.linkUrlNormalizer.buildEmailLinkUrl(emailAddress, subject, body);
6888
+ }
6889
+ /**
6890
+ * Enables or disables submit based on the normalized URL value.
6891
+ *
6892
+ * @param {string} url - URL value to evaluate.
6893
+ * @returns {void} No return value.
6894
+ */
6895
+ updateSubmitDisabledState(url) {
6896
+ const nextDisabled = this.normalizeUrlByDefaultProtocol(url).length === 0;
6897
+ if (this.linkEditorStateManager.getIsSubmitDisabled() !== nextDisabled) {
6898
+ this.linkEditorStateManager.setSubmitDisabled(nextDisabled);
6899
+ index.forceUpdate(this.host);
6900
+ }
6901
+ }
6902
+ /**
6903
+ * Restores cached form values after the next render.
6904
+ *
6905
+ * @param {Record<string, string>} savedValues - Link type-specific values to restore.
6906
+ * @returns {Promise<void>} Resolves after restoring cached values.
6907
+ */
6908
+ async performFormRestore(savedValues) {
6909
+ var _a, _b, _c, _d, _e;
6910
+ await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.reset) === null || _b === void 0 ? void 0 : _b.call(_a));
6911
+ await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.setValue) === null || _d === void 0 ? void 0 : _d.call(_c, savedValues));
6912
+ this.syncTextInputValue(savedValues.text || '');
6913
+ const restoredRequiredValue = savedValues.url || savedValues.emailAddress || '';
6914
+ this.updateSubmitDisabledState(restoredRequiredValue);
6915
+ await ((_e = this.renderer.getUrlInputRef()) === null || _e === void 0 ? void 0 : _e.doFocus());
6916
+ }
6917
+ /**
6918
+ * Keeps text input UI in sync as a fallback when form setValue timing misses visual update.
6919
+ *
6920
+ * @param {string} textValue - Text value to display.
6921
+ * @returns {void} No return value.
6922
+ */
6923
+ syncTextInputValue(textValue) {
6924
+ const textInput = this.renderer.getTextInputRef();
6925
+ if (textInput) {
6926
+ textInput.value = textValue;
6927
+ }
6928
+ }
6929
+ /**
6930
+ * Waits for the host to finish rendering.
6931
+ *
6932
+ * @returns {Promise<unknown>} A promise that resolves after the host renders.
6933
+ */
6934
+ waitForRender() {
6935
+ return waitForComponentDidRender.waitForComponentDidRender(this.host);
6936
+ }
6937
+ }
6938
+ __decorate$2([
6939
+ globalSlimmerRegistry.MapToComponentField()
6940
+ ], LinkEditorController.prototype, "host", void 0);
6941
+ __decorate$2([
5580
6942
  globalSlimmerRegistry.MapToComponentField({ writable: true })
5581
- ], VegaRichTextLinkEditorRenderer.prototype, "record", void 0);
5582
- __decorate$1([
6943
+ ], LinkEditorController.prototype, "status", void 0);
6944
+ __decorate$2([
5583
6945
  globalSlimmerRegistry.MapToComponentField()
5584
- ], VegaRichTextLinkEditorRenderer.prototype, "changeEventEmitter", void 0);
5585
- __decorate$1([
6946
+ ], LinkEditorController.prototype, "record", void 0);
6947
+ __decorate$2([
5586
6948
  globalSlimmerRegistry.MapToComponentField()
5587
- ], VegaRichTextLinkEditorRenderer.prototype, "resetStatusAfterHide", void 0);
5588
- __decorate$1([
6949
+ ], LinkEditorController.prototype, "changeEventEmitter", void 0);
6950
+ __decorate$2([
5589
6951
  globalSlimmerRegistry.MapToComponentField()
5590
- ], VegaRichTextLinkEditorRenderer.prototype, "translationSlimmer", void 0);
5591
- __decorate$1([
6952
+ ], LinkEditorController.prototype, "resetStatusAfterHide", void 0);
6953
+ __decorate$2([
5592
6954
  globalSlimmerRegistry.MapToComponentField()
5593
- ], VegaRichTextLinkEditorRenderer.prototype, "target", void 0);
5594
- __decorate$1([
6955
+ ], LinkEditorController.prototype, "target", void 0);
6956
+ __decorate$2([
6957
+ globalSlimmerRegistry.MapToComponentField()
6958
+ ], LinkEditorController.prototype, "renderer", void 0);
6959
+ __decorate$2([
6960
+ globalSlimmerRegistry.MapToComponentField()
6961
+ ], LinkEditorController.prototype, "linkTypeConfigController", void 0);
6962
+ __decorate$2([
6963
+ globalSlimmerRegistry.MapToComponentField()
6964
+ ], LinkEditorController.prototype, "linkEditorStateManager", void 0);
6965
+ __decorate$2([
5595
6966
  globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
5596
- ], VegaRichTextLinkEditorRenderer.prototype, "componentDidLoad", null);
5597
- __decorate$1([
6967
+ ], LinkEditorController.prototype, "componentDidLoad", null);
6968
+ __decorate$2([
5598
6969
  globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
5599
- ], VegaRichTextLinkEditorRenderer.prototype, "componentDidRender", null);
5600
- __decorate$1([
6970
+ ], LinkEditorController.prototype, "componentDidRender", null);
6971
+ __decorate$2([
5601
6972
  globalSlimmerRegistry.MapToComponentMethod('watchStatusChange')
5602
- ], VegaRichTextLinkEditorRenderer.prototype, "watchStatusChange", null);
5603
- __decorate$1([
6973
+ ], LinkEditorController.prototype, "watchStatusChange", null);
6974
+ __decorate$2([
5604
6975
  globalSlimmerRegistry.MapToComponentMethod('watchTargetChange')
5605
- ], VegaRichTextLinkEditorRenderer.prototype, "watchTargetChange", null);
6976
+ ], LinkEditorController.prototype, "watchTargetChange", null);
6977
+
6978
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6979
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6980
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6981
+ 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;
6982
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6983
+ };
6984
+ /**
6985
+ * Resolves configured link types and their defaults.
6986
+ */
6987
+ class LinkTypeConfigController extends globalSlimmerRegistry.VegaSlimmer {
6988
+ constructor() {
6989
+ super(...arguments);
6990
+ this.configuredLinkTypesCache = null;
6991
+ this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
6992
+ }
6993
+ /**
6994
+ * Returns the configured link types, using a cache when available.
6995
+ *
6996
+ * @returns {VegaRTELinkType[]} The configured link types.
6997
+ */
6998
+ getConfiguredLinkTypes() {
6999
+ if (this.configuredLinkTypesCache) {
7000
+ return this.configuredLinkTypesCache;
7001
+ }
7002
+ const configuredLinkTypes = this.resolveConfiguredLinkTypes();
7003
+ this.configuredLinkTypesCache = configuredLinkTypes;
7004
+ return configuredLinkTypes;
7005
+ }
7006
+ /**
7007
+ * Clears the cached configured link types.
7008
+ *
7009
+ * @returns {void} No return value.
7010
+ */
7011
+ invalidateConfiguredLinkTypesCache() {
7012
+ this.configuredLinkTypesCache = null;
7013
+ }
7014
+ /**
7015
+ * Resolves the initial link type key for the current record.
7016
+ *
7017
+ * @param {string} recordLinkType - Link type from the active record.
7018
+ * @param {string} recordUrl - URL from the active record.
7019
+ * @returns {string} The resolved initial link type key.
7020
+ */
7021
+ resolveInitialLinkTypeKey(recordLinkType, recordUrl) {
7022
+ var _a;
7023
+ const configuredLinkTypes = this.getConfiguredLinkTypes();
7024
+ if (recordLinkType &&
7025
+ configuredLinkTypes.some((item) => item.key === recordLinkType)) {
7026
+ return recordLinkType;
7027
+ }
7028
+ const normalizedRecordUrl = (recordUrl || '').trim().toLowerCase();
7029
+ if (normalizedRecordUrl.startsWith('mailto:') &&
7030
+ configuredLinkTypes.some((item) => item.key === codeBlock.RTE_EMAIL_LINK_TYPE_KEY)) {
7031
+ return codeBlock.RTE_EMAIL_LINK_TYPE_KEY;
7032
+ }
7033
+ return ((_a = configuredLinkTypes[0]) === null || _a === void 0 ? void 0 : _a.key) || codeBlock.RTE_DEFAULT_LINK_TYPE_KEY;
7034
+ }
7035
+ /**
7036
+ * Returns whether any configured link types are available.
7037
+ *
7038
+ * @returns {boolean} True when configured link types exist.
7039
+ */
7040
+ hasConfiguredLinkTypes() {
7041
+ return this.getConfiguredLinkTypes().length > 0;
7042
+ }
7043
+ /**
7044
+ * Returns the default protocol for a given link type key.
7045
+ *
7046
+ * @param {string} selectedLinkTypeKey - Selected link type key.
7047
+ * @returns {string | undefined} The default protocol, if configured.
7048
+ */
7049
+ getDefaultProtocolForLinkType(selectedLinkTypeKey) {
7050
+ var _a;
7051
+ const linkConfig = this.getLinkConfig();
7052
+ const selectedLinkType = this.getConfiguredLinkTypes().find((item) => item.key === selectedLinkTypeKey);
7053
+ return (_a = selectedLinkType === null || selectedLinkType === void 0 ? void 0 : selectedLinkType.defaultProtocol) !== null && _a !== void 0 ? _a : linkConfig.defaultProtocol;
7054
+ }
7055
+ /**
7056
+ * Returns the active link configuration for the current editor host.
7057
+ *
7058
+ * @returns {VegaRTELinkExtensionConfig} The active link configuration.
7059
+ */
7060
+ getLinkConfig() {
7061
+ const rteHost = ui.findParent(this.host, 'vega-rich-text-editor');
7062
+ return linkExtension.VegaRTELinkExtension.configStore.get(rteHost) || {};
7063
+ }
7064
+ /**
7065
+ * Normalizes configured link types and filters unsupported entries.
7066
+ *
7067
+ * @returns {VegaRTELinkType[]} The normalized configured link types.
7068
+ */
7069
+ resolveConfiguredLinkTypes() {
7070
+ const linkConfig = this.getLinkConfig();
7071
+ const configLinkTypes = linkConfig.linkTypes || [];
7072
+ const normalizedByKey = new Map();
7073
+ configLinkTypes.forEach((item) => {
7074
+ const key = item.key.trim();
7075
+ if (!key || !LinkTypeConfigController.SUPPORTED_LINK_TYPE_KEYS.has(key)) {
7076
+ return;
7077
+ }
7078
+ if (!normalizedByKey.has(key)) {
7079
+ normalizedByKey.set(key, this.normalizeSupportedLinkType(item, key, linkConfig.defaultProtocol));
7080
+ }
7081
+ });
7082
+ if (normalizedByKey.size === 0) {
7083
+ return [];
7084
+ }
7085
+ if (normalizedByKey.has(codeBlock.RTE_EMAIL_LINK_TYPE_KEY)) {
7086
+ return [
7087
+ normalizedByKey.get(codeBlock.RTE_DEFAULT_LINK_TYPE_KEY) ||
7088
+ this.createDefaultUrlLinkType(linkConfig.defaultProtocol),
7089
+ normalizedByKey.get(codeBlock.RTE_EMAIL_LINK_TYPE_KEY),
7090
+ ];
7091
+ }
7092
+ return [
7093
+ normalizedByKey.get(codeBlock.RTE_DEFAULT_LINK_TYPE_KEY) ||
7094
+ this.createDefaultUrlLinkType(linkConfig.defaultProtocol),
7095
+ ];
7096
+ }
7097
+ /**
7098
+ * Creates the default URL link type descriptor.
7099
+ *
7100
+ * @param {string} configDefaultProtocol - Default protocol from config.
7101
+ * @returns {VegaRTELinkType} The default URL link type descriptor.
7102
+ */
7103
+ createDefaultUrlLinkType(configDefaultProtocol) {
7104
+ const normalizedConfigDefaultProtocol = (configDefaultProtocol || '').trim();
7105
+ return {
7106
+ key: codeBlock.RTE_DEFAULT_LINK_TYPE_KEY,
7107
+ label: this.translationSlimmer.t('URL'),
7108
+ defaultProtocol: normalizedConfigDefaultProtocol || undefined,
7109
+ };
7110
+ }
7111
+ /**
7112
+ * Normalizes a supported link type while preserving its key.
7113
+ *
7114
+ * @param {VegaRTELinkType} item - Raw configured link type.
7115
+ * @param {string} key - Normalized link type key.
7116
+ * @param {string} configDefaultProtocol - Default protocol from config.
7117
+ * @returns {VegaRTELinkType} The normalized link type descriptor.
7118
+ */
7119
+ normalizeSupportedLinkType(item, key, configDefaultProtocol) {
7120
+ var _a, _b;
7121
+ const normalizedItemDefaultProtocol = (item.defaultProtocol || '').trim();
7122
+ const normalizedConfigDefaultProtocol = (configDefaultProtocol || '').trim();
7123
+ const handler = this.linkTypeHandlers.get(key);
7124
+ const fallbackDefaultProtocol = (_a = handler === null || handler === void 0 ? void 0 : handler.defaultFallbackProtocol) !== null && _a !== void 0 ? _a : (normalizedConfigDefaultProtocol || undefined);
7125
+ return Object.assign(Object.assign({}, item), { key, label: ((_b = item.label) === null || _b === void 0 ? void 0 : _b.trim()) || this.getDefaultLinkTypeLabel(key), defaultProtocol: normalizedItemDefaultProtocol || fallbackDefaultProtocol });
7126
+ }
7127
+ /**
7128
+ * Returns the translated default label for a link type key.
7129
+ *
7130
+ * @param {string} key - Link type key.
7131
+ * @returns {string} The translated label for the link type.
7132
+ */
7133
+ getDefaultLinkTypeLabel(key) {
7134
+ return key === codeBlock.RTE_EMAIL_LINK_TYPE_KEY
7135
+ ? this.translationSlimmer.t('Email')
7136
+ : this.translationSlimmer.t('URL');
7137
+ }
7138
+ }
7139
+ LinkTypeConfigController.SUPPORTED_LINK_TYPE_KEYS = new Set(codeBlock.RTE_SUPPORTED_LINK_TYPE_KEYS);
7140
+ __decorate$1([
7141
+ globalSlimmerRegistry.MapToComponentField()
7142
+ ], LinkTypeConfigController.prototype, "host", void 0);
7143
+ __decorate$1([
7144
+ globalSlimmerRegistry.MapToComponentField()
7145
+ ], LinkTypeConfigController.prototype, "translationSlimmer", void 0);
7146
+
7147
+ /**
7148
+ * Stores link editor state across popover interactions.
7149
+ */
7150
+ class LinkEditorStateManager extends globalSlimmerRegistry.VegaSlimmer {
7151
+ constructor() {
7152
+ super(...arguments);
7153
+ this.isSubmitDisabled = true;
7154
+ this.selectedLinkTypeKey = codeBlock.RTE_DEFAULT_LINK_TYPE_KEY;
7155
+ this.shouldResetStatusOnNextShow = false;
7156
+ this.formValuesByType = new Map();
7157
+ this.sharedTextValue = '';
7158
+ }
7159
+ /**
7160
+ * Returns whether submit is currently disabled.
7161
+ *
7162
+ * @returns {boolean} True when submit is disabled.
7163
+ */
7164
+ getIsSubmitDisabled() {
7165
+ return this.isSubmitDisabled;
7166
+ }
7167
+ /**
7168
+ * Updates the submit disabled state.
7169
+ *
7170
+ * @param {boolean} isSubmitDisabled - Next disabled state.
7171
+ * @returns {void} No return value.
7172
+ */
7173
+ setSubmitDisabled(isSubmitDisabled) {
7174
+ this.isSubmitDisabled = isSubmitDisabled;
7175
+ }
7176
+ /**
7177
+ * Returns the selected link type key.
7178
+ *
7179
+ * @returns {string} The selected link type key.
7180
+ */
7181
+ getSelectedLinkTypeKey() {
7182
+ return this.selectedLinkTypeKey;
7183
+ }
7184
+ /**
7185
+ * Updates the selected link type key.
7186
+ *
7187
+ * @param {string} selectedLinkTypeKey - Next link type key.
7188
+ * @returns {void} No return value.
7189
+ */
7190
+ setSelectedLinkTypeKey(selectedLinkTypeKey) {
7191
+ this.selectedLinkTypeKey = selectedLinkTypeKey;
7192
+ }
7193
+ /**
7194
+ * Returns whether the status should reset on the next show.
7195
+ *
7196
+ * @returns {boolean} True when the next show should reset the status.
7197
+ */
7198
+ getShouldResetStatusOnNextShow() {
7199
+ return this.shouldResetStatusOnNextShow;
7200
+ }
7201
+ /**
7202
+ * Updates whether the status should reset on the next show.
7203
+ *
7204
+ * @param {boolean} shouldResetStatusOnNextShow - Next reset flag.
7205
+ * @returns {void} No return value.
7206
+ */
7207
+ setShouldResetStatusOnNextShow(shouldResetStatusOnNextShow) {
7208
+ this.shouldResetStatusOnNextShow = shouldResetStatusOnNextShow;
7209
+ }
7210
+ /**
7211
+ * Clears all cached form values.
7212
+ *
7213
+ * @returns {void} No return value.
7214
+ */
7215
+ clearFormValues() {
7216
+ this.formValuesByType.clear();
7217
+ this.sharedTextValue = '';
7218
+ }
7219
+ /**
7220
+ * Returns the text value shared across link types.
7221
+ *
7222
+ * @returns {string} Shared text value.
7223
+ */
7224
+ getSharedTextValue() {
7225
+ return this.sharedTextValue;
7226
+ }
7227
+ /**
7228
+ * Updates the text value shared across link types.
7229
+ *
7230
+ * @param {string} textValue - Next shared text value.
7231
+ * @returns {void} No return value.
7232
+ */
7233
+ setSharedTextValue(textValue) {
7234
+ this.sharedTextValue = textValue;
7235
+ }
7236
+ /**
7237
+ * Stores form values for a given link type key.
7238
+ *
7239
+ * @param {string} linkTypeKey - Link type cache key.
7240
+ * @param {Record<string, string>} formValues - Form values to cache.
7241
+ * @returns {void} No return value.
7242
+ */
7243
+ cacheFormValues(linkTypeKey, formValues) {
7244
+ this.formValuesByType.set(linkTypeKey, formValues);
7245
+ }
7246
+ /**
7247
+ * Returns cached form values for a given link type key.
7248
+ *
7249
+ * @param {string} linkTypeKey - Link type cache key.
7250
+ * @returns {Record<string, string> | undefined} The cached form values, if any.
7251
+ */
7252
+ getCachedFormValues(linkTypeKey) {
7253
+ return this.formValuesByType.get(linkTypeKey);
7254
+ }
7255
+ }
5606
7256
 
5607
7257
  const vegaRichTextLinkEditorCss = ":host{display:contents}:host vega-popover{display:inline}";
5608
7258
 
@@ -5625,6 +7275,9 @@ const VegaRichTextLinkEditor = class {
5625
7275
  this.translationSlimmer = new translationSlimmer.TranslationSlimmer();
5626
7276
  this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
5627
7277
  this.renderer = new VegaRichTextLinkEditorRenderer();
7278
+ this.linkEditorController = new LinkEditorController();
7279
+ this.linkTypeConfigController = new LinkTypeConfigController();
7280
+ this.linkEditorStateManager = new LinkEditorStateManager();
5628
7281
  this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor, vegaEventId.VegaChange);
5629
7282
  /**
5630
7283
  * Specifies the status of the link editor
@@ -5652,6 +7305,15 @@ const VegaRichTextLinkEditor = class {
5652
7305
  async show() {
5653
7306
  await this.renderer.getPopoverRef().show();
5654
7307
  }
7308
+ /**
7309
+ * Provide a method to hide the link editor popover
7310
+ *
7311
+ * @vegaVersion 2.97.0
7312
+ */
7313
+ async hide() {
7314
+ var _a;
7315
+ await ((_a = this.renderer.getPopoverRef()) === null || _a === void 0 ? void 0 : _a.hide());
7316
+ }
5655
7317
  render() {
5656
7318
  return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
5657
7319
  }
@@ -5673,6 +7335,15 @@ __decorate([
5673
7335
  __decorate([
5674
7336
  globalSlimmerRegistry.InjectVegaSlimmer()
5675
7337
  ], VegaRichTextLinkEditor.prototype, "renderer", void 0);
7338
+ __decorate([
7339
+ globalSlimmerRegistry.InjectVegaSlimmer()
7340
+ ], VegaRichTextLinkEditor.prototype, "linkEditorController", void 0);
7341
+ __decorate([
7342
+ globalSlimmerRegistry.InjectVegaSlimmer()
7343
+ ], VegaRichTextLinkEditor.prototype, "linkTypeConfigController", void 0);
7344
+ __decorate([
7345
+ globalSlimmerRegistry.InjectVegaSlimmer()
7346
+ ], VegaRichTextLinkEditor.prototype, "linkEditorStateManager", void 0);
5676
7347
  __decorate([
5677
7348
  globalSlimmerRegistry.InjectVegaSlimmer()
5678
7349
  ], VegaRichTextLinkEditor.prototype, "changeEventEmitter", void 0);