@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
@@ -0,0 +1,23 @@
1
+ import { RTETextNode } from '../../../../../../dto/nodes/text-node';
2
+ import { BlockSearchStrategy } from './block-search-strategy.abstract';
3
+ /**
4
+ * Fallback strategy for generic container blocks whose concrete type is not
5
+ * known at compile time (RTEHtmlBlock, table blocks, extension-defined blocks, …).
6
+ *
7
+ * A block is treated as a container when its children array is non-empty and
8
+ * the first child is not an RTETextNode (i.e. children are blocks, not nodes).
9
+ */
10
+ export class ContainerBlockSearchStrategy extends BlockSearchStrategy {
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ canHandle(block) {
15
+ return (block.children != null && block.children.length > 0 && !(block.children[0] instanceof RTETextNode));
16
+ }
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ collect(block, recurse) {
21
+ return recurse(block.children);
22
+ }
23
+ }
@@ -0,0 +1,30 @@
1
+ import { RTEListItemBlock } from '../../../../../../dto/blocks/list-item-block';
2
+ import { BlockSearchStrategy } from './block-search-strategy.abstract';
3
+ /**
4
+ * Handles RTEListItemBlock — a searchable leaf block that may also carry
5
+ * nested RTEListBlocks via its `nestList` property.
6
+ *
7
+ * Must be registered before TextBlockSearchStrategy because RTEListItemBlock
8
+ * extends RTETextBlock and would otherwise be matched by the parent class check.
9
+ */
10
+ export class ListItemBlockSearchStrategy extends BlockSearchStrategy {
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ canHandle(block) {
15
+ return block instanceof RTEListItemBlock;
16
+ }
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ collect(block, recurse) {
21
+ const listItemBlock = block;
22
+ const result = [listItemBlock];
23
+ if (listItemBlock.nestList && listItemBlock.nestList.length > 0) {
24
+ for (const nestedList of listItemBlock.nestList) {
25
+ result.push(...recurse(nestedList.children));
26
+ }
27
+ }
28
+ return result;
29
+ }
30
+ }
@@ -0,0 +1,20 @@
1
+ import { RTETextBlock } from '../../../../../../dto/blocks/text-block';
2
+ import { BlockSearchStrategy } from './block-search-strategy.abstract';
3
+ /**
4
+ * Handles plain RTETextBlock (paragraph, heading, etc.) — a searchable leaf
5
+ * block whose text lives in its RTETextNode children.
6
+ */
7
+ export class TextBlockSearchStrategy extends BlockSearchStrategy {
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ canHandle(block) {
12
+ return block instanceof RTETextBlock;
13
+ }
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ collect(block) {
18
+ return [block];
19
+ }
20
+ }
@@ -0,0 +1,266 @@
1
+ import stateEntityRenderingRegistry from '../../../../../slimmers/controllers/state-entity-rendering-registry';
2
+ import { tryGetDocument } from '../../../../../../../utils/try-get-document';
3
+ import { RTECodeBlockNode } from '../../../../../dto/nodes/code-block-node';
4
+ import { VegaDarkModeStyleController } from '../../../../../../../helpers/theme/controllers/dark-mode-style-controller';
5
+ // Light-mode values (used as CSS var() fall-backs).
6
+ // Dark-mode values are registered via VegaDarkModeStyleController below.
7
+ const HIGHLIGHT_BG_LIGHT = '255, 220, 0, 0.35';
8
+ const HIGHLIGHT_ACTIVE_BG_LIGHT = '255, 150, 0, 0.5';
9
+ // Dark-mode: brighter yellow/orange tones stand out on dark backgrounds.
10
+ const HIGHLIGHT_BG_DARK = '255, 235, 0, 0.55';
11
+ const HIGHLIGHT_ACTIVE_BG_DARK = '255, 190, 0, 0.7';
12
+ // CSS var() expressions that auto-switch between light and dark.
13
+ const HIGHLIGHT_BG = `rgba(var(--v-rte-find-highlight-bg, ${HIGHLIGHT_BG_LIGHT}))`;
14
+ const HIGHLIGHT_ACTIVE_BG = `rgba(var(--v-rte-find-highlight-active-bg, ${HIGHLIGHT_ACTIVE_BG_LIGHT}))`;
15
+ /**
16
+ * Manages highlights for the Find & Replace extension using a DOM overlay.
17
+ *
18
+ * Instead of modifying the RTE content tree (which causes re-renders, cursor
19
+ * jumping, and VegaChange events), this manager renders semi-transparent
20
+ * highlight rectangles in an absolutely-positioned overlay container.
21
+ *
22
+ * The overlay lives inside `.rich-text-editor-container` (the RTE's scroll
23
+ * container) so highlight divs scroll naturally with the text content.
24
+ * `pointer-events: none` ensures highlights don't interfere with user
25
+ * interaction (selection, typing, clicking).
26
+ *
27
+ * Position computation uses `Range.getClientRects()` on the actual text DOM
28
+ * nodes (resolved via `stateEntityRenderingRegistry.getDOMByEntity`).
29
+ */
30
+ export class FindReplaceHighlightManager {
31
+ constructor() {
32
+ this.overlayContainer = null;
33
+ // Register dark-mode overrides so `html.dark { --v-rte-find-highlight-*: ... }` is generated.
34
+ // CSS variables cascade into shadow DOM and update automatically when html.dark is toggled.
35
+ VegaDarkModeStyleController.registerCustomDarkModeColor({
36
+ 'rte-find-highlight-bg': HIGHLIGHT_BG_DARK,
37
+ 'rte-find-highlight-active-bg': HIGHLIGHT_ACTIVE_BG_DARK,
38
+ 'rte-find-highlight-blend': 'lighten',
39
+ });
40
+ }
41
+ /**
42
+ * Renders highlight overlays for all matches, with the active match
43
+ * visually distinct. Clears any existing highlights before applying.
44
+ *
45
+ * @typedef HTMLVegaRichTextEditorElement - The type of the host rich text editor element.
46
+ * @param {ReadonlyArray<FindMatch>} matches - All search results.
47
+ * @param {number} currentIndex - 0-based index of the active match (-1 = none).
48
+ * @param {HTMLVegaRichTextEditorElement} host - The RTE host element.
49
+ * @param {boolean} scrollToActive - Whether to scroll the active highlight into view.
50
+ */
51
+ apply(matches, currentIndex, host, scrollToActive = true) {
52
+ this.clear();
53
+ if (matches.length === 0) {
54
+ return;
55
+ }
56
+ const overlay = this.getOrCreateOverlay(host);
57
+ if (overlay) {
58
+ const overlayRect = overlay.getBoundingClientRect();
59
+ let activeHighlightDiv = null;
60
+ matches.forEach((match, matchIndex) => {
61
+ const isActive = matchIndex === currentIndex;
62
+ const bg = isActive ? HIGHLIGHT_ACTIVE_BG : HIGHLIGHT_BG;
63
+ match.nodes.forEach((nodePosition) => {
64
+ const highlightDiv = this.createHighlightRectangles(overlay, overlayRect, nodePosition, bg);
65
+ if (isActive && !activeHighlightDiv && highlightDiv) {
66
+ activeHighlightDiv = highlightDiv;
67
+ }
68
+ });
69
+ });
70
+ if (scrollToActive && activeHighlightDiv) {
71
+ activeHighlightDiv.scrollIntoView({ block: 'center', inline: 'nearest' });
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * Removes all highlight overlay elements.
77
+ * Safe to call multiple times or when no highlights are active.
78
+ */
79
+ clear() {
80
+ if (this.overlayContainer) {
81
+ this.overlayContainer.innerHTML = '';
82
+ }
83
+ }
84
+ // ─── Private helpers ──────────────────────────────────────────────────────────
85
+ /**
86
+ * Gets the existing overlay container or creates one inside the RTE's
87
+ * scroll container (`.rich-text-editor-container`).
88
+ *
89
+ * @typedef HTMLVegaRichTextEditorElement - The type of the host rich text editor element.
90
+ * @param {HTMLVegaRichTextEditorElement} host - The RTE host element.
91
+ * @returns {HTMLDivElement | null} The overlay container, or null in SSR environments.
92
+ */
93
+ getOrCreateOverlay(host) {
94
+ if (this.overlayContainer && this.overlayContainer.isConnected) {
95
+ return this.overlayContainer;
96
+ }
97
+ const safeDocument = tryGetDocument();
98
+ if (safeDocument) {
99
+ const scrollContainer = host.shadowRoot.querySelector('.rich-text-editor-container');
100
+ if (scrollContainer) {
101
+ // The overlay is appended as the last child (paints above content).
102
+ // Blend mode is controlled via CSS variable --v-rte-find-highlight-blend:
103
+ // - Light (default): multiply (yellow darkens white bg, text readable)
104
+ // - Dark (via html.dark override): lighten (yellow visible on dark bg,
105
+ // white text unaffected since lighten(255, x) = 255)
106
+ // CSS vars cascade into shadow DOM and react to theme switches instantly.
107
+ const overlay = safeDocument.createElement('div');
108
+ overlay.style.position = 'absolute';
109
+ overlay.style.top = '0';
110
+ overlay.style.left = '0';
111
+ overlay.style.width = '100%';
112
+ overlay.style.height = '100%';
113
+ overlay.style.pointerEvents = 'none';
114
+ overlay.style.overflow = 'visible';
115
+ overlay.style.setProperty('mix-blend-mode', 'var(--v-rte-find-highlight-blend, multiply)');
116
+ scrollContainer.appendChild(overlay);
117
+ this.overlayContainer = overlay;
118
+ return overlay;
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ /**
124
+ * Creates absolutely-positioned highlight rectangles for a single node
125
+ * position within a match.
126
+ *
127
+ * Uses client rectangle extraction from `Range` to handle multi-line matches (where a
128
+ * single text range may produce multiple rectangles due to line wrapping).
129
+ *
130
+ * @param {HTMLDivElement} overlay - The overlay container.
131
+ * @param {DOMRect} overlayRect - The overlay's bounding client rect (for coordinate conversion).
132
+ * @param {NodePosition} nodePosition - The node and character offsets for this segment.
133
+ * @param {string} bg - The background color to apply.
134
+ * @returns {Nullable<HTMLDivElement>} The first created highlight div for this node segment.
135
+ */
136
+ createHighlightRectangles(overlay, overlayRect, nodePosition, bg) {
137
+ const domElement = stateEntityRenderingRegistry.getDOMByEntity(nodePosition.node);
138
+ if (!domElement) {
139
+ return null;
140
+ }
141
+ const range = this.buildRange(domElement, nodePosition);
142
+ if (!range) {
143
+ return null;
144
+ }
145
+ // eslint-disable-next-line spellcheck/spell-checker -- DOM API method name is fixed by platform.
146
+ const clientRectList = range.getClientRects();
147
+ const safeDocument = tryGetDocument();
148
+ let firstHighlightDiv = null;
149
+ if (safeDocument) {
150
+ for (let i = 0; i < clientRectList.length; i++) {
151
+ const rect = clientRectList[i];
152
+ if (rect.width === 0 || rect.height === 0) {
153
+ continue;
154
+ }
155
+ const div = safeDocument.createElement('div');
156
+ div.style.position = 'absolute';
157
+ div.style.top = `${rect.top - overlayRect.top}px`;
158
+ div.style.left = `${rect.left - overlayRect.left}px`;
159
+ div.style.width = `${rect.width}px`;
160
+ div.style.height = `${rect.height}px`;
161
+ div.style.backgroundColor = bg;
162
+ div.style.pointerEvents = 'none';
163
+ div.style.borderRadius = '2px';
164
+ overlay.appendChild(div);
165
+ if (!firstHighlightDiv) {
166
+ firstHighlightDiv = div;
167
+ }
168
+ }
169
+ }
170
+ return firstHighlightDiv;
171
+ }
172
+ /**
173
+ * Builds a DOM Range for the given node position.
174
+ *
175
+ * For standard text nodes (RTETextNode rendered as `<span>`), the first
176
+ * child is a Text node and offsets apply directly.
177
+ *
178
+ * For code block nodes (`<vega-code-block>` with shadow DOM), we traverse
179
+ * the shadow root's `<code>` element child spans to locate the correct
180
+ * text positions by accumulated character offset.
181
+ *
182
+ * @param {HTMLElement} domElement - The registered DOM element for the node.
183
+ * @param {NodePosition} nodePosition - The character offsets within the node.
184
+ * @returns {Nullable<Range>} A Range if successfully built, or null on failure.
185
+ */
186
+ buildRange(domElement, nodePosition) {
187
+ // <vega-code-block> wraps syntax-highlighted tokens inside a shadow root <code> element.
188
+ if (nodePosition.node instanceof RTECodeBlockNode) {
189
+ return this.buildCodeBlockRange(domElement, nodePosition);
190
+ }
191
+ // Standard text node: <span> with a direct Text child.
192
+ const textNode = domElement.firstChild;
193
+ if (!textNode) {
194
+ return null;
195
+ }
196
+ const safeDocument = tryGetDocument();
197
+ if (safeDocument) {
198
+ const range = safeDocument.createRange();
199
+ try {
200
+ range.setStart(textNode, nodePosition.startOffset);
201
+ range.setEnd(textNode, nodePosition.endOffset);
202
+ return range;
203
+ }
204
+ catch (_a) {
205
+ return null;
206
+ }
207
+ }
208
+ return null;
209
+ }
210
+ /**
211
+ * Builds a Range inside a `<vega-code-block>` shadow DOM element.
212
+ *
213
+ * `<vega-code-block>` renders its content inside a shadow root with a `<code>`
214
+ * element containing multiple child `<span>` nodes (one per syntax token).
215
+ * This method walks all Text nodes within that `<code>` element, accumulating
216
+ * character length until the positions corresponding to startOffset / endOffset
217
+ * are found.
218
+ *
219
+ * @param {HTMLElement} domElement - The `<vega-code-block>` host element.
220
+ * @param {NodePosition} nodePosition - The character offsets within the node.
221
+ * @returns {Range | null} A Range if successfully built, or null on failure.
222
+ */
223
+ buildCodeBlockRange(domElement, nodePosition) {
224
+ const shadowRoot = domElement.shadowRoot;
225
+ const codeEl = shadowRoot.querySelector('code');
226
+ if (!codeEl) {
227
+ return null;
228
+ }
229
+ const safeDocument = tryGetDocument();
230
+ if (safeDocument) {
231
+ const walker = safeDocument.createTreeWalker(codeEl, NodeFilter.SHOW_TEXT);
232
+ let accumulated = 0;
233
+ let startNode = null;
234
+ let startLocal = 0;
235
+ let endNode = null;
236
+ let endLocal = 0;
237
+ let current = walker.nextNode();
238
+ while (current) {
239
+ const len = current.textContent.length;
240
+ if (!startNode && accumulated + len > nodePosition.startOffset) {
241
+ startNode = current;
242
+ startLocal = nodePosition.startOffset - accumulated;
243
+ }
244
+ if (accumulated + len >= nodePosition.endOffset) {
245
+ endNode = current;
246
+ endLocal = nodePosition.endOffset - accumulated;
247
+ break;
248
+ }
249
+ accumulated += len;
250
+ current = walker.nextNode();
251
+ }
252
+ if (startNode && endNode) {
253
+ const range = safeDocument.createRange();
254
+ try {
255
+ range.setStart(startNode, startLocal);
256
+ range.setEnd(endNode, endLocal);
257
+ return range;
258
+ }
259
+ catch (_a) {
260
+ return null;
261
+ }
262
+ }
263
+ }
264
+ return null;
265
+ }
266
+ }
@@ -0,0 +1,346 @@
1
+ import { RTECodeBlock } from '../../../../../dto/blocks/code-block';
2
+ import { CodeBlockSearchStrategy } from './block-search-strategies/code-block-search-strategy';
3
+ import { ListItemBlockSearchStrategy } from './block-search-strategies/list-item-block-search-strategy';
4
+ import { TextBlockSearchStrategy } from './block-search-strategies/text-block-search-strategy';
5
+ import { ContainerBlockSearchStrategy } from './block-search-strategies/container-block-search-strategy';
6
+ /**
7
+ * Sentinel character inserted into the flat text in place of a non-editable
8
+ * node (e.g. a token). It keeps surrounding searchable segments from bridging
9
+ * across the removed node — producing false matches — while never matching any
10
+ * user keyword. `\u0000` (NULL) does not appear in editable document text.
11
+ */
12
+ const NON_EDITABLE_SENTINEL = '\u0000';
13
+ /**
14
+ * Manages the in-memory state for a single Find & Replace session.
15
+ *
16
+ * One instance is created per editor host inside VegaRTEFindReplaceExtension
17
+ * during `initialExtensionAfterLoad`. It holds all search results, the
18
+ * current navigation index, and a per-block flat-text cache.
19
+ *
20
+ * Public API:
21
+ * - `search(content, keyword)` — run a search, replace current state using current options
22
+ * - `next()` / `prev()` — navigate through results
23
+ * - `getCurrentMatch()` / `getMatches()` / `getTotal()` / `getCurrentIndex()` — read state
24
+ * - `clear()` — reset everything
25
+ */
26
+ export class FindReplaceState {
27
+ constructor() {
28
+ this.matches = [];
29
+ this.currentIndex = -1;
30
+ this.flatCache = new WeakMap();
31
+ this.cachedContent = null;
32
+ this.matchCase = false;
33
+ this.wholeWords = false;
34
+ /**
35
+ * Ordered strategy chain used to classify and traverse each block type.
36
+ * More specific types (RTEListItemBlock) must precede their parent class (RTETextBlock).
37
+ */
38
+ this.blockSearchStrategies = [
39
+ new CodeBlockSearchStrategy(),
40
+ new ListItemBlockSearchStrategy(),
41
+ new TextBlockSearchStrategy(),
42
+ new ContainerBlockSearchStrategy(),
43
+ ];
44
+ }
45
+ /**
46
+ * Runs a fresh search over the given content and replaces all previous results.
47
+ *
48
+ * The flat-text cache is invalidated whenever the content reference changes
49
+ * (i.e. after the user edits the document). When only the keyword or options
50
+ * change (user typing in the find input), the cache is reused.
51
+ *
52
+ * @param {VegaRTEContent} content - The root content DTO to search.
53
+ * @param {string} keyword - The search keyword entered by the user.
54
+ * Uses the currently stored `matchCase` and `wholeWords` options.
55
+ */
56
+ search(content, keyword) {
57
+ this.invalidateCacheIfNeeded(content);
58
+ if (!keyword) {
59
+ this.matches = [];
60
+ this.currentIndex = -1;
61
+ return;
62
+ }
63
+ const regex = this.buildRegExp(keyword, this.getFindOptions());
64
+ const blocks = this.collectSearchableBlocks(content.children);
65
+ const results = [];
66
+ for (const block of blocks) {
67
+ let cached = this.flatCache.get(block);
68
+ if (!cached) {
69
+ cached =
70
+ block instanceof RTECodeBlock
71
+ ? this.buildCodeBlockFlat(block)
72
+ : this.buildTextBlockFlat(block);
73
+ this.flatCache.set(block, cached);
74
+ }
75
+ const { flatText, segments } = cached;
76
+ if (!flatText) {
77
+ continue;
78
+ }
79
+ regex.lastIndex = 0;
80
+ let match;
81
+ while ((match = regex.exec(flatText)) !== null) {
82
+ // match[1] is always the keyword capture group. In wholeWords mode,
83
+ // match[0] may include a leading non-letter boundary char, so we
84
+ // compute the actual start from the end offset minus the keyword length.
85
+ const matchEnd = match.index + match[0].length;
86
+ const matchStart = matchEnd - match[1].length;
87
+ const nodes = this.flatOffsetToNodePositions(segments, matchStart, matchEnd);
88
+ if (nodes.length > 0) {
89
+ results.push({ block, nodes, matchText: match[1] });
90
+ }
91
+ }
92
+ }
93
+ this.matches = results;
94
+ this.currentIndex = results.length > 0 ? 0 : -1;
95
+ }
96
+ /**
97
+ * Advances to the next match, wrapping around to the first.
98
+ */
99
+ next() {
100
+ if (this.matches.length === 0) {
101
+ return;
102
+ }
103
+ this.currentIndex = (this.currentIndex + 1) % this.matches.length;
104
+ }
105
+ /**
106
+ * Moves to the previous match, wrapping around to the last.
107
+ */
108
+ prev() {
109
+ if (this.matches.length === 0) {
110
+ return;
111
+ }
112
+ this.currentIndex = (this.currentIndex - 1 + this.matches.length) % this.matches.length;
113
+ }
114
+ /**
115
+ * Sets the current index directly. Clamps to valid range.
116
+ *
117
+ * @param {number} index - The desired index.
118
+ */
119
+ setCurrentIndex(index) {
120
+ if (this.matches.length === 0) {
121
+ this.currentIndex = -1;
122
+ return;
123
+ }
124
+ this.currentIndex = Math.max(0, Math.min(index, this.matches.length - 1));
125
+ }
126
+ /**
127
+ * Returns the currently active match, or null if there are no results.
128
+ *
129
+ * @returns {FindMatch | null} The currently active match, or null if there are no results.
130
+ */
131
+ getCurrentMatch() {
132
+ var _a;
133
+ return (_a = this.matches[this.currentIndex]) !== null && _a !== void 0 ? _a : null;
134
+ }
135
+ /**
136
+ * Returns all matches from the last search.
137
+ *
138
+ * @returns {ReadonlyArray<FindMatch>} All matches from the last search.
139
+ */
140
+ getMatches() {
141
+ return this.matches;
142
+ }
143
+ /**
144
+ * Returns the total number of matches from the last search.
145
+ *
146
+ * @returns {number} The total number of matches.
147
+ */
148
+ getTotal() {
149
+ return this.matches.length;
150
+ }
151
+ /**
152
+ * Returns the 0-based index of the current match, or -1 when there are no results.
153
+ *
154
+ * @returns {number} The 0-based index, or -1 when there are no results.
155
+ */
156
+ getCurrentIndex() {
157
+ return this.currentIndex;
158
+ }
159
+ /**
160
+ * Resets only match results and navigation index.
161
+ * The flat-text cache and cached content reference are preserved so that
162
+ * a subsequent search on the same document (e.g. after a keyword change)
163
+ * can reuse the already-computed block flat texts.
164
+ */
165
+ clearResults() {
166
+ this.matches = [];
167
+ this.currentIndex = -1;
168
+ }
169
+ /**
170
+ * Resets all search state, including results, navigation index, and flat-text cache.
171
+ * Use this when the session ends (e.g. panel closed) or the host changes.
172
+ */
173
+ clear() {
174
+ this.matches = [];
175
+ this.currentIndex = -1;
176
+ this.flatCache = new WeakMap();
177
+ this.cachedContent = null;
178
+ }
179
+ /**
180
+ * Sets the matchCase search option.
181
+ *
182
+ * @param {boolean} enabled - Whether to enable case-sensitive matching.
183
+ */
184
+ setMatchCase(enabled) {
185
+ this.matchCase = enabled;
186
+ }
187
+ /**
188
+ * Sets the wholeWords search option.
189
+ *
190
+ * @param {boolean} enabled - Whether to enable whole-word matching.
191
+ */
192
+ setWholeWords(enabled) {
193
+ this.wholeWords = enabled;
194
+ }
195
+ // ─── Private helpers ──────────────────────────────────────────────────────────
196
+ /**
197
+ * Invalidates the flat-text cache when the content reference has changed.
198
+ * Since flushChanges always produces a new VegaRTEContent via clone(), a
199
+ * changed reference reliably indicates the document has been edited.
200
+ *
201
+ * @param {VegaRTEContent} content - The incoming content reference.
202
+ */
203
+ invalidateCacheIfNeeded(content) {
204
+ if (content !== this.cachedContent) {
205
+ this.flatCache = new WeakMap();
206
+ this.cachedContent = content;
207
+ }
208
+ }
209
+ /**
210
+ * Builds a RegExp from the keyword and search options.
211
+ *
212
+ * @param {string} keyword - The raw user input.
213
+ * @param {FindOptions} options - Search options.
214
+ * @returns {RegExp} The compiled regular expression.
215
+ */
216
+ buildRegExp(keyword, options) {
217
+ const escaped = this.escapeRegExp(keyword);
218
+ // eslint-disable-next-line spellcheck/spell-checker
219
+ let flags = 'gu';
220
+ if (!options.matchCase) {
221
+ flags += 'i';
222
+ }
223
+ if (options.wholeWords) {
224
+ // Aligned with CKEditor's findByTextCallback non-letter boundary group.
225
+ //
226
+ // The keyword is wrapped in a capturing group (match[1]) so the search
227
+ // loop can compute the exact start offset without lookbehind assertions
228
+ // (not supported in Safari < 16.4). The non-capturing prefix group
229
+ // `(?:^|nonLetter)` may consume one boundary char, which is why we
230
+ // derive matchStart as matchEnd - match[1].length rather than match.index.
231
+ const nonLetter = '[^a-zA-Z\u00C0-\u024F\u1E00-\u1EFF]';
232
+ const prefix = !new RegExp(`^${nonLetter}`).test(keyword) ? `(?:^|${nonLetter})` : '';
233
+ const suffix = !new RegExp(`${nonLetter}$`).test(keyword) ? `(?=${nonLetter}|$)` : '';
234
+ return new RegExp(`${prefix}(${escaped})${suffix}`, flags);
235
+ }
236
+ return new RegExp(`(${escaped})`, flags);
237
+ }
238
+ /**
239
+ * Escapes all regex special characters so the keyword is treated as literal text.
240
+ *
241
+ * @param {string} text - The raw input string.
242
+ * @returns {string} The escaped string safe for use in a RegExp constructor.
243
+ */
244
+ escapeRegExp(text) {
245
+ return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
246
+ }
247
+ /**
248
+ * Recursively collects all searchable leaf blocks (RTETextBlock and RTECodeBlock)
249
+ * from a block tree in document order.
250
+ *
251
+ * Each block is dispatched to the first matching BlockSearchStrategy.
252
+ *
253
+ * @param {RTEBlock[]} blocks - The block array to traverse.
254
+ * @returns {(RTETextBlock | RTECodeBlock)[]} Ordered list of searchable leaf blocks.
255
+ */
256
+ collectSearchableBlocks(blocks) {
257
+ const result = [];
258
+ const recurse = this.collectSearchableBlocks.bind(this);
259
+ for (const block of blocks) {
260
+ const strategy = this.blockSearchStrategies.find((s) => s.canHandle(block));
261
+ if (strategy) {
262
+ result.push(...strategy.collect(block, recurse));
263
+ }
264
+ }
265
+ return result;
266
+ }
267
+ /**
268
+ * Builds the flat text and segment table for a RTETextBlock.
269
+ *
270
+ * Non-editable child nodes (e.g. tokens, which render as read-only chips)
271
+ * are excluded from the searchable flat text. Each is replaced by a single
272
+ * sentinel character so that adjacent editable segments cannot bridge across
273
+ * the token to form a false match, while keeping segment offsets aligned.
274
+ *
275
+ * @param {RTETextBlock} block - The text block to flatten.
276
+ * @returns {BlockFlatCache} The flat text string and segment mapping.
277
+ */
278
+ buildTextBlockFlat(block) {
279
+ const segments = [];
280
+ const flatParts = [];
281
+ let cursor = 0;
282
+ for (const node of block.children) {
283
+ if (!node.isContentEditable()) {
284
+ flatParts.push(NON_EDITABLE_SENTINEL);
285
+ cursor += NON_EDITABLE_SENTINEL.length;
286
+ continue;
287
+ }
288
+ const len = node.text.length;
289
+ segments.push({ node, start: cursor, end: cursor + len });
290
+ flatParts.push(node.text);
291
+ cursor += len;
292
+ }
293
+ return {
294
+ flatText: flatParts.join(''),
295
+ segments,
296
+ };
297
+ }
298
+ /**
299
+ * Builds the flat text and segment table for a RTECodeBlock.
300
+ *
301
+ * @param {RTECodeBlock} block - The code block to flatten.
302
+ * @returns {BlockFlatCache} The flat text string and segment mapping.
303
+ */
304
+ buildCodeBlockFlat(block) {
305
+ const codeNode = block.children[0];
306
+ if (!codeNode) {
307
+ return { flatText: '', segments: [] };
308
+ }
309
+ const flatText = codeNode.text;
310
+ return {
311
+ flatText,
312
+ segments: [{ node: codeNode, start: 0, end: flatText.length }],
313
+ };
314
+ }
315
+ /**
316
+ * Maps a flat [matchStart, matchEnd) range back to individual node positions.
317
+ *
318
+ * @param {(TextSegment | CodeSegment)[]} segments - The segment table.
319
+ * @param {number} matchStart - Inclusive start in the flat text.
320
+ * @param {number} matchEnd - Exclusive end in the flat text.
321
+ * @returns {NodePosition[]} Ordered list of node-local positions spanning the match.
322
+ */
323
+ flatOffsetToNodePositions(segments, matchStart, matchEnd) {
324
+ const positions = [];
325
+ for (const segment of segments) {
326
+ if (segment.end <= matchStart) {
327
+ continue;
328
+ }
329
+ if (segment.start >= matchEnd) {
330
+ break;
331
+ }
332
+ const localStart = Math.max(0, matchStart - segment.start);
333
+ const localEnd = Math.min(segment.end, matchEnd) - segment.start;
334
+ positions.push({ node: segment.node, startOffset: localStart, endOffset: localEnd });
335
+ }
336
+ return positions;
337
+ }
338
+ /**
339
+ * Builds the current find options from the shared context.
340
+ *
341
+ * @returns {FindOptions} The options for the search engine.
342
+ */
343
+ getFindOptions() {
344
+ return { matchCase: this.matchCase, wholeWords: this.wholeWords };
345
+ }
346
+ }