@globalpayments/vega 2.90.0 → 2.92.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 (617) hide show
  1. package/dist/cjs/{app-globals-08924736.js → app-globals-2f326662.js} +23 -12
  2. package/dist/cjs/{aria-dialog-focusable-trap-slimmer-a0ff1263.js → aria-dialog-focusable-trap-slimmer-73b4c0cb.js} +1 -1
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-85a7fdb0.js → child-nodes-event-prevent-slimmer-b9a5b3e2.js} +2 -2
  4. package/dist/cjs/{code-block-89850671.js → code-block-6435d641.js} +32 -3
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-a8da4087.js → component-value-history-controller-slimmer.abstract-e4c9a5ba.js} +59 -4
  6. package/dist/cjs/{content-state-e1c3efe6.js → content-state-96ec9114.js} +33 -4
  7. package/dist/cjs/copy-d021c780.js +7 -0
  8. package/dist/cjs/{create-public-api-runtime-metrics-slimmer-122350c3.js → create-public-api-runtime-metrics-slimmer-91b0cbfb.js} +3 -2
  9. package/dist/cjs/{date-required-rule-3437acbc.js → date-required-rule-8c9e312b.js} +1 -1
  10. package/dist/cjs/{design-token-939bf72c.js → design-token-3548af29.js} +4 -4
  11. package/dist/cjs/{element-appender-slimmer-14e85a91.js → element-appender-slimmer-3bf69990.js} +4 -4
  12. package/dist/cjs/{event-emit-slimmer-146316b2.js → event-emit-slimmer-5bab10c2.js} +1 -1
  13. package/dist/cjs/{feature-flag-controller-5fa21654.js → feature-flag-controller-c19d0b58.js} +12 -0
  14. package/dist/cjs/{file-uploader-required-rule-313ec9e3.js → file-uploader-required-rule-5520bbec.js} +1 -1
  15. package/dist/cjs/{form-field-controller-slimmer-c4ebee27.js → form-field-controller-slimmer-e0efac05.js} +3 -3
  16. package/dist/cjs/{icon-manager-e855446d.js → icon-manager-be358b32.js} +2 -2
  17. package/dist/cjs/{image-annotation-action-f86690fd.js → image-annotation-action-853f72c8.js} +4 -4
  18. package/dist/cjs/index-58ea899e.js +8 -4
  19. package/dist/cjs/index.cjs.js +34 -27
  20. package/dist/cjs/{inject-keyboard-manager-743de047.js → inject-keyboard-manager-0dccff1a.js} +1 -1
  21. package/dist/cjs/internal-calendar-period-factory-6187ec4c.js +78 -0
  22. package/dist/cjs/{internal-icon-manager-66c48800.js → internal-icon-manager-40bcac72.js} +1 -1
  23. package/dist/cjs/{internal-translation-controller-9785d4e8.js → internal-translation-controller-48ebfd0f.js} +19 -0
  24. package/dist/cjs/{internal-vega-event-manager-6e49d1ca.js → internal-vega-event-manager-7196a847.js} +3 -1
  25. package/dist/cjs/{keyboard-manager-5396083a.js → keyboard-manager-dfe8d924.js} +1 -1
  26. package/dist/cjs/{keyboard-manager-slimmer-eedcfbc8.js → keyboard-manager-slimmer-4a2560a1.js} +1 -1
  27. package/dist/cjs/{legend-input-processor-1e53e5bc.js → legend-input-processor-ce9b38f8.js} +1 -1
  28. package/dist/cjs/{link-extension-dafeeed0.js → link-extension-28d95849.js} +3 -3
  29. package/dist/cjs/loader.cjs.js +22 -20
  30. package/dist/cjs/month-view-generator-2e59b188.js +33 -0
  31. package/dist/cjs/{public-rules-b032050f.js → public-rules-8727c42c.js} +13 -11
  32. package/dist/cjs/{range-efdf6f78.js → range-5cb3d1e4.js} +25 -3
  33. package/dist/cjs/{replace-selected-text-action-0f7b7c78.js → replace-selected-text-action-a31563ed.js} +1 -1
  34. package/dist/cjs/{required-field-rule-d73c1d8c.js → required-field-rule-400690c3.js} +10 -1
  35. package/dist/cjs/{responsive-format-facade-d112aa9f.js → responsive-format-facade-98b89142.js} +2 -2
  36. package/dist/cjs/{rich-text-editor-required-rule-86d9cd4d.js → rich-text-editor-required-rule-8e4d577d.js} +1 -1
  37. package/dist/cjs/{split-cell-operation-b41344bd.js → split-cell-operation-9e3ab88d.js} +5 -5
  38. package/dist/cjs/{state-border-formatter-c3c9b90d.js → state-border-formatter-626b0a14.js} +1 -1
  39. package/dist/cjs/{string-format-strategy.abstract-d51050cd.js → string-format-strategy.abstract-981f43e1.js} +1 -1
  40. package/dist/cjs/{string-input-formatter-slimmer-23fdb50e.js → string-input-formatter-slimmer-fc4a0ba5.js} +3 -3
  41. package/dist/cjs/{string-mask-strategy-10fe0f6d.js → string-mask-strategy-b47fa159.js} +2 -2
  42. package/dist/cjs/{style-formatter-11c95331.js → style-formatter-baf18624.js} +2 -2
  43. package/dist/cjs/{sub-state-notify-slimmer-450277b6.js → sub-state-notify-slimmer-18891389.js} +1 -1
  44. package/dist/cjs/{sub-state-observer-slimmer-5bfe8e97.js → sub-state-observer-slimmer-eee2f0ae.js} +1 -1
  45. package/dist/cjs/{time-required-rule-2fd7c828.js → time-required-rule-e77d174f.js} +1 -1
  46. package/dist/cjs/{token-extension-2e3e1631.js → token-extension-3aec039f.js} +1826 -211
  47. package/dist/cjs/{translation-slimmer-e8549aff.js → translation-slimmer-1e05769e.js} +1 -1
  48. package/dist/cjs/{type-guard-9917b11f.js → type-guard-7ab48d6c.js} +119 -4
  49. package/dist/cjs/{typography-4560e7f1.js → typography-3ea4fe41.js} +10 -10
  50. package/dist/cjs/{valid-credit-card-number-rule-8c541bcd.js → valid-credit-card-number-rule-52ba9c67.js} +1 -1
  51. package/dist/cjs/vega-accordion.cjs.entry.js +25 -17
  52. package/dist/cjs/vega-app-footer.cjs.entry.js +61 -7
  53. package/dist/cjs/vega-app-header-button.cjs.entry.js +14 -14
  54. package/dist/cjs/vega-banner.cjs.entry.js +9 -12
  55. package/dist/cjs/vega-bar-chart.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-box.cjs.entry.js +8 -8
  57. package/dist/cjs/vega-brand-logo.cjs.entry.js +3 -3
  58. package/dist/cjs/vega-breadcrumb.cjs.entry.js +5 -5
  59. package/dist/cjs/vega-button-circle.cjs.entry.js +12 -12
  60. package/dist/cjs/vega-button-group_2.cjs.entry.js +8 -8
  61. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-button.cjs.entry.js +10 -10
  63. package/dist/cjs/{vega-calendar_4.cjs.entry.js → vega-calendar_5.cjs.entry.js} +669 -398
  64. package/dist/cjs/vega-card.cjs.entry.js +7 -7
  65. package/dist/cjs/vega-carousel.cjs.entry.js +8 -8
  66. package/dist/cjs/vega-checkbox_2.cjs.entry.js +10 -10
  67. package/dist/cjs/vega-chip.cjs.entry.js +11 -11
  68. package/dist/cjs/vega-code-block.cjs.entry.js +20 -23
  69. package/dist/cjs/vega-color-picker.cjs.entry.js +10 -8
  70. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +15 -15
  71. package/dist/cjs/vega-color-swatch.cjs.entry.js +5 -5
  72. package/dist/cjs/vega-combo-box.cjs.entry.js +18 -18
  73. package/dist/cjs/vega-date-picker_2.cjs.entry.js +26 -26
  74. package/dist/cjs/{vega-dialog-controller-6df7825e.js → vega-dialog-controller-16be85d5.js} +2 -2
  75. package/dist/cjs/vega-dialog_2.cjs.entry.js +11 -11
  76. package/dist/cjs/vega-divider.cjs.entry.js +7 -7
  77. package/dist/cjs/vega-dropdown_5.cjs.entry.js +17 -17
  78. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  79. package/dist/cjs/{vega-event-id-37c1716f.js → vega-event-id-df22d80e.js} +2 -0
  80. package/dist/cjs/vega-field-label.cjs.entry.js +16 -12
  81. package/dist/cjs/vega-file-uploader.cjs.entry.js +15 -13
  82. package/dist/cjs/vega-flag-icon.cjs.entry.js +10 -10
  83. package/dist/cjs/vega-flex.cjs.entry.js +8 -8
  84. package/dist/cjs/vega-font.cjs.entry.js +14 -8
  85. package/dist/cjs/vega-form.cjs.entry.js +12 -12
  86. package/dist/cjs/vega-grid.cjs.entry.js +7 -7
  87. package/dist/cjs/vega-icon.cjs.entry.js +9 -9
  88. package/dist/cjs/vega-image-uploader.cjs.entry.js +17 -17
  89. package/dist/cjs/vega-input-credit-card.cjs.entry.js +18 -18
  90. package/dist/cjs/vega-input-numeric.cjs.entry.js +15 -15
  91. package/dist/cjs/vega-input-passcode.cjs.entry.js +14 -14
  92. package/dist/cjs/vega-input-phone-number.cjs.entry.js +15 -15
  93. package/dist/cjs/vega-input-range.cjs.entry.js +10 -10
  94. package/dist/cjs/vega-input-select.cjs.entry.js +19 -27
  95. package/dist/cjs/vega-input.cjs.entry.js +20 -18
  96. package/dist/cjs/{vega-internal-event-id-e138d4d6.js → vega-internal-event-id-ecc5b87a.js} +2 -0
  97. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  98. package/dist/cjs/vega-left-nav_5.cjs.entry.js +18 -18
  99. package/dist/cjs/vega-line-chart.cjs.entry.js +3 -3
  100. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +5 -5
  101. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  102. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +5 -5
  103. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +4 -4
  104. package/dist/cjs/vega-pagination.cjs.entry.js +11 -11
  105. package/dist/cjs/vega-pie-chart.cjs.entry.js +2 -2
  106. package/dist/cjs/vega-popover_2.cjs.entry.js +15 -15
  107. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +11 -11
  108. package/dist/cjs/vega-radio_2.cjs.entry.js +15 -15
  109. package/dist/cjs/vega-rich-text-content.cjs.entry.js +15 -15
  110. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +243 -69
  111. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +233 -0
  112. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +9 -9
  113. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +18 -18
  114. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  115. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +14 -14
  116. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +11 -11
  117. package/dist/cjs/vega-sidenav_3.cjs.entry.js +14 -14
  118. package/dist/cjs/vega-signature-capture.cjs.entry.js +18 -18
  119. package/dist/cjs/vega-stepper.cjs.entry.js +9 -9
  120. package/dist/cjs/vega-tab-group_2.cjs.entry.js +5 -5
  121. package/dist/cjs/vega-table_11.cjs.entry.js +16 -16
  122. package/dist/cjs/vega-textarea.cjs.entry.js +11 -11
  123. package/dist/cjs/vega-time-picker_2.cjs.entry.js +17 -17
  124. package/dist/cjs/vega-toggle-switch.cjs.entry.js +7 -7
  125. package/dist/cjs/vega-tooltip_2.cjs.entry.js +9 -9
  126. package/dist/cjs/vega.cjs.js +22 -20
  127. package/dist/cjs/{wait-for-component-did-render-762084fc.js → wait-for-component-did-render-02ca4bee.js} +1 -1
  128. package/dist/cjs/xmark-large-faae5a80.js +7 -0
  129. package/dist/cjs/{y-axis-input-processor-54a26515.js → y-axis-input-processor-d3a3839c.js} +1 -1
  130. package/dist/collection/collection-manifest.json +16 -8
  131. package/dist/collection/components/vega-accordion/slimmers/vega-accordion-renderer.js +11 -3
  132. package/dist/collection/components/vega-app-footer/slimmers/renderers/vega-app-footer-additional-links-renderer.js +45 -0
  133. package/dist/collection/components/vega-app-footer/vega-app-footer.js +63 -12
  134. package/dist/collection/components/vega-box/vega-box.js +3 -3
  135. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +21 -24
  136. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.js +13 -79
  137. package/dist/collection/components/vega-calendar/vega-calendar-period-switcher/slimmers/controllers/vega-calendar-period-current-period-controller.js +153 -0
  138. package/dist/collection/components/vega-calendar/vega-calendar-period-switcher/slimmers/controllers/vega-calendar-period-state-controller.js +32 -0
  139. package/dist/collection/components/vega-calendar/vega-calendar-period-switcher/slimmers/renderers/vega-calendar-period-renderer.js +55 -0
  140. package/dist/collection/components/vega-calendar/vega-calendar-period-switcher/vega-calendar-period-switcher.css +20 -0
  141. package/dist/collection/components/vega-calendar/vega-calendar-period-switcher/vega-calendar-period-switcher.js +309 -0
  142. package/dist/collection/components/vega-calendar/vega-calendar.css +0 -9
  143. package/dist/collection/components/vega-calendar/vega-calendar.js +73 -1
  144. package/dist/collection/components/vega-code-block/slimmers/renderers/vega-code-block-copy-button-renderer.js +1 -1
  145. package/dist/collection/components/vega-combo-box/vega-combo-box.js +1 -1
  146. package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.js +5 -4
  147. package/dist/collection/components/vega-field-label/vega-field-label.css +20 -0
  148. package/dist/collection/components/vega-field-label/vega-field-label.js +6 -3
  149. package/dist/collection/components/vega-font/slimmers/controllers/vega-font-classes-controller.js +7 -0
  150. package/dist/collection/components/vega-font/vega-font.css +72 -10
  151. package/dist/collection/components/vega-input/vega-input.css +1 -0
  152. package/dist/collection/components/vega-input/vega-input.js +1 -1
  153. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +1 -9
  154. package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
  155. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.css +3 -1
  156. package/dist/collection/components/vega-rich-text-editor/assets/cut.js +3 -0
  157. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +5 -0
  158. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +16 -1
  159. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.js +25 -0
  160. package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/delete-selected-content-strategy.js +16 -0
  161. package/dist/collection/components/vega-rich-text-editor/dto/actions/delete-selected-content-action.js +17 -0
  162. package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
  163. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +2 -0
  164. package/dist/collection/components/vega-rich-text-editor/dto/range.js +24 -2
  165. package/dist/collection/components/vega-rich-text-editor/extensions/copy/action-handler-strategies/copy-selected-content-strategy.js +226 -0
  166. package/dist/collection/components/vega-rich-text-editor/extensions/copy/actions/copy-selected-content-action.js +21 -0
  167. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-extension.js +20 -0
  168. package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +58 -0
  169. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-extension.js +15 -0
  170. package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +44 -0
  171. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/assets/find-and-replace.js +3 -0
  172. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/find-replace-extension.js +18 -0
  173. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-controller.js +105 -0
  174. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-replace-controller.abstract.js +68 -0
  175. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/block-search-strategy.abstract.js +8 -0
  176. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/code-block-search-strategy.js +19 -0
  177. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/container-block-search-strategy.js +23 -0
  178. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/list-item-block-search-strategy.js +30 -0
  179. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/text-block-search-strategy.js +20 -0
  180. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.js +266 -0
  181. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-state.js +346 -0
  182. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/replace-controller.js +113 -0
  183. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +194 -0
  184. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.js +153 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.css +50 -0
  186. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.js +156 -0
  187. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +2 -1
  188. package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/horizontal-line-extension.js +2 -1
  189. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +2 -1
  190. package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-extension.js +2 -1
  191. package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-extension.js +2 -1
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +2 -1
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-selection-widget/slimmers/controllers/selection-widget-keyboard-controller.js +1 -1
  194. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +2 -1
  195. package/dist/collection/components/vega-rich-text-editor/public-api.js +4 -0
  196. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.js +133 -0
  197. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/backward-delete-content-handler.js +35 -0
  198. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/forward-delete-content-handler.js +93 -0
  199. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +55 -0
  200. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +9 -3
  201. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +10 -1
  202. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.css +2 -2
  203. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +3 -10
  204. package/dist/collection/components/vega-textarea/vega-textarea.js +1 -1
  205. package/dist/collection/constants/tokens/typography.js +10 -10
  206. package/dist/collection/constants/ui.js +1 -0
  207. package/dist/collection/global/scripts/before-vega-load.js +14 -0
  208. package/dist/collection/helpers/calendar/calendar-period/day-period.js +9 -0
  209. package/dist/collection/helpers/calendar/calendar-period/internal-calendar-period-factory.js +76 -0
  210. package/dist/collection/helpers/calendar/calendar-period/month-period.js +9 -0
  211. package/dist/collection/helpers/calendar/calendar-period/vega-calendar-period-factory.js +19 -0
  212. package/dist/collection/helpers/calendar/calendar-period/week-period.js +14 -0
  213. package/dist/collection/helpers/calendar/index.js +1 -0
  214. package/dist/collection/helpers/common/wait-for-vega-handler.js +1 -1
  215. package/dist/collection/helpers/dialog/vega-dialog-controller.js +1 -1
  216. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +3 -1
  217. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  218. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
  219. package/dist/collection/helpers/event-manager/vega-event-manager.js +1 -1
  220. package/dist/collection/helpers/feature-control/feature-flags-map.js +12 -0
  221. package/dist/collection/helpers/icon/icon-manager.js +1 -1
  222. package/dist/collection/helpers/loading-indicator/vega-loader-controller.js +1 -1
  223. package/dist/collection/helpers/notify/vega-notify-controller.js +1 -1
  224. package/dist/collection/helpers/public-api.js +1 -0
  225. package/dist/collection/helpers/skeleton-loader/vega-skeleton-loader-controller.js +1 -1
  226. package/dist/collection/helpers/slimmers/runtime-metrics/create-public-api-runtime-metrics-slimmer.js +3 -2
  227. package/dist/collection/helpers/theme/theme-manager.js +1 -1
  228. package/dist/collection/helpers/translation/locales/en.js +19 -0
  229. package/dist/collection/helpers/translation/translation.js +1 -1
  230. package/dist/collection/helpers/validator/rules/required-field-rule.js +10 -1
  231. package/dist/collection/helpers/zindex/vega-z-index-manager.js +1 -1
  232. package/dist/esm/{app-globals-a4134d21.js → app-globals-5e0d319a.js} +23 -12
  233. package/dist/esm/{aria-dialog-focusable-trap-slimmer-7db3d5a7.js → aria-dialog-focusable-trap-slimmer-9eae86c6.js} +1 -1
  234. package/dist/esm/{child-nodes-event-prevent-slimmer-1e3ac106.js → child-nodes-event-prevent-slimmer-f24618c5.js} +2 -2
  235. package/dist/esm/{code-block-9a17d89b.js → code-block-b71b2aa4.js} +32 -4
  236. package/dist/esm/{component-value-history-controller-slimmer.abstract-a64c3678.js → component-value-history-controller-slimmer.abstract-282df6e5.js} +59 -4
  237. package/dist/esm/{content-state-d59b4560.js → content-state-909099f8.js} +33 -4
  238. package/dist/esm/copy-54e45e2d.js +5 -0
  239. package/dist/esm/{create-public-api-runtime-metrics-slimmer-da6615bf.js → create-public-api-runtime-metrics-slimmer-48f85199.js} +3 -2
  240. package/dist/esm/{date-required-rule-cb960229.js → date-required-rule-15edb04a.js} +1 -1
  241. package/dist/esm/{design-token-f73ebce9.js → design-token-cb5ed6b9.js} +4 -4
  242. package/dist/esm/{element-appender-slimmer-c62cf540.js → element-appender-slimmer-e41120ee.js} +4 -4
  243. package/dist/esm/{event-emit-slimmer-3eb4d8ad.js → event-emit-slimmer-03deba18.js} +1 -1
  244. package/dist/esm/{feature-flag-controller-5ebc0cec.js → feature-flag-controller-3fd04ea9.js} +12 -0
  245. package/dist/esm/{file-uploader-required-rule-ad886d01.js → file-uploader-required-rule-96952e1a.js} +1 -1
  246. package/dist/esm/{form-field-controller-slimmer-514a3195.js → form-field-controller-slimmer-cfe1d8a7.js} +3 -3
  247. package/dist/esm/{icon-manager-691c8682.js → icon-manager-4ef3f6dd.js} +2 -2
  248. package/dist/esm/{image-annotation-action-f4ea265c.js → image-annotation-action-98232dc4.js} +4 -4
  249. package/dist/esm/index-090d31ca.js +8 -4
  250. package/dist/esm/index.js +29 -27
  251. package/dist/esm/{inject-keyboard-manager-6522df5c.js → inject-keyboard-manager-13cc77ab.js} +1 -1
  252. package/dist/esm/internal-calendar-period-factory-c3d70f3b.js +76 -0
  253. package/dist/esm/{internal-icon-manager-276f968f.js → internal-icon-manager-e7c57096.js} +1 -1
  254. package/dist/esm/{internal-translation-controller-653bd7e3.js → internal-translation-controller-8e8a514a.js} +19 -0
  255. package/dist/esm/{internal-vega-event-manager-a9758b6e.js → internal-vega-event-manager-75e5e3bb.js} +3 -1
  256. package/dist/esm/{keyboard-manager-9615fa9b.js → keyboard-manager-fe885db1.js} +1 -1
  257. package/dist/esm/{keyboard-manager-slimmer-21bdc3a4.js → keyboard-manager-slimmer-61d4c79b.js} +1 -1
  258. package/dist/esm/{legend-input-processor-122008c5.js → legend-input-processor-3b2de4b7.js} +1 -1
  259. package/dist/esm/{link-extension-be164793.js → link-extension-f1a3bea7.js} +3 -3
  260. package/dist/esm/loader.js +22 -20
  261. package/dist/esm/month-view-generator-85eecb95.js +31 -0
  262. package/dist/esm/{public-rules-58f31834.js → public-rules-323bea4b.js} +13 -11
  263. package/dist/esm/{range-1c1c20fa.js → range-e63068d1.js} +25 -3
  264. package/dist/esm/{replace-selected-text-action-1abc5200.js → replace-selected-text-action-c0817b2b.js} +1 -1
  265. package/dist/esm/{required-field-rule-ab4bdc47.js → required-field-rule-897fe8d1.js} +10 -1
  266. package/dist/esm/{responsive-format-facade-12697af2.js → responsive-format-facade-fb424f5b.js} +2 -2
  267. package/dist/esm/{rich-text-editor-required-rule-050d292b.js → rich-text-editor-required-rule-0edb8ba7.js} +1 -1
  268. package/dist/esm/{split-cell-operation-8251d2a1.js → split-cell-operation-93b4d775.js} +5 -5
  269. package/dist/esm/{state-border-formatter-55cee24d.js → state-border-formatter-1a528ca4.js} +1 -1
  270. package/dist/esm/{string-format-strategy.abstract-14c1e874.js → string-format-strategy.abstract-72fc98aa.js} +1 -1
  271. package/dist/esm/{string-input-formatter-slimmer-ec297247.js → string-input-formatter-slimmer-b0c480d8.js} +3 -3
  272. package/dist/esm/{string-mask-strategy-18760123.js → string-mask-strategy-4e00c173.js} +2 -2
  273. package/dist/esm/{style-formatter-6073ae27.js → style-formatter-5c1bea8d.js} +2 -2
  274. package/dist/esm/{sub-state-notify-slimmer-d5a21bb3.js → sub-state-notify-slimmer-0f72ce74.js} +1 -1
  275. package/dist/esm/{sub-state-observer-slimmer-d924288a.js → sub-state-observer-slimmer-64532d94.js} +1 -1
  276. package/dist/esm/{time-required-rule-9b775d24.js → time-required-rule-df500b14.js} +1 -1
  277. package/dist/esm/{token-extension-6cb7dcb2.js → token-extension-32d1fa56.js} +1823 -213
  278. package/dist/esm/{translation-slimmer-d32eb861.js → translation-slimmer-60408f13.js} +1 -1
  279. package/dist/esm/{type-guard-fd1f4760.js → type-guard-91087018.js} +117 -3
  280. package/dist/esm/{typography-396de03f.js → typography-19c3b9be.js} +10 -10
  281. package/dist/esm/{valid-credit-card-number-rule-dfd3e0a6.js → valid-credit-card-number-rule-681ecb75.js} +1 -1
  282. package/dist/esm/vega-accordion.entry.js +25 -17
  283. package/dist/esm/vega-app-footer.entry.js +63 -9
  284. package/dist/esm/vega-app-header-button.entry.js +14 -14
  285. package/dist/esm/vega-banner.entry.js +8 -11
  286. package/dist/esm/vega-bar-chart.entry.js +3 -3
  287. package/dist/esm/vega-box.entry.js +8 -8
  288. package/dist/esm/vega-brand-logo.entry.js +3 -3
  289. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  290. package/dist/esm/vega-button-circle.entry.js +12 -12
  291. package/dist/esm/vega-button-group_2.entry.js +8 -8
  292. package/dist/esm/vega-button-link.entry.js +5 -5
  293. package/dist/esm/vega-button.entry.js +10 -10
  294. package/dist/esm/{vega-calendar_4.entry.js → vega-calendar_5.entry.js} +666 -396
  295. package/dist/esm/vega-card.entry.js +7 -7
  296. package/dist/esm/vega-carousel.entry.js +8 -8
  297. package/dist/esm/vega-checkbox_2.entry.js +10 -10
  298. package/dist/esm/vega-chip.entry.js +11 -11
  299. package/dist/esm/vega-code-block.entry.js +19 -22
  300. package/dist/esm/vega-color-picker.entry.js +10 -8
  301. package/dist/esm/vega-color-swatch-picker.entry.js +15 -15
  302. package/dist/esm/vega-color-swatch.entry.js +5 -5
  303. package/dist/esm/vega-combo-box.entry.js +18 -18
  304. package/dist/esm/vega-date-picker_2.entry.js +26 -26
  305. package/dist/esm/{vega-dialog-controller-389e7f7c.js → vega-dialog-controller-726b74f9.js} +2 -2
  306. package/dist/esm/vega-dialog_2.entry.js +11 -11
  307. package/dist/esm/vega-divider.entry.js +7 -7
  308. package/dist/esm/vega-dropdown_5.entry.js +17 -17
  309. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  310. package/dist/esm/{vega-event-id-92848bf5.js → vega-event-id-d3017041.js} +2 -1
  311. package/dist/esm/vega-field-label.entry.js +16 -12
  312. package/dist/esm/vega-file-uploader.entry.js +15 -13
  313. package/dist/esm/vega-flag-icon.entry.js +10 -10
  314. package/dist/esm/vega-flex.entry.js +8 -8
  315. package/dist/esm/vega-font.entry.js +14 -8
  316. package/dist/esm/vega-form.entry.js +12 -12
  317. package/dist/esm/vega-grid.entry.js +7 -7
  318. package/dist/esm/vega-icon.entry.js +9 -9
  319. package/dist/esm/vega-image-uploader.entry.js +17 -17
  320. package/dist/esm/vega-input-credit-card.entry.js +18 -18
  321. package/dist/esm/vega-input-numeric.entry.js +15 -15
  322. package/dist/esm/vega-input-passcode.entry.js +14 -14
  323. package/dist/esm/vega-input-phone-number.entry.js +15 -15
  324. package/dist/esm/vega-input-range.entry.js +10 -10
  325. package/dist/esm/vega-input-select.entry.js +19 -27
  326. package/dist/esm/vega-input.entry.js +20 -18
  327. package/dist/esm/{vega-internal-event-id-913e8be6.js → vega-internal-event-id-827eb1ce.js} +2 -1
  328. package/dist/esm/vega-item-toggle.entry.js +3 -3
  329. package/dist/esm/vega-left-nav_5.entry.js +18 -18
  330. package/dist/esm/vega-line-chart.entry.js +3 -3
  331. package/dist/esm/vega-loader-wrapper_2.entry.js +5 -5
  332. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  333. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +5 -5
  334. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
  335. package/dist/esm/vega-pagination.entry.js +11 -11
  336. package/dist/esm/vega-pie-chart.entry.js +2 -2
  337. package/dist/esm/vega-popover_2.entry.js +15 -15
  338. package/dist/esm/vega-progress-tracker_2.entry.js +11 -11
  339. package/dist/esm/vega-radio_2.entry.js +15 -15
  340. package/dist/esm/vega-rich-text-content.entry.js +15 -15
  341. package/dist/esm/vega-rich-text-editor_4.entry.js +243 -69
  342. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +229 -0
  343. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +9 -9
  344. package/dist/esm/vega-rich-text-table-properties_3.entry.js +18 -18
  345. package/dist/esm/vega-segment-control.entry.js +3 -3
  346. package/dist/esm/vega-selection-chip_2.entry.js +14 -14
  347. package/dist/esm/vega-selection-tile_2.entry.js +11 -11
  348. package/dist/esm/vega-sidenav_3.entry.js +14 -14
  349. package/dist/esm/vega-signature-capture.entry.js +18 -18
  350. package/dist/esm/vega-stepper.entry.js +9 -9
  351. package/dist/esm/vega-tab-group_2.entry.js +5 -5
  352. package/dist/esm/vega-table_11.entry.js +16 -16
  353. package/dist/esm/vega-textarea.entry.js +11 -11
  354. package/dist/esm/vega-time-picker_2.entry.js +17 -17
  355. package/dist/esm/vega-toggle-switch.entry.js +7 -7
  356. package/dist/esm/vega-tooltip_2.entry.js +9 -9
  357. package/dist/esm/vega.js +22 -20
  358. package/dist/esm/{wait-for-component-did-render-b378bf16.js → wait-for-component-did-render-0c237cb8.js} +1 -1
  359. package/dist/esm/xmark-large-c5ae7944.js +5 -0
  360. package/dist/esm/{y-axis-input-processor-c7e05353.js → y-axis-input-processor-c6b2a914.js} +1 -1
  361. package/dist/sri/vega-sri-manifest.json +420 -404
  362. package/dist/types/components/vega-accordion/slimmers/vega-accordion-renderer.d.ts +2 -0
  363. package/dist/types/components/vega-app-footer/slimmers/renderers/vega-app-footer-additional-links-renderer.d.ts +13 -0
  364. package/dist/types/components/vega-app-footer/vega-app-footer.d.ts +18 -1
  365. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +11 -6
  366. package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.d.ts +2 -29
  367. package/dist/types/components/vega-calendar/types.d.ts +7 -1
  368. package/dist/types/components/vega-calendar/vega-calendar-period-switcher/slimmers/controllers/vega-calendar-period-current-period-controller.d.ts +63 -0
  369. package/dist/types/components/vega-calendar/vega-calendar-period-switcher/slimmers/controllers/vega-calendar-period-state-controller.d.ts +10 -0
  370. package/dist/types/components/vega-calendar/vega-calendar-period-switcher/slimmers/renderers/vega-calendar-period-renderer.d.ts +11 -0
  371. package/dist/types/components/vega-calendar/vega-calendar-period-switcher/vega-calendar-period-switcher.d.ts +82 -0
  372. package/dist/types/components/vega-calendar/vega-calendar.d.ts +15 -1
  373. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +2 -10
  374. package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.d.ts +1 -0
  375. package/dist/types/components/vega-field-label/types.d.ts +12 -0
  376. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +0 -1
  377. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +5 -0
  378. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy.d.ts +9 -0
  379. package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/delete-selected-content-strategy.d.ts +13 -0
  380. package/dist/types/components/vega-rich-text-editor/dto/actions/delete-selected-content-action.d.ts +12 -0
  381. package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
  382. package/dist/types/components/vega-rich-text-editor/dto/range.d.ts +16 -0
  383. package/dist/types/components/vega-rich-text-editor/extensions/copy/action-handler-strategies/copy-selected-content-strategy.d.ts +79 -0
  384. package/dist/types/components/vega-rich-text-editor/extensions/copy/actions/copy-selected-content-action.d.ts +18 -0
  385. package/dist/types/components/vega-rich-text-editor/extensions/copy/copy-extension.d.ts +10 -0
  386. package/dist/types/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.d.ts +36 -0
  387. package/dist/types/components/vega-rich-text-editor/extensions/cut/cut-extension.d.ts +11 -0
  388. package/dist/types/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.d.ts +24 -0
  389. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/assets/find-and-replace.d.ts +3 -0
  390. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/find-replace-extension.d.ts +15 -0
  391. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-controller.d.ts +65 -0
  392. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/find-replace-controller.abstract.d.ts +65 -0
  393. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/block-search-strategy.abstract.d.ts +29 -0
  394. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/code-block-search-strategy.d.ts +17 -0
  395. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/container-block-search-strategy.d.ts +21 -0
  396. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/list-item-block-search-strategy.d.ts +21 -0
  397. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/block-search-strategies/text-block-search-strategy.d.ts +18 -0
  398. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.d.ts +88 -0
  399. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-state.d.ts +200 -0
  400. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/replace-controller.d.ts +73 -0
  401. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +64 -0
  402. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.d.ts +28 -0
  403. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/vega-rich-text-find-replace-panel.d.ts +56 -0
  404. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +1 -0
  405. package/dist/types/components/vega-rich-text-editor/extensions/horizontal-line/horizontal-line-extension.d.ts +1 -0
  406. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +1 -0
  407. package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-extension.d.ts +1 -0
  408. package/dist/types/components/vega-rich-text-editor/extensions/special-characters/special-characters-extension.d.ts +1 -0
  409. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +1 -0
  410. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -0
  411. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +4 -0
  412. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.d.ts +60 -0
  413. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/backward-delete-content-handler.d.ts +8 -0
  414. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/forward-delete-content-handler.d.ts +8 -0
  415. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +22 -0
  416. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.d.ts +2 -1
  417. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +5 -2
  418. package/dist/types/components.d.ts +133 -6
  419. package/dist/types/constants/ui.d.ts +1 -1
  420. package/dist/types/global/icons/copy.d.ts +3 -0
  421. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +6 -0
  422. package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +4 -0
  423. package/dist/types/helpers/calendar/calendar-period/internal-calendar-period-factory.d.ts +33 -0
  424. package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +4 -0
  425. package/dist/types/helpers/calendar/calendar-period/vega-calendar-period-factory.d.ts +16 -0
  426. package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +5 -0
  427. package/dist/types/helpers/calendar/index.d.ts +1 -0
  428. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  429. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
  430. package/dist/types/helpers/feature-control/feature-flag.d.ts +3 -1
  431. package/dist/types/helpers/public-api.d.ts +1 -0
  432. package/dist/types/helpers/slimmers/runtime-metrics/create-public-api-runtime-metrics-slimmer.d.ts +2 -1
  433. package/dist/types/helpers/translation/interface.d.ts +20 -1
  434. package/dist/types/types/components.type.d.ts +1 -0
  435. package/dist/types/types/ui.type.d.ts +1 -1
  436. package/dist/vega/index.esm.js +1 -1
  437. package/dist/vega/{p-fcefb62c.js → p-0179f55d.js} +1 -1
  438. package/dist/vega/{p-44f81987.entry.js → p-06c2ce2c.entry.js} +1 -1
  439. package/dist/vega/{p-0cc4a052.entry.js → p-07b56f2b.entry.js} +1 -1
  440. package/dist/vega/{p-881622fd.js → p-136226f8.js} +1 -1
  441. package/dist/vega/{p-fe573f85.entry.js → p-18413b62.entry.js} +1 -1
  442. package/dist/vega/p-209e0166.js +1 -0
  443. package/dist/vega/{p-97e7da55.js → p-228c5de8.js} +1 -1
  444. package/dist/vega/{p-02492864.entry.js → p-22f73e6e.entry.js} +1 -1
  445. package/dist/vega/p-2314494a.entry.js +1 -0
  446. package/dist/vega/p-2353b64f.entry.js +1 -0
  447. package/dist/vega/p-29e3eb12.js +1 -0
  448. package/dist/vega/{p-d76cb9da.entry.js → p-2da12975.entry.js} +1 -1
  449. package/dist/vega/{p-b7c90543.js → p-2def8e3e.js} +1 -1
  450. package/dist/vega/{p-f9ae396b.entry.js → p-2e58d99e.entry.js} +1 -1
  451. package/dist/vega/{p-600f0316.entry.js → p-30561e1d.entry.js} +1 -1
  452. package/dist/vega/p-35df0f0a.entry.js +1 -0
  453. package/dist/vega/p-37dffdf6.entry.js +1 -0
  454. package/dist/vega/{p-740f3325.entry.js → p-3911e760.entry.js} +1 -1
  455. package/dist/vega/{p-3a93730e.js → p-3a68b729.js} +1 -1
  456. package/dist/vega/p-3cf4339a.entry.js +1 -0
  457. package/dist/vega/{p-46e0c6ca.js → p-3f183b52.js} +1 -1
  458. package/dist/vega/{p-6d99a0b3.entry.js → p-40501057.entry.js} +1 -1
  459. package/dist/vega/{p-d6422004.entry.js → p-438b7404.entry.js} +1 -1
  460. package/dist/vega/p-43c3848f.entry.js +1 -0
  461. package/dist/vega/{p-e8c5a446.entry.js → p-450bf94d.entry.js} +1 -1
  462. package/dist/vega/{p-a809b33a.js → p-45ab490c.js} +1 -1
  463. package/dist/vega/{p-a9a70696.entry.js → p-481601c0.entry.js} +1 -1
  464. package/dist/vega/p-4953bb1a.js +1 -0
  465. package/dist/vega/p-4d9061fb.js +1 -0
  466. package/dist/vega/{p-8d9c4338.entry.js → p-4e39adf5.entry.js} +1 -1
  467. package/dist/vega/{p-ed1dbc98.entry.js → p-5038b6d7.entry.js} +1 -1
  468. package/dist/vega/{p-8666f206.entry.js → p-5319da71.entry.js} +1 -1
  469. package/dist/vega/{p-c1c5bd2c.entry.js → p-53c76d9d.entry.js} +1 -1
  470. package/dist/vega/{p-6fec4d46.entry.js → p-5545a235.entry.js} +1 -1
  471. package/dist/vega/{p-0278cd2b.entry.js → p-56cf1a65.entry.js} +1 -1
  472. package/dist/vega/{p-6528739f.entry.js → p-5829a66d.entry.js} +1 -1
  473. package/dist/vega/p-590c8720.entry.js +1 -0
  474. package/dist/vega/{p-f0d6e2f2.js → p-5946fadf.js} +1 -1
  475. package/dist/vega/{p-328dbe8e.js → p-5beec481.js} +1 -1
  476. package/dist/vega/p-5de1acdb.js +1 -0
  477. package/dist/vega/p-5df9047c.js +1 -0
  478. package/dist/vega/p-5f377954.js +1 -1
  479. package/dist/vega/{p-724df1f5.js → p-6031bed1.js} +1 -1
  480. package/dist/vega/{p-8e34b266.js → p-6096ffc3.js} +1 -1
  481. package/dist/vega/{p-616d7096.entry.js → p-625351a3.entry.js} +1 -1
  482. package/dist/vega/p-683cfe24.js +1 -0
  483. package/dist/vega/{p-8258dc37.entry.js → p-68e16c70.entry.js} +1 -1
  484. package/dist/vega/{p-d7790113.js → p-70817cf5.js} +1 -1
  485. package/dist/vega/p-71e2a3ec.js +1 -0
  486. package/dist/vega/{p-c5621f60.entry.js → p-7798254d.entry.js} +1 -1
  487. package/dist/vega/{p-e4917e76.js → p-7b9ed949.js} +1 -1
  488. package/dist/vega/p-7be548a7.js +1 -0
  489. package/dist/vega/{p-2c7e1bcb.js → p-802bf369.js} +1 -1
  490. package/dist/vega/{p-dfda6e01.entry.js → p-82279b03.entry.js} +1 -1
  491. package/dist/vega/p-8509c140.entry.js +1 -0
  492. package/dist/vega/{p-dcf162e9.js → p-87a4d75f.js} +1 -1
  493. package/dist/vega/p-88a6c89a.js +1 -0
  494. package/dist/vega/p-890a5254.js +1 -0
  495. package/dist/vega/p-8aa07ed0.js +1 -0
  496. package/dist/vega/p-8b9a8603.entry.js +1 -0
  497. package/dist/vega/p-8bc15ed0.js +1 -0
  498. package/dist/vega/{p-277c306b.js → p-8d69b201.js} +1 -1
  499. package/dist/vega/p-8da860f6.js +1 -0
  500. package/dist/vega/{p-1827a459.entry.js → p-8f078d0d.entry.js} +1 -1
  501. package/dist/vega/p-916dfa7e.entry.js +1 -0
  502. package/dist/vega/p-9219201a.entry.js +1 -0
  503. package/dist/vega/{p-844b7826.js → p-92823583.js} +1 -1
  504. package/dist/vega/{p-788a7a5a.js → p-93dfab05.js} +1 -1
  505. package/dist/vega/{p-99545fd7.entry.js → p-9440a8a5.entry.js} +1 -1
  506. package/dist/vega/p-970115d6.js +1 -0
  507. package/dist/vega/{p-00d2a013.entry.js → p-9abf7d0a.entry.js} +1 -1
  508. package/dist/vega/{p-6845ed5c.entry.js → p-9b1d718c.entry.js} +1 -1
  509. package/dist/vega/{p-92e493ea.entry.js → p-9cdedcfb.entry.js} +1 -1
  510. package/dist/vega/{p-456890f5.entry.js → p-9fafc956.entry.js} +1 -1
  511. package/dist/vega/p-9fb3aeeb.entry.js +1 -0
  512. package/dist/vega/p-a268a4fb.entry.js +1 -0
  513. package/dist/vega/{p-d2916121.js → p-a2bd621e.js} +1 -1
  514. package/dist/vega/p-a361456d.js +1 -0
  515. package/dist/vega/p-aa32f2f3.js +1 -0
  516. package/dist/vega/{p-9a6bd32c.js → p-afcd8f04.js} +1 -1
  517. package/dist/vega/p-b438e68b.js +1 -0
  518. package/dist/vega/p-b6225d01.js +1 -0
  519. package/dist/vega/p-b6ebfd5c.entry.js +1 -0
  520. package/dist/vega/{p-0a1c7f80.js → p-b730bf6e.js} +1 -1
  521. package/dist/vega/p-b799fc1f.entry.js +1 -0
  522. package/dist/vega/{p-1be90bab.entry.js → p-c04a90d8.entry.js} +1 -1
  523. package/dist/vega/{p-465590d1.entry.js → p-c0629528.entry.js} +1 -1
  524. package/dist/vega/{p-f5c8024e.entry.js → p-c2e0f8b7.entry.js} +1 -1
  525. package/dist/vega/p-c67ce78c.entry.js +1 -0
  526. package/dist/vega/{p-4694fe27.entry.js → p-c78aeaf3.entry.js} +1 -1
  527. package/dist/vega/{p-7fe292af.entry.js → p-c78e8081.entry.js} +1 -1
  528. package/dist/vega/{p-bcd3bd79.entry.js → p-c8eaf91c.entry.js} +1 -1
  529. package/dist/vega/p-ca9852bb.js +1 -0
  530. package/dist/vega/{p-285e5e52.entry.js → p-cd1844ad.entry.js} +1 -1
  531. package/dist/vega/{p-1d16a7fa.entry.js → p-cd9fb2ca.entry.js} +1 -1
  532. package/dist/vega/{p-350d1b75.entry.js → p-ce7e9515.entry.js} +1 -1
  533. package/dist/vega/p-d0ce752f.entry.js +1 -0
  534. package/dist/vega/{p-88c29aae.entry.js → p-d20587b4.entry.js} +1 -1
  535. package/dist/vega/{p-bce9f489.entry.js → p-d3c8b871.entry.js} +1 -1
  536. package/dist/vega/{p-30487f0e.js → p-d7369441.js} +1 -1
  537. package/dist/vega/{p-c9c42a07.js → p-de885ef2.js} +1 -1
  538. package/dist/vega/{p-fd2a49be.entry.js → p-dee38163.entry.js} +1 -1
  539. package/dist/vega/{p-54141828.entry.js → p-e160a727.entry.js} +1 -1
  540. package/dist/vega/p-e371738b.js +1 -0
  541. package/dist/vega/{p-566ba295.js → p-e3803943.js} +1 -1
  542. package/dist/vega/p-e41d9d0e.entry.js +1 -0
  543. package/dist/vega/p-e5502873.entry.js +1 -0
  544. package/dist/vega/p-e8f50fc5.js +1 -0
  545. package/dist/vega/{p-850ea38b.entry.js → p-e9cee498.entry.js} +1 -1
  546. package/dist/vega/p-ea22cba0.js +1 -0
  547. package/dist/vega/p-ea54ce0a.js +3 -0
  548. package/dist/vega/p-ee3155bd.js +1 -0
  549. package/dist/vega/{p-99ea0fa0.entry.js → p-eee01ba7.entry.js} +1 -1
  550. package/dist/vega/{p-d0e7c14b.entry.js → p-ef2b9846.entry.js} +1 -1
  551. package/dist/vega/p-f0bc2bbb.js +1 -0
  552. package/dist/vega/p-f365601c.entry.js +1 -0
  553. package/dist/vega/p-f4a01959.js +1 -0
  554. package/dist/vega/{p-1b4abd76.entry.js → p-f515d189.entry.js} +1 -1
  555. package/dist/vega/p-f5aefb2f.entry.js +1 -0
  556. package/dist/vega/{p-581d89bb.entry.js → p-f6bccb06.entry.js} +1 -1
  557. package/dist/vega/p-f70f7ad8.entry.js +1 -0
  558. package/dist/vega/{p-c0a6ed53.entry.js → p-f7739cbb.entry.js} +1 -1
  559. package/dist/vega/{p-4386625c.entry.js → p-fc5dfb52.entry.js} +1 -1
  560. package/dist/vega/p-fd70418f.js +1 -0
  561. package/dist/vega/{p-1704ff25.js → p-ffdc25ec.js} +1 -1
  562. package/dist/vega/vega.css +1 -1
  563. package/dist/vega/vega.esm.js +1 -1
  564. package/package.json +1 -1
  565. package/style/vega.css +1 -1
  566. package/dist/cjs/month-view-generator-c7492e06.js +0 -101
  567. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.js +0 -92
  568. package/dist/esm/month-view-generator-1b7c9bb8.js +0 -97
  569. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.d.ts +0 -26
  570. package/dist/vega/p-018756ad.entry.js +0 -1
  571. package/dist/vega/p-0542b8ac.js +0 -1
  572. package/dist/vega/p-0bb860cc.js +0 -1
  573. package/dist/vega/p-1ee185d9.entry.js +0 -1
  574. package/dist/vega/p-203f4ce9.entry.js +0 -1
  575. package/dist/vega/p-2620a164.js +0 -1
  576. package/dist/vega/p-2649051e.entry.js +0 -1
  577. package/dist/vega/p-280cbcdb.js +0 -1
  578. package/dist/vega/p-30a6b7aa.entry.js +0 -1
  579. package/dist/vega/p-355ea330.entry.js +0 -1
  580. package/dist/vega/p-35d617d5.js +0 -1
  581. package/dist/vega/p-3755d8d3.entry.js +0 -1
  582. package/dist/vega/p-3e956269.entry.js +0 -1
  583. package/dist/vega/p-3ed6a602.js +0 -1
  584. package/dist/vega/p-44f39eee.js +0 -1
  585. package/dist/vega/p-46cab60a.js +0 -1
  586. package/dist/vega/p-47ffdc0f.entry.js +0 -1
  587. package/dist/vega/p-4fdd0a71.js +0 -1
  588. package/dist/vega/p-5a6e2c08.entry.js +0 -1
  589. package/dist/vega/p-5f048811.entry.js +0 -1
  590. package/dist/vega/p-667c980d.entry.js +0 -1
  591. package/dist/vega/p-6cedb325.js +0 -1
  592. package/dist/vega/p-716a393e.entry.js +0 -1
  593. package/dist/vega/p-73ce8fef.js +0 -1
  594. package/dist/vega/p-820ff54c.js +0 -1
  595. package/dist/vega/p-82c133aa.js +0 -1
  596. package/dist/vega/p-85dcd07b.js +0 -3
  597. package/dist/vega/p-8a054a13.js +0 -1
  598. package/dist/vega/p-8a34c08a.js +0 -1
  599. package/dist/vega/p-939c486f.entry.js +0 -1
  600. package/dist/vega/p-a58cacca.js +0 -1
  601. package/dist/vega/p-aae71499.entry.js +0 -1
  602. package/dist/vega/p-b0f55f5f.js +0 -1
  603. package/dist/vega/p-b5c08306.entry.js +0 -1
  604. package/dist/vega/p-b6be1f33.js +0 -1
  605. package/dist/vega/p-c596bb49.js +0 -1
  606. package/dist/vega/p-d871e8eb.entry.js +0 -1
  607. package/dist/vega/p-d884c644.js +0 -1
  608. package/dist/vega/p-d905159c.entry.js +0 -1
  609. package/dist/vega/p-e30a4f3e.js +0 -1
  610. package/dist/vega/p-eb927e2b.js +0 -1
  611. package/dist/vega/p-ecea4d24.js +0 -1
  612. package/dist/vega/p-f0b99c3a.entry.js +0 -1
  613. package/dist/vega/p-f251a907.entry.js +0 -1
  614. package/dist/vega/p-f70cfac5.entry.js +0 -1
  615. package/dist/vega/p-f830deb8.js +0 -1
  616. /package/dist/collection/{components/vega-code-block/assets → global/icons}/copy.js +0 -0
  617. /package/dist/types/components/{vega-code-block/assets/copy.d.ts → vega-rich-text-editor/assets/cut.d.ts} +0 -0
