@globalpayments/vega 2.70.0 → 2.75.1

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 (624) hide show
  1. package/dist/cjs/{app-globals-837be7a6.js → app-globals-35614ce8.js} +8 -7
  2. package/dist/cjs/{child-nodes-event-prevent-slimmer-f8840f1b.js → child-nodes-event-prevent-slimmer-aca87dac.js} +1 -1
  3. package/dist/cjs/click-outside-only-to-dismiss-strategy-407f6d1e.js +32 -0
  4. package/dist/cjs/{code-block-bb4cbafa.js → code-block-c1d2e6a8.js} +15 -67
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-cf7b4bda.js → component-value-history-controller-slimmer.abstract-787c67dc.js} +5 -5
  6. package/dist/cjs/{date-required-rule-4e1f84fd.js → date-required-rule-30ee62d0.js} +3 -3
  7. package/dist/cjs/{design-token-00fe8d2f.js → design-token-bb39e07e.js} +6 -7
  8. package/dist/cjs/{dom-node-subject-observer-factory-f040608b.js → dom-node-subject-observer-factory-b5e71bf6.js} +9 -1
  9. package/dist/cjs/{dto-renderer-manager-c917dade.js → dto-renderer-manager-03e1a038.js} +219 -28
  10. package/dist/cjs/{element-appender-slimmer-f8e89f37.js → element-appender-slimmer-daa8b9f5.js} +205 -43
  11. package/dist/cjs/{event-emit-slimmer-7afe8d78.js → event-emit-slimmer-2dacabbd.js} +2 -2
  12. package/dist/cjs/{form-field-controller-slimmer-f865d397.js → form-field-controller-slimmer-aef2fb1e.js} +3 -3
  13. package/dist/cjs/{function-extension-28a4d781.js → function-extension-cfbbc57e.js} +40 -19
  14. package/dist/cjs/{image-annotation-action-8843adbf.js → image-annotation-action-3fa501b7.js} +3 -3
  15. package/dist/cjs/index-58ea899e.js +4 -4
  16. package/dist/cjs/{index-4b896e76.js → index-95fca64f.js} +2 -2
  17. package/dist/cjs/index.cjs.js +17 -19
  18. package/dist/cjs/{inject-keyboard-manager-13c66257.js → inject-keyboard-manager-d21b4387.js} +1 -1
  19. package/dist/cjs/{internal-vega-event-manager-45d451de.js → internal-vega-event-manager-6befeb34.js} +16 -4
  20. package/dist/cjs/{keyboard-manager-af0d08a6.js → keyboard-manager-3dea6b28.js} +1 -1
  21. package/dist/cjs/{keyboard-manager-slimmer-62f072cd.js → keyboard-manager-slimmer-0d45f944.js} +1 -1
  22. package/dist/cjs/{language-extension-99c6fb40.js → language-extension-8c4a56ff.js} +2 -2
  23. package/dist/cjs/loader.cjs.js +13 -13
  24. package/dist/cjs/month-view-generator-49cc5fc2.js +102 -0
  25. package/dist/cjs/{public-rules-759c745b.js → public-rules-dc2a8d62.js} +15 -15
  26. package/dist/cjs/{range-0b597850.js → range-79b668e7.js} +1 -1
  27. package/dist/cjs/{responsive-format-facade-1d9c13a9.js → responsive-format-facade-d5dba942.js} +4 -4
  28. package/dist/cjs/{rich-text-editor-required-rule-92d0640e.js → rich-text-editor-required-rule-ba312af9.js} +1 -1
  29. package/dist/cjs/sanitize-fb222510.js +131 -0
  30. package/dist/cjs/{string-format-strategy.abstract-07a95352.js → string-format-strategy.abstract-63514c60.js} +1 -1
  31. package/dist/cjs/{string-input-formatter-slimmer-8236b5e1.js → string-input-formatter-slimmer-f3e0bbc7.js} +4 -4
  32. package/dist/cjs/{string-mask-strategy-6bdad95e.js → string-mask-strategy-d23ac21a.js} +2 -2
  33. package/dist/cjs/{style-formatter-1daa8371.js → style-formatter-49693da7.js} +2 -2
  34. package/dist/cjs/{sub-state-notify-slimmer-78682046.js → sub-state-notify-slimmer-468e19aa.js} +2 -2
  35. package/dist/cjs/{sub-state-observer-slimmer-73aecfff.js → sub-state-observer-slimmer-5d0b8ac3.js} +2 -2
  36. package/dist/cjs/{time-required-rule-ccf178e7.js → time-required-rule-c96ecdc9.js} +3 -3
  37. package/dist/cjs/{type-guard-f12b5bae.js → type-guard-a0f026d8.js} +1236 -1
  38. package/dist/cjs/{valid-credit-card-number-rule-ce5c9147.js → valid-credit-card-number-rule-c854bed9.js} +1 -1
  39. package/dist/cjs/vega-accordion.cjs.entry.js +11 -12
  40. package/dist/cjs/vega-app-header-button.cjs.entry.js +35 -18
  41. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-box.cjs.entry.js +15 -16
  43. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  44. package/dist/cjs/vega-button-circle.cjs.entry.js +15 -16
  45. package/dist/cjs/vega-button-group_2.cjs.entry.js +60 -10
  46. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  47. package/dist/cjs/vega-button.cjs.entry.js +15 -15
  48. package/dist/cjs/vega-calendar_4.cjs.entry.js +87 -909
  49. package/dist/cjs/vega-card.cjs.entry.js +14 -15
  50. package/dist/cjs/vega-carousel.cjs.entry.js +14 -14
  51. package/dist/cjs/vega-checkbox_2.cjs.entry.js +7 -7
  52. package/dist/cjs/vega-chip.cjs.entry.js +16 -17
  53. package/dist/cjs/vega-code-block.cjs.entry.js +13 -13
  54. package/dist/cjs/vega-color-picker.cjs.entry.js +6 -6
  55. package/dist/cjs/vega-combo-box.cjs.entry.js +15 -14
  56. package/dist/cjs/vega-date-picker_2.cjs.entry.js +1795 -1559
  57. package/dist/cjs/vega-dialog_2.cjs.entry.js +17 -18
  58. package/dist/cjs/vega-divider.cjs.entry.js +10 -11
  59. package/dist/cjs/vega-dropdown_5.cjs.entry.js +53 -36
  60. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  61. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  62. package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
  63. package/dist/cjs/vega-flag-icon.cjs.entry.js +10 -11
  64. package/dist/cjs/vega-flex.cjs.entry.js +15 -16
  65. package/dist/cjs/vega-font.cjs.entry.js +14 -15
  66. package/dist/cjs/vega-form.cjs.entry.js +9 -9
  67. package/dist/cjs/vega-grid.cjs.entry.js +14 -15
  68. package/dist/cjs/vega-icon.cjs.entry.js +14 -15
  69. package/dist/cjs/vega-image-uploader.cjs.entry.js +15 -15
  70. package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -14
  71. package/dist/cjs/vega-input-numeric.cjs.entry.js +13 -13
  72. package/dist/cjs/vega-input-passcode.cjs.entry.js +16 -13
  73. package/dist/cjs/vega-input-phone-number.cjs.entry.js +14 -14
  74. package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
  75. package/dist/cjs/vega-input-select.cjs.entry.js +189 -56
  76. package/dist/cjs/vega-input.cjs.entry.js +877 -283
  77. package/dist/cjs/{vega-internal-event-id-6d4a2c53.js → vega-internal-event-id-f2465f1b.js} +12 -4
  78. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  79. package/dist/cjs/vega-left-nav_5.cjs.entry.js +14 -15
  80. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +9 -9
  81. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  82. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +4 -4
  83. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  84. package/dist/cjs/vega-pagination.cjs.entry.js +13 -13
  85. package/dist/cjs/vega-popover_2.cjs.entry.js +20 -20
  86. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +903 -0
  87. package/dist/cjs/vega-radio_2.cjs.entry.js +10 -10
  88. package/dist/cjs/vega-rich-text-content.cjs.entry.js +9 -8
  89. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +89 -29
  90. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  91. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +16 -16
  92. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +8 -8
  93. package/dist/cjs/vega-sidenav_3.cjs.entry.js +12 -12
  94. package/dist/cjs/vega-signature-capture.cjs.entry.js +13 -14
  95. package/dist/cjs/vega-stepper.cjs.entry.js +7 -7
  96. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  97. package/dist/cjs/vega-table_11.cjs.entry.js +12 -12
  98. package/dist/cjs/vega-textarea.cjs.entry.js +7 -7
  99. package/dist/cjs/vega-time-picker_2.cjs.entry.js +41 -41
  100. package/dist/cjs/vega-toggle-switch.cjs.entry.js +6 -6
  101. package/dist/cjs/vega-tooltip_2.cjs.entry.js +14 -14
  102. package/dist/cjs/vega.cjs.js +13 -13
  103. package/dist/collection/collection-manifest.json +7 -5
  104. package/dist/collection/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.js +13 -1
  105. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +46 -3
  106. package/dist/collection/components/vega-button/vega-button.css +4 -0
  107. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.js +7 -0
  108. package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +25 -2
  109. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +31 -2
  110. package/dist/collection/components/vega-button-group/vega-button-group.js +37 -0
  111. package/dist/collection/components/vega-button-link/vega-button-link.css +4 -0
  112. package/dist/collection/components/vega-calendar/vega-calendar.js +1 -1
  113. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -1
  114. package/dist/collection/components/vega-date-picker/assets/icons.js +4 -1
  115. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +150 -0
  116. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-format-controller.js +3 -1
  117. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-keyboard-controller.js +1 -1
  118. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.js +10 -26
  119. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +107 -445
  120. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.js +5 -1
  121. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.js +24 -17
  122. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +15 -20
  123. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.js +6 -17
  124. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/constants.js +14 -0
  125. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.js +126 -0
  126. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.js +70 -0
  127. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.js +204 -0
  128. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.js +56 -0
  129. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.js +191 -0
  130. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.js +54 -0
  131. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.js +37 -0
  132. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +109 -0
  133. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +80 -0
  134. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +164 -0
  135. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +124 -0
  136. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +996 -278
  137. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +672 -3
  138. package/dist/collection/components/vega-date-picker/vega-date-picker.css +0 -11
  139. package/dist/collection/components/vega-date-picker/vega-date-picker.js +23 -40
  140. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  141. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +3 -15
  142. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +5 -1
  143. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +7 -0
  144. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -3
  145. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +3 -2
  146. package/dist/collection/components/vega-dropdown/vega-dropdown.js +50 -4
  147. package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
  148. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.js +77 -7
  149. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +51 -0
  150. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-value-controller.js +79 -0
  151. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +100 -0
  152. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +184 -0
  153. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +142 -0
  154. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-renderer.js +83 -0
  155. package/dist/collection/components/vega-input/vega-input.css +8 -0
  156. package/dist/collection/components/vega-input/vega-input.js +247 -160
  157. package/dist/collection/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.js +4 -1
  158. package/dist/collection/components/vega-input-phone-number/slimmers/renderers/phone-number-input-renderer.js +1 -1
  159. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.js +89 -0
  160. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +4 -0
  161. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +4 -0
  162. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +38 -13
  163. package/dist/collection/components/vega-input-select/vega-input-select.js +28 -8
  164. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +3 -2
  165. package/dist/collection/components/vega-modal/vega-modal.js +4 -4
  166. package/dist/collection/components/vega-popover/vega-popover.js +14 -4
  167. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.js +75 -0
  168. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.js +88 -0
  169. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.js +153 -0
  170. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.js +125 -0
  171. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-render-mode-controller.js +40 -0
  172. package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +94 -0
  173. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/slimmers/controllers/vega-progress-tracker-step-state-controller.js +43 -0
  174. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.css +79 -0
  175. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.js +84 -0
  176. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.css +69 -153
  177. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +88 -85
  178. package/dist/collection/components/vega-rich-text-editor/dto/annotations/plain-text-annotation.js +1 -1
  179. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +11 -63
  180. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +16 -0
  181. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +21 -24
  182. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +5 -1
  183. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +12 -1
  184. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +16 -10
  185. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +1 -1
  186. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +1 -1
  187. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.js +1 -0
  188. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.js +59 -0
  189. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.js +4 -0
  190. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.js +21 -0
  191. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.js +21 -0
  192. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.js +77 -0
  193. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +6 -2
  194. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +6 -0
  195. package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +2 -1
  196. package/dist/collection/components/vega-rich-text-editor/test/dto/annotations.test.js +9 -0
  197. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/html-block.test.js +39 -0
  198. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/text-block.test.js +1 -1
  199. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +186 -16
  200. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.js +186 -0
  201. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.js +22 -0
  202. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.js +22 -0
  203. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.js +26 -0
  204. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
  205. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +2 -1
  206. package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +2 -1
  207. package/dist/collection/constants/regex.js +1 -0
  208. package/dist/collection/constants/ui.js +5 -0
  209. package/dist/collection/helpers/calendar/calendar-date.js +273 -1
  210. package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +9 -0
  211. package/dist/collection/helpers/calendar/calendar-period/month-period.js +16 -4
  212. package/dist/collection/helpers/calendar/test/calendar-date.test.js +73 -0
  213. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +9 -0
  214. package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +41 -0
  215. package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +11 -0
  216. package/dist/collection/helpers/code-format/code-formatter.js +57 -7
  217. package/dist/collection/helpers/code-format/test/code-formatter.test.js +48 -0
  218. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +16 -4
  219. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +5 -1
  220. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +8 -2
  221. package/dist/collection/helpers/event-manager/test/component-event-id-map.test.js +3 -1
  222. package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +3 -1
  223. package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +62 -33
  224. package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +3 -2
  225. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.js +28 -0
  226. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.js +33 -0
  227. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.js +42 -0
  228. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.js +22 -0
  229. package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.js +1 -0
  230. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +7 -0
  231. package/dist/collection/helpers/ui/element-appender.js +35 -5
  232. package/dist/collection/types/test/type-guard.test.js +8 -1
  233. package/dist/collection/types/type-guard.js +21 -0
  234. package/dist/collection/utils/date.js +14 -3
  235. package/dist/collection/utils/e2e-utils.js +8 -2
  236. package/dist/collection/utils/sanitize.js +126 -0
  237. package/dist/collection/utils/test/date.test.js +2 -0
  238. package/dist/collection/utils/test/sanitize.test.js +65 -0
  239. package/dist/esm/{app-globals-fd4b7d97.js → app-globals-2ac60ff5.js} +8 -7
  240. package/dist/esm/{child-nodes-event-prevent-slimmer-76331524.js → child-nodes-event-prevent-slimmer-e662bee2.js} +1 -1
  241. package/dist/esm/click-outside-only-to-dismiss-strategy-3d286c1b.js +30 -0
  242. package/dist/esm/{code-block-ecb4491b.js → code-block-8ee34ab6.js} +16 -68
  243. package/dist/esm/{component-value-history-controller-slimmer.abstract-5d618b88.js → component-value-history-controller-slimmer.abstract-a61bf821.js} +5 -5
  244. package/dist/esm/{date-required-rule-8944f3bf.js → date-required-rule-47ecc28f.js} +1 -1
  245. package/dist/esm/{design-token-2d77e8f5.js → design-token-007efbaa.js} +4 -5
  246. package/dist/esm/{dom-node-subject-observer-factory-dca87b70.js → dom-node-subject-observer-factory-064ee2b2.js} +6 -2
  247. package/dist/esm/{dto-renderer-manager-d862ae78.js → dto-renderer-manager-ee1a5864.js} +219 -28
  248. package/dist/esm/{element-appender-slimmer-6791c332.js → element-appender-slimmer-35e26b5a.js} +207 -45
  249. package/dist/esm/{event-emit-slimmer-4e28e9f8.js → event-emit-slimmer-09827cec.js} +2 -2
  250. package/dist/esm/{form-field-controller-slimmer-bf071b75.js → form-field-controller-slimmer-5d9dc384.js} +4 -4
  251. package/dist/esm/{function-extension-8d39db56.js → function-extension-e8c0e43e.js} +41 -20
  252. package/dist/esm/{image-annotation-action-d0af138c.js → image-annotation-action-285d432e.js} +3 -3
  253. package/dist/esm/index-090d31ca.js +4 -4
  254. package/dist/esm/{index-c943d263.js → index-51a7da7f.js} +2 -2
  255. package/dist/esm/index.js +19 -21
  256. package/dist/esm/{inject-keyboard-manager-ffd351b9.js → inject-keyboard-manager-83d76ff5.js} +1 -1
  257. package/dist/esm/{internal-vega-event-manager-516aa721.js → internal-vega-event-manager-efb6786e.js} +16 -4
  258. package/dist/esm/{keyboard-manager-5d8f3582.js → keyboard-manager-c92808d8.js} +1 -1
  259. package/dist/esm/{keyboard-manager-slimmer-f39214e4.js → keyboard-manager-slimmer-79c78ce8.js} +1 -1
  260. package/dist/esm/{language-extension-8f51f5ff.js → language-extension-29bf8acd.js} +2 -2
  261. package/dist/esm/loader.js +15 -15
  262. package/dist/esm/month-view-generator-16192182.js +98 -0
  263. package/dist/esm/{page-resize-observer-slimmer-0bf7fbf3.js → page-resize-observer-slimmer-8744cb44.js} +1 -1
  264. package/dist/esm/{public-rules-d10e76f4.js → public-rules-724873f5.js} +15 -15
  265. package/dist/esm/{range-f7b9e2fb.js → range-5257c062.js} +1 -1
  266. package/dist/esm/{responsive-format-facade-267935ae.js → responsive-format-facade-28ee2dbd.js} +6 -6
  267. package/dist/esm/{rich-text-editor-required-rule-774b822b.js → rich-text-editor-required-rule-873e2e67.js} +1 -1
  268. package/dist/esm/sanitize-fd0cb40d.js +129 -0
  269. package/dist/esm/{string-format-strategy.abstract-452f4398.js → string-format-strategy.abstract-fc60db79.js} +1 -1
  270. package/dist/esm/{string-input-formatter-slimmer-3acd240c.js → string-input-formatter-slimmer-ee32b1fd.js} +4 -4
  271. package/dist/esm/{string-mask-strategy-6232a1c1.js → string-mask-strategy-0b0accaa.js} +2 -2
  272. package/dist/esm/{style-formatter-3f88c491.js → style-formatter-314b37f3.js} +2 -2
  273. package/dist/esm/{sub-state-notify-slimmer-56380f02.js → sub-state-notify-slimmer-4453047a.js} +2 -2
  274. package/dist/esm/{sub-state-observer-slimmer-3504e2f2.js → sub-state-observer-slimmer-202ec7dc.js} +2 -2
  275. package/dist/esm/{time-required-rule-a01163b5.js → time-required-rule-5fa43804.js} +1 -1
  276. package/dist/esm/{type-guard-12f7654b.js → type-guard-c65a227d.js} +1215 -2
  277. package/dist/esm/{ui-8424715a.js → ui-28fd4193.js} +1 -1
  278. package/dist/esm/{valid-credit-card-number-rule-81443274.js → valid-credit-card-number-rule-666c415d.js} +1 -1
  279. package/dist/esm/vega-accordion.entry.js +13 -14
  280. package/dist/esm/vega-app-header-button.entry.js +37 -20
  281. package/dist/esm/vega-banner.entry.js +3 -3
  282. package/dist/esm/vega-box.entry.js +17 -18
  283. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  284. package/dist/esm/vega-button-circle.entry.js +17 -18
  285. package/dist/esm/vega-button-group_2.entry.js +60 -10
  286. package/dist/esm/vega-button-link.entry.js +5 -5
  287. package/dist/esm/vega-button.entry.js +17 -17
  288. package/dist/esm/vega-calendar_4.entry.js +46 -868
  289. package/dist/esm/vega-card.entry.js +16 -17
  290. package/dist/esm/vega-carousel.entry.js +16 -16
  291. package/dist/esm/vega-checkbox_2.entry.js +9 -9
  292. package/dist/esm/vega-chip.entry.js +18 -19
  293. package/dist/esm/vega-code-block.entry.js +14 -14
  294. package/dist/esm/vega-color-picker.entry.js +8 -8
  295. package/dist/esm/vega-combo-box.entry.js +17 -16
  296. package/dist/esm/vega-date-picker_2.entry.js +1786 -1550
  297. package/dist/esm/vega-dialog_2.entry.js +19 -20
  298. package/dist/esm/vega-divider.entry.js +12 -13
  299. package/dist/esm/vega-dropdown_5.entry.js +55 -38
  300. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  301. package/dist/esm/vega-field-label.entry.js +3 -3
  302. package/dist/esm/vega-file-uploader.entry.js +8 -8
  303. package/dist/esm/vega-flag-icon.entry.js +12 -13
  304. package/dist/esm/vega-flex.entry.js +17 -18
  305. package/dist/esm/vega-font.entry.js +16 -17
  306. package/dist/esm/vega-form.entry.js +11 -11
  307. package/dist/esm/vega-grid.entry.js +16 -17
  308. package/dist/esm/vega-icon.entry.js +16 -17
  309. package/dist/esm/vega-image-uploader.entry.js +17 -17
  310. package/dist/esm/vega-input-credit-card.entry.js +16 -16
  311. package/dist/esm/vega-input-numeric.entry.js +15 -15
  312. package/dist/esm/vega-input-passcode.entry.js +18 -15
  313. package/dist/esm/vega-input-phone-number.entry.js +16 -16
  314. package/dist/esm/vega-input-range.entry.js +9 -9
  315. package/dist/esm/vega-input-select.entry.js +191 -58
  316. package/dist/esm/vega-input.entry.js +880 -286
  317. package/dist/esm/{vega-internal-event-id-5c3e5f7f.js → vega-internal-event-id-4a06d705.js} +7 -3
  318. package/dist/esm/vega-item-toggle.entry.js +4 -4
  319. package/dist/esm/vega-left-nav_5.entry.js +16 -17
  320. package/dist/esm/vega-loader-wrapper_2.entry.js +11 -11
  321. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  322. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  323. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  324. package/dist/esm/vega-pagination.entry.js +15 -15
  325. package/dist/esm/vega-popover_2.entry.js +22 -22
  326. package/dist/esm/vega-progress-tracker_2.entry.js +898 -0
  327. package/dist/esm/vega-radio_2.entry.js +12 -12
  328. package/dist/esm/vega-rich-text-content.entry.js +10 -9
  329. package/dist/esm/vega-rich-text-editor_4.entry.js +91 -31
  330. package/dist/esm/vega-segment-control.entry.js +5 -5
  331. package/dist/esm/vega-selection-chip_2.entry.js +18 -18
  332. package/dist/esm/vega-selection-tile_2.entry.js +10 -10
  333. package/dist/esm/vega-sidenav_3.entry.js +14 -14
  334. package/dist/esm/vega-signature-capture.entry.js +15 -16
  335. package/dist/esm/vega-stepper.entry.js +9 -9
  336. package/dist/esm/vega-tab-group_2.entry.js +6 -6
  337. package/dist/esm/vega-table_11.entry.js +14 -14
  338. package/dist/esm/vega-text.entry.js +2 -2
  339. package/dist/esm/vega-textarea.entry.js +9 -9
  340. package/dist/esm/vega-time-picker_2.entry.js +22 -22
  341. package/dist/esm/vega-toggle-switch.entry.js +8 -8
  342. package/dist/esm/vega-tooltip_2.entry.js +16 -16
  343. package/dist/esm/vega.js +15 -15
  344. package/dist/sri/vega-sri-manifest.json +337 -337
  345. package/dist/types/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.d.ts +7 -0
  346. package/dist/types/components/vega-app-header-button/types.d.ts +2 -0
  347. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +14 -0
  348. package/dist/types/components/vega-button-group/types.d.ts +2 -1
  349. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.d.ts +1 -0
  350. package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.d.ts +11 -0
  351. package/dist/types/components/vega-button-group/vega-button-group-item/vega-button-group-item.d.ts +7 -0
  352. package/dist/types/components/vega-button-group/vega-button-group.d.ts +8 -0
  353. package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
  354. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.d.ts +60 -0
  355. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-value-controller.d.ts +3 -4
  356. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +29 -124
  357. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-input-renderer-base.abstract.d.ts +1 -0
  358. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.d.ts +5 -5
  359. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -3
  360. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-single-input-renderer.d.ts +1 -4
  361. package/dist/types/components/vega-date-picker/types.d.ts +9 -0
  362. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/constants.d.ts +1 -0
  363. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/dto/calendar-selection.d.ts +62 -0
  364. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-allow-repick-controller.d.ts +31 -0
  365. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.d.ts +78 -0
  366. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-min-max-date-controller.d.ts +20 -0
  367. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.d.ts +75 -0
  368. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-state-base.abstract.d.ts +29 -0
  369. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-today-controller.d.ts +15 -0
  370. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +20 -0
  371. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +19 -0
  372. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +33 -0
  373. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +27 -0
  374. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +184 -0
  375. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +6 -14
  376. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +0 -4
  377. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +2 -0
  378. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
  379. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +14 -2
  380. package/dist/types/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.d.ts +33 -6
  381. package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +27 -0
  382. package/dist/types/components/vega-input/slimmers/controllers/vega-input-value-controller.d.ts +32 -0
  383. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.d.ts +27 -0
  384. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +58 -0
  385. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.d.ts +40 -0
  386. package/dist/types/components/vega-input/slimmers/renderers/vega-input-renderer.d.ts +21 -0
  387. package/dist/types/components/vega-input/types.d.ts +4 -0
  388. package/dist/types/components/vega-input/vega-input.d.ts +67 -34
  389. package/dist/types/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.d.ts +1 -0
  390. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.d.ts +29 -0
  391. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +1 -0
  392. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -0
  393. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -1
  394. package/dist/types/components/vega-input-select/types.d.ts +5 -0
  395. package/dist/types/components/vega-input-select/vega-input-select.d.ts +12 -4
  396. package/dist/types/components/vega-modal/vega-modal.d.ts +7 -1
  397. package/dist/types/components/vega-popover/vega-popover.d.ts +2 -1
  398. package/dist/types/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.d.ts +55 -0
  399. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.d.ts +27 -0
  400. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.d.ts +63 -0
  401. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.d.ts +39 -0
  402. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-render-mode-controller.d.ts +21 -0
  403. package/dist/types/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.d.ts +21 -0
  404. package/dist/types/components/vega-progress-tracker/type.d.ts +1 -0
  405. package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/slimmers/controllers/vega-progress-tracker-step-state-controller.d.ts +12 -0
  406. package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.d.ts +22 -0
  407. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +24 -10
  408. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +7 -0
  409. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +10 -0
  410. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +8 -1
  411. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +7 -0
  412. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -1
  413. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +7 -0
  414. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +2 -2
  415. package/dist/types/components/vega-rich-text-editor/interface.d.ts +6 -1
  416. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.d.ts +13 -0
  417. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.d.ts +35 -0
  418. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.d.ts +4 -0
  419. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.d.ts +19 -0
  420. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.d.ts +19 -0
  421. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.d.ts +59 -0
  422. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +1 -0
  423. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
  424. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.d.ts +1 -0
  425. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.d.ts +1 -0
  426. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.d.ts +1 -0
  427. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.d.ts +1 -0
  428. package/dist/types/components.d.ts +312 -21
  429. package/dist/types/constants/regex.d.ts +1 -0
  430. package/dist/types/constants/ui.d.ts +1 -1
  431. package/dist/types/helpers/calendar/calendar-date.d.ts +86 -2
  432. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +7 -0
  433. package/dist/types/helpers/code-format/code-formatter.d.ts +14 -0
  434. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +5 -1
  435. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +8 -2
  436. package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +4 -9
  437. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.d.ts +21 -0
  438. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.d.ts +21 -0
  439. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.d.ts +22 -0
  440. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.d.ts +18 -0
  441. package/dist/types/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.d.ts +37 -0
  442. package/dist/types/helpers/ui/element-appender.d.ts +14 -0
  443. package/dist/types/types/components.type.d.ts +7 -0
  444. package/dist/types/types/type-guard.d.ts +16 -0
  445. package/dist/types/types/ui.type.d.ts +9 -0
  446. package/dist/types/utils/date.d.ts +11 -2
  447. package/dist/types/utils/e2e-utils.d.ts +7 -0
  448. package/dist/types/utils/sanitize.d.ts +71 -0
  449. package/dist/types/utils/test/sanitize.test.d.ts +1 -0
  450. package/dist/vega/index.esm.js +1 -1
  451. package/dist/vega/{p-7b42da4f.entry.js → p-011b94b1.entry.js} +1 -1
  452. package/dist/vega/p-012753b5.entry.js +1 -0
  453. package/dist/vega/p-024331ce.entry.js +1 -0
  454. package/dist/vega/{p-4a467973.js → p-0575d22e.js} +1 -1
  455. package/dist/vega/{p-9e59345f.entry.js → p-08a90cc6.entry.js} +1 -1
  456. package/dist/vega/p-0ede1fea.entry.js +1 -0
  457. package/dist/vega/{p-7d9cd9c8.js → p-10ac8b57.js} +1 -1
  458. package/dist/vega/{p-b9798158.js → p-1298b126.js} +1 -1
  459. package/dist/vega/{p-3c865f86.entry.js → p-17c55205.entry.js} +1 -1
  460. package/dist/vega/{p-a6010b93.entry.js → p-1e0d8228.entry.js} +1 -1
  461. package/dist/vega/p-1f83cebf.js +1 -0
  462. package/dist/vega/p-3353b3d7.js +1 -0
  463. package/dist/vega/p-365b1b35.entry.js +1 -0
  464. package/dist/vega/p-3ae9ee3d.entry.js +1 -0
  465. package/dist/vega/p-3af92370.entry.js +1 -0
  466. package/dist/vega/{p-fde50319.js → p-3bf66be2.js} +1 -1
  467. package/dist/vega/{p-235bf01b.entry.js → p-3c5a28e4.entry.js} +1 -1
  468. package/dist/vega/p-3e5f362f.js +1 -0
  469. package/dist/vega/{p-74168615.js → p-40f39194.js} +1 -1
  470. package/dist/vega/{p-1bb0c934.js → p-430be941.js} +1 -1
  471. package/dist/vega/p-43f585f7.entry.js +1 -0
  472. package/dist/vega/p-45296fd4.entry.js +1 -0
  473. package/dist/vega/{p-67f159c3.js → p-476a173a.js} +1 -1
  474. package/dist/vega/p-491618a6.entry.js +1 -0
  475. package/dist/vega/p-4a537391.entry.js +1 -0
  476. package/dist/vega/p-4aa893ef.entry.js +1 -0
  477. package/dist/vega/{p-cbabb07a.entry.js → p-4c47e8bb.entry.js} +1 -1
  478. package/dist/vega/p-4da75f2b.js +1 -0
  479. package/dist/vega/p-509eb52e.entry.js +1 -0
  480. package/dist/vega/p-5110ba73.entry.js +1 -0
  481. package/dist/vega/p-556f9a21.entry.js +1 -0
  482. package/dist/vega/p-55b54ba0.entry.js +1 -0
  483. package/dist/vega/p-5b71c85e.js +1 -0
  484. package/dist/vega/p-5ea2e43c.entry.js +1 -0
  485. package/dist/vega/p-5efc6fe1.entry.js +1 -0
  486. package/dist/vega/p-5f377954.js +1 -1
  487. package/dist/vega/{p-9ce249a9.js → p-60851f9d.js} +1 -1
  488. package/dist/vega/{p-54e56f0d.entry.js → p-64cd1931.entry.js} +1 -1
  489. package/dist/vega/{p-de97c6d9.js → p-66fa700b.js} +1 -1
  490. package/dist/vega/{p-8c6b6ad7.entry.js → p-67fcf6f2.entry.js} +1 -1
  491. package/dist/vega/p-68df4288.js +1 -0
  492. package/dist/vega/p-691ba1ae.js +1 -0
  493. package/dist/vega/{p-61d9cdf9.entry.js → p-6a2205a1.entry.js} +1 -1
  494. package/dist/vega/{p-35cd469a.entry.js → p-6a4277df.entry.js} +1 -1
  495. package/dist/vega/{p-1f26de89.js → p-6e136980.js} +1 -1
  496. package/dist/vega/p-6f8be8ea.js +1 -0
  497. package/dist/vega/p-6fa8e231.entry.js +1 -0
  498. package/dist/vega/p-7045e84c.entry.js +1 -0
  499. package/dist/vega/{p-85f9a980.js → p-7288f8c4.js} +1 -1
  500. package/dist/vega/{p-2f09c6aa.js → p-749f96a4.js} +1 -1
  501. package/dist/vega/{p-a0467b83.js → p-77edf50c.js} +1 -1
  502. package/dist/vega/p-7aaece55.entry.js +1 -0
  503. package/dist/vega/p-7ec6a104.entry.js +1 -0
  504. package/dist/vega/{p-52efaadb.entry.js → p-81134e9e.entry.js} +1 -1
  505. package/dist/vega/p-8187878e.js +1 -0
  506. package/dist/vega/p-89d685a8.js +1 -0
  507. package/dist/vega/{p-c0223a17.entry.js → p-8c0eb12f.entry.js} +1 -1
  508. package/dist/vega/p-8d0ca805.js +1 -0
  509. package/dist/vega/p-8d701832.entry.js +1 -0
  510. package/dist/vega/{p-3e040167.entry.js → p-8e42a14c.entry.js} +1 -1
  511. package/dist/vega/p-8ed0faa2.entry.js +1 -0
  512. package/dist/vega/{p-3925c16b.js → p-920719ad.js} +1 -1
  513. package/dist/vega/{p-18e8c54a.entry.js → p-94394df7.entry.js} +1 -1
  514. package/dist/vega/p-99aa554b.entry.js +1 -0
  515. package/dist/vega/{p-69aec6af.entry.js → p-9a2446f1.entry.js} +1 -1
  516. package/dist/vega/{p-924b4e24.js → p-a2aeb646.js} +1 -1
  517. package/dist/vega/p-a475d525.entry.js +1 -0
  518. package/dist/vega/{p-c2f21426.entry.js → p-a530797f.entry.js} +1 -1
  519. package/dist/vega/{p-652626b6.entry.js → p-a85ad369.entry.js} +1 -1
  520. package/dist/vega/p-ac5e9955.entry.js +1 -0
  521. package/dist/vega/p-aedf7146.js +1 -0
  522. package/dist/vega/p-b1f869fb.js +1 -0
  523. package/dist/vega/p-b4ea3fad.js +1 -0
  524. package/dist/vega/p-badad9ed.js +1 -0
  525. package/dist/vega/{p-98fb9eaa.entry.js → p-bb4a558d.entry.js} +1 -1
  526. package/dist/vega/p-bb8339ed.entry.js +1 -0
  527. package/dist/vega/{p-75b5894f.entry.js → p-be930e85.entry.js} +1 -1
  528. package/dist/vega/p-bf2bd6d0.entry.js +1 -0
  529. package/dist/vega/p-c2488ed6.js +1 -0
  530. package/dist/vega/{p-0f7dec29.entry.js → p-c379a5a5.entry.js} +1 -1
  531. package/dist/vega/{p-db57dddc.js → p-c9b6b5a9.js} +1 -1
  532. package/dist/vega/{p-7c1d08db.entry.js → p-ca3472c1.entry.js} +1 -1
  533. package/dist/vega/{p-35252108.js → p-cc43bffb.js} +1 -1
  534. package/dist/vega/p-cf5b80f9.entry.js +1 -0
  535. package/dist/vega/{p-8fae8f9e.js → p-d0e31633.js} +1 -1
  536. package/dist/vega/{p-bfb86c3e.entry.js → p-db60a38e.entry.js} +1 -1
  537. package/dist/vega/{p-71f9c4d4.js → p-dd11f735.js} +1 -1
  538. package/dist/vega/{p-19522949.js → p-e16b3adf.js} +1 -1
  539. package/dist/vega/p-e93545fd.js +1 -0
  540. package/dist/vega/{p-e6351dab.entry.js → p-e9c4fd24.entry.js} +1 -1
  541. package/dist/vega/{p-91d71ae9.entry.js → p-eb60cfe1.entry.js} +1 -1
  542. package/dist/vega/p-ec192283.entry.js +1 -0
  543. package/dist/vega/{p-c6ae78f2.entry.js → p-f2a3a1ec.entry.js} +1 -1
  544. package/dist/vega/p-f2cdd212.entry.js +1 -0
  545. package/dist/vega/p-f3c3ff26.entry.js +1 -0
  546. package/dist/vega/{p-b27fcac4.entry.js → p-f4c05b4a.entry.js} +1 -1
  547. package/dist/vega/{p-dde03224.entry.js → p-f52a0155.entry.js} +1 -1
  548. package/dist/vega/p-f8641214.entry.js +1 -0
  549. package/dist/vega/{p-330c224f.entry.js → p-f89443aa.entry.js} +1 -1
  550. package/dist/vega/{p-58769a72.entry.js → p-f8f7cf48.entry.js} +1 -1
  551. package/dist/vega/p-fe12eff6.js +1 -0
  552. package/dist/vega/vega.esm.js +1 -1
  553. package/package.json +2 -3
  554. package/dist/cjs/date-0a6bb035.js +0 -95
  555. package/dist/cjs/mobilefriendly-aa2e50e9.js +0 -13
  556. package/dist/cjs/state-background-color-formatter-aa5570f6.js +0 -85
  557. package/dist/cjs/vega-progress-tracker.cjs.entry.js +0 -252
  558. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +0 -282
  559. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.js +0 -35
  560. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.js +0 -53
  561. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.js +0 -139
  562. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.js +0 -49
  563. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +0 -341
  564. package/dist/esm/date-c55b97f0.js +0 -87
  565. package/dist/esm/mobilefriendly-c5d0573d.js +0 -11
  566. package/dist/esm/state-background-color-formatter-0f01d27a.js +0 -82
  567. package/dist/esm/vega-progress-tracker.entry.js +0 -248
  568. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +0 -96
  569. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.d.ts +0 -12
  570. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-mobile-controller.d.ts +0 -18
  571. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-month-year-change-event-controller.d.ts +0 -46
  572. package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-zindex-controller.d.ts +0 -15
  573. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +0 -97
  574. package/dist/vega/p-08835909.js +0 -1
  575. package/dist/vega/p-0cdb38d3.js +0 -1
  576. package/dist/vega/p-0e5297b9.entry.js +0 -1
  577. package/dist/vega/p-0feceaac.entry.js +0 -1
  578. package/dist/vega/p-115b42e6.entry.js +0 -1
  579. package/dist/vega/p-1372b984.js +0 -1
  580. package/dist/vega/p-1739a877.entry.js +0 -1
  581. package/dist/vega/p-1a59703b.entry.js +0 -1
  582. package/dist/vega/p-1e92737c.entry.js +0 -1
  583. package/dist/vega/p-257ff60b.entry.js +0 -1
  584. package/dist/vega/p-25a3fad7.entry.js +0 -1
  585. package/dist/vega/p-2622f0a8.entry.js +0 -1
  586. package/dist/vega/p-26c4f07c.entry.js +0 -1
  587. package/dist/vega/p-2e6ce1e9.entry.js +0 -1
  588. package/dist/vega/p-2ec7e020.entry.js +0 -1
  589. package/dist/vega/p-308aa2e3.js +0 -1
  590. package/dist/vega/p-33f3f306.js +0 -1
  591. package/dist/vega/p-366825fa.entry.js +0 -1
  592. package/dist/vega/p-37020002.entry.js +0 -1
  593. package/dist/vega/p-379f1b40.entry.js +0 -1
  594. package/dist/vega/p-38cb2b40.js +0 -1
  595. package/dist/vega/p-447c7590.js +0 -1
  596. package/dist/vega/p-4e13a26f.js +0 -1
  597. package/dist/vega/p-5972c101.entry.js +0 -1
  598. package/dist/vega/p-5d827fe5.js +0 -1
  599. package/dist/vega/p-5e708ad5.entry.js +0 -1
  600. package/dist/vega/p-65a9af84.entry.js +0 -1
  601. package/dist/vega/p-67eb405d.entry.js +0 -1
  602. package/dist/vega/p-71ddccf2.entry.js +0 -1
  603. package/dist/vega/p-785d9ac3.entry.js +0 -1
  604. package/dist/vega/p-796d840c.entry.js +0 -1
  605. package/dist/vega/p-7a590741.entry.js +0 -1
  606. package/dist/vega/p-824a06ba.js +0 -1
  607. package/dist/vega/p-8350506e.js +0 -1
  608. package/dist/vega/p-867a4970.js +0 -1
  609. package/dist/vega/p-880569ec.entry.js +0 -1
  610. package/dist/vega/p-8ac2f43f.entry.js +0 -1
  611. package/dist/vega/p-8ff96b8c.entry.js +0 -13
  612. package/dist/vega/p-9794fd88.entry.js +0 -1
  613. package/dist/vega/p-a10b9f2e.js +0 -12
  614. package/dist/vega/p-a630ce73.entry.js +0 -1
  615. package/dist/vega/p-b1faebe0.js +0 -1
  616. package/dist/vega/p-b5ba0c11.js +0 -1
  617. package/dist/vega/p-b8b9ed2c.js +0 -1
  618. package/dist/vega/p-bcc396c2.entry.js +0 -1
  619. package/dist/vega/p-bccee21e.js +0 -1
  620. package/dist/vega/p-c224b44c.js +0 -1
  621. package/dist/vega/p-ea96635b.entry.js +0 -1
  622. package/dist/vega/p-f21b893b.entry.js +0 -1
  623. package/dist/vega/p-fb320b50.entry.js +0 -1
  624. package/dist/vega/p-ff470366.entry.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { VegaRTEContent } from '../../dto/content-state';
