@heartlandone/vega 2.80.0 → 2.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/dist/cjs/{app-globals-7a48292d.js → app-globals-25e1bfac.js} +6 -6
  2. package/dist/cjs/{aria-dialog-focusable-trap-slimmer-5a0a78fe.js → aria-dialog-focusable-trap-slimmer-ced9566d.js} +14 -69
  3. package/dist/cjs/{child-nodes-notify-observer-slimmer-a8d13f4c.js → child-nodes-notify-observer-slimmer-2631c381.js} +1 -1
  4. package/dist/cjs/{code-block-71a330a1.js → code-block-24b3d0e7.js} +802 -61
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-fd077a6c.js → component-value-history-controller-slimmer.abstract-bd662b32.js} +5 -5
  6. package/dist/cjs/{content-state-afa26456.js → content-state-0f26036c.js} +969 -466
  7. package/dist/cjs/{date-required-rule-9f0e3e99.js → date-required-rule-4377217a.js} +1 -1
  8. package/dist/cjs/{design-token-3f9589eb.js → design-token-40276b11.js} +2 -2
  9. package/dist/cjs/{dom-node-subject-observer-factory-a3a60da4.js → dom-node-subject-observer-factory-9110cb94.js} +1 -1
  10. package/dist/cjs/{element-appender-slimmer-7a66229b.js → element-appender-slimmer-be1b4d57.js} +4 -4
  11. package/dist/cjs/{event-emit-slimmer-024e26bb.js → event-emit-slimmer-bee6b676.js} +1 -1
  12. package/dist/cjs/{form-field-controller-slimmer-c487cf2b.js → form-field-controller-slimmer-982dbfe4.js} +3 -3
  13. package/dist/cjs/{image-annotation-action-4e72af4b.js → image-annotation-action-e0df5a20.js} +3 -3
  14. package/dist/cjs/index.cjs.js +15 -14
  15. package/dist/cjs/{inject-keyboard-manager-d1a82089.js → inject-keyboard-manager-12b65e98.js} +1 -1
  16. package/dist/cjs/{keyboard-manager-9dbbb0d4.js → keyboard-manager-c89a66d3.js} +2 -2
  17. package/dist/cjs/{keyboard-manager-slimmer-68cff676.js → keyboard-manager-slimmer-93fcbf46.js} +1 -1
  18. package/dist/cjs/loader.cjs.js +10 -10
  19. package/dist/cjs/{month-view-generator-65a2f883.js → month-view-generator-0d25e950.js} +1 -1
  20. package/dist/cjs/page-size-option-utils-d038dd3a.js +68 -0
  21. package/dist/cjs/{public-rules-36f202b3.js → public-rules-652ec269.js} +8 -8
  22. package/dist/cjs/{range-fa15d524.js → range-cdd61881.js} +2 -2
  23. package/dist/cjs/{responsive-format-facade-4419b4ae.js → responsive-format-facade-9cae7f27.js} +3 -3
  24. package/dist/cjs/{rich-text-editor-required-rule-7d4c2973.js → rich-text-editor-required-rule-4b919054.js} +1 -1
  25. package/dist/cjs/{split-cell-operation-19f98afb.js → split-cell-operation-3596f738.js} +58 -23
  26. package/dist/cjs/{string-format-strategy.abstract-c65d9861.js → string-format-strategy.abstract-ebdb2573.js} +1 -1
  27. package/dist/cjs/{string-input-formatter-slimmer-c2e04acc.js → string-input-formatter-slimmer-9b6a8399.js} +3 -3
  28. package/dist/cjs/{string-mask-strategy-418fc0b8.js → string-mask-strategy-6cc9f391.js} +2 -2
  29. package/dist/cjs/{style-formatter-3c9ce0e5.js → style-formatter-18289c4d.js} +2 -2
  30. package/dist/cjs/{sub-state-notify-slimmer-7a4c6061.js → sub-state-notify-slimmer-39bfcfe3.js} +1 -1
  31. package/dist/cjs/{sub-state-observer-slimmer-f728e068.js → sub-state-observer-slimmer-e5b50cbf.js} +2 -2
  32. package/dist/cjs/{time-required-rule-ad091302.js → time-required-rule-3517beff.js} +1 -1
  33. package/dist/cjs/{token-extension-90396de7.js → token-extension-addc97c1.js} +208 -34
  34. package/dist/cjs/{type-guard-d760850a.js → type-guard-362d7da3.js} +23 -0
  35. package/dist/cjs/{ui-9e8c9732.js → ui-ae4ee13d.js} +69 -0
  36. package/dist/cjs/{valid-credit-card-number-rule-5ce8e973.js → valid-credit-card-number-rule-1d8bf49c.js} +1 -1
  37. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  38. package/dist/cjs/vega-app-header-button.cjs.entry.js +6 -6
  39. package/dist/cjs/vega-backdrop.cjs.entry.js +1 -1
  40. package/dist/cjs/vega-banner.cjs.entry.js +5 -4
  41. package/dist/cjs/vega-box.cjs.entry.js +5 -5
  42. package/dist/cjs/vega-breadcrumb.cjs.entry.js +27 -10
  43. package/dist/cjs/vega-button-circle.cjs.entry.js +6 -6
  44. package/dist/cjs/vega-button-group_2.cjs.entry.js +5 -5
  45. package/dist/cjs/vega-button-link.cjs.entry.js +3 -3
  46. package/dist/cjs/vega-button.cjs.entry.js +5 -5
  47. package/dist/cjs/vega-calendar_4.cjs.entry.js +7 -7
  48. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  49. package/dist/cjs/vega-carousel.cjs.entry.js +5 -5
  50. package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
  51. package/dist/cjs/vega-chip.cjs.entry.js +7 -7
  52. package/dist/cjs/vega-code-block.cjs.entry.js +9 -9
  53. package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
  54. package/dist/cjs/vega-combo-box.cjs.entry.js +8 -8
  55. package/dist/cjs/vega-date-picker_2.cjs.entry.js +337 -279
  56. package/dist/cjs/vega-dialog_2.cjs.entry.js +73 -10
  57. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  58. package/dist/cjs/vega-dropdown_5.cjs.entry.js +51 -13
  59. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  60. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  61. package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-flag-icon.cjs.entry.js +3 -3
  63. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  64. package/dist/cjs/vega-font.cjs.entry.js +4 -4
  65. package/dist/cjs/vega-form.cjs.entry.js +8 -8
  66. package/dist/cjs/vega-grid.cjs.entry.js +4 -4
  67. package/dist/cjs/vega-icon.cjs.entry.js +4 -4
  68. package/dist/cjs/vega-image-uploader.cjs.entry.js +7 -7
  69. package/dist/cjs/vega-input-credit-card.cjs.entry.js +9 -9
  70. package/dist/cjs/vega-input-numeric.cjs.entry.js +9 -9
  71. package/dist/cjs/vega-input-passcode.cjs.entry.js +8 -8
  72. package/dist/cjs/vega-input-phone-number.cjs.entry.js +7 -7
  73. package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
  74. package/dist/cjs/vega-input-select.cjs.entry.js +7 -7
  75. package/dist/cjs/vega-input.cjs.entry.js +14 -11
  76. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  77. package/dist/cjs/vega-left-nav_5.cjs.entry.js +117 -12
  78. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  79. package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
  80. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +2 -2
  81. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +23 -7
  82. package/dist/cjs/vega-pagination.cjs.entry.js +43 -19
  83. package/dist/cjs/vega-popover_2.cjs.entry.js +10 -10
  84. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +42 -11
  85. package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
  86. package/dist/cjs/vega-rich-text-content.cjs.entry.js +100 -19
  87. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +29 -18
  88. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +8 -8
  89. package/dist/cjs/vega-section-title.cjs.entry.js +21 -3
  90. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  91. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
  92. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +7 -7
  93. package/dist/cjs/vega-sidenav_3.cjs.entry.js +7 -7
  94. package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
  95. package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
  96. package/dist/cjs/vega-tab-group_2.cjs.entry.js +3 -3
  97. package/dist/cjs/vega-table_11.cjs.entry.js +7 -7
  98. package/dist/cjs/vega-text.cjs.entry.js +1 -1
  99. package/dist/cjs/vega-textarea.cjs.entry.js +5 -5
  100. package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -11
  101. package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
  102. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  103. package/dist/cjs/vega.cjs.js +10 -10
  104. package/dist/cjs/{wait-for-component-did-render-b6aba2de.js → wait-for-component-did-render-b6d12d51.js} +1 -1
  105. package/dist/collection/components/vega-banner/slimmers/renderers/vega-banner-renderer.js +1 -0
  106. package/dist/collection/components/vega-banner/vega-banner.css +36 -0
  107. package/dist/collection/components/vega-box/vega-box.js +1 -1
  108. package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.js +9 -6
  109. package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.js +4 -0
  110. package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.css +6 -0
  111. package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +31 -0
  112. package/dist/collection/components/vega-card/vega-card.css +157 -0
  113. package/dist/collection/components/vega-card/vega-card.js +1 -1
  114. package/dist/collection/components/vega-chip/vega-chip.js +26 -1
  115. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.js +5 -10
  116. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-is-dual-months-controller.js +64 -0
  117. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +3 -6
  118. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +3 -11
  119. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +2 -2
  120. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +4 -5
  121. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +13 -15
  122. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +41 -2
  123. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  124. package/dist/collection/components/vega-divider/slimmers/controllers/vega-divider-size-controller.js +1 -1
  125. package/dist/collection/components/vega-divider/vega-divider.css +157 -0
  126. package/dist/collection/components/vega-divider/vega-divider.js +1 -1
  127. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +37 -1
  128. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +4 -1
  129. package/dist/collection/components/vega-flex/vega-flex.css +157 -0
  130. package/dist/collection/components/vega-flex/vega-flex.js +1 -1
  131. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +4 -1
  132. package/dist/collection/components/vega-input/vega-input.js +25 -0
  133. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +37 -1
  134. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +11 -1
  135. package/dist/collection/components/vega-modal/vega-modal.css +2683 -7
  136. package/dist/collection/components/vega-modal/vega-modal.js +75 -0
  137. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +85 -2
  138. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +23 -0
  139. package/dist/collection/components/vega-pagination/constants/page-size.js +2 -0
  140. package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +11 -7
  141. package/dist/collection/components/vega-pagination/slimmers/controllers/vega-pagination-page-size-observer-controller.js +11 -1
  142. package/dist/collection/components/vega-pagination/utils/page-size-option-utils.js +57 -0
  143. package/dist/collection/components/vega-pagination/vega-pagination-page-size-selector-mobile/slimmers/renderers/page-size-selector-mobile-dropdown-renderer.js +15 -5
  144. package/dist/collection/components/vega-pagination/vega-pagination-page-size-selector-mobile/vega-pagination-page-size-selector-mobile.js +39 -3
  145. package/dist/collection/components/vega-pagination/vega-pagination.js +32 -11
  146. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.js +34 -3
  147. package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +3 -2
  148. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +20 -0
  149. package/dist/collection/components/vega-rich-text-editor/dto/annotations/image-annotation.js +1 -0
  150. package/dist/collection/components/vega-rich-text-editor/dto/annotations/inline-html-annotation.js +12 -0
  151. package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-group-annotation.js +8 -2
  152. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +15 -4
  153. package/dist/collection/components/vega-rich-text-editor/dto/blocks/code-block.js +6 -2
  154. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +9 -15
  155. package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +3 -3
  156. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +3 -3
  157. package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +3 -7
  158. package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +50 -9
  159. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +25 -6
  160. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-block-filter-styles-strategy.js +39 -0
  161. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.js +47 -0
  162. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +64 -0
  163. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +147 -14
  164. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/image-node/image-filter-styles-strategy.js +26 -3
  165. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.js +24 -0
  166. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-heading-item-block-filter-styles-strategy.js +29 -0
  167. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-item-block-filter-styles-strategy.js +39 -1
  168. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-title-item-block-filter-styles-strategy.js +29 -0
  169. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/predicate.js +94 -0
  170. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/heading-filter-styles-strategy.js +15 -0
  171. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/paragraph-filter-styles-strategy.js +48 -0
  172. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/title-filter-styles-strategy.js +16 -0
  173. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/code-filter-styles-strategy.js +32 -3
  174. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/link-filter-styles-strategy.js +42 -3
  175. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +108 -0
  176. package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +7 -2
  177. package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +2 -2
  178. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +15 -4
  179. package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +84 -14
  180. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +61 -6
  181. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +16 -0
  182. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +14 -3
  183. package/dist/collection/components/vega-rich-text-editor/dto/setup.js +36 -6
  184. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +10 -0
  185. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +9 -3
  186. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.js +17 -1
  187. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.js +17 -18
  188. package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.js +19 -0
  189. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +3 -3
  190. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-body-block.js +3 -3
  191. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.js +21 -4
  192. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.js +3 -3
  193. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-block.js +3 -3
  194. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.js +3 -3
  195. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-row-block.js +3 -3
  196. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/caption-to-caption-block-strategy.js +2 -1
  197. package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/td-to-table-cell-block-strategy.js +2 -2
  198. package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-block/table-block-filter-styles-strategy.js +39 -0
  199. package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-caption/table-caption-filter-styles-strategy.js +39 -0
  200. package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-cell/table-cell-filter-styles-strategy.js +63 -0
  201. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +7 -0
  202. package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +24 -0
  203. package/dist/collection/components/vega-rich-text-editor/public-api.js +2 -0
  204. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/custom-style-annotation-handler.js +2 -25
  205. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.js +8 -2
  206. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/inline-html-annotation-handler.js +30 -53
  207. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/link-annotation-handler.js +2 -1
  208. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +2 -1
  209. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +85 -17
  210. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.js +12 -5
  211. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/html-block-strategy.js +95 -43
  212. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/inline-element-to-text-node-strategy.js +1 -2
  213. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/predicate.js +29 -0
  214. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/strategy-tags.js +142 -0
  215. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +1 -0
  216. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +12 -2
  217. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +1 -1
  218. package/dist/collection/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.js +8 -2
  219. package/dist/collection/components/vega-section-title/vega-section-title.css +35 -0
  220. package/dist/collection/components/vega-section-title/vega-section-title.js +64 -0
  221. package/dist/collection/components/vega-stepper/vega-stepper.css +3 -0
  222. package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-margin-formatter.js +3 -3
  223. package/dist/collection/helpers/slimmers/aria-dialog-focusable-trap-slimmer.js +13 -68
  224. package/dist/collection/types/type-guard.js +21 -0
  225. package/dist/collection/utils/ui.js +68 -0
  226. package/dist/esm/{app-globals-e77015e3.js → app-globals-80a7d395.js} +6 -6
  227. package/dist/esm/{aria-dialog-focusable-trap-slimmer-5a2f92be.js → aria-dialog-focusable-trap-slimmer-cc6a8c3e.js} +14 -69
  228. package/dist/esm/{child-nodes-notify-observer-slimmer-b7f0e419.js → child-nodes-notify-observer-slimmer-a8cb19cf.js} +1 -1
  229. package/dist/esm/{code-block-7d6f231b.js → code-block-cd913077.js} +796 -62
  230. package/dist/esm/{component-value-history-controller-slimmer.abstract-acf65b17.js → component-value-history-controller-slimmer.abstract-e595761d.js} +5 -5
  231. package/dist/esm/{content-state-084cd705.js → content-state-89f8eecb.js} +958 -455
  232. package/dist/esm/{date-required-rule-29608215.js → date-required-rule-2b08f32c.js} +1 -1
  233. package/dist/esm/{design-token-edcd787b.js → design-token-7566d54c.js} +2 -2
  234. package/dist/esm/{dom-node-subject-observer-factory-cea9248d.js → dom-node-subject-observer-factory-aca0116e.js} +1 -1
  235. package/dist/esm/{element-appender-slimmer-08ec429b.js → element-appender-slimmer-df2a2da2.js} +4 -4
  236. package/dist/esm/{event-emit-slimmer-4fba1b35.js → event-emit-slimmer-9abc9241.js} +1 -1
  237. package/dist/esm/{form-field-controller-slimmer-8dd39707.js → form-field-controller-slimmer-40fcb5c2.js} +3 -3
  238. package/dist/esm/{image-annotation-action-a6b33a81.js → image-annotation-action-6048d32e.js} +3 -3
  239. package/dist/esm/index.js +14 -14
  240. package/dist/esm/{inject-keyboard-manager-7557816f.js → inject-keyboard-manager-c6557f50.js} +1 -1
  241. package/dist/esm/{keyboard-manager-1846c6a5.js → keyboard-manager-c7b125d7.js} +2 -2
  242. package/dist/esm/{keyboard-manager-slimmer-1ae0aa4d.js → keyboard-manager-slimmer-6109039b.js} +1 -1
  243. package/dist/esm/loader.js +10 -10
  244. package/dist/esm/{month-view-generator-b700ed08.js → month-view-generator-139ace5a.js} +1 -1
  245. package/dist/esm/page-size-option-utils-50afc81a.js +61 -0
  246. package/dist/esm/{public-rules-fe2c7934.js → public-rules-e42bce9d.js} +8 -8
  247. package/dist/esm/{range-00afe462.js → range-b76edec7.js} +2 -2
  248. package/dist/esm/{responsive-format-facade-37d4d850.js → responsive-format-facade-151dbd10.js} +3 -3
  249. package/dist/esm/{rich-text-editor-required-rule-6487ec94.js → rich-text-editor-required-rule-1fc7c040.js} +1 -1
  250. package/dist/esm/{split-cell-operation-9445e642.js → split-cell-operation-548ea374.js} +58 -23
  251. package/dist/esm/{string-format-strategy.abstract-ec6d627b.js → string-format-strategy.abstract-6488031a.js} +1 -1
  252. package/dist/esm/{string-input-formatter-slimmer-959dff7a.js → string-input-formatter-slimmer-625e17a2.js} +3 -3
  253. package/dist/esm/{string-mask-strategy-49be41f0.js → string-mask-strategy-a165d316.js} +2 -2
  254. package/dist/esm/{style-formatter-ad0b2bac.js → style-formatter-280757ae.js} +2 -2
  255. package/dist/esm/{sub-state-notify-slimmer-ee8c417b.js → sub-state-notify-slimmer-6c972bb4.js} +1 -1
  256. package/dist/esm/{sub-state-observer-slimmer-4d30fa5c.js → sub-state-observer-slimmer-53643b5c.js} +2 -2
  257. package/dist/esm/{time-required-rule-414b1590.js → time-required-rule-3f5a8822.js} +1 -1
  258. package/dist/esm/{token-extension-600b1c88.js → token-extension-5ee7a3f1.js} +208 -34
  259. package/dist/esm/{type-guard-23a08026.js → type-guard-f6c9c89d.js} +22 -1
  260. package/dist/esm/{ui-ba5a4758.js → ui-b7600a48.js} +69 -1
  261. package/dist/esm/{valid-credit-card-number-rule-60abddac.js → valid-credit-card-number-rule-3bf19ad6.js} +1 -1
  262. package/dist/esm/vega-accordion.entry.js +6 -6
  263. package/dist/esm/vega-app-header-button.entry.js +6 -6
  264. package/dist/esm/vega-backdrop.entry.js +1 -1
  265. package/dist/esm/vega-banner.entry.js +5 -4
  266. package/dist/esm/vega-box.entry.js +5 -5
  267. package/dist/esm/vega-breadcrumb.entry.js +27 -10
  268. package/dist/esm/vega-button-circle.entry.js +6 -6
  269. package/dist/esm/vega-button-group_2.entry.js +5 -5
  270. package/dist/esm/vega-button-link.entry.js +3 -3
  271. package/dist/esm/vega-button.entry.js +5 -5
  272. package/dist/esm/vega-calendar_4.entry.js +7 -7
  273. package/dist/esm/vega-card.entry.js +5 -5
  274. package/dist/esm/vega-carousel.entry.js +5 -5
  275. package/dist/esm/vega-checkbox_2.entry.js +6 -6
  276. package/dist/esm/vega-chip.entry.js +7 -7
  277. package/dist/esm/vega-code-block.entry.js +9 -9
  278. package/dist/esm/vega-color-picker.entry.js +5 -5
  279. package/dist/esm/vega-combo-box.entry.js +8 -8
  280. package/dist/esm/vega-date-picker_2.entry.js +337 -279
  281. package/dist/esm/vega-dialog_2.entry.js +73 -10
  282. package/dist/esm/vega-divider.entry.js +5 -5
  283. package/dist/esm/vega-dropdown_5.entry.js +52 -14
  284. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  285. package/dist/esm/vega-field-label.entry.js +3 -3
  286. package/dist/esm/vega-file-uploader.entry.js +5 -5
  287. package/dist/esm/vega-flag-icon.entry.js +3 -3
  288. package/dist/esm/vega-flex.entry.js +6 -6
  289. package/dist/esm/vega-font.entry.js +4 -4
  290. package/dist/esm/vega-form.entry.js +8 -8
  291. package/dist/esm/vega-grid.entry.js +4 -4
  292. package/dist/esm/vega-icon.entry.js +4 -4
  293. package/dist/esm/vega-image-uploader.entry.js +7 -7
  294. package/dist/esm/vega-input-credit-card.entry.js +9 -9
  295. package/dist/esm/vega-input-numeric.entry.js +9 -9
  296. package/dist/esm/vega-input-passcode.entry.js +8 -8
  297. package/dist/esm/vega-input-phone-number.entry.js +7 -7
  298. package/dist/esm/vega-input-range.entry.js +5 -5
  299. package/dist/esm/vega-input-select.entry.js +7 -7
  300. package/dist/esm/vega-input.entry.js +14 -11
  301. package/dist/esm/vega-item-toggle.entry.js +3 -3
  302. package/dist/esm/vega-left-nav_5.entry.js +117 -12
  303. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  304. package/dist/esm/vega-page-notification_2.entry.js +2 -2
  305. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
  306. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +23 -7
  307. package/dist/esm/vega-pagination.entry.js +43 -19
  308. package/dist/esm/vega-popover_2.entry.js +10 -10
  309. package/dist/esm/vega-progress-tracker_2.entry.js +42 -11
  310. package/dist/esm/vega-radio_2.entry.js +9 -9
  311. package/dist/esm/vega-rich-text-content.entry.js +100 -19
  312. package/dist/esm/vega-rich-text-editor_4.entry.js +29 -18
  313. package/dist/esm/vega-rich-text-table-properties_3.entry.js +8 -8
  314. package/dist/esm/vega-section-title.entry.js +21 -3
  315. package/dist/esm/vega-segment-control.entry.js +3 -3
  316. package/dist/esm/vega-selection-chip_2.entry.js +8 -8
  317. package/dist/esm/vega-selection-tile_2.entry.js +7 -7
  318. package/dist/esm/vega-sidenav_3.entry.js +7 -7
  319. package/dist/esm/vega-signature-capture.entry.js +8 -8
  320. package/dist/esm/vega-stepper.entry.js +6 -6
  321. package/dist/esm/vega-tab-group_2.entry.js +3 -3
  322. package/dist/esm/vega-table_11.entry.js +7 -7
  323. package/dist/esm/vega-text.entry.js +1 -1
  324. package/dist/esm/vega-textarea.entry.js +5 -5
  325. package/dist/esm/vega-time-picker_2.entry.js +11 -11
  326. package/dist/esm/vega-toggle-switch.entry.js +5 -5
  327. package/dist/esm/vega-tooltip_2.entry.js +7 -7
  328. package/dist/esm/vega.js +10 -10
  329. package/dist/esm/{wait-for-component-did-render-03e7ccb2.js → wait-for-component-did-render-6980a1a6.js} +1 -1
  330. package/dist/sri/vega-sri-manifest.json +345 -341
  331. package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.d.ts +1 -0
  332. package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.d.ts +1 -0
  333. package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +10 -0
  334. package/dist/types/components/vega-chip/vega-chip.d.ts +9 -0
  335. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.d.ts +1 -6
  336. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-is-dual-months-controller.d.ts +28 -0
  337. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +1 -2
  338. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +1 -2
  339. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +1 -1
  340. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +1 -1
  341. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +12 -0
  342. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +12 -0
  343. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.d.ts +1 -0
  344. package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +1 -0
  345. package/dist/types/components/vega-input/types.d.ts +5 -0
  346. package/dist/types/components/vega-input/vega-input.d.ts +17 -1
  347. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.d.ts +9 -0
  348. package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +3 -0
  349. package/dist/types/components/vega-modal/vega-modal.d.ts +24 -1
  350. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +17 -0
  351. package/dist/types/components/vega-pagination/constants/page-size.d.ts +2 -0
  352. package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +3 -2
  353. package/dist/types/components/vega-pagination/slimmers/controllers/vega-pagination-page-size-observer-controller.d.ts +2 -0
  354. package/dist/types/components/vega-pagination/types.d.ts +9 -0
  355. package/dist/types/components/vega-pagination/utils/page-size-option-utils.d.ts +42 -0
  356. package/dist/types/components/vega-pagination/vega-pagination-page-size-selector-mobile/slimmers/renderers/page-size-selector-mobile-dropdown-renderer.d.ts +2 -0
  357. package/dist/types/components/vega-pagination/vega-pagination-page-size-selector-mobile/vega-pagination-page-size-selector-mobile.d.ts +9 -2
  358. package/dist/types/components/vega-pagination/vega-pagination.d.ts +8 -3
  359. package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.d.ts +14 -2
  360. package/dist/types/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.d.ts +1 -1
  361. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +5 -0
  362. package/dist/types/components/vega-rich-text-editor/dto/annotations/image-annotation.d.ts +1 -0
  363. package/dist/types/components/vega-rich-text-editor/dto/annotations/inline-html-annotation.d.ts +14 -0
  364. package/dist/types/components/vega-rich-text-editor/dto/annotations/link-group-annotation.d.ts +8 -2
  365. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +4 -2
  366. package/dist/types/components/vega-rich-text-editor/dto/blocks/code-block.d.ts +2 -2
  367. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +1 -11
  368. package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +1 -1
  369. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +1 -1
  370. package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +1 -1
  371. package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +15 -2
  372. package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +9 -3
  373. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-block-filter-styles-strategy.d.ts +27 -0
  374. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.d.ts +27 -0
  375. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +27 -1
  376. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +92 -8
  377. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/image-node/image-filter-styles-strategy.d.ts +21 -3
  378. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.d.ts +15 -0
  379. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-heading-item-block-filter-styles-strategy.d.ts +19 -0
  380. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-item-block-filter-styles-strategy.d.ts +25 -0
  381. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-title-item-block-filter-styles-strategy.d.ts +19 -0
  382. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/predicate.d.ts +72 -0
  383. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/heading-filter-styles-strategy.d.ts +10 -0
  384. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/paragraph-filter-styles-strategy.d.ts +34 -0
  385. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/title-filter-styles-strategy.d.ts +11 -0
  386. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/code-filter-styles-strategy.d.ts +25 -2
  387. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/link-filter-styles-strategy.d.ts +24 -4
  388. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +62 -0
  389. package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +7 -3
  390. package/dist/types/components/vega-rich-text-editor/dto/nodes/image-node.d.ts +1 -1
  391. package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +5 -3
  392. package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +43 -4
  393. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +25 -0
  394. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.d.ts +5 -0
  395. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +12 -0
  396. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +8 -0
  397. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.d.ts +8 -0
  398. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.d.ts +7 -1
  399. package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.d.ts +9 -1
  400. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +1 -1
  401. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-body-block.d.ts +1 -1
  402. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.d.ts +5 -2
  403. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.d.ts +1 -1
  404. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-block.d.ts +1 -1
  405. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.d.ts +1 -1
  406. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-row-block.d.ts +1 -1
  407. package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-block/table-block-filter-styles-strategy.d.ts +29 -0
  408. package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-caption/table-caption-filter-styles-strategy.d.ts +29 -0
  409. package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-cell/table-cell-filter-styles-strategy.d.ts +46 -0
  410. package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +8 -0
  411. package/dist/types/components/vega-rich-text-editor/interface.d.ts +27 -5
  412. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
  413. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/custom-style-annotation-handler.d.ts +0 -7
  414. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.d.ts +1 -1
  415. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/inline-html-annotation-handler.d.ts +11 -1
  416. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +43 -7
  417. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.d.ts +8 -3
  418. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/html-block-strategy.d.ts +34 -1
  419. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/predicate.d.ts +21 -0
  420. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/strategy-tags.d.ts +83 -0
  421. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +6 -0
  422. package/dist/types/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.d.ts +2 -0
  423. package/dist/types/components/vega-section-title/types.d.ts +1 -0
  424. package/dist/types/components/vega-section-title/vega-section-title.d.ts +14 -0
  425. package/dist/types/components.d.ts +93 -8
  426. package/dist/types/helpers/slimmers/aria-dialog-focusable-trap-slimmer.d.ts +4 -12
  427. package/dist/types/types/components.type.d.ts +3 -0
  428. package/dist/types/types/type-guard.d.ts +15 -1
  429. package/dist/types/types/ui.type.d.ts +11 -1
  430. package/dist/types/utils/ui.d.ts +14 -0
  431. package/dist/vega/index.esm.js +1 -1
  432. package/dist/vega/{p-1c45565d.js → p-001d36af.js} +1 -1
  433. package/dist/vega/{p-7c2fecfd.entry.js → p-01541820.entry.js} +1 -1
  434. package/dist/vega/p-0304c3a7.js +1 -0
  435. package/dist/vega/{p-2d917e2d.entry.js → p-08f03a52.entry.js} +1 -1
  436. package/dist/vega/{p-9390a94b.entry.js → p-0a145766.entry.js} +1 -1
  437. package/dist/vega/p-0d205fbf.js +1 -0
  438. package/dist/vega/p-0fc2ccc4.entry.js +1 -0
  439. package/dist/vega/p-118aeed1.entry.js +1 -0
  440. package/dist/vega/{p-ea21462f.js → p-1a4e8d8a.js} +1 -1
  441. package/dist/vega/{p-5ae4ea20.entry.js → p-23dc4064.entry.js} +1 -1
  442. package/dist/vega/{p-2c2df248.js → p-24b45c85.js} +1 -1
  443. package/dist/vega/{p-010b5e74.js → p-262a27d0.js} +1 -1
  444. package/dist/vega/{p-9dc23325.entry.js → p-27dc6562.entry.js} +1 -1
  445. package/dist/vega/p-295326ca.entry.js +1 -0
  446. package/dist/vega/{p-6af55f1c.entry.js → p-2beace1c.entry.js} +1 -1
  447. package/dist/vega/p-2ce2972f.js +1 -0
  448. package/dist/vega/p-2e7d5e28.entry.js +1 -0
  449. package/dist/vega/{p-7618dde4.js → p-2f99c511.js} +1 -1
  450. package/dist/vega/p-32592497.entry.js +1 -0
  451. package/dist/vega/{p-65900dbf.entry.js → p-37a9f4b4.entry.js} +1 -1
  452. package/dist/vega/{p-a99e75a1.entry.js → p-4013d954.entry.js} +1 -1
  453. package/dist/vega/{p-19ad4f15.entry.js → p-42da45e3.entry.js} +1 -1
  454. package/dist/vega/p-42e246e4.entry.js +1 -0
  455. package/dist/vega/p-479a169c.entry.js +1 -0
  456. package/dist/vega/{p-35386999.entry.js → p-47a2eec1.entry.js} +1 -1
  457. package/dist/vega/{p-b696a861.js → p-49ae8c79.js} +1 -1
  458. package/dist/vega/p-4ed416e7.js +1 -0
  459. package/dist/vega/{p-dc9b5063.entry.js → p-53ba1adb.entry.js} +1 -1
  460. package/dist/vega/{p-d1494c7c.entry.js → p-55019e55.entry.js} +1 -1
  461. package/dist/vega/{p-434fc427.entry.js → p-565aac6e.entry.js} +1 -1
  462. package/dist/vega/{p-cc055723.entry.js → p-574586c9.entry.js} +1 -1
  463. package/dist/vega/{p-cca5042b.entry.js → p-5781b9f4.entry.js} +1 -1
  464. package/dist/vega/{p-1feb4f2a.entry.js → p-57827342.entry.js} +1 -1
  465. package/dist/vega/p-59c6f795.js +1 -0
  466. package/dist/vega/{p-f48c43f4.entry.js → p-5a8be21c.entry.js} +1 -1
  467. package/dist/vega/p-5baff397.js +1 -0
  468. package/dist/vega/{p-ffa2e3a6.entry.js → p-5e9f6fb6.entry.js} +1 -1
  469. package/dist/vega/p-5f377954.js +1 -1
  470. package/dist/vega/{p-44c5cbb7.js → p-5f95a2fa.js} +1 -1
  471. package/dist/vega/{p-576fe408.js → p-6216c30e.js} +1 -1
  472. package/dist/vega/{p-367d44d9.entry.js → p-62e80151.entry.js} +1 -1
  473. package/dist/vega/{p-ec1d76c6.entry.js → p-63d73fa0.entry.js} +1 -1
  474. package/dist/vega/{p-612e3ded.js → p-64e22fe5.js} +1 -1
  475. package/dist/vega/{p-0313393d.entry.js → p-679b1f00.entry.js} +1 -1
  476. package/dist/vega/p-6e70d3cc.js +1 -0
  477. package/dist/vega/{p-70f1cf4e.entry.js → p-757bfca2.entry.js} +1 -1
  478. package/dist/vega/{p-c9201bf4.js → p-76063dcb.js} +1 -1
  479. package/dist/vega/{p-8adf9732.entry.js → p-76daa632.entry.js} +1 -1
  480. package/dist/vega/{p-1a2f92a3.entry.js → p-77c6f14a.entry.js} +1 -1
  481. package/dist/vega/{p-382b71a3.entry.js → p-7ac9e8ff.entry.js} +1 -1
  482. package/dist/vega/p-83863463.js +1 -0
  483. package/dist/vega/{p-e84b95d4.js → p-88e6618d.js} +1 -1
  484. package/dist/vega/p-90a0b9f3.entry.js +1 -0
  485. package/dist/vega/{p-1557ed92.entry.js → p-9324dd2c.entry.js} +1 -1
  486. package/dist/vega/{p-cf70c57d.js → p-98c44c03.js} +1 -1
  487. package/dist/vega/p-9aa1c66a.entry.js +1 -0
  488. package/dist/vega/p-9b01a28a.entry.js +1 -0
  489. package/dist/vega/{p-4eb282ef.entry.js → p-9b14ac66.entry.js} +1 -1
  490. package/dist/vega/p-9dcecdd3.js +1 -0
  491. package/dist/vega/p-a1d51bc2.js +1 -0
  492. package/dist/vega/{p-04e56b0c.entry.js → p-ab4b06c9.entry.js} +1 -1
  493. package/dist/vega/{p-b5c2fff3.entry.js → p-ac43be09.entry.js} +1 -1
  494. package/dist/vega/{p-7ceab8c7.entry.js → p-add63fe0.entry.js} +1 -1
  495. package/dist/vega/{p-89e56502.js → p-ae0f03c1.js} +1 -1
  496. package/dist/vega/{p-21c9e1ca.entry.js → p-b525c800.entry.js} +1 -1
  497. package/dist/vega/p-be651266.entry.js +1 -0
  498. package/dist/vega/{p-c045e4c1.entry.js → p-c0d45f77.entry.js} +1 -1
  499. package/dist/vega/{p-204c7d41.js → p-c2e7992b.js} +1 -1
  500. package/dist/vega/{p-b5a6bd0f.entry.js → p-c56aa01c.entry.js} +1 -1
  501. package/dist/vega/{p-2e73582d.entry.js → p-cc3c661c.entry.js} +1 -1
  502. package/dist/vega/{p-cda45d2a.entry.js → p-cda09e99.entry.js} +1 -1
  503. package/dist/vega/{p-d1ca70a1.js → p-d0ac7af8.js} +1 -1
  504. package/dist/vega/p-d289a6af.js +3 -0
  505. package/dist/vega/p-d29e8972.entry.js +1 -0
  506. package/dist/vega/{p-76b80a0c.js → p-d47aa28f.js} +1 -1
  507. package/dist/vega/p-d90eee9a.entry.js +1 -0
  508. package/dist/vega/{p-be3517be.entry.js → p-da742a7f.entry.js} +1 -1
  509. package/dist/vega/p-dc6e7a77.js +1 -0
  510. package/dist/vega/{p-c61279a7.entry.js → p-dcf8f58f.entry.js} +1 -1
  511. package/dist/vega/{p-ab21fdf6.entry.js → p-dff66a67.entry.js} +1 -1
  512. package/dist/vega/{p-90137c68.entry.js → p-e1117034.entry.js} +1 -1
  513. package/dist/vega/p-e223e0dc.entry.js +1 -0
  514. package/dist/vega/p-e22e5aa1.js +1 -0
  515. package/dist/vega/{p-df5bfbc4.entry.js → p-e753fac2.entry.js} +1 -1
  516. package/dist/vega/{p-7912741f.entry.js → p-e7a4b760.entry.js} +1 -1
  517. package/dist/vega/{p-ba415db6.entry.js → p-e8fc8495.entry.js} +1 -1
  518. package/dist/vega/{p-18619467.js → p-ea2b5dbb.js} +1 -1
  519. package/dist/vega/{p-f3456993.entry.js → p-eccabba7.entry.js} +1 -1
  520. package/dist/vega/{p-517434d4.entry.js → p-f0d605e9.entry.js} +1 -1
  521. package/dist/vega/{p-878851f6.js → p-f28a6074.js} +1 -1
  522. package/dist/vega/{p-840ad046.entry.js → p-f2c65579.entry.js} +1 -1
  523. package/dist/vega/{p-07a2b42a.js → p-f2cef51a.js} +1 -1
  524. package/dist/vega/{p-47ca1f69.entry.js → p-f40d479d.entry.js} +1 -1
  525. package/dist/vega/p-f5013494.entry.js +1 -0
  526. package/dist/vega/{p-60cf2a68.js → p-f509b439.js} +1 -1
  527. package/dist/vega/p-f5d3ce94.js +1 -0
  528. package/dist/vega/{p-9551da9c.entry.js → p-f69e2801.entry.js} +1 -1
  529. package/dist/vega/p-fa654762.entry.js +1 -0
  530. package/dist/vega/{p-365d21ac.entry.js → p-fbc5a7f6.entry.js} +1 -1
  531. package/dist/vega/{p-b3e40faf.js → p-fd5ddc55.js} +1 -1
  532. package/dist/vega/p-ff47aeee.entry.js +1 -0
  533. package/dist/vega/vega.esm.js +1 -1
  534. package/package.json +1 -1
  535. package/dist/vega/p-01883ffc.entry.js +0 -1
  536. package/dist/vega/p-02578a59.js +0 -1
  537. package/dist/vega/p-043e685a.entry.js +0 -1
  538. package/dist/vega/p-08780df0.entry.js +0 -1
  539. package/dist/vega/p-10fa4eac.js +0 -1
  540. package/dist/vega/p-203bc4db.entry.js +0 -1
  541. package/dist/vega/p-22336063.js +0 -1
  542. package/dist/vega/p-224b67ff.entry.js +0 -1
  543. package/dist/vega/p-334e3b02.entry.js +0 -1
  544. package/dist/vega/p-559197f8.js +0 -1
  545. package/dist/vega/p-68124bc5.js +0 -1
  546. package/dist/vega/p-6c5250b3.js +0 -1
  547. package/dist/vega/p-6f2e5bc6.js +0 -1
  548. package/dist/vega/p-716c71e6.js +0 -1
  549. package/dist/vega/p-7362723e.entry.js +0 -1
  550. package/dist/vega/p-7942c042.entry.js +0 -1
  551. package/dist/vega/p-8327635d.js +0 -1
  552. package/dist/vega/p-8b891f36.entry.js +0 -1
  553. package/dist/vega/p-9341c1a9.js +0 -1
  554. package/dist/vega/p-9862d1a8.entry.js +0 -1
  555. package/dist/vega/p-a4dbf2cc.js +0 -1
  556. package/dist/vega/p-c4e32125.entry.js +0 -1
  557. package/dist/vega/p-c5b698f6.entry.js +0 -1
  558. package/dist/vega/p-c6d62f0d.js +0 -1
  559. package/dist/vega/p-cdf5b2f0.entry.js +0 -1
  560. package/dist/vega/p-d202e69d.entry.js +0 -1
  561. package/dist/vega/p-dcd18ab1.js +0 -1
  562. package/dist/vega/p-e4726dcd.entry.js +0 -1
  563. package/dist/vega/p-f4190826.entry.js +0 -1
  564. package/dist/vega/p-fdac91c4.entry.js +0 -1