@@ -144,8 +144,8 @@ export class RTERange {
144
144
  : this._endNode.getRangeContainer();
145
145
  if (startContainer && endContainer) {
146
146
  range = new Range();
147
- range.setStart(startContainer, this._startOffset);
148
- range.setEnd(endContainer, this._endOffset);
147
+ range.setStart(startContainer, this.clampOffsetToContainer(startContainer, this._startOffset));
148
+ range.setEnd(endContainer, this.clampOffsetToContainer(endContainer, this._endOffset));
149
149
  this._startContainer = startContainer;
150
150
  this._endContainer = endContainer;
151
151
  this._oldNativeRange = range;
@@ -156,6 +156,28 @@ export class RTERange {
156
156
  return this._oldNativeRange;
157
157
  }
158
158
  }
159
+ /**
160
+ * Clamps an offset to the valid bound of a DOM container so that
161
+ * `Range.setStart` / `Range.setEnd` never throw `IndexSizeError`.
162
+ *
163
+ * A stored selection offset can become stale or unit-mismatched when an undo
164
+ * restores a selection captured against different content — for example after
165
+ * find-and-replace shrinks a text node, or when the selection node's DOM
166
+ * container is its parent element (offset measured in child-node count rather
167
+ * than characters, as for non-editable token / logic-control nodes). Text
168
+ * containers are bounded by character length, element containers by child count.
169
+ *
170
+ * @param {Node} container - The DOM container the offset applies to.
171
+ * @param {number} offset - The desired offset.
172
+ * @returns {number} The offset clamped to `[0, container length]`.
173
+ */
174
+ clampOffsetToContainer(container, offset) {
175
+ var _a, _b;
176
+ const max = container.nodeType === Node.TEXT_NODE
177
+ ? (_b = (_a = container.textContent) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0
178
+ : container.childNodes.length;
179
+ return Math.max(0, Math.min(offset, max));
180
+ }
159
181
  /**
160
182
  * Retrieves an RTENode based on the given element by checking its type and parent elements.
161
183
  *
@@ -0,0 +1,226 @@
1
+ import { LogUtility } from '../../../../../utils/log';
2
+ import { tryGetDocument } from '../../../../../utils/try-get-document';
3
+ import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
4
+ /**
5
+ * Strategy that extracts the HTML and plain text content of the current selection, stores the
6
+ * result on the {@link CopySelectedContentAction} and writes it to the clipboard.
7
+ */
8
+ export class CopySelectedContentStrategy extends ActionHandleStrategy {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ handleAction(action) {
13
+ const parentBlocks = this.getParentBlocks(action.selectedNodes);
14
+ const { html, text } = this.getSelectedContent(action.selection, parentBlocks);
15
+ if (text || html) {
16
+ action.copyResult = this.copyToClipboard(html, text);
17
+ }
18
+ }
19
+ /**
20
+ * Extracts the HTML and text content from the current selection.
21
+ *
22
+ * `Range.cloneContents()` returns only the nodes inside the selection, dropping the ancestor chain
23
+ * between the selection's common ancestor and its block. When the selection stays inside a single
24
+ * block, those dropped ancestors carry the styling, so the cloned fragment is re-wrapped with
25
+ * shallow clones of every ancestor from the common ancestor up to the block, preserving arbitrary
26
+ * inline nesting (e.g. `block > strong > em > span > text`).
27
+ *
28
+ * When the selection covers the whole block (its common ancestor sits above the block) or spans
29
+ * multiple blocks, each block is already kept by `cloneContents()`, so no re-wrapping is done.
30
+ *
31
+ * @param {Nullable<Selection>} selection - The current selection object.
32
+ * @param {RTEBlock[]} parentBlocks - The parent blocks of the selected nodes.
33
+ * @returns {RTESelectedContent} - The HTML and text content of the selected content.
34
+ */
35
+ getSelectedContent(selection, parentBlocks) {
36
+ const result = { html: '', text: '' };
37
+ if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
38
+ return result;
39
+ }
40
+ const range = selection.getRangeAt(0);
41
+ const doc = tryGetDocument();
42
+ if (!doc) {
43
+ return result;
44
+ }
45
+ // `cloneContents()` returns a `DocumentFragment` of real DOM nodes (already well-formed). Its
46
+ // `textContent` is the plain text; the fragment itself is wrapped/serialized into HTML below.
47
+ const fragment = range.cloneContents();
48
+ // A `DocumentFragment` has no `innerHTML`, so a temporary element is used to serialize it to HTML.
49
+ const container = doc.createElement('div');
50
+ const commonAncestor = range.commonAncestorContainer;
51
+ if (parentBlocks.length === 1) {
52
+ const block = this.getDOMByEntity(parentBlocks[0]);
53
+ // Only re-wrap when the block is dropped from the clone, i.e. the selection stays inside the
54
+ // block. When the whole block is selected, `commonAncestor` sits above it and the clone
55
+ // already keeps the block, so wrapping again would nest a duplicate block.
56
+ if (block && block.contains(commonAncestor)) {
57
+ // Wrap the cloned fragment with the dropped ancestor chain (from `commonAncestor` up to the
58
+ // block), preserving each element's styles, then serialize the rebuilt block to HTML.
59
+ const cloneNode = this.wrapWithAncestorChain(fragment, commonAncestor, block);
60
+ container.appendChild(cloneNode);
61
+ result.html = container.innerHTML;
62
+ result.text = container.textContent;
63
+ return result;
64
+ }
65
+ }
66
+ else if (parentBlocks.length > 1 &&
67
+ parentBlocks.every((block) => block.type === 'list-item')) {
68
+ const firstList = parentBlocks[0].parent;
69
+ if (firstList && parentBlocks.every((block) => block.parent === firstList)) {
70
+ const listElement = this.getDOMByEntity(firstList);
71
+ if (listElement && listElement.contains(commonAncestor)) {
72
+ const cloneListElement = listElement.cloneNode(false);
73
+ cloneListElement.appendChild(fragment);
74
+ container.appendChild(cloneListElement);
75
+ result.html = container.innerHTML;
76
+ result.text = container.textContent;
77
+ return result;
78
+ }
79
+ }
80
+ }
81
+ // The selection covers whole/multiple blocks: the clone already keeps them, so serialize as-is.
82
+ container.appendChild(fragment);
83
+ result.html = container.innerHTML;
84
+ result.text = container.textContent;
85
+ return result;
86
+ }
87
+ /**
88
+ * Wraps the cloned selection fragment with the ancestor chain that `cloneContents()` dropped,
89
+ * rebuilding every element from the selection's common ancestor up to the block while preserving
90
+ * each element's styles. Returns the cloned block that holds the rebuilt chain and content.
91
+ *
92
+ * When the common ancestor is the block itself, the fragment is appended directly under the cloned
93
+ * block, since no inline ancestor chain was dropped.
94
+ *
95
+ * @param {Node} content - The cloned selection fragment to place at the innermost level.
96
+ * @param {Node} commonAncestor - The selection's common ancestor container.
97
+ * @param {HTMLElement} block - The block element to stop cloning at.
98
+ * @returns {HTMLElement} - The cloned block wrapping the rebuilt ancestor chain and content.
99
+ */
100
+ wrapWithAncestorChain(content, commonAncestor, block) {
101
+ const blockClone = block.cloneNode(false);
102
+ // `cloneContents()` keeps everything inside `commonAncestor`, so the dropped chain runs from
103
+ // `commonAncestor` (its element, when the ancestor is a text node) up to the block.
104
+ const targetElement = commonAncestor.nodeType === Node.TEXT_NODE
105
+ ? commonAncestor.parentElement
106
+ : commonAncestor;
107
+ // The target is the block itself: the content sits directly under the block, no chain to rebuild.
108
+ if (targetElement === block) {
109
+ blockClone.appendChild(content);
110
+ return blockClone;
111
+ }
112
+ // Clone the target as the innermost container and place the content inside it.
113
+ const innermost = targetElement.cloneNode(false);
114
+ innermost.appendChild(content);
115
+ // Walk up from the target to the block, cloning each ancestor and nesting the chain bottom-up.
116
+ let shouldAppendNode = innermost;
117
+ let current = targetElement.parentElement;
118
+ while (current && current !== block) {
119
+ const parentClone = current.cloneNode(false);
120
+ parentClone.appendChild(shouldAppendNode);
121
+ shouldAppendNode = parentClone;
122
+ current = current.parentElement;
123
+ }
124
+ // Append the assembled ancestor chain to the cloned block.
125
+ blockClone.appendChild(shouldAppendNode);
126
+ // When the block is a list item inside an ordered list, wrap the cloned list item with a
127
+ // shallow clone of the ordered list to preserve the numbering.
128
+ if (blockClone.tagName === 'LI' &&
129
+ current &&
130
+ current.parentElement &&
131
+ current.parentElement.tagName === 'OL') {
132
+ const cloneList = current.parentElement.cloneNode(false);
133
+ cloneList.appendChild(blockClone);
134
+ return cloneList;
135
+ }
136
+ return blockClone;
137
+ }
138
+ /**
139
+ * Retrieves the parent blocks of the given selected nodes.
140
+ *
141
+ * @param {RTENode[]} selectedNodes - The nodes for which to find parent blocks.
142
+ * @returns {RTEBlock[]} An array of parent blocks.
143
+ */
144
+ getParentBlocks(selectedNodes) {
145
+ const parentBlocks = [];
146
+ for (const node of selectedNodes) {
147
+ const block = node.parent;
148
+ if (block && !parentBlocks.includes(block)) {
149
+ parentBlocks.push(block);
150
+ }
151
+ }
152
+ return parentBlocks;
153
+ }
154
+ /**
155
+ * Copies both HTML and plain text content to the clipboard using the Clipboard API.
156
+ *
157
+ * Browser compatibility for `navigator.clipboard.write()` with `ClipboardItem`:
158
+ * - Chrome 76+, Edge 79+, Safari 13.1+, Firefox 127+
159
+ *
160
+ * Since Firefox 86+ must be supported, fall back to `execCommand('copy')` when the
161
+ * Clipboard API is unavailable or fails (e.g. Firefox 86-126).
162
+ *
163
+ * @param {string} htmlContent - The HTML content to copy.
164
+ * @param {string} textContent - The plain text content to copy.
165
+ * @returns {Promise<boolean>} - A promise that resolves to true if the copy operation succeeded.
166
+ */
167
+ async copyToClipboard(htmlContent, textContent) {
168
+ let result = false;
169
+ try {
170
+ const htmlBlob = new Blob([htmlContent], { type: 'text/html' });
171
+ const textBlob = new Blob([textContent], { type: 'text/plain' });
172
+ const clipboardItem = new ClipboardItem({
173
+ 'text/html': htmlBlob,
174
+ 'text/plain': textBlob,
175
+ });
176
+ await navigator.clipboard.write([clipboardItem]);
177
+ result = true;
178
+ }
179
+ catch (_a) {
180
+ // Fallback for browsers without ClipboardItem support (e.g. Firefox 86-126)
181
+ result = this.copyWithExecCommand(htmlContent, textContent);
182
+ if (!result) {
183
+ LogUtility.warn('Failed to copy the selected content to the clipboard. Use keyboard shortcuts instead.');
184
+ }
185
+ }
186
+ return result;
187
+ }
188
+ /**
189
+ * Fallback copy method using `execCommand('copy')` for browsers that don't support the
190
+ * Clipboard API (e.g. Firefox 86-126).
191
+ *
192
+ * Instead of creating a temporary element and changing the selection (which would clear the
193
+ * editor's Shadow DOM selection and steal focus), this intercepts the native `copy` event that
194
+ * `execCommand('copy')` triggers and overrides its clipboard data. The user's original selection
195
+ * and focus stay untouched.
196
+ *
197
+ * @param {string} htmlContent - The HTML content to copy.
198
+ * @param {string} textContent - The plain text content to copy.
199
+ * @returns {boolean} - True if the copy command succeeded.
200
+ */
201
+ copyWithExecCommand(htmlContent, textContent) {
202
+ const doc = tryGetDocument();
203
+ if (!doc) {
204
+ return false;
205
+ }
206
+ /**
207
+ * Overrides the clipboard data of the native copy event triggered by `execCommand('copy')`.
208
+ *
209
+ * @param {ClipboardEvent} event - The native copy event.
210
+ */
211
+ const onCopy = (event) => {
212
+ if (event.clipboardData) {
213
+ event.clipboardData.setData('text/html', htmlContent);
214
+ event.clipboardData.setData('text/plain', textContent);
215
+ }
216
+ event.preventDefault();
217
+ };
218
+ doc.addEventListener('copy', onCopy);
219
+ try {
220
+ return doc.execCommand('copy');
221
+ }
222
+ finally {
223
+ doc.removeEventListener('copy', onCopy);
224
+ }
225
+ }
226
+ }
@@ -0,0 +1,21 @@
1
+ import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
2
+ /**
3
+ * Action to extract the currently selected content (HTML and plain text) from the editor.
4
+ *
5
+ * The action is read-only: it does not mutate the content state. The handling strategy resolves
6
+ * the selected HTML and plain text and writes them directly to the clipboard.
7
+ *
8
+ * @example host.value.apply(new CopySelectedContentAction(selection, selectedNodes));
9
+ */
10
+ export class CopySelectedContentAction extends ModifyContentAction {
11
+ constructor(selection, selectedNodes) {
12
+ super();
13
+ this.type = 'COPY_SELECTED_CONTENT_ACTION';
14
+ this.selection = null;
15
+ this.selectedNodes = [];
16
+ // The result of the copy operation, which may be a Promise if the clipboard write is asynchronous.
17
+ this.copyResult = null;
18
+ this.selection = selection;
19
+ this.selectedNodes = selectedNodes;
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ import { VegaRTEExtension } from '../extension.abstract';
2
+ import { RTECopyToolbarButtonRenderer } from './copy-toolbar-button-renderer';
3
+ import { ActionHandleStrategyRegistry } from '../../dto/action-handle-strategies/action-handle-strategy-registry';
4
+ import { VegaRTEContent } from '../../dto/content-state';
5
+ import { CopySelectedContentStrategy } from './action-handler-strategies/copy-selected-content-strategy';
6
+ /**
7
+ * Vega Rich Text Editor Copy Extension.
8
+ * Adds a toolbar button that copies the currently selected editor content to the clipboard.
9
+ */
10
+ export class VegaRTECopyExtension extends VegaRTEExtension {
11
+ /** @inheritDoc */
12
+ prepareBeforeLoad(host) {
13
+ this.registerToolbarButtonRenderer(VegaRTECopyExtension.TOOLBAR_BUTTON_KEY, new RTECopyToolbarButtonRenderer(), host);
14
+ }
15
+ }
16
+ (() => {
17
+ ActionHandleStrategyRegistry.register('COPY_SELECTED_CONTENT_ACTION', VegaRTEContent.name, new CopySelectedContentStrategy());
18
+ })();
19
+ // The unique key for the copy toolbar button, used for registration and retrieval.
20
+ VegaRTECopyExtension.TOOLBAR_BUTTON_KEY = 'copy';
@@ -0,0 +1,58 @@
1
+ import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
2
+ import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
3
+ import copyIcon from '../../../../global/icons/copy';
4
+ import { methodPlaceholder } from 'vega-slimmer/core';
5
+ import { CopySelectedContentAction } from './actions/copy-selected-content-action';
6
+ /**
7
+ * Toolbar button renderer for the Copy extension.
8
+ * Renders a toolbar button that copies the currently selected editor text to the clipboard.
9
+ */
10
+ export class RTECopyToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
11
+ /**
12
+ * Renders the copy toolbar button.
13
+ *
14
+ * @param {VegaRTECreateElementFunction} h - Create element function.
15
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
16
+ * @returns {VegaRTERenderResult} - The toolbar button render result.
17
+ */
18
+ render(h, editorContext) {
19
+ return this.renderButton(h, editorContext, {
20
+ icon: 'rte-copy',
21
+ tooltip: { text: 'Copy' },
22
+ });
23
+ }
24
+ /**
25
+ * Determines if the copy button should be disabled.
26
+ * Disabled when the editor is disabled or when no content is selected.
27
+ *
28
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
29
+ * @returns {boolean} - True if the button should be disabled.
30
+ */
31
+ isDisabled(editorContext) {
32
+ const context = this.getExtensionContext(editorContext.host);
33
+ return (!context || context.host.disabled || !context.getSelection() || context.getSelection().isCollapsed);
34
+ }
35
+ /**
36
+ * Handles the copy button click event.
37
+ * Dispatches a copy action through `host.value`; the action handler extracts the current selection
38
+ * and writes the resulting HTML and plain text content to the clipboard.
39
+ *
40
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
41
+ */
42
+ handleButtonClick(editorContext) {
43
+ const context = this.getExtensionContext(editorContext.host);
44
+ if (context && context.host) {
45
+ context.host.value.apply(new CopySelectedContentAction(context.getSelection(), context.getSelectedNodes()));
46
+ }
47
+ }
48
+ /*istanbul ignore next*/
49
+ /**
50
+ * Handles dropdown click event. Not applicable for the copy button, so it's left empty.
51
+ */
52
+ handleDropdownClick() {
53
+ methodPlaceholder();
54
+ }
55
+ }
56
+ (() => {
57
+ VegaInternalIconManager.register({ 'rte-copy': copyIcon });
58
+ })();
@@ -0,0 +1,15 @@
1
+ import { VegaRTEExtension } from '../extension.abstract';
2
+ import { RTECutToolbarButtonRenderer } from './cut-toolbar-button-renderer';
3
+ /**
4
+ * Vega Rich Text Editor Cut Extension.
5
+ * Adds a toolbar button that copies the currently selected editor content to the clipboard
6
+ * and removes it from the editor.
7
+ */
8
+ export class VegaRTECutExtension extends VegaRTEExtension {
9
+ /** @inheritDoc */
10
+ prepareBeforeLoad(host) {
11
+ this.registerToolbarButtonRenderer(VegaRTECutExtension.TOOLBAR_BUTTON_KEY, new RTECutToolbarButtonRenderer(), host);
12
+ }
13
+ }
14
+ // The unique key for the cut toolbar button, used for registration and retrieval.
15
+ VegaRTECutExtension.TOOLBAR_BUTTON_KEY = 'cut';
@@ -0,0 +1,44 @@
1
+ import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
2
+ import { RTECopyToolbarButtonRenderer } from '../copy/copy-toolbar-button-renderer';
3
+ import cutIcon from '../../assets/cut';
4
+ import { CopySelectedContentAction } from '../copy/actions/copy-selected-content-action';
5
+ import { DeleteSelectedContentAction } from '../../dto/actions/delete-selected-content-action';
6
+ /**
7
+ * Toolbar button renderer for the Cut extension.
8
+ * Reuses the Copy renderer to write the selected editor content to the clipboard,
9
+ * then removes the selected content from the editor.
10
+ */
11
+ export class RTECutToolbarButtonRenderer extends RTECopyToolbarButtonRenderer {
12
+ /**
13
+ * Renders the cut toolbar button.
14
+ *
15
+ * @param {VegaRTECreateElementFunction} h - Create element function.
16
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
17
+ * @returns {VegaRTERenderResult} - The toolbar button render result.
18
+ */
19
+ render(h, editorContext) {
20
+ return this.renderButton(h, editorContext, {
21
+ icon: 'rte-cut',
22
+ tooltip: { text: 'Cut' },
23
+ });
24
+ }
25
+ /**
26
+ * Handles the cut button click event.
27
+ * Copies the current editor selection to the clipboard and then deletes it from the editor.
28
+ *
29
+ * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
30
+ */
31
+ async handleButtonClick(editorContext) {
32
+ const context = this.getExtensionContext(editorContext.host);
33
+ if (context && context.host) {
34
+ const { host } = context;
35
+ const copySelectedContentAction = new CopySelectedContentAction(context.getSelection(), context.getSelectedNodes());
36
+ host.value.apply(copySelectedContentAction);
37
+ const isCopySuccessful = await copySelectedContentAction.copyResult;
38
+ isCopySuccessful && host.value.apply(new DeleteSelectedContentAction(host, true, true));
39
+ }
40
+ }
41
+ }
42
+ (() => {
43
+ VegaInternalIconManager.register({ 'rte-cut': cutIcon });
44
+ })();
@@ -0,0 +1,3 @@
1
+ export default {
2
+ 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="M208 48c39.6 0 75.9 14.4 103.8 38.2L279 119c-6.9 6.9-8.9 17.2-5.2 26.2S286.3 160 296 160l96 0c13.3 0 24-10.7 24-24l0-96c0-9.7-5.8-18.5-14.8-22.2S381.9 16.2 375 23L345.8 52.2c-36.7-32.5-85-52.2-137.8-52.2-99.4 0-182.4 69.7-203.1 162.8-2.9 12.9 5.3 25.8 18.2 28.6 1.4 .3 2.7 .5 4.1 .5l2.3 0C40.1 191.5 49.4 184 51.8 173.2 67.7 101.6 131.6 48 208 48zM386 224c-10.4 .7-19.4 8.1-21.8 18.8-15.9 71.7-79.8 125.2-156.2 125.2-39.6 0-75.9-14.4-103.8-38.2L137 297c6.9-6.9 8.9-17.2 5.2-26.2S129.7 256 120 256l-96 0c-13.3 0-24 10.7-24 24l0 96c0 9.7 5.8 18.5 14.8 22.2S34.1 399.8 41 393l29.2-29.2c36.7 32.5 85 52.2 137.8 52.2 48.8 0 93.7-16.8 129.1-44.9L471 505c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L371.1 337.1c19.2-24.2 33.1-52.8 40-84 2.9-12.9-5.3-25.8-18.2-28.6-1.2-.3-2.4-.4-3.6-.5l-3.2 0z"/></svg>`,
3
+ };
@@ -0,0 +1,18 @@
1
+ import { VegaRTEExtension } from '../extension.abstract';
2
+ import { FindReplaceToolbarButtonRenderer } from './slimmer/renderers/find-replace-toolbar-button-renderer';
3
+ /**
4
+ * Find & Replace extension for Vega Rich Text Editor.
5
+ *
6
+ * Registers a toolbar button (magnifying-glass icon) that toggles the find-replace panel.
7
+ * Each editor host gets its own isolated FindReplaceState and toolbar renderer instance,
8
+ * created during the per-host prepareBeforeLoad lifecycle hook.
9
+ *
10
+ * Toolbar key: 'findReplace'
11
+ */
12
+ export class VegaRTEFindReplaceExtension extends VegaRTEExtension {
13
+ /** @inheritDoc */
14
+ prepareBeforeLoad(host) {
15
+ this.registerToolbarButtonRenderer(VegaRTEFindReplaceExtension.TOOLBAR_BUTTON_KEY, new FindReplaceToolbarButtonRenderer(), host);
16
+ }
17
+ }
18
+ VegaRTEFindReplaceExtension.TOOLBAR_BUTTON_KEY = 'findReplace';
@@ -0,0 +1,105 @@
1
+ import { FindReplaceControllerAbstract, } from './find-replace-controller.abstract';
2
+ /**
3
+ * Concrete find controller.
4
+ *
5
+ * Provides search, navigation, highlight, and lifecycle capabilities.
6
+ * Shares state with {@link ReplaceController} via the injected
7
+ * {@link FindReplaceControllerContext}.
8
+ */
9
+ export class FindController extends FindReplaceControllerAbstract {
10
+ constructor(context) {
11
+ super(context);
12
+ }
13
+ /**
14
+ * Runs a search with the current keyword on the host's content.
15
+ * Applies highlights and returns the result for panel display.
16
+ *
17
+ * @returns {FindReplaceResult} The match count and current position.
18
+ */
19
+ find() {
20
+ if (!this.context.hostRef) {
21
+ return { current: 0, total: 0 };
22
+ }
23
+ this.context.state.search(this.context.hostRef.value, this.context.keyword);
24
+ return this.applyAndGetResult();
25
+ }
26
+ /**
27
+ * Navigates to the next match.
28
+ *
29
+ * @returns {FindReplaceResult} Updated position.
30
+ */
31
+ next() {
32
+ this.context.state.next();
33
+ return this.applyAndGetResult();
34
+ }
35
+ /**
36
+ * Navigates to the previous match.
37
+ *
38
+ * @returns {FindReplaceResult} Updated position.
39
+ */
40
+ prev() {
41
+ this.context.state.prev();
42
+ return this.applyAndGetResult();
43
+ }
44
+ /**
45
+ * Clears all search state and removes highlight overlays.
46
+ */
47
+ clear() {
48
+ this.context.state.clear();
49
+ if (this.context.hostRef) {
50
+ this.context.highlightManager.clear();
51
+ }
52
+ }
53
+ /**
54
+ * Re-runs the search after content has changed (e.g. user typed while
55
+ * panel is open). Attempts to preserve the previous navigation position.
56
+ *
57
+ * @param {boolean} scrollToActive - Whether to scroll the active highlight into view.
58
+ * @returns {FindReplaceResult | null} Updated result, or null if no search is active.
59
+ */
60
+ refresh(scrollToActive = true) {
61
+ if (!this.context.keyword || !this.context.hostRef) {
62
+ return null;
63
+ }
64
+ const prevIndex = this.context.state.getCurrentIndex();
65
+ this.context.state.search(this.context.hostRef.value, this.context.keyword);
66
+ this.context.state.setCurrentIndex(prevIndex);
67
+ return this.applyAndGetResult(scrollToActive);
68
+ }
69
+ /**
70
+ * Toggles the match-case search option, clears previous results,
71
+ * and re-runs the search if a keyword is set.
72
+ *
73
+ * @param {boolean} enabled - Whether match-case should be enabled.
74
+ * @returns {FindReplaceResult} The updated search result.
75
+ */
76
+ setMatchCase(enabled) {
77
+ this.context.state.setMatchCase(enabled);
78
+ return this.updateFindResults();
79
+ }
80
+ /**
81
+ * Toggles the whole-words search option, clears previous results,
82
+ * and re-runs the search if a keyword is set.
83
+ *
84
+ * @param {boolean} enabled - Whether whole-words should be enabled.
85
+ * @returns {FindReplaceResult} The updated search result.
86
+ */
87
+ setWholeWords(enabled) {
88
+ this.context.state.setWholeWords(enabled);
89
+ return this.updateFindResults();
90
+ }
91
+ // ─── Private helpers ──────────────────────────────────────────────────────────
92
+ /**
93
+ * Clears previous results and re-runs the search with the current keyword and options.
94
+ *
95
+ * @returns {FindReplaceResult} The updated search result.
96
+ */
97
+ updateFindResults() {
98
+ this.context.state.clearResults();
99
+ if (this.context.keyword && this.context.hostRef) {
100
+ this.context.state.search(this.context.hostRef.value, this.context.keyword);
101
+ return this.applyAndGetResult();
102
+ }
103
+ return { current: 0, total: 0 };
104
+ }
105
+ }
@@ -0,0 +1,68 @@
1
+ import { FindReplaceState } from './helper/find-replace-state';
2
+ import { FindReplaceHighlightManager } from './helper/find-replace-highlight-manager';
3
+ /**
4
+ * Creates a new shared controller context with default (empty) state.
5
+ *
6
+ * @returns {FindReplaceControllerContext} A fresh context instance.
7
+ */
8
+ export function createFindReplaceControllerContext() {
9
+ return {
10
+ state: new FindReplaceState(),
11
+ highlightManager: new FindReplaceHighlightManager(),
12
+ hostRef: null,
13
+ keyword: '',
14
+ };
15
+ }
16
+ /**
17
+ * Abstract base controller for the Find & Replace extension.
18
+ *
19
+ * Holds shared operations ({@link setHost}, {@link setKeyword}) and the
20
+ * common helper {@link applyAndGetResult}. Concrete implementations
21
+ * ({@link FindController}, {@link ReplaceController}) add the respective
22
+ * search/navigation and mutation capabilities.
23
+ */
24
+ export class FindReplaceControllerAbstract {
25
+ constructor(context) {
26
+ this.context = context;
27
+ }
28
+ /**
29
+ * Updates the cached host reference. Called on each render cycle.
30
+ *
31
+ * @typedef HTMLVegaRichTextEditorElement - The type of the host rich text editor element.
32
+ * @param {HTMLVegaRichTextEditorElement} host - The RTE host element.
33
+ */
34
+ setHost(host) {
35
+ this.context.hostRef = host;
36
+ }
37
+ /**
38
+ * Updates the keyword. Clears previous match results and highlights,
39
+ * but preserves the flat-text cache so the next find() on the same
40
+ * document does not re-flatten every block.
41
+ *
42
+ * @param {string} keyword - The new search keyword.
43
+ * @returns {FindReplaceResult} Reset result (0/0).
44
+ */
45
+ setKeyword(keyword) {
46
+ this.context.keyword = keyword;
47
+ this.context.state.clearResults();
48
+ if (this.context.hostRef) {
49
+ this.context.highlightManager.clear();
50
+ }
51
+ return { current: 0, total: 0 };
52
+ }
53
+ // ─── Protected ────────────────────────────────────────────────────────────────
54
+ /**
55
+ * Applies highlight overlays and returns the current result for the panel.
56
+ *
57
+ * @param {boolean} scrollToActive - Whether to scroll the active highlight into view.
58
+ * @returns {FindReplaceResult} The current match position and total count.
59
+ */
60
+ applyAndGetResult(scrollToActive = true) {
61
+ const total = this.context.state.getTotal();
62
+ const current = total > 0 ? this.context.state.getCurrentIndex() + 1 : 0;
63
+ if (this.context.hostRef) {
64
+ this.context.highlightManager.apply(this.context.state.getMatches(), this.context.state.getCurrentIndex(), this.context.hostRef, scrollToActive);
65
+ }
66
+ return { current, total };
67
+ }
68
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Defines how a specific type of RTEBlock contributes searchable leaf blocks.
3
+ *
4
+ * Implementations are registered on FindReplaceState in priority order.
5
+ * The first strategy whose `canHandle` returns true is used.
6
+ */
7
+ export class BlockSearchStrategy {
8
+ }
@@ -0,0 +1,19 @@
1
+ import { RTECodeBlock } from '../../../../../../dto/blocks/code-block';
2
+ import { BlockSearchStrategy } from './block-search-strategy.abstract';
3
+ /**
4
+ * Handles RTECodeBlock — a searchable leaf block whose text lives in children[0].text.
5
+ */
6
+ export class CodeBlockSearchStrategy extends BlockSearchStrategy {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ canHandle(block) {
11
+ return block instanceof RTECodeBlock;
12
+ }
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ collect(block) {
17
+ return [block];
18
+ }
19
+ }