2
+ import { HTMLContentCleaner } from '../../slimmers/controllers/html-cleaner';
2
3
  import { RTETextBlock } from '../../dto/blocks/text-block';
3
4
  import { RTEImageBlock } from '../../dto/blocks/image-block';
4
5
  import { RTEListBlock } from '../../dto/blocks/list-block';
@@ -316,7 +317,7 @@ describe('content state', () => {
316
317
  nodes: [{ id: '1-1', type: 'text', text: 'This is a paragraph' }],
317
318
  },
318
319
  ]);
319
- expect(contentState.toHtml()).toEqualHtml(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;margin-top: 0px; margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
320
+ expect(contentState.toHtml()).toEqualHtml(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;margin-top: 0px; margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
320
321
  });
321
322
  it('should convert text node with annotations to HTML correctly', () => {
322
323
  const contentState = VegaRTEContent.fromJSON([
@@ -336,7 +337,7 @@ describe('content state', () => {
336
337
  ],
337
338
  },
338
339
  ]);
339
- expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">This is a paragraph.</span><code style="font-family: Roboto Mono;white-space: pre-wrap;"> code</code><span> text</span></p>`);
340
+ expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">This is a paragraph.</span><code style="font-family: Roboto Mono;white-space: pre-wrap;"> code</code><span> text</span></p>`);
340
341
  });