@@ -3,6 +3,8 @@ import { CustomAttributeAnnotationHandler } from './custom-attribute-annotation-
3
3
  import { CustomStyleAnnotationHandler } from './custom-style-annotation-handler';
4
4
  import { CustomClassAnnotationHandler } from './custom-class-annotation-handler';
5
5
  import { RTETextNode } from '../../../../../dto/nodes/text-node';
6
+ import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS } from '../strategy-tags';
7
+ import { generateUUID } from '../../../../../../../utils/misc';
6
8
  /**
7
9
  * Handle inline html annotation
8
10
  */
@@ -23,12 +25,14 @@ export class InlineHtmlAnnotationHandler extends AnnotationGeneratorStrategyAbst
23
25
  * @inheritDoc
24
26
  */
25
27
  handle(element, parentAnnotations) {
26
- const canHandle = InlineHtmlAnnotationHandler.canHandleTags.includes(element.nodeName);
27
- if (canHandle) {
28
- const inlineHtml = this.generateInlineHtmlAnnotation(element, Object.assign({}, parentAnnotations));
29
- if (inlineHtml) {
30
- return { inlineHtml: inlineHtml };
31
- }
28
+ // Skip block-level dedicated tags (P, H1-H6, LI, UL, OL, IMG).
29
+ // Tags in ALWAYS_INLINE_TAGS (CODE, A) are exempt and still produce inlineHtml annotations.
30
+ if (DEDICATED_STRATEGY_TAGS.has(element.nodeName) && !ALWAYS_INLINE_TAGS.has(element.nodeName)) {
31
+ return {};
32
+ }
33
+ const inlineHtml = this.generateInlineHtmlAnnotation(element, Object.assign({}, parentAnnotations));
34
+ if (inlineHtml) {
35
+ return { inlineHtml: inlineHtml };
32
36
  }
33
37
  return {};
34
38
  }
@@ -41,59 +45,32 @@ export class InlineHtmlAnnotationHandler extends AnnotationGeneratorStrategyAbst
41
45
  */
42
46
  generateInlineHtmlAnnotation(child, annotations) {
43
47
  let { inlineHtml } = annotations;
44
- if (!RTETextNode.supportsHtmlTag(child.nodeName.toLowerCase()) ||
45
- (child.childNodes.length === 1 && child.childNodes[0].nodeType !== Node.TEXT_NODE)) {
46
- const childInlineHtmlNode = {
47
- htmlTag: child.nodeName.toLowerCase(),
48
- customAttribute: this.customAttributeHandler.handle(child).customAttribute,
49
- customStyle: this.customStyleAnnotationHandler.handle(child).customStyle,
50
- customClass: this.customClassAnnotationHandler.handle(child).customClass,
51
- };
48
+ const hasElementChildren = Array.from(child.childNodes).some((c) => c.nodeType === Node.ELEMENT_NODE);
49
+ if (!RTETextNode.supportsHtmlTag(child.nodeName.toLowerCase()) || hasElementChildren) {
50
+ const childInlineHtmlNode = Object.assign(Object.assign({ htmlTag: child.nodeName.toLowerCase() }, (hasElementChildren ? { groupId: generateUUID() } : {})), { customAttribute: this.customAttributeHandler.handle(child).customAttribute, customStyle: this.customStyleAnnotationHandler.handle(child).customStyle, customClass: this.customClassAnnotationHandler.handle(child).customClass });
52
51
  if (!inlineHtml) {
53
52
  inlineHtml = childInlineHtmlNode;
54
53
  }
55
54
  else {
56
- let lastChild = inlineHtml;
57
- while (lastChild.child &&
58
- child.parentNode &&
59
- lastChild.child.htmlTag === child.parentNode.nodeName.toLowerCase()) {
60
- lastChild = lastChild.child;
61
- }
62
- lastChild.child = childInlineHtmlNode;
55
+ inlineHtml = this.appendToInlineHtmlChain(inlineHtml, childInlineHtmlNode, child.parentNode);
63
56
  }
64
57
  }
65
58
  return inlineHtml ? Object.assign({}, inlineHtml) : null;
66
59
  }
60
+ /**
61
+ * Immutably appends `toAppend` at the correct position in the chain — the
62
+ * deepest node whose `child.htmlTag` still matches `parentNode.nodeName`.
63
+ * Each level is reconstructed via spread so the original chain is never mutated.
64
+ *
65
+ * @param {VegaInlineHtmlSchema} node - Current chain node.
66
+ * @param {VegaInlineHtmlSchema} toAppend - Node to append at the tail.
67
+ * @param {ParentNode | null} parentNode - DOM parent of the element being processed.
68
+ * @returns {VegaInlineHtmlSchema} A new chain with `toAppend` inserted.
69
+ */
70
+ appendToInlineHtmlChain(node, toAppend, parentNode) {
71
+ if (node.child && parentNode && node.child.htmlTag === parentNode.nodeName.toLowerCase()) {
72
+ return Object.assign(Object.assign({}, node), { child: this.appendToInlineHtmlChain(node.child, toAppend, parentNode) });
73
+ }
74
+ return Object.assign(Object.assign({}, node), { child: toAppend });
75
+ }
67
76
  }
68
- InlineHtmlAnnotationHandler.canHandleTags = [
69
- 'A',
70
- 'ABBR',
71
- 'AUDIO',
72
- 'B',
73
- 'BDI',
74
- 'BDO',
75
- 'CITE',
76
- 'CODE',
77
- 'DEL',
78
- 'DFN',
79
- 'EMBED',
80
- 'EM',
81
- 'I',
82
- 'INS',
83
- 'KBD',
84
- 'MARK',
85
- 'METER',
86
- 'OUTPUT',
87
- 'PROGRESS',
88
- 'Q',
89
- 'S',
90
- 'SMALL',
91
- 'SPAN',
92
- 'STRONG',
93
- 'SUB',
94
- 'SUP',
95
- 'TIME',
96
- 'U',
97
- 'VAR',
98
- 'VIDEO',
99
- ];
@@ -1,4 +1,5 @@
1
1
  import { generateUUID } from '../../../../../../../utils/misc';
2
+ import { Predicate } from '../predicate';
2
3
  import { AnnotationGeneratorStrategyAbstract } from './annotation-generator-strategy.abstract';
3
4
  import { CustomAttributeAnnotationHandler } from './custom-attribute-annotation-handler';
4
5
  import { CustomClassAnnotationHandler } from './custom-class-annotation-handler';
@@ -32,7 +33,7 @@ export class LinkAnnotationHandler extends AnnotationGeneratorStrategyAbstract {
32
33
  handle(element, parentAnnotations = {}) {
33
34
  if (parentAnnotations.link)
34
35
  return { link: parentAnnotations.link };
35
- return element.tagName === 'A' ? { link: this.generateLinkAnnotations(element) } : {};
36
+ return Predicate.isLinkElement(element) ? { link: this.generateLinkAnnotations(element) } : {};
36
37
  }
37
38
  /**
38
39
  * Generate link annotations.
@@ -112,7 +112,8 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
112
112
  */
113
113
  getElementTypeByClassName(element) {
114
114
  if (element.className) {
115
- const match = /\bv-rte--text-style-(title|subtitle|heading-1|heading-2|heading-3|heading-4|heading-5|heading-6|paragraph)\b/.exec(element.className);
115
+ // Match class name with pattern "v-rte--text-style-{textStyle}" or "v-rte-{textStyle}".
116
+ const match = /\bv-rte-(?:-text-style-)?(title|subtitle|heading-1|heading-2|heading-3|heading-4|heading-5|heading-6|paragraph)\b/.exec(element.className);
116
117
  if (match) {
117
118
  return match[1];
118
119
  }
@@ -3,23 +3,17 @@ import { RTETextBlock } from '../../../../dto/blocks/text-block';
3
3
  import { RTETextNode } from '../../../../dto/nodes/text-node';
4
4
  import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
5
5
  import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.abstract';
6
- import { InlineHtmlAnnotationHandler } from './annotation-handler/inline-html-annotation-handler';
6
+ import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS, PHRASING_CONTENT_TAGS, isInBlockTextContext, } from './strategy-tags';
7
7
  /** Transform continue inline block elements to text block DTO */
8
8
  export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrategyAbstract {
9
9
  /**
10
- * Can be handle.
11
- *
12
- * @param {HTMLElement[]} elementsArray - Current elements.
13
- * @param {number} currentIndex - Current element index.
14
- * @returns {number} - can be handled element count.
10
+ * @inheritDoc
15
11
  */
16
- canHandle(elementsArray, currentIndex) {
12
+ canHandle(elementsArray, currentIndex, options) {
17
13
  let count = 0;
18
14
  for (let i = currentIndex; i < elementsArray.length; i++) {
19
15
  const element = elementsArray[i];
20
- if (element.nodeType === Node.TEXT_NODE ||
21
- (ContinueInlineToRTETextBlockStrategy.canHandleTags.includes(element.nodeName) &&
22
- !(element.textContent === '' && element.querySelector('IMG')))) {
16
+ if (this.isInlineCandidate(element, options)) {
23
17
  count++;
24
18
  }
25
19
  else {
@@ -79,11 +73,85 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
79
73
  return null;
80
74
  }
81
75
  }
76
+ /**
77
+ * Check if the element is an inline candidate to be included in the text block.
78
+ *
79
+ * @param {HTMLElement} element - The element to check.
80
+ * @param {VegaRTETransformOptions} [options] - Options for transformation.
81
+ * @returns {boolean} - Whether the element is an inline candidate.
82
+ */
83
+ isInlineCandidate(element, options) {
84
+ if (element.nodeType === Node.TEXT_NODE)
85
+ return true;
86
+ if (ALWAYS_INLINE_TAGS.has(element.nodeName))
87
+ return true;
88
+ if (this.isDedicatedBlockTag(element.nodeName))
89
+ return false;
90
+ if (options.autoMatchFormat === false && isInBlockTextContext(element))
91
+ return true;
92
+ return this.isInlineLeafOrWrapper(element);
93
+ }
94
+ /**
95
+ * Returns true when the tag has a dedicated block strategy (excludes inline annotation tags CODE and A).
96
+ *
97
+ * @param {string} nodeName - The node name to check.
98
+ * @returns {boolean} - Whether the tag is a dedicated block tag.
99
+ */
100
+ isDedicatedBlockTag(nodeName) {
101
+ return DEDICATED_STRATEGY_TAGS.has(nodeName) && !ALWAYS_INLINE_TAGS.has(nodeName);
102
+ }
103
+ /**
104
+ * Returns true for empty elements, text-only elements, or elements whose entire
105
+ * descendant tree contains no block-level elements (e.g. {@code <u><i><b>text</b></i></u>}).
106
+ *
107
+ * @param {HTMLElement} element - The element to check.
108
+ * @returns {boolean} - Whether the element is an inline leaf or wrapper.
109
+ */
110
+ isInlineLeafOrWrapper(element) {
111
+ if (element.childNodes.length === 0) {
112
+ // An empty element is inline only if it is a known HTML phrasing-content
113
+ // element (SPAN, EM, STRONG, …). Block containers (DIV, SECTION, …)
114
+ // and unknown/custom elements default to block separators.
115
+ return PHRASING_CONTENT_TAGS.has(element.nodeName);
116
+ }
117
+ if (this.isTextOnlyElement(element)) {
118
+ return PHRASING_CONTENT_TAGS.has(element.nodeName) || ALWAYS_INLINE_TAGS.has(element.nodeName);
119
+ }
120
+ return this.hasOnlyInlineDescendants(element);
121
+ }
122
+ /**
123
+ * Returns true when the element has text-node children but no element children.
124
+ *
125
+ * @param {HTMLElement} element - The element to check.
126
+ * @returns {boolean} - Whether the element contains only text nodes.
127
+ */
128
+ isTextOnlyElement(element) {
129
+ const childNodes = Array.from(element.childNodes);
130
+ return (!childNodes.some((child) => child.nodeType === Node.ELEMENT_NODE) &&
131
+ childNodes.some((child) => child.nodeType === Node.TEXT_NODE));
132
+ }
133
+ /**
134
+ * Returns true if the element's subtree contains only inline formatting wrappers.
135
+ * Instead of maintaining a hard coded tag allowlist, the check derives from:
136
+ * 1. {@link DEDICATED_STRATEGY_TAGS} — rejects known block/media tags
137
+ * 2. Void-element check — elements with no child nodes (INPUT, COL, HR, …)
138
+ * are replaced/embedded content, not formatting wrappers
139
+ *
140
+ * @param {HTMLElement} element - Element to inspect.
141
+ * @returns {boolean} True if the element has no block-level descendants.
142
+ */
143
+ hasOnlyInlineDescendants(element) {
144
+ for (let i = 0; i < element.children.length; i++) {
145
+ const child = element.children[i];
146
+ if (this.isDedicatedBlockTag(child.nodeName))
147
+ return false;
148
+ // An empty element is not a formatting wrapper — it is likely a void/embedded
149
+ // element (INPUT, HR, COL, empty SPAN) that acts as a block separator.
150
+ if (!child.hasChildNodes())
151
+ return false;
152
+ if (!this.hasOnlyInlineDescendants(child))
153
+ return false;
154
+ }
155
+ return true;
156
+ }
82
157
  }
83
- ContinueInlineToRTETextBlockStrategy.canHandleTags = [
84
- ...InlineHtmlAnnotationHandler.canHandleTags,
85
- 'CODE',
86
- 'A',
87
- 'VEGA-RICH-TEXT-LINK-EDITOR',
88
- 'BR',
89
- ];
@@ -13,7 +13,7 @@ class ElementToDtoStrategyProcessor {
13
13
  const strategies = this.getElementToBlockStrategies();
14
14
  const outputs = [];
15
15
  for (let i = 0; i < elements.length; i++) {
16
- if (this.isInvalidElement(elements[i]))
16
+ if (this.isInvalidElement(elements[i], options))
17
17
  continue;
18
18
  let canHandledCount = 0;
19
19
  for (const strategy of strategies) {
@@ -40,14 +40,21 @@ class ElementToDtoStrategyProcessor {
40
40
  return outputs;
41
41
  }
42
42
  /**
43
- * Checks if the given element is valid to parse.
43
+ * Checks if the given element should be skipped during processing.
44
44
  *
45
- * @param {HTMLElement} element - The pasted element.
46
- * @returns {boolean} Is valid
45
+ * Comment nodes are always skipped. META and STYLE elements are skipped only
46
+ * in auto-match mode; in raw-HTML mode (autoMatchFormat: false) they are passed
47
+ * through so downstream strategies can decide how to handle them.
48
+ *
49
+ * @param {HTMLElement} element - The element to check.
50
+ * @param {VegaRTETransformOptions} options - Transform options.
51
+ * @returns {boolean} True when the element should be skipped.
47
52
  */
48
- isInvalidElement(element) {
53
+ isInvalidElement(element, options) {
49
54
  if (element.nodeType === Node.COMMENT_NODE)
50
55
  return true;
56
+ if (options.autoMatchFormat === false)
57
+ return false;
51
58
  return ['META', 'STYLE'].includes(element.nodeName);
52
59
  }
53
60
  /**
@@ -2,6 +2,8 @@ import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.a
2
2
  import { RTEHtmlBlock } from '../../../../dto/blocks/html-block';
3
3
  import { generateUUID } from '../../../../../../utils/misc';
4
4
  import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
5
+ import { Predicate } from './predicate';
6
+ import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS, PHRASING_CONTENT_TAGS, STRUCTURED_CONTAINER_TAGS, isInBlockTextContext, } from './strategy-tags';
5
7
  /**
6
8
  * Converting HTML block elements into RTE blocks.
7
9
  */
@@ -11,13 +13,17 @@ export class HtmlBlockStrategy extends BlockToRTEBlockStrategyAbstract {
11
13
  */
12
14
  canHandle(elementsArray, currentIndex, options) {
13
15
  const element = elementsArray[currentIndex];
14
- // - div + img should be handled by RTEImageBlock
15
- const isCustomContainer = element.nodeName === 'DIV'
16
- ? element.childNodes.length > 0 && element.childNodes[0].nodeName !== 'IMG'
17
- : true;
16
+ if (element.nodeType === Node.TEXT_NODE || this.isInlineTagWithoutBlockChildren(element, options)) {
17
+ return 0;
18
+ }
19
+ // Skip dedicated-strategy tags unless all children are block-level embedded
20
+ // elements (e.g. <p><video></p>), in which case fall back to html-block.
21
+ if (DEDICATED_STRATEGY_TAGS.has(element.nodeName) && !this.shouldFallBackToHtmlBlock(element)) {
22
+ return 0;
23
+ }
18
24
  return !options.autoMatchFormat &&
19
- isCustomContainer &&
20
- HtmlBlockStrategy.canHandleTags.includes(elementsArray[currentIndex].nodeName)
25
+ this.isCustomHtmlContainer(element) &&
26
+ !Predicate.isTitleOrSubtitle(element)
21
27
  ? 1
22
28
  : 0;
23
29
  }
@@ -43,6 +49,89 @@ export class HtmlBlockStrategy extends BlockToRTEBlockStrategyAbstract {
43
49
  shouldProceedToElementChildren() {
44
50
  return true;
45
51
  }
52
+ /**
53
+ * Returns true for elements that should be treated as inline content even if they have no element children (e.g. <span>text</span>).
54
+ * This includes any element in a block text context (P, H1-H6, LI) and any element with text-node children but no element-node children.
55
+ *
56
+ * In raw-HTML mode (autoMatchFormat: false), the text-only heuristic only
57
+ * applies to elements whose parent is itself a text-only wrapper (e.g.
58
+ * {@code <div><span>Title</span></div>}). Structural children of non-text
59
+ * containers (TABLE → CAPTION, TR → TH/TD, etc.) skip this heuristic so
60
+ * they reach {@link isCustomHtmlContainer} and become html-blocks.
61
+ *
62
+ * @param {HTMLElement} element - Element to check.
63
+ * @param {VegaRTETransformOptions} options - Transform options.
64
+ * @returns {boolean} True if the element should be treated as inline content.
65
+ */
66
+ isInlineTagWithoutBlockChildren(element, options) {
67
+ if (isInBlockTextContext(element)) {
68
+ // Empty elements that are not recognized inline elements should not
69
+ // be forced inline — they may represent block-level embedded content
70
+ // (e.g. <video src="...">, <audio>, <iframe src="...">).
71
+ if (element.childNodes.length === 0 &&
72
+ element.textContent === '' &&
73
+ !ALWAYS_INLINE_TAGS.has(element.nodeName) &&
74
+ !PHRASING_CONTENT_TAGS.has(element.nodeName)) {
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+ const childNodes = Array.from(element.childNodes);
80
+ const isTextOnly = !childNodes.some((child) => child.nodeType === Node.ELEMENT_NODE) &&
81
+ childNodes.some((child) => child.nodeType === Node.TEXT_NODE);
82
+ if (!isTextOnly) {
83
+ return false;
84
+ }
85
+ // In raw-HTML mode, a text-only element is inline only if:
86
+ // 1. Its parent is not a structured container (TABLE, TR, …)
87
+ // 2. The element itself is phrasing content (SPAN, EM, …)
88
+ // Non-phrasing text-only elements (SUMMARY, FIGCAPTION, OPTION, SVG TEXT,
89
+ // etc.) must fall through to become html-blocks.
90
+ if (options.autoMatchFormat === false) {
91
+ if (STRUCTURED_CONTAINER_TAGS.has(element.parentElement.nodeName))
92
+ return false; // eslint-disable-line @typescript-eslint/no-non-null-assertion
93
+ return PHRASING_CONTENT_TAGS.has(element.nodeName) || ALWAYS_INLINE_TAGS.has(element.nodeName);
94
+ }
95
+ return true;
96
+ }
97
+ /**
98
+ * Returns true when a dedicated-strategy element should fall back to html-block
99
+ * because all its children are non-text, non-inline, non-dedicated elements
100
+ * — indicating purely block-level embedded content that the dedicated text-block
101
+ * strategy cannot represent.
102
+ *
103
+ * @param {HTMLElement} element - The dedicated-strategy element to check.
104
+ * @returns {boolean} True when the element should be treated as html-block.
105
+ */
106
+ shouldFallBackToHtmlBlock(element) {
107
+ const childNodes = Array.from(element.childNodes);
108
+ if (childNodes.length === 0)
109
+ return false;
110
+ // List items are structural children whose dedicated strategies manage
111
+ // both block and inline children independently — never override them.
112
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
113
+ const parentTag = element.parentElement.nodeName;
114
+ if (parentTag === 'UL' || parentTag === 'OL')
115
+ return false;
116
+ return childNodes.every((child) => child.nodeType === Node.ELEMENT_NODE &&
117
+ child.textContent === '' &&
118
+ !ALWAYS_INLINE_TAGS.has(child.nodeName) &&
119
+ !PHRASING_CONTENT_TAGS.has(child.nodeName));
120
+ }
121
+ /**
122
+ * Returns true for elements that should be treated as html containers.
123
+ * A DIV is only a valid container when its first child is not an IMG
124
+ * (IMG children are handled by the image strategy instead).
125
+ *
126
+ * @param {HTMLElement} element - Element to check.
127
+ * @returns {boolean} True if the element qualifies as a html container.
128
+ */
129
+ isCustomHtmlContainer(element) {
130
+ if (element.nodeName !== 'DIV') {
131
+ return true;
132
+ }
133
+ return element.childNodes.length > 0 && element.childNodes[0].nodeName !== 'IMG';
134
+ }
46
135
  /**
47
136
  * Generate HTML block DTO from an HTML element.
48
137
  *
@@ -60,40 +149,3 @@ export class HtmlBlockStrategy extends BlockToRTEBlockStrategyAbstract {
60
149
  };
61
150
  }
62
151
  }
63
- HtmlBlockStrategy.canHandleTags = [
64
- 'ADDRESS',
65
- 'ARTICLE',
66
- 'ASIDE',
67
- 'BLOCKQUOTE',
68
- 'BUTTON',
69
- 'CAPTION',
70
- 'COL',
71
- 'COLGROUP',
72
- 'DIV',
73
- 'DD',
74
- 'DETAILS',
75
- 'DL',
76
- 'DT',
77
- 'FIELDSET',
78
- 'FIGCAPTION',
79
- 'FIGURE',
80
- 'FOOTER',
81
- 'FORM',
82
- 'HEADER',
83
- 'HR',
84
- 'HX',
85
- 'INPUT',
86
- 'LEGEND',
87
- 'MAIN',
88
- 'NAV',
89
- 'PRE',
90
- 'SECTION',
91
- 'SUMMARY',
92
- 'TABLE',
93
- 'TBODY',
94
- 'TD',
95
- 'TFOOT',
96
- 'TH',
97
- 'THEAD',
98
- 'TR',
99
- ];
@@ -2,7 +2,6 @@ import { isHTMLElement } from '../../../../../../utils/ui';
2
2
  import { ElementToTextNodeStrategy } from './element-to-text-node-strategy';
3
3
  import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
4
4
  import { RTETextNode } from '../../../../dto/nodes/text-node';
5
- import { isNonNullable } from '../../../../../../types/type-guard';
6
5
  import { cleanObject } from '../../../../../../utils/object';
7
6
  /**
8
7
  * Class to handle inline html element to text node dto
@@ -38,7 +37,7 @@ export class InlineElementToTextNodeStrategy extends ElementToTextNodeStrategy {
38
37
  // For empty dom, there will be no internal iteration, we need to handle it directly here.
39
38
  // Example: <span></span>, <video src='...'></video>
40
39
  const emptyNodeAnnotations = disableAutoMatchFormat
41
- ? cleanObject(Object.assign(Object.assign({}, (RTETextNode.supportsHtmlTag(child.nodeName.toLowerCase()) ? curAnnotations : {})), { inlineHtml: curAnnotations.inlineHtml, plainText: isNonNullable(curAnnotations.inlineHtml) }))
40
+ ? cleanObject(Object.assign(Object.assign({}, (RTETextNode.supportsHtmlTag(child.nodeName.toLowerCase()) ? curAnnotations : {})), { inlineHtml: curAnnotations.inlineHtml }))
42
41
  : curAnnotations;
43
42
  return Object.assign({}, this.generateTextNode('', emptyNodeAnnotations));
44
43
  }
@@ -0,0 +1,29 @@
1
+ import { TextStyleAnnotationHandler } from './annotation-handler/text-style-annotation-handler';
2
+ /**
3
+ * Predicate class provides static methods to check specific conditions on HTML elements.
4
+ */
5
+ export class Predicate {
6
+ /**
7
+ * Checks if the given element is a title or subtitle.
8
+ *
9
+ * @param {HTMLElement} element The element to check.
10
+ * @returns {boolean} True if the element is a title or subtitle, false otherwise.
11
+ */
12
+ static isTitleOrSubtitle(element) {
13
+ if (element.nodeName === 'DIV') {
14
+ const textBlockType = Predicate.textStyleHandler['getTextStyle'](element);
15
+ return textBlockType === 'title' || textBlockType === 'subtitle';
16
+ }
17
+ return false;
18
+ }
19
+ /**
20
+ * Check if the given element is a link element (anchor tag).
21
+ *
22
+ * @param {HTMLElement} element The element to check.
23
+ * @returns {boolean} True if the element is a link element, false otherwise.
24
+ */
25
+ static isLinkElement(element) {
26
+ return element.nodeName === 'A';
27
+ }
28
+ }
29
+ Predicate.textStyleHandler = new TextStyleAnnotationHandler();
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Tags whose direct children are always phrasing (inline) content (P, H1-H6, LI).
3
+ *
4
+ * This is spec knowledge from the HTML Living Standard — these grouping-content
5
+ * elements have a phrasing-content content model and cannot contain block-level
6
+ * descendants. It cannot be derived from the strategy registry and must be
7
+ * maintained alongside the HTML spec.
8
+ *
9
+ * @see https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
10
+ */
11
+ export const BLOCK_TEXT_CONTAINER_TAGS = new Set([
12
+ 'P',
13
+ 'H1',
14
+ 'H2',
15
+ 'H3',
16
+ 'H4',
17
+ 'H5',
18
+ 'H6',
19
+ 'LI',
20
+ ]);
21
+ /**
22
+ * Tags with dedicated element-to-DTO block strategies
23
+ * (P, H1-H6, LI, UL, OL, IMG, CODE).
24
+ *
25
+ * HtmlBlockStrategy skips these to avoid double-processing or overriding their
26
+ * specialized block semantics.
27
+ *
28
+ * Why hard-coded: strategies use heterogeneous matching (`tagName ===`,
29
+ * `matchTextBlockType` via font-size/class, etc.) so there is no single
30
+ * declarative contract to derive this set from. It must be kept in sync with
31
+ * the strategies registered in `dto/setup.ts`.
32
+ *
33
+ * Intentionally independent of {@link BLOCK_TEXT_CONTAINER_TAGS} — the two
34
+ * sets encode different concepts (app architecture vs. HTML spec) and must
35
+ * be maintained separately.
36
+ */
37
+ export const DEDICATED_STRATEGY_TAGS = new Set([
38
+ 'P',
39
+ 'H1',
40
+ 'H2',
41
+ 'H3',
42
+ 'H4',
43
+ 'H5',
44
+ 'H6',
45
+ 'LI',
46
+ 'UL',
47
+ 'OL',
48
+ 'IMG',
49
+ 'CODE',
50
+ ]);
51
+ /**
52
+ * Tags that are always treated as phrasing (inline) content, even when they
53
+ * also appear in {@link DEDICATED_STRATEGY_TAGS} (CODE).
54
+ * A tag in this set overrides the dedicated-strategy skip in HtmlBlockStrategy.
55
+ *
56
+ * Mix of HTML5 spec phrasing-content elements (BR, CODE, A) and
57
+ * RTE-internal custom elements (VEGA-RICH-TEXT-LINK-EDITOR).
58
+ */
59
+ export const ALWAYS_INLINE_TAGS = new Set(['BR', 'VEGA-RICH-TEXT-LINK-EDITOR', 'CODE', 'A']);
60
+ /**
61
+ * Tags whose content model requires each child to be a distinct block-level
62
+ * element (table model and definition list).
63
+ *
64
+ * TABLE expects CAPTION/THEAD/TBODY/TFOOT/TR; TR expects TH/TD;
65
+ * THEAD/TBODY/TFOOT expect TR; DL expects DT/DD.
66
+ *
67
+ * Used by HtmlBlockStrategy to prevent text-only children (e.g. CAPTION,
68
+ * TH, TD) from being treated as inline — they must become html-blocks so
69
+ * the table structure round-trips correctly.
70
+ *
71
+ * Note: COLGROUP is intentionally excluded. Its only permitted child is the
72
+ * void element COL, which can never produce text-node children, so the
73
+ * text-only heuristic in HtmlBlockStrategy can never fire for a COLGROUP
74
+ * parent.
75
+ *
76
+ * @see https://html.spec.whatwg.org/multipage/tables.html#the-table-element
77
+ * @see https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element
78
+ */
79
+ export const STRUCTURED_CONTAINER_TAGS = new Set([
80
+ 'TABLE',
81
+ 'THEAD',
82
+ 'TBODY',
83
+ 'TFOOT',
84
+ 'TR',
85
+ 'DL',
86
+ ]);
87
+ /**
88
+ * Formatting phrasing-content elements that CAN remain inline even when empty.
89
+ *
90
+ * Any element NOT in this set (DIV, SECTION, ARTICLE, custom elements, etc.)
91
+ * is treated as a block separator. Phrasing content is a closed, finite set
92
+ * per the HTML Living Standard, making an allowlist safer than blocklisting
93
+ * block containers (which is open-ended — custom elements default to block).
94
+ *
95
+ * Intentionally excludes:
96
+ * - BR, CODE, A, VEGA-RICH-TEXT-LINK-EDITOR → handled by {@link ALWAYS_INLINE_TAGS}
97
+ * - P, H1-H6, LI, UL, OL, IMG → handled by {@link DEDICATED_STRATEGY_TAGS}
98
+ * - VIDEO, AUDIO, EMBED → embedded content that carries media even when empty;
99
+ * must be treated as block-level, not as inline formatting artifacts
100
+ *
101
+ * @see https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
102
+ */
103
+ export const PHRASING_CONTENT_TAGS = new Set([
104
+ 'ABBR',
105
+ 'B',
106
+ 'BDI',
107
+ 'BDO',
108
+ 'CITE',
109
+ 'DEL',
110
+ 'DFN',
111
+ 'EM',
112
+ 'I',
113
+ 'INS',
114
+ 'KBD',
115
+ 'MARK',
116
+ 'METER',
117
+ 'OUTPUT',
118
+ 'PROGRESS',
119
+ 'Q',
120
+ 'S',
121
+ 'SAMP',
122
+ 'SMALL',
123
+ 'SPAN',
124
+ 'STRONG',
125
+ 'SUB',
126
+ 'SUP',
127
+ 'TIME',
128
+ 'U',
129
+ 'VAR',
130
+ ]);
131
+ /**
132
+ * Returns true when the element is a direct child of a block text container
133
+ * (P, H1-H6, LI), meaning it must be treated as phrasing content regardless
134
+ * of its own DOM structure.
135
+ *
136
+ * @param {HTMLElement} element - Element to test.
137
+ * @returns {boolean} True if the element is inside a block text container.
138
+ */
139
+ export function isInBlockTextContext(element) {
140
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
141
+ return BLOCK_TEXT_CONTAINER_TAGS.has(element.parentElement.nodeName);
142
+ }
@@ -43,6 +43,7 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
43
43
  if (typeof sourceViewValue === 'string') {
44
44
  await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
45
45
  autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
46
+ filterInlineStyles: this.sourceEditConfig.filterInlineStyles,
46
47
  }));
47
48
  }
48
49
  }