341
342
  it('should convert text block with annotations to HTML with inline styles correctly', () => {
342
343
  const contentState = VegaRTEContent.fromJSON([
@@ -354,7 +355,7 @@ describe('content state', () => {
354
355
  ],
355
356
  },
356
357
  ]);
357
- expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span style="font-weight: 700;text-decoration: underline;">This is a paragraph</span></p>`);
358
+ expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span style="font-weight: 700;text-decoration: underline;">This is a paragraph</span></p>`);
358
359
  });
359
360
  it('should convert image block to HTML correctly', () => {
360
361
  const contentState = VegaRTEContent.fromJSON([
@@ -399,7 +400,7 @@ describe('content state', () => {
399
400
  ],
400
401
  },
401
402
  ]);
402
- expect(contentState.toHtml()).toEqual(`<ul style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ul>`);
403
+ expect(contentState.toHtml()).toEqual(`<ul style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ul>`);
403
404
  });
404
405
  it('should convert number list block to HTML correctly', () => {
405
406
  const contentState = VegaRTEContent.fromJSON([
@@ -420,7 +421,7 @@ describe('content state', () => {
420
421
  ],
421
422
  },
422
423
  ]);
423
- expect(contentState.toHtml()).toEqual(`<ol style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ol>`);
424
+ expect(contentState.toHtml()).toEqual(`<ol style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ol>`);
424
425
  });
425
426
  it('should convert code block to HTML correctly', () => {
426
427
  const contentState = VegaRTEContent.fromJSON([
@@ -456,7 +457,7 @@ describe('content state', () => {
456
457
  ],
457
458
  },
458
459
  ]);
459
- expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="https://example.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>This is a link</span></a></p>`);
460
+ expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="https://example.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>This is a link</span></a></p>`);
460
461
  });
461
462
  it('should convert a complex value to HTML correctly', () => {
462
463
  const contentState = VegaRTEContent.fromJSON([
@@ -789,7 +790,7 @@ describe('content state', () => {
789
790
  ],
790
791
  },
791
792
  ]);
792
- expect(contentState.toHtml()).toEqual(`<div style="font-family: Inter;font-size: 36px;line-height: 40px;font-weight: 500;"><span style="font-weight: 700;">Title</span></div><div style="font-family: Inter;font-size: 28px;line-height: 32px;font-weight: 500;"><span>Subtitle</span></div><h1 style="font-family: Inter;font-size: 22px;line-height: 24px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 1</span></h1><h2 style="font-family: Inter;font-size: 20px;line-height: 24px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 2</span></h2><h3 style="font-family: Inter;font-size: 18px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 3</span></h3><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Paragraph</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Bold text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-style: italic;">Italic text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="text-decoration: underline;">Underline text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="text-decoration: underline;">Strikethrough text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><code style="font-family: Roboto Mono;white-space: pre-wrap;">Code text</code></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="color: #BD2947;">Color text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: left;"><span>Left align</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span>Right align</span></p><ul style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>list item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>list item 2</span></li></ul><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;margin-left: 32px;"><span>More indent</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="https://www.google.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>Link text</span></a></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span></span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span></span></p>`);
793
+ expect(contentState.toHtml()).toEqual(`<div style="font-family: Inter;font-size: 36px;line-height: 40px;min-height: 40px;font-weight: 500;"><span style="font-weight: 700;">Title</span></div><div style="font-family: Inter;font-size: 28px;line-height: 32px;min-height: 32px;font-weight: 500;"><span>Subtitle</span></div><h1 style="font-family: Inter;font-size: 22px;line-height: 24px;min-height: 24px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 1</span></h1><h2 style="font-family: Inter;font-size: 20px;line-height: 24px;min-height: 24px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 2</span></h2><h3 style="font-family: Inter;font-size: 18px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Heading 3</span></h3><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Paragraph</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-weight: 700;">Bold text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="font-style: italic;">Italic text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="text-decoration: underline;">Underline text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="text-decoration: underline;">Strikethrough text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><code style="font-family: Roboto Mono;white-space: pre-wrap;">Code text</code></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span style="color: #BD2947;">Color text</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: left;"><span>Left align</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span>Right align</span></p><ul style="padding-left: 8px;margin-left: 16px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>list item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>list item 2</span></li></ul><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;margin-left: 32px;"><span>More indent</span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><a href="https://www.google.com" target="_blank" style="color: rgba(var(--v-text-link, 19, 98, 226, 1));"><span>Link text</span></a></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span></span></p><p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span></span></p>`);
793
794
  });
794
795
  it('should convert paragraph with custom attributes to HTML correctly', () => {
795
796
  const contentState = VegaRTEContent.fromJSON([
@@ -818,7 +819,7 @@ describe('content state', () => {
818
819
  ],
819
820
  },
820
821
  ]);
821
- expect(contentState.toHtml()).toEqualHtml(`<p id="p-element" dir="dir-p" style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500; margin-top: 0px; margin-bottom: 0px;"><span id="span-element" dir="dir-span">This is a paragraph</span></p>`);
822
+ expect(contentState.toHtml()).toEqualHtml(`<p id="p-element" dir="dir-p" style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500; margin-top: 0px; margin-bottom: 0px;"><span id="span-element" dir="dir-span">This is a paragraph</span></p>`);
822
823
  });
823
824
  it('should convert text node with custom attributes to HTML correctly', () => {
824
825
  const contentState = VegaRTEContent.fromJSON([
@@ -868,7 +869,7 @@ describe('content state', () => {
868
869
  ],
869
870
  },
870
871
  ]);
871
- expect(contentState.toHtml()).toEqual(`<p id="p-element" dir="dir-p" style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span id="text1" style="font-weight: 700;">This is a paragraph.</span><code id="text2" style="font-family: Roboto Mono;white-space: pre-wrap;"> code</code><span id="text3"> text</span></p>`);
872
+ expect(contentState.toHtml()).toEqual(`<p id="p-element" dir="dir-p" style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span id="text1" style="font-weight: 700;">This is a paragraph.</span><code id="text2" style="font-family: Roboto Mono;white-space: pre-wrap;"> code</code><span id="text3"> text</span></p>`);
872
873
  });
873
874
  it('should convert bullet list block with custom attributes to HTML correctly', () => {
874
875
  const contentState = VegaRTEContent.fromJSON([
@@ -904,7 +905,7 @@ describe('content state', () => {
904
905
  },
905
906
  },
906
907
  ]);
907
- expect(contentState.toHtml()).toEqual(`<ul id="ul" style="padding-left: 8px;margin-left: 16px;"><li id="list1" style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li id="list2" style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ul>`);
908
+ expect(contentState.toHtml()).toEqual(`<ul id="ul" style="padding-left: 8px;margin-left: 16px;"><li id="list1" style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 1</span></li><li id="list2" style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>Item 2</span></li></ul>`);
908
909
  });
909
910
  it('should convert paragraph with custom class to HTML correctly', () => {
910
911
  const contentState = VegaRTEContent.fromJSON([
@@ -1025,7 +1026,7 @@ describe('content state', () => {
1025
1026
  ],
1026
1027
  },
1027
1028
  ]);
1028
- expect(contentState.toHtml()).toEqualHtml(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 700; margin-top: 0px; margin-bottom: 0px;"><span style="font-weight: 700">This is a paragraph</span></p>`);
1029
+ expect(contentState.toHtml()).toEqualHtml(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 700; margin-top: 0px; margin-bottom: 0px;"><span style="font-weight: 700">This is a paragraph</span></p>`);
1029
1030
  });
1030
1031
  it('should convert text node with custom style to HTML correctly', () => {
1031
1032
  const contentState = VegaRTEContent.fromJSON([
@@ -1074,7 +1075,7 @@ describe('content state', () => {
1074
1075
  ],
1075
1076
  },
1076
1077
  ]);
1077
- expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span style="font-weight: 700;padding: 20px;">This is a paragraph.</span><code style="font-family: Roboto Mono;white-space: pre-wrap;padding: 30px;"> code</code><span style="padding: 40px;"> text</span></p>`);
1078
+ expect(contentState.toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;text-align: right;"><span style="font-weight: 700;padding: 20px;">This is a paragraph.</span><code style="font-family: Roboto Mono;white-space: pre-wrap;padding: 30px;"> code</code><span style="padding: 40px;"> text</span></p>`);
1078
1079
  });
1079
1080
  it('should convert bullet list block with custom style to HTML correctly', () => {
1080
1081
  const contentState = VegaRTEContent.fromJSON([
@@ -1110,7 +1111,7 @@ describe('content state', () => {
1110
1111
  },
1111
1112
  },
1112
1113
  ]);
1113
- expect(contentState.toHtml()).toEqual(`<ul style="padding-left: 8px;margin-left: 16px;padding: 60px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;padding: 40px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;padding: 50px;"><span>Item 2</span></li></ul>`);
1114
+ expect(contentState.toHtml()).toEqual(`<ul style="padding-left: 8px;margin-left: 16px;padding: 60px;"><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;padding: 40px;"><span>Item 1</span></li><li style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;padding: 50px;"><span>Item 2</span></li></ul>`);
1114
1115
  });
1115
1116
  it('should log warning when call toHtml with deprecated parameter', () => {
1116
1117
  setVegaLogLevel('warn');
@@ -2613,7 +2614,7 @@ describe('content state', () => {
2613
2614
  </footer>
2614
2615
  </article>
2615
2616
  <address>ADDRESS: 123 Main St, City, Country</address>
2616
- <blockquote cite="https://example.com">BLOCKQUOTE: “This is a quoted text.”ote>
2617
+ <blockquote cite="https://example.com">BLOCKQUOTE: “This is a quoted text.”</blockquote>
2617
2618
  <details>
2618
2619
  <summary>DETAILS / SUMMARY Example</summary>
2619
2620
  <p>Extra information shown when expanded.</p>
@@ -2797,6 +2798,11 @@ Line 1
2797
2798
  const paragraph = content.children[0];
2798
2799
  expect(paragraph.children[1].text).toEqual(' ');
2799
2800
  });
2801
+ it('should convert empty value as expect', async () => {
2802
+ const emptyContent = VegaRTEContent.fromHtml('', { autoMatchFormat: false });
2803
+ expect(emptyContent.toHtml()).toEqual('');
2804
+ expect(emptyContent.toJSON()).toEqual([]);
2805
+ });
2800
2806
  });
2801
2807
  describe('fromJSON', () => {
2802
2808
  it('should translate the paragraph as expect JSON', () => {
@@ -2839,8 +2845,8 @@ Line 1
2839
2845
  nodes: [{ id: '1-1', type: 'text', text: 'This is a paragraph' }],
2840
2846
  },
2841
2847
  ];
2842
- expect(VegaRTEContent.fromJSON(content).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
2843
- expect(VegaRTEContent.fromJSON(content).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
2848
+ expect(VegaRTEContent.fromJSON(content).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
2849
+ expect(VegaRTEContent.fromJSON(content).toHtml()).toEqual(`<p style="font-family: Inter;font-size: 16px;line-height: 22px;min-height: 22px;font-weight: 500;margin-top: 0px;margin-bottom: 0px;"><span>This is a paragraph</span></p>`);
2844
2850
  expect(VegaRTEContent.fromJSON(content, { autoMatchFormat: false }).toHtml()).toEqual(`<p><span>This is a paragraph</span></p>`);
2845
2851
  expect(VegaRTEContent.fromJSON(content, { autoMatchFormat: false }).toHtml()).toEqual(`<p><span>This is a paragraph</span></p>`);
2846
2852
  });
@@ -2950,4 +2956,168 @@ Line 1
2950
2956
  });
2951
2957
  });
2952
2958
  });
2959
+ describe('cleanHtmlWhitespace', () => {
2960
+ const cleaner = new HTMLContentCleaner();
2961
+ const cleanHtmlWhitespace = (html) => {
2962
+ return cleaner.clean(html);
2963
+ };
2964
+ it('should inline a table by removing all whitespace between tags', () => {
2965
+ const input = `<table style="width: 400px; border-collapse: collapse;"> <thead> <tr> ` +
2966
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th> ` +
2967
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th> ` +
2968
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th> ` +
2969
+ `</tr> </thead> <tbody> <tr> <td style="padding: 12px;">Cell 1-1</td> ` +
2970
+ `<td style="padding: 12px;">Cell 1-2</td> <td style="padding: 12px;">Cell 1-3</td> ` +
2971
+ `</tr> <tr> <td style="padding: 12px;">Cell 2-1</td> <td style="padding: 12px;">Cell 2-2</td> ` +
2972
+ `<td style="padding: 12px;">Cell 2-3</td> </tr> <tr> <td style="padding: 12px;">Cell 3-1</td> ` +
2973
+ `<td style="padding: 12px;">Cell 3-2</td> <td style="padding: 12px;">Cell 3-3</td> ` +
2974
+ `</tr> </tbody> </table>`;
2975
+ const expected = `<table style="width: 400px; border-collapse: collapse;"><thead><tr>` +
2976
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th>` +
2977
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th>` +
2978
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th>` +
2979
+ `</tr></thead><tbody><tr>` +
2980
+ `<td style="padding: 12px;">Cell 1-1</td>` +
2981
+ `<td style="padding: 12px;">Cell 1-2</td>` +
2982
+ `<td style="padding: 12px;">Cell 1-3</td>` +
2983
+ `</tr><tr>` +
2984
+ `<td style="padding: 12px;">Cell 2-1</td>` +
2985
+ `<td style="padding: 12px;">Cell 2-2</td>` +
2986
+ `<td style="padding: 12px;">Cell 2-3</td>` +
2987
+ `</tr><tr>` +
2988
+ `<td style="padding: 12px;">Cell 3-1</td>` +
2989
+ `<td style="padding: 12px;">Cell 3-2</td>` +
2990
+ `<td style="padding: 12px;">Cell 3-3</td>` +
2991
+ `</tr></tbody></table>`;
2992
+ expect(cleanHtmlWhitespace(input)).toBe(expected);
2993
+ });
2994
+ it('should remove \\n\\t after opening tag and before closing tag', () => {
2995
+ const input = '<p>\n\t <span>test</span>\n\t </p>';
2996
+ expect(cleanHtmlWhitespace(input)).toBe('<p><span>test</span></p>');
2997
+ });
2998
+ it('should remove all \\n and \\t characters', () => {
2999
+ const input = '<p>\n\ttest\n</p>';
3000
+ expect(cleanHtmlWhitespace(input)).toBe('<p>test</p>');
3001
+ });
3002
+ it('should preserve space between matching tags', () => {
3003
+ const input = '<span> </span>';
3004
+ expect(cleanHtmlWhitespace(input)).toBe('<span> </span>');
3005
+ });
3006
+ it('should preserve space with text between matching tags', () => {
3007
+ const input = '<span> test </span>';
3008
+ expect(cleanHtmlWhitespace(input)).toBe('<span> test </span>');
3009
+ });
3010
+ it('should preserve multiple spaces between matching tags', () => {
3011
+ const input = '<span> </span>';
3012
+ expect(cleanHtmlWhitespace(input)).toBe('<span> </span>');
3013
+ });
3014
+ it('should remove whitespace between opening tags', () => {
3015
+ const input = '<div>\n\t<p></p></div>';
3016
+ expect(cleanHtmlWhitespace(input)).toBe('<div><p></p></div>');
3017
+ });
3018
+ it('should remove \\n\\t after opening tag but preserve regular spaces', () => {
3019
+ const input = '<p>\n\t Hello</p>';
3020
+ expect(cleanHtmlWhitespace(input)).toBe('<p> Hello</p>');
3021
+ });
3022
+ it('should remove whitespace between multiple closing tags', () => {
3023
+ const input = '<table><tbody><tr></tr> </tbody> </table>';
3024
+ expect(cleanHtmlWhitespace(input)).toBe('<table><tbody><tr></tr></tbody></table>');
3025
+ });
3026
+ it('should remove whitespace between multiple opening tags', () => {
3027
+ const input = '<div> <span></span></div>';
3028
+ expect(cleanHtmlWhitespace(input)).toBe('<div><span></span></div>');
3029
+ });
3030
+ it('should handle complex nested structure', () => {
3031
+ const input = '<div>\n\t<p>\n\t\t<span>Hello</span>\n\t</p>\n</div>';
3032
+ expect(cleanHtmlWhitespace(input)).toBe('<div><p><span>Hello</span></p></div>');
3033
+ });
3034
+ it('should preserve regular spaces within text content', () => {
3035
+ const input = '<p>Hello World</p>';
3036
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello World</p>');
3037
+ });
3038
+ it('should preserve multiple spaces in text content', () => {
3039
+ const input = '<p>Hello World</p>';
3040
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello World</p>');
3041
+ });
3042
+ it('should not remove \\n between words in text content', () => {
3043
+ const input = '<p>Hello\nWorld</p>';
3044
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello\nWorld</p>');
3045
+ });
3046
+ it('should not remove \\n between words with space in text content', () => {
3047
+ const input = '<p>Hello\n World</p>';
3048
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello\n World</p>');
3049
+ });
3050
+ it('should remove newline after img tag', () => {
3051
+ const input = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm">\n</div>';
3052
+ const expected = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm"></div>';
3053
+ expect(cleanHtmlWhitespace(input)).toBe(expected);
3054
+ });
3055
+ it('should handle 4-level deep nesting', () => {
3056
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<p>Text</p>\n\t\t</article>\n\t</section>\n</div>';
3057
+ expect(cleanHtmlWhitespace(input)).toBe('<div><section><article><p>Text</p></article></section></div>');
3058
+ });
3059
+ it('should handle 5-level deep nesting', () => {
3060
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<p>Text</p>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
3061
+ expect(cleanHtmlWhitespace(input)).toBe('<div><section><article><main><p>Text</p></main></article></section></div>');
3062
+ });
3063
+ it('should handle 6-level deep nesting', () => {
3064
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<aside>\n\t\t\t\t\t<p>Text</p>\n\t\t\t\t</aside>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
3065
+ expect(cleanHtmlWhitespace(input)).toBe('<div><section><article><main><aside><p>Text</p></aside></main></article></section></div>');
3066
+ });
3067
+ it('should remove whitespace after br and hr tags', () => {
3068
+ const input1 = '<div><br>\n</div>';
3069
+ expect(cleanHtmlWhitespace(input1)).toBe('<div><br></div>');
3070
+ const input2 = '<div><hr>\n\t</div>';
3071
+ expect(cleanHtmlWhitespace(input2)).toBe('<div><hr></div>');
3072
+ const input3 = '<div><input type="text">\n</div>';
3073
+ expect(cleanHtmlWhitespace(input3)).toBe('<div><input type="text"></div>');
3074
+ });
3075
+ it('should remove multiple consecutive \\n characters', () => {
3076
+ const input = '<p>\n\n\n\nHello</p>';
3077
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello</p>');
3078
+ });
3079
+ it('should remove multiple consecutive \\t characters', () => {
3080
+ const input = '<p>\t\t\tHello</p>';
3081
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello</p>');
3082
+ });
3083
+ it('should preserve empty matching tags', () => {
3084
+ const input = '<span></span>';
3085
+ expect(cleanHtmlWhitespace(input)).toBe('<span></span>');
3086
+ });
3087
+ it('should handle mixed spaces, tabs, and newlines', () => {
3088
+ const input = '<div> \n\t <p>Text</p> \n\t </div>';
3089
+ expect(cleanHtmlWhitespace(input)).toBe('<div><p>Text</p></div>');
3090
+ });
3091
+ it('should preserve spaces in attribute values', () => {
3092
+ const input = '<p class="my custom class">Text</p>';
3093
+ expect(cleanHtmlWhitespace(input)).toBe('<p class="my custom class">Text</p>');
3094
+ });
3095
+ it('should remove newlines after br tags', () => {
3096
+ const input = '<p>Line 1<br>\nLine 2</p>';
3097
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Line 1<br>Line 2</p>');
3098
+ });
3099
+ it('should preserve spaces in code blocks between matching tags', () => {
3100
+ const input = '<code> const x = 1; </code>';
3101
+ expect(cleanHtmlWhitespace(input)).toBe('<code> const x = 1; </code>');
3102
+ });
3103
+ it('should handle empty string', () => {
3104
+ expect(cleanHtmlWhitespace('')).toBe('');
3105
+ });
3106
+ it('should preserve plain text without tags', () => {
3107
+ const input = 'Hello World';
3108
+ expect(cleanHtmlWhitespace(input)).toBe('Hello World');
3109
+ });
3110
+ it('should remove whitespace between different inline elements', () => {
3111
+ const input = '<span>text</span>\n\t<strong>bold</strong>';
3112
+ expect(cleanHtmlWhitespace(input)).toBe('<span>text</span><strong>bold</strong>');
3113
+ });
3114
+ it('should remove \\t\\n combination', () => {
3115
+ const input = '<p>\t\nHello</p>';
3116
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello</p>');
3117
+ });
3118
+ it('should remove complex \\n\\t\\n patterns', () => {
3119
+ const input = '<p>\n\t\n\t\nHello</p>';
3120
+ expect(cleanHtmlWhitespace(input)).toBe('<p>Hello</p>');
3121
+ });
3122
+ });
2953
3123
  });
@@ -0,0 +1,186 @@
1
+ import { HTMLContentCleaner } from '../../slimmers/controllers/html-cleaner';
2
+ describe('HTMLContentCleaner', () => {
3
+ let cleaner;
4
+ beforeEach(() => {
5
+ cleaner = new HTMLContentCleaner();
6
+ });
7
+ it('should handle empty string', () => {
8
+ expect(cleaner.clean('')).toBe('');
9
+ });
10
+ it('should handle whitespace-only string', () => {
11
+ expect(cleaner.clean(' ')).toBe(' ');
12
+ });
13
+ it('should remove \\n\\t after opening tag and before closing tag', () => {
14
+ const input = '<div><p>\n\t <span>test</span>\n\t </p></div>';
15
+ expect(cleaner.clean(input)).toBe('<div><p><span>test</span></p></div>');
16
+ });
17
+ it('should remove all \\n and \\t characters between tags', () => {
18
+ const input = '<div><p>\n\ttest\n</p></div>';
19
+ expect(cleaner.clean(input)).toBe('<div><p>test</p></div>');
20
+ });
21
+ it('should preserve space between matching tags', () => {
22
+ const input = '<div><span> </span></div>';
23
+ expect(cleaner.clean(input)).toBe('<div><span> </span></div>');
24
+ });
25
+ it('should preserve space with text between matching tags', () => {
26
+ const input = '<div><span> test </span></div>';
27
+ expect(cleaner.clean(input)).toBe('<div><span> test </span></div>');
28
+ });
29
+ it('should preserve multiple spaces between matching tags', () => {
30
+ const input = '<div><span> </span></div>';
31
+ expect(cleaner.clean(input)).toBe('<div><span> </span></div>');
32
+ });
33
+ it('should remove whitespace between opening tags', () => {
34
+ const input = '<div>\n\t<p></p></div>';
35
+ expect(cleaner.clean(input)).toBe('<div><p></p></div>');
36
+ });
37
+ it('should remove \\n\\t after opening tag but preserve regular spaces', () => {
38
+ const input = '<p>\n\t Hello</p>';
39
+ expect(cleaner.clean(input)).toBe('<p> Hello</p>');
40
+ });
41
+ it('should remove whitespace between multiple closing tags', () => {
42
+ const input = '<table><tbody><tr></tr> </tbody> </table>';
43
+ expect(cleaner.clean(input)).toBe('<table><tbody><tr></tr></tbody></table>');
44
+ });
45
+ it('should remove whitespace between multiple opening tags', () => {
46
+ const input = '<div> <span></span></div>';
47
+ expect(cleaner.clean(input)).toBe('<div><span></span></div>');
48
+ });
49
+ it('should handle complex nested structure', () => {
50
+ const input = '<div>\n\t<p>\n\t\t<span>Hello</span>\n\t</p>\n</div>';
51
+ expect(cleaner.clean(input)).toBe('<div><p><span>Hello</span></p></div>');
52
+ });
53
+ it('should preserve regular spaces within text content', () => {
54
+ const input = '<div><p>Hello World</p></div>';
55
+ expect(cleaner.clean(input)).toBe('<div><p>Hello World</p></div>');
56
+ });
57
+ it('should preserve multiple spaces in text content', () => {
58
+ const input = '<div><p>Hello World</p></div>';
59
+ expect(cleaner.clean(input)).toBe('<div><p>Hello World</p></div>');
60
+ });
61
+ it('should not remove \\n between words in text content', () => {
62
+ const input = '<div><p>Hello\nWorld</p></div>';
63
+ expect(cleaner.clean(input)).toBe('<div><p>Hello\nWorld</p></div>');
64
+ });
65
+ it('should not remove \\n between words with space in text content', () => {
66
+ const input = '<div><p>Hello\n World</p></div>';
67
+ expect(cleaner.clean(input)).toBe('<div><p>Hello\n World</p></div>');
68
+ });
69
+ it('should remove multiple consecutive \\n characters', () => {
70
+ const input = '<div><p>\n\n\n\nHello</p></div>';
71
+ expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
72
+ });
73
+ it('should remove multiple consecutive \\t characters', () => {
74
+ const input = '<div><p>\t\t\tHello</p></div>';
75
+ expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
76
+ });
77
+ it('should preserve empty matching tags', () => {
78
+ const input = '<div><span></span></div>';
79
+ expect(cleaner.clean(input)).toBe('<div><span></span></div>');
80
+ });
81
+ it('should handle mixed spaces, tabs, and newlines', () => {
82
+ const input = '<div> \n\t <p>Text</p> \n\t </div>';
83
+ expect(cleaner.clean(input)).toBe('<div><p>Text</p></div>');
84
+ });
85
+ it('should remove \\t\\n combination', () => {
86
+ const input = '<div><p>\t\nHello</p></div>';
87
+ expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
88
+ });
89
+ it('should remove complex \\n\\t\\n patterns', () => {
90
+ const input = '<div><p>\n\t\n\t\nHello</p></div>';
91
+ expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
92
+ });
93
+ it('should handle 4-level deep nesting', () => {
94
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<p>Text</p>\n\t\t</article>\n\t</section>\n</div>';
95
+ expect(cleaner.clean(input)).toBe('<div><section><article><p>Text</p></article></section></div>');
96
+ });
97
+ it('should handle 5-level deep nesting', () => {
98
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<p>Text</p>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
99
+ expect(cleaner.clean(input)).toBe('<div><section><article><main><p>Text</p></main></article></section></div>');
100
+ });
101
+ it('should handle 6-level deep nesting', () => {
102
+ const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<aside>\n\t\t\t\t\t<p>Text</p>\n\t\t\t\t</aside>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
103
+ expect(cleaner.clean(input)).toBe('<div><section><article><main><aside><p>Text</p></aside></main></article></section></div>');
104
+ });
105
+ it('should remove whitespace after br and hr tags', () => {
106
+ const input1 = '<div><br>\n</div>';
107
+ expect(cleaner.clean(input1)).toBe('<div><br></div>');
108
+ const input2 = '<div><hr>\n\t</div>';
109
+ expect(cleaner.clean(input2)).toBe('<div><hr></div>');
110
+ const input3 = '<div><input type="text">\n</div>';
111
+ expect(cleaner.clean(input3)).toBe('<div><input type="text"></div>');
112
+ });
113
+ it('should remove newlines after br tags', () => {
114
+ const input = '<p>Line 1<br>\nLine 2</p>';
115
+ expect(cleaner.clean(input)).toBe('<p>Line 1<br>Line 2</p>');
116
+ });
117
+ it('should preserve spaces in code blocks between matching tags', () => {
118
+ const input = '<code> const x = 1; </code>';
119
+ expect(cleaner.clean(input)).toBe('<code> const x = 1; </code>');
120
+ });
121
+ it('should preserve plain text without tags', () => {
122
+ const input = 'Hello World';
123
+ expect(cleaner.clean(input)).toBe('Hello World');
124
+ });
125
+ it('should remove whitespace between different inline elements', () => {
126
+ const input = '<span>text</span>\n\t<strong>bold</strong>';
127
+ expect(cleaner.clean(input)).toBe('<span>text</span><strong>bold</strong>');
128
+ });
129
+ it('should inline a table by removing all whitespace between tags', () => {
130
+ const input = `<table style="width: 400px; border-collapse: collapse;"> <thead> <tr> ` +
131
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th> ` +
132
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th> ` +
133
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th> ` +
134
+ `</tr> </thead> <tbody> <tr> <td style="padding: 12px;">Cell 1-1</td> ` +
135
+ `<td style="padding: 12px;">Cell 1-2</td> <td style="padding: 12px;">Cell 1-3</td> ` +
136
+ `</tr> <tr> <td style="padding: 12px;">Cell 2-1</td> <td style="padding: 12px;">Cell 2-2</td> ` +
137
+ `<td style="padding: 12px;">Cell 2-3</td> </tr> <tr> <td style="padding: 12px;">Cell 3-1</td> ` +
138
+ `<td style="padding: 12px;">Cell 3-2</td> <td style="padding: 12px;">Cell 3-3</td> ` +
139
+ `</tr> </tbody> </table>`;
140
+ const expected = `<table style="width: 400px; border-collapse: collapse;"><thead><tr>` +
141
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th>` +
142
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th>` +
143
+ `<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th>` +
144
+ `</tr></thead><tbody><tr>` +
145
+ `<td style="padding: 12px;">Cell 1-1</td>` +
146
+ `<td style="padding: 12px;">Cell 1-2</td>` +
147
+ `<td style="padding: 12px;">Cell 1-3</td>` +
148
+ `</tr><tr>` +
149
+ `<td style="padding: 12px;">Cell 2-1</td>` +
150
+ `<td style="padding: 12px;">Cell 2-2</td>` +
151
+ `<td style="padding: 12px;">Cell 2-3</td>` +
152
+ `</tr><tr>` +
153
+ `<td style="padding: 12px;">Cell 3-1</td>` +
154
+ `<td style="padding: 12px;">Cell 3-2</td>` +
155
+ `<td style="padding: 12px;">Cell 3-3</td>` +
156
+ `</tr></tbody></table>`;
157
+ expect(cleaner.clean(input)).toBe(expected);
158
+ });
159
+ it('should remove newline after img tag', () => {
160
+ const input = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm">\n</div>';
161
+ const expected = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm"></div>';
162
+ expect(cleaner.clean(input)).toBe(expected);
163
+ });
164
+ it('should preserve spaces in attribute values', () => {
165
+ const input = '<p class="my custom class">Text</p>';
166
+ expect(cleaner.clean(input)).toBe('<p class="my custom class">Text</p>');
167
+ });
168
+ describe('Edge cases', () => {
169
+ it('should handle self-closing tags', () => {
170
+ expect(cleaner.clean('<br/>\n<hr/>')).toBe('<br/><hr/>');
171
+ expect(cleaner.clean('<img src="test.jpg"/>\n<input/>')).toBe('<img src="test.jpg"/><input/>');
172
+ });
173
+ it('should handle nested matching tags', () => {
174
+ expect(cleaner.clean('<div> <div> </div> </div>')).toBe('<div><div> </div></div>');
175
+ });
176
+ it('should handle tags with special characters in attributes', () => {
177
+ expect(cleaner.clean('<a href="http://example.com?a=1&b=2">\nLink</a>')).toBe('<a href="http://example.com?a=1&b=2">Link</a>');
178
+ });
179
+ it('should handle HTML entities', () => {
180
+ expect(cleaner.clean('<div><p>\n&nbsp;&lt;&gt;</p></div>')).toBe('<div><p>&nbsp;&lt;&gt;</p></div>');
181
+ });
182
+ it('should handle comments', () => {
183
+ expect(cleaner.clean('<div>\n<!-- comment -->\n<p>Text</p></div>')).toBe('<div><!-- comment --><p>Text</p></div>');
184
+ });
185
+ });
186
+ });
@@ -0,0 +1,22 @@
1
+ import { RemoveWhitespaceAfterOpeningTagProcessor } from '../../slimmers/controllers/html-cleaner';
2
+ describe('RemoveWhitespaceAfterOpeningTagProcessor', () => {
3
+ let processor;
4
+ beforeEach(() => {
5
+ processor = new RemoveWhitespaceAfterOpeningTagProcessor();
6
+ });
7
+ it('should remove \\n and \\t after opening tag', () => {
8
+ expect(processor.process('<div><p>\n\tHello</p></div>')).toBe('<div><p>Hello</p></div>');
9
+ expect(processor.process('<div><div>\n\n\tWorld</div></div>')).toBe('<div><div>World</div></div>');
10
+ expect(processor.process('<div><span>\tTest</span></div>')).toBe('<div><span>Test</span></div>');
11
+ });
12
+ it('should preserve regular spaces', () => {
13
+ expect(processor.process('<div><p> Hello</p></div>')).toBe('<div><p> Hello</p></div>');
14
+ expect(processor.process('<div><p> World</p></div>')).toBe('<div><p> World</p></div>');
15
+ });
16
+ it('should not affect text without opening tags', () => {
17
+ expect(processor.process('<div>Hello World</div>')).toBe('<div>Hello World</div>');
18
+ });
19
+ it('should handle multiple occurrences', () => {
20
+ expect(processor.process('<div><p>\nHello</p><div>\tWorld</div></div>')).toBe('<div><p>Hello</p><div>World</div></div>');
21
+ });
22
+ });
@@ -0,0 +1,22 @@
1
+ import { RemoveWhitespaceBeforeClosingTagProcessor } from '../../slimmers/controllers/html-cleaner';
2
+ describe('RemoveWhitespaceBeforeClosingTagProcessor', () => {
3
+ let processor;
4
+ beforeEach(() => {
5
+ processor = new RemoveWhitespaceBeforeClosingTagProcessor();
6
+ });
7
+ it('should remove \\n and \\t before closing tag', () => {
8
+ expect(processor.process('<div><p>World\n\t</p></div>')).toBe('<div><p>World</p></div>');
9
+ expect(processor.process('<div><div>Hello\n</div></div>')).toBe('<div><div>Hello</div></div>');
10
+ expect(processor.process('<div><span>Test\t</span></div>')).toBe('<div><span>Test</span></div>');
11
+ });
12
+ it('should preserve regular spaces', () => {
13
+ expect(processor.process('<div><p>Hello </p></div>')).toBe('<div><p>Hello </p></div>');
14
+ expect(processor.process('<div><p>World </p></div>')).toBe('<div><p>World </p></div>');
15
+ });
16
+ it('should not affect text without closing tags', () => {
17
+ expect(processor.process('<div>Hello World</div>')).toBe('<div>Hello World</div>');
18
+ });
19
+ it('should handle multiple occurrences', () => {
20
+ expect(processor.process('<div><p>Hello\n</p><div>World\t</div></div>')).toBe('<div><p>Hello</p><div>World</div></div>');
21
+ });
22
+ });
@@ -0,0 +1,26 @@
1
+ import { RemoveWhitespaceBetweenTagsProcessor } from '../../slimmers/controllers/html-cleaner';
2
+ describe('RemoveWhitespaceBetweenTagsProcessor', () => {
3
+ let processor;
4
+ beforeEach(() => {
5
+ processor = new RemoveWhitespaceBetweenTagsProcessor();
6
+ });
7
+ it('should remove whitespace between different tags', () => {
8
+ expect(processor.process('<div><p></p>\n\t<div></div></div>')).toBe('<div><p></p><div></div></div>');
9
+ expect(processor.process('<div><div>\n\t<span></span></div></div>')).toBe('<div><div><span></span></div></div>');
10
+ expect(processor.process('<div><div></div> <p></p></div>')).toBe('<div><div></div><p></p></div>');
11
+ });
12
+ it('should preserve whitespace between matching tags', () => {
13
+ expect(processor.process('<div><span> </span></div>')).toBe('<div><span> </span></div>');
14
+ expect(processor.process('<div><span> </span></div>')).toBe('<div><span> </span></div>');
15
+ expect(processor.process('<div><span>\n\t</span></div>')).toBe('<div><span>\n\t</span></div>');
16
+ expect(processor.process('<div><code> </code></div>')).toBe('<div><code> </code></div>');
17
+ });
18
+ it('should handle custom elements with hyphens', () => {
19
+ expect(processor.process('<div><my-component> </my-component></div>')).toBe('<div><my-component> </my-component></div>');
20
+ expect(processor.process('<div><my-component></my-component>\n<other-component></other-component></div>')).toBe('<div><my-component></my-component><other-component></other-component></div>');
21
+ });
22
+ it('should handle tags with attributes', () => {
23
+ expect(processor.process('<div><div class="test">\n<span></span></div></div>')).toBe('<div><div class="test"><span></span></div></div>');
24
+ expect(processor.process('<div><span id="test"> </span></div>')).toBe('<div><span id="test"> </span></div>');
25
+ });
26
+ });
@@ -241,7 +241,7 @@ export class VegaSelectionChip {
241
241
  "mutable": false,
242
242
  "complexType": {
243
243
  "original": "VegaSelectionChipTooltipProps",
244
- "resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"hover\" | \"click\" | \"none\"; positionRelativeTo?: string; minWidth?: ResponsiveType<SizeType>; maxWidth?: ResponsiveType<SizeType>; content?: string; disableInteractive?: boolean; text?: string; placement?: ElementAppenderPlacementType; alignment?: ElementAppenderAlignmentType; }",
244
+ "resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"click\" | \"hover\" | \"none\"; positionRelativeTo?: string; minWidth?: ResponsiveType<SizeType>; maxWidth?: ResponsiveType<SizeType>; content?: string; disableInteractive?: boolean; text?: string; placement?: ElementAppenderPlacementType; alignment?: ElementAppenderAlignmentType; }",
245
245
  "references": {
246
246
  "VegaSelectionChipTooltipProps": {
247
247
  "location": "import",