@globalpayments/vega 2.98.0 → 2.99.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 (447) hide show
  1. package/dist/cjs/{action-color-accessibility-validator-24498816.js → action-color-accessibility-validator-b8a9ef0f.js} +2 -2
  2. package/dist/cjs/{app-globals-b3f05631.js → app-globals-a306dce6.js} +10 -10
  3. package/dist/cjs/{code-block-d78c2b2c.js → code-block-ea1f5eb3.js} +43 -6
  4. package/dist/cjs/{component-global-style-slimmer-93c5fb50.js → component-global-style-slimmer-ba588eb4.js} +1 -1
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-beb00fea.js → component-value-history-controller-slimmer.abstract-7071b064.js} +24 -5
  6. package/dist/cjs/{content-state-78a620a9.js → content-state-8d07d530.js} +60 -8
  7. package/dist/cjs/{dark-mode-style-controller-32d4054a.js → dark-mode-style-controller-f3da3342.js} +2 -2
  8. package/dist/cjs/{date-required-rule-5250f26d.js → date-required-rule-c0c498ad.js} +1 -1
  9. package/dist/cjs/{design-token-74674ee7.js → design-token-58bf7fe8.js} +3 -3
  10. package/dist/cjs/{element-appender-slimmer-597e9e48.js → element-appender-slimmer-a0269315.js} +2 -2
  11. package/dist/cjs/{form-field-controller-slimmer-a743be34.js → form-field-controller-slimmer-f73f200e.js} +2 -2
  12. package/dist/cjs/{image-annotation-action-85c4bd83.js → image-annotation-action-2a28038e.js} +3 -3
  13. package/dist/cjs/{image-extension-260fa69c.js → image-extension-9659708b.js} +2 -2
  14. package/dist/cjs/{index-592b4052.js → index-5d1adcd1.js} +86 -0
  15. package/dist/cjs/index.cjs.js +19 -19
  16. package/dist/cjs/{inject-keyboard-manager-6a6f5c9f.js → inject-keyboard-manager-4fa45f9c.js} +1 -1
  17. package/dist/cjs/{internal-calendar-period-factory-dfcdd3f6.js → internal-calendar-period-factory-6196bc80.js} +1 -1
  18. package/dist/cjs/{internal-translation-controller-1dac2df8.js → internal-translation-controller-51f7f865.js} +2 -0
  19. package/dist/cjs/{keyboard-manager-c56033b1.js → keyboard-manager-482fe257.js} +1 -1
  20. package/dist/cjs/{keyboard-manager-slimmer-7043a106.js → keyboard-manager-slimmer-a19430dd.js} +1 -1
  21. package/dist/cjs/{link-extension-220ff6a9.js → link-extension-11340e1c.js} +26 -7
  22. package/dist/cjs/loader.cjs.js +13 -13
  23. package/dist/cjs/{month-view-generator-7b704a80.js → month-view-generator-1a534451.js} +1 -1
  24. package/dist/cjs/{public-rules-5657bce4.js → public-rules-6c77b545.js} +9 -9
  25. package/dist/cjs/{range-c5afd53a.js → range-22ddd452.js} +1 -1
  26. package/dist/cjs/{responsive-format-facade-493d1763.js → responsive-format-facade-74e6d791.js} +1 -1
  27. package/dist/cjs/{rich-text-editor-required-rule-385c1b61.js → rich-text-editor-required-rule-09d1093a.js} +1 -1
  28. package/dist/cjs/{split-cell-operation-873d5db7.js → split-cell-operation-11bfb305.js} +14 -4
  29. package/dist/cjs/{state-border-formatter-711c7aaa.js → state-border-formatter-bf4f9f1c.js} +1 -1
  30. package/dist/cjs/{string-format-strategy.abstract-b61bdcbd.js → string-format-strategy.abstract-bf37b14c.js} +1 -1
  31. package/dist/cjs/{string-input-formatter-slimmer-ef65cca7.js → string-input-formatter-slimmer-ffeb18a6.js} +1 -1
  32. package/dist/cjs/{string-mask-strategy-ad3fa0ac.js → string-mask-strategy-7f394726.js} +2 -2
  33. package/dist/cjs/{style-formatter-8f711cb0.js → style-formatter-4ac63910.js} +2 -2
  34. package/dist/cjs/{time-required-rule-87417359.js → time-required-rule-e2a50003.js} +1 -1
  35. package/dist/cjs/{token-extension-78b5a026.js → token-extension-4686cb3b.js} +2920 -157
  36. package/dist/cjs/{translation-slimmer-77c7f37d.js → translation-slimmer-e4997f8f.js} +1 -1
  37. package/dist/cjs/{type-guard-a57ef3ac.js → type-guard-b8d7bb3f.js} +1 -1
  38. package/dist/cjs/{valid-credit-card-number-rule-4c0a3040.js → valid-credit-card-number-rule-f5a6f009.js} +1 -1
  39. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  40. package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
  41. package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
  42. package/dist/cjs/vega-box.cjs.entry.js +7 -7
  43. package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
  45. package/dist/cjs/vega-button-circle.cjs.entry.js +6 -6
  46. package/dist/cjs/vega-button-link.cjs.entry.js +1 -1
  47. package/dist/cjs/vega-button.cjs.entry.js +4 -4
  48. package/dist/cjs/vega-calendar_5.cjs.entry.js +21 -10
  49. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  50. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
  52. package/dist/cjs/vega-chip.cjs.entry.js +5 -5
  53. package/dist/cjs/vega-code-block.cjs.entry.js +11 -11
  54. package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
  55. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +4 -4
  56. package/dist/cjs/vega-color-swatch.cjs.entry.js +2 -2
  57. package/dist/cjs/vega-combo-box.cjs.entry.js +9 -9
  58. package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
  59. package/dist/cjs/vega-date-picker_2.cjs.entry.js +14 -14
  60. package/dist/cjs/vega-dialog_2.cjs.entry.js +5 -5
  61. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-dropdown_5.cjs.entry.js +23 -14
  63. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  64. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  65. package/dist/cjs/vega-file-uploader.cjs.entry.js +4 -4
  66. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  68. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  69. package/dist/cjs/vega-form.cjs.entry.js +2 -2
  70. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  71. package/dist/cjs/vega-icon.cjs.entry.js +6 -6
  72. package/dist/cjs/vega-image-uploader.cjs.entry.js +7 -7
  73. package/dist/cjs/vega-input-credit-card.cjs.entry.js +7 -7
  74. package/dist/cjs/vega-input-numeric.cjs.entry.js +6 -6
  75. package/dist/cjs/vega-input-passcode.cjs.entry.js +6 -6
  76. package/dist/cjs/vega-input-phone-number.cjs.entry.js +5 -5
  77. package/dist/cjs/vega-input-range.cjs.entry.js +4 -4
  78. package/dist/cjs/vega-input-select.cjs.entry.js +6 -6
  79. package/dist/cjs/vega-input.cjs.entry.js +7 -7
  80. package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
  81. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  82. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  83. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  84. package/dist/cjs/vega-popover_2.cjs.entry.js +8 -8
  85. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  86. package/dist/cjs/vega-radio_2.cjs.entry.js +6 -6
  87. package/dist/cjs/vega-rich-text-content.cjs.entry.js +39 -11
  88. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +79 -22
  89. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +1 -1
  90. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
  91. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +10 -10
  92. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +5 -5
  93. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
  94. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  95. package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
  96. package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
  97. package/dist/cjs/vega-tab-group_2.cjs.entry.js +21 -8
  98. package/dist/cjs/vega-table_11.cjs.entry.js +81 -45
  99. package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
  100. package/dist/cjs/vega-time-picker_2.cjs.entry.js +10 -10
  101. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  102. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  103. package/dist/cjs/vega.cjs.js +13 -13
  104. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +5 -2
  105. package/dist/collection/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.js +9 -1
  106. package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -2
  107. package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +6 -4
  108. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +10 -2
  109. package/dist/collection/components/vega-field-label/vega-field-label.css +1 -0
  110. package/dist/collection/components/vega-rich-text-editor/constants/constant.js +16 -0
  111. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +2 -1
  112. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +11 -0
  113. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +2 -1
  114. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +5 -2
  115. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +36 -2
  116. package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +20 -3
  117. package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +12 -0
  118. package/dist/collection/components/vega-rich-text-editor/extensions/block-boundary-registry.js +34 -0
  119. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +20 -0
  120. package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +3 -2
  121. package/dist/collection/components/vega-rich-text-editor/extensions/functions/constants.js +8 -0
  122. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +14 -3
  123. package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +2 -1
  124. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.js +19 -0
  125. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +9 -5
  126. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +3 -3
  127. package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +4 -2
  128. package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +18 -0
  129. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +5 -2
  130. package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +2 -1
  131. package/dist/collection/components/vega-rich-text-editor/extensions/functions/utils.js +36 -0
  132. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +1 -0
  133. package/dist/collection/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.js +21 -0
  134. package/dist/collection/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.js +13 -0
  135. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.js +295 -0
  136. package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.js +116 -0
  137. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +13 -4
  138. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +70 -7
  139. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.js +38 -0
  140. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.js +55 -0
  141. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.js +59 -0
  142. package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.js +416 -0
  143. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.js +106 -0
  144. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.js +198 -0
  145. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.js +591 -0
  146. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.js +112 -0
  147. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.js +551 -0
  148. package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.js +7 -0
  149. package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +10 -0
  150. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +4 -2
  151. package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +44 -0
  152. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
  153. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +7 -4
  154. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +17 -0
  155. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +18 -4
  156. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +21 -2
  157. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +7 -0
  158. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +5 -2
  159. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +14 -7
  160. package/dist/collection/components/vega-tab-group/vega-tab-group.css +6 -0
  161. package/dist/collection/components/vega-tab-group/vega-tab-group.js +5 -0
  162. package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +31 -1
  163. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +18 -11
  164. package/dist/collection/helpers/translation/locales/en.js +2 -0
  165. package/dist/collection/utils/sanitize/index.js +3 -2
  166. package/dist/collection/utils/sanitize/strategies/index.js +1 -0
  167. package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +14 -0
  168. package/dist/collection/utils/sanitize/strategies/plain-text-sanitize-strategy.js +70 -0
  169. package/dist/esm/{action-color-accessibility-validator-ce55cb07.js → action-color-accessibility-validator-08877515.js} +2 -2
  170. package/dist/esm/{app-globals-95c7110a.js → app-globals-c59364c2.js} +10 -10
  171. package/dist/esm/{code-block-9c513169.js → code-block-e6443949.js} +39 -7
  172. package/dist/esm/{component-global-style-slimmer-ac703085.js → component-global-style-slimmer-7d60a04a.js} +1 -1
  173. package/dist/esm/{component-value-history-controller-slimmer.abstract-9cef2a2a.js → component-value-history-controller-slimmer.abstract-ee393213.js} +24 -5
  174. package/dist/esm/{content-state-25c81c08.js → content-state-43cdacff.js} +60 -9
  175. package/dist/esm/{dark-mode-style-controller-ca5afd2d.js → dark-mode-style-controller-352f15ff.js} +2 -2
  176. package/dist/esm/{date-required-rule-85334d0c.js → date-required-rule-b5b67498.js} +1 -1
  177. package/dist/esm/{design-token-10ff79b5.js → design-token-8319bb59.js} +3 -3
  178. package/dist/esm/{element-appender-slimmer-8a06ecdd.js → element-appender-slimmer-c81d1fe3.js} +2 -2
  179. package/dist/esm/{form-field-controller-slimmer-68fc5380.js → form-field-controller-slimmer-511b7ac5.js} +2 -2
  180. package/dist/esm/{image-annotation-action-d7f2aecc.js → image-annotation-action-d7cb80aa.js} +3 -3
  181. package/dist/esm/{image-extension-fbd1ed6e.js → image-extension-9b8abd0d.js} +2 -2
  182. package/dist/esm/{index-3b327f29.js → index-35451d12.js} +86 -1
  183. package/dist/esm/index.js +19 -19
  184. package/dist/esm/{inject-keyboard-manager-ea1aad5b.js → inject-keyboard-manager-dd368d56.js} +1 -1
  185. package/dist/esm/{internal-calendar-period-factory-7b294fb6.js → internal-calendar-period-factory-d58f35c6.js} +1 -1
  186. package/dist/esm/{internal-translation-controller-fac22598.js → internal-translation-controller-b33430c6.js} +2 -0
  187. package/dist/esm/{keyboard-manager-50da85d7.js → keyboard-manager-b4a0d97d.js} +1 -1
  188. package/dist/esm/{keyboard-manager-slimmer-1f7c8bfb.js → keyboard-manager-slimmer-0517fc70.js} +1 -1
  189. package/dist/esm/{link-extension-e8ee103e.js → link-extension-230bae8d.js} +26 -7
  190. package/dist/esm/loader.js +13 -13
  191. package/dist/esm/{month-view-generator-a1a9a4ec.js → month-view-generator-f470caac.js} +1 -1
  192. package/dist/esm/{public-rules-49de79c7.js → public-rules-28ef32d3.js} +9 -9
  193. package/dist/esm/{range-b678c693.js → range-efad2578.js} +1 -1
  194. package/dist/esm/{responsive-format-facade-f19b601c.js → responsive-format-facade-dec87e46.js} +1 -1
  195. package/dist/esm/{rich-text-editor-required-rule-578e0958.js → rich-text-editor-required-rule-a697e5bd.js} +1 -1
  196. package/dist/esm/{split-cell-operation-1c8e7585.js → split-cell-operation-89b91a38.js} +14 -4
  197. package/dist/esm/{state-border-formatter-bfda33aa.js → state-border-formatter-1e900a2f.js} +1 -1
  198. package/dist/esm/{string-format-strategy.abstract-1f4ff1b3.js → string-format-strategy.abstract-d0ce3f65.js} +1 -1
  199. package/dist/esm/{string-input-formatter-slimmer-0006a107.js → string-input-formatter-slimmer-6546cfc7.js} +1 -1
  200. package/dist/esm/{string-mask-strategy-bbbcdbef.js → string-mask-strategy-dd13ae21.js} +2 -2
  201. package/dist/esm/{style-formatter-e9adc8f4.js → style-formatter-057d7120.js} +2 -2
  202. package/dist/esm/{time-required-rule-1ce2d0a0.js → time-required-rule-73753a54.js} +1 -1
  203. package/dist/esm/{token-extension-f2d009e3.js → token-extension-74a0eeb1.js} +2918 -155
  204. package/dist/esm/{translation-slimmer-ee0f0e76.js → translation-slimmer-ef970ffc.js} +1 -1
  205. package/dist/esm/{type-guard-f2624334.js → type-guard-6fc96870.js} +1 -1
  206. package/dist/esm/{valid-credit-card-number-rule-60212b1d.js → valid-credit-card-number-rule-b54a31e7.js} +1 -1
  207. package/dist/esm/vega-accordion.entry.js +6 -6
  208. package/dist/esm/vega-app-footer.entry.js +2 -2
  209. package/dist/esm/vega-app-header-button.entry.js +5 -5
  210. package/dist/esm/vega-box.entry.js +7 -7
  211. package/dist/esm/vega-brand-logo.entry.js +2 -2
  212. package/dist/esm/vega-breadcrumb.entry.js +2 -2
  213. package/dist/esm/vega-button-circle.entry.js +6 -6
  214. package/dist/esm/vega-button-link.entry.js +1 -1
  215. package/dist/esm/vega-button.entry.js +4 -4
  216. package/dist/esm/vega-calendar_5.entry.js +21 -10
  217. package/dist/esm/vega-card.entry.js +5 -5
  218. package/dist/esm/vega-carousel.entry.js +3 -3
  219. package/dist/esm/vega-checkbox_2.entry.js +3 -3
  220. package/dist/esm/vega-chip.entry.js +5 -5
  221. package/dist/esm/vega-code-block.entry.js +11 -11
  222. package/dist/esm/vega-color-picker.entry.js +3 -3
  223. package/dist/esm/vega-color-swatch-picker.entry.js +4 -4
  224. package/dist/esm/vega-color-swatch.entry.js +2 -2
  225. package/dist/esm/vega-combo-box.entry.js +9 -9
  226. package/dist/esm/vega-counter-badge.entry.js +2 -2
  227. package/dist/esm/vega-date-picker_2.entry.js +14 -14
  228. package/dist/esm/vega-dialog_2.entry.js +5 -5
  229. package/dist/esm/vega-divider.entry.js +5 -5
  230. package/dist/esm/vega-dropdown_5.entry.js +23 -14
  231. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  232. package/dist/esm/vega-field-label.entry.js +3 -3
  233. package/dist/esm/vega-file-uploader.entry.js +4 -4
  234. package/dist/esm/vega-flag-icon.entry.js +5 -5
  235. package/dist/esm/vega-flex.entry.js +6 -6
  236. package/dist/esm/vega-font.entry.js +5 -5
  237. package/dist/esm/vega-form.entry.js +2 -2
  238. package/dist/esm/vega-grid.entry.js +5 -5
  239. package/dist/esm/vega-icon.entry.js +6 -6
  240. package/dist/esm/vega-image-uploader.entry.js +7 -7
  241. package/dist/esm/vega-input-credit-card.entry.js +7 -7
  242. package/dist/esm/vega-input-numeric.entry.js +6 -6
  243. package/dist/esm/vega-input-passcode.entry.js +6 -6
  244. package/dist/esm/vega-input-phone-number.entry.js +5 -5
  245. package/dist/esm/vega-input-range.entry.js +4 -4
  246. package/dist/esm/vega-input-select.entry.js +6 -6
  247. package/dist/esm/vega-input.entry.js +7 -7
  248. package/dist/esm/vega-left-nav_5.entry.js +10 -10
  249. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  250. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  251. package/dist/esm/vega-pagination.entry.js +4 -4
  252. package/dist/esm/vega-popover_2.entry.js +8 -8
  253. package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
  254. package/dist/esm/vega-radio_2.entry.js +6 -6
  255. package/dist/esm/vega-rich-text-content.entry.js +39 -11
  256. package/dist/esm/vega-rich-text-editor_4.entry.js +79 -22
  257. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +1 -1
  258. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +5 -5
  259. package/dist/esm/vega-rich-text-table-properties_3.entry.js +10 -10
  260. package/dist/esm/vega-selection-chip_2.entry.js +5 -5
  261. package/dist/esm/vega-selection-tile_2.entry.js +3 -3
  262. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  263. package/dist/esm/vega-signature-capture.entry.js +8 -8
  264. package/dist/esm/vega-stepper.entry.js +3 -3
  265. package/dist/esm/vega-tab-group_2.entry.js +21 -8
  266. package/dist/esm/vega-table_11.entry.js +53 -17
  267. package/dist/esm/vega-textarea.entry.js +3 -3
  268. package/dist/esm/vega-time-picker_2.entry.js +10 -10
  269. package/dist/esm/vega-toggle-switch.entry.js +3 -3
  270. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  271. package/dist/esm/vega.js +13 -13
  272. package/dist/sri/vega-sri-manifest.json +349 -349
  273. package/dist/types/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.d.ts +2 -0
  274. package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
  275. package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +16 -0
  276. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +1 -0
  277. package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +9 -0
  278. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +1 -0
  279. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +3 -2
  280. package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +25 -3
  281. package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +7 -0
  282. package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +11 -0
  283. package/dist/types/components/vega-rich-text-editor/extensions/block-boundary-registry.d.ts +21 -0
  284. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -0
  285. package/dist/types/components/vega-rich-text-editor/extensions/functions/constants.d.ts +4 -0
  286. package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +7 -0
  287. package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.d.ts +8 -0
  288. package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +6 -0
  289. package/dist/types/components/vega-rich-text-editor/extensions/functions/utils.d.ts +29 -0
  290. package/dist/types/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.d.ts +12 -0
  291. package/dist/types/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.d.ts +11 -0
  292. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.d.ts +136 -0
  293. package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.d.ts +68 -0
  294. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +9 -4
  295. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +39 -2
  296. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.d.ts +29 -0
  297. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.d.ts +61 -0
  298. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.d.ts +45 -0
  299. package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.d.ts +186 -0
  300. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.d.ts +51 -0
  301. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.d.ts +86 -0
  302. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.d.ts +271 -0
  303. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.d.ts +25 -0
  304. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.d.ts +240 -0
  305. package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.d.ts +36 -0
  306. package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +8 -0
  307. package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +2 -2
  308. package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +19 -1
  309. package/dist/types/components/vega-rich-text-editor/interface.d.ts +10 -0
  310. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.d.ts +4 -1
  311. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +8 -0
  312. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
  313. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +1 -0
  314. package/dist/types/components/vega-tab-group/types.d.ts +3 -1
  315. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
  316. package/dist/types/components/vega-table/interface.d.ts +4 -4
  317. package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +16 -0
  318. package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +8 -10
  319. package/dist/types/helpers/translation/interface.d.ts +3 -1
  320. package/dist/types/types/public-api.d.ts +1 -0
  321. package/dist/types/utils/sanitize/index.d.ts +3 -2
  322. package/dist/types/utils/sanitize/strategies/index.d.ts +1 -0
  323. package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +9 -0
  324. package/dist/types/utils/sanitize/strategies/plain-text-sanitize-strategy.d.ts +36 -0
  325. package/dist/vega/index.esm.js +1 -1
  326. package/dist/vega/{p-0cbf09f7.entry.js → p-024db952.entry.js} +1 -1
  327. package/dist/vega/p-0b2c4c0b.js +1 -0
  328. package/dist/vega/{p-c2277448.entry.js → p-0ca3b4bf.entry.js} +1 -1
  329. package/dist/vega/{p-6f537797.entry.js → p-1a37d63c.entry.js} +1 -1
  330. package/dist/vega/{p-b622c455.js → p-1fa22fda.js} +1 -1
  331. package/dist/vega/{p-d609c3fd.js → p-2044eba9.js} +1 -1
  332. package/dist/vega/{p-56db3323.js → p-22edd3cc.js} +1 -1
  333. package/dist/vega/{p-5f96e741.entry.js → p-23c1f378.entry.js} +1 -1
  334. package/dist/vega/{p-6c95a6a3.js → p-2529820e.js} +1 -1
  335. package/dist/vega/{p-8d96f0e8.entry.js → p-2af1d8b8.entry.js} +1 -1
  336. package/dist/vega/{p-17c69503.entry.js → p-2f89ee14.entry.js} +1 -1
  337. package/dist/vega/{p-2bb5a232.js → p-3091b105.js} +1 -1
  338. package/dist/vega/{p-52c69f9e.entry.js → p-328ebbdb.entry.js} +1 -1
  339. package/dist/vega/p-35628af4.js +1 -0
  340. package/dist/vega/{p-9abf7d0a.entry.js → p-35d37477.entry.js} +1 -1
  341. package/dist/vega/{p-8c56d74d.entry.js → p-3a230d4b.entry.js} +1 -1
  342. package/dist/vega/{p-4bfe3258.entry.js → p-3c152bad.entry.js} +1 -1
  343. package/dist/vega/p-3c559c8b.js +1 -0
  344. package/dist/vega/{p-d470fce2.entry.js → p-3c8421d5.entry.js} +1 -1
  345. package/dist/vega/{p-7dcd2850.entry.js → p-4022412e.entry.js} +1 -1
  346. package/dist/vega/{p-c70748f7.entry.js → p-433b1395.entry.js} +1 -1
  347. package/dist/vega/{p-b98ead05.entry.js → p-4370b954.entry.js} +1 -1
  348. package/dist/vega/p-444e24c6.js +1 -0
  349. package/dist/vega/p-4473d8b1.js +3 -0
  350. package/dist/vega/{p-a484e32d.entry.js → p-44999c88.entry.js} +1 -1
  351. package/dist/vega/{p-f29ea345.entry.js → p-47a48329.entry.js} +1 -1
  352. package/dist/vega/{p-0cf3b5c1.entry.js → p-49d7cfed.entry.js} +1 -1
  353. package/dist/vega/{p-92528dc9.entry.js → p-4afd6715.entry.js} +1 -1
  354. package/dist/vega/{p-461100b8.entry.js → p-4f6aaac5.entry.js} +1 -1
  355. package/dist/vega/p-50eda925.js +1 -0
  356. package/dist/vega/{p-ae2abdfa.js → p-5110c84f.js} +1 -1
  357. package/dist/vega/{p-2a245138.entry.js → p-5147c30d.entry.js} +1 -1
  358. package/dist/vega/{p-874e5624.js → p-52878ea9.js} +1 -1
  359. package/dist/vega/{p-b00ec194.entry.js → p-55dc3053.entry.js} +1 -1
  360. package/dist/vega/p-5af312f8.js +1 -0
  361. package/dist/vega/{p-3e09aeed.js → p-5b3c8a56.js} +1 -1
  362. package/dist/vega/{p-2acf9b42.entry.js → p-5e9e04f3.entry.js} +1 -1
  363. package/dist/vega/p-5f377954.js +1 -1
  364. package/dist/vega/p-6493f13a.entry.js +1 -0
  365. package/dist/vega/{p-56598858.entry.js → p-6659c910.entry.js} +1 -1
  366. package/dist/vega/{p-95c18f79.entry.js → p-66728dd4.entry.js} +1 -1
  367. package/dist/vega/{p-4cbfc01e.entry.js → p-66a785d0.entry.js} +1 -1
  368. package/dist/vega/{p-36d9e782.entry.js → p-66fe8b4e.entry.js} +1 -1
  369. package/dist/vega/p-67e88cd7.entry.js +1 -0
  370. package/dist/vega/{p-456f678b.js → p-691bdc20.js} +1 -1
  371. package/dist/vega/{p-94975537.entry.js → p-6d6b4495.entry.js} +1 -1
  372. package/dist/vega/p-7754b10f.entry.js +1 -0
  373. package/dist/vega/{p-085d1647.entry.js → p-77fb3971.entry.js} +1 -1
  374. package/dist/vega/{p-544ce391.entry.js → p-7977352b.entry.js} +1 -1
  375. package/dist/vega/{p-a91927eb.entry.js → p-7b133734.entry.js} +1 -1
  376. package/dist/vega/p-7b84a943.entry.js +1 -0
  377. package/dist/vega/{p-02d3ce79.entry.js → p-840444c9.entry.js} +1 -1
  378. package/dist/vega/{p-3737b9e2.entry.js → p-860e76f5.entry.js} +1 -1
  379. package/dist/vega/{p-72fd17a1.entry.js → p-867cc602.entry.js} +1 -1
  380. package/dist/vega/p-8d2a9012.js +1 -0
  381. package/dist/vega/{p-7e8fdac4.js → p-8d4be607.js} +1 -1
  382. package/dist/vega/p-8d77c7cf.js +1 -0
  383. package/dist/vega/{p-4fd0cf01.js → p-8f3b93db.js} +1 -1
  384. package/dist/vega/{p-56417ec5.entry.js → p-944e284d.entry.js} +1 -1
  385. package/dist/vega/{p-6fd4f2c6.js → p-94b54a95.js} +1 -1
  386. package/dist/vega/p-9c2b3279.js +1 -0
  387. package/dist/vega/{p-ca3c1317.entry.js → p-9c5289dc.entry.js} +1 -1
  388. package/dist/vega/{p-810c9c29.js → p-9c9b0629.js} +1 -1
  389. package/dist/vega/{p-585e4f1c.entry.js → p-9c9ff871.entry.js} +1 -1
  390. package/dist/vega/{p-2f07d719.entry.js → p-9d90e271.entry.js} +1 -1
  391. package/dist/vega/{p-d319ebb5.js → p-9e9f49f4.js} +1 -1
  392. package/dist/vega/{p-dcd3e3a7.js → p-a1f220ca.js} +1 -1
  393. package/dist/vega/{p-035e2f05.entry.js → p-a4360b7e.entry.js} +1 -1
  394. package/dist/vega/{p-6d4518d7.entry.js → p-a7517760.entry.js} +1 -1
  395. package/dist/vega/{p-c5fb8a69.entry.js → p-aa433430.entry.js} +1 -1
  396. package/dist/vega/{p-1cff027b.entry.js → p-aa914dbd.entry.js} +1 -1
  397. package/dist/vega/{p-72ab5cd5.entry.js → p-b12de1bf.entry.js} +1 -1
  398. package/dist/vega/p-b21cc390.entry.js +1 -0
  399. package/dist/vega/{p-dbb4b1d1.js → p-b3c4943b.js} +1 -1
  400. package/dist/vega/{p-1aedbfd2.entry.js → p-ba6881da.entry.js} +1 -1
  401. package/dist/vega/{p-9834d5d4.entry.js → p-bd7725f7.entry.js} +1 -1
  402. package/dist/vega/{p-a090b2be.js → p-c348eaf5.js} +1 -1
  403. package/dist/vega/{p-ccbe3f1b.entry.js → p-c8ad7207.entry.js} +1 -1
  404. package/dist/vega/{p-b3733762.entry.js → p-c8fb3aac.entry.js} +1 -1
  405. package/dist/vega/p-cc569b54.js +1 -0
  406. package/dist/vega/{p-c98c2f5f.entry.js → p-ccbed811.entry.js} +1 -1
  407. package/dist/vega/{p-da867019.entry.js → p-ce82d6bb.entry.js} +1 -1
  408. package/dist/vega/{p-a81ad3bd.js → p-cede3535.js} +1 -1
  409. package/dist/vega/p-d35a31a5.entry.js +1 -0
  410. package/dist/vega/{p-ac94ba1b.entry.js → p-d4d90ce2.entry.js} +1 -1
  411. package/dist/vega/{p-cb81126a.entry.js → p-d6023dc0.entry.js} +1 -1
  412. package/dist/vega/{p-a8174ad8.entry.js → p-d62e618a.entry.js} +1 -1
  413. package/dist/vega/{p-1ea9ad9a.js → p-dd0bd78b.js} +1 -1
  414. package/dist/vega/{p-36d2df7a.entry.js → p-ded1ecc1.entry.js} +1 -1
  415. package/dist/vega/p-df63c2fb.entry.js +1 -0
  416. package/dist/vega/{p-c6d775b8.entry.js → p-e1a65e06.entry.js} +1 -1
  417. package/dist/vega/{p-39c5054b.js → p-e1c82ca9.js} +1 -1
  418. package/dist/vega/{p-f6c0e9e7.entry.js → p-e469ba27.entry.js} +1 -1
  419. package/dist/vega/{p-373541fa.js → p-e4c5cb4f.js} +1 -1
  420. package/dist/vega/{p-ec64cc59.entry.js → p-f0a0fc77.entry.js} +1 -1
  421. package/dist/vega/{p-12e8a1b2.js → p-f13b39d8.js} +1 -1
  422. package/dist/vega/{p-4e065ef7.entry.js → p-f2384411.entry.js} +1 -1
  423. package/dist/vega/{p-8d2501b2.js → p-f9a3805d.js} +1 -1
  424. package/dist/vega/{p-1e0a8fd3.js → p-fa5cd8b1.js} +1 -1
  425. package/dist/vega/{p-2c2e8615.js → p-fcb6b499.js} +1 -1
  426. package/dist/vega/vega.esm.js +1 -1
  427. package/package.json +1 -1
  428. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +0 -6
  429. package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +0 -6
  430. package/dist/vega/p-03eeadc1.entry.js +0 -1
  431. package/dist/vega/p-0eb29065.js +0 -3
  432. package/dist/vega/p-10d30c03.js +0 -1
  433. package/dist/vega/p-1250b1ab.entry.js +0 -1
  434. package/dist/vega/p-1abd3c17.js +0 -1
  435. package/dist/vega/p-2d158cbd.js +0 -1
  436. package/dist/vega/p-3d0b4074.js +0 -1
  437. package/dist/vega/p-56493601.js +0 -1
  438. package/dist/vega/p-571ec00b.js +0 -1
  439. package/dist/vega/p-5b1f5e4a.entry.js +0 -1
  440. package/dist/vega/p-6234852e.entry.js +0 -1
  441. package/dist/vega/p-781b7a54.js +0 -1
  442. package/dist/vega/p-cd69aeae.js +0 -1
  443. package/dist/vega/p-cfe268a8.entry.js +0 -1
  444. package/dist/vega/p-de8f0d98.js +0 -1
  445. package/dist/vega/p-f0e828d8.js +0 -1
  446. package/dist/vega/p-f62c5a20.entry.js +0 -1
  447. package/dist/vega/p-fa65956c.entry.js +0 -1
@@ -33,7 +33,7 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
33
33
  /**
34
34
  * @inheritDoc
35
35
  */
36
- handle(elementsArray) {
36
+ handle(elementsArray, _options, parentTextAnnotations) {
37
37
  const element = elementsArray[0];
38
38
  const tokenKey = element.getAttribute('token-key');
39
39
  const text = element.textContent;
@@ -46,7 +46,9 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
46
46
  type: 'token',
47
47
  token: tokenKey,
48
48
  text,
49
- annotations: Object.assign(Object.assign({}, restAnnotations), { customAttribute: this.createCustomAttrs(customAttribute) }),
49
+ annotations: Object.assign(Object.assign(Object.assign({}, restAnnotations), ((parentTextAnnotations === null || parentTextAnnotations === void 0 ? void 0 : parentTextAnnotations.inlineHtml)
50
+ ? { inlineHtml: parentTextAnnotations.inlineHtml }
51
+ : {})), { customAttribute: this.createCustomAttrs(customAttribute) }),
50
52
  };
51
53
  }
52
54
  /**
@@ -1,4 +1,6 @@
1
1
  import { RTETextNode } from '../../dto/nodes/text-node';
2
+ import { HTML_VOID_TAGS } from '../../constants/constant';
3
+ import { isNonNullable } from '../../../../types/type-guard';
2
4
  /**
3
5
  * Token node for the Vega Rich Text Editor.
4
6
  */
@@ -54,5 +56,47 @@ export class RTETokenNode extends RTETextNode {
54
56
  toHtml() {
55
57
  return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}"${super.generateAttributeString()}>${this.text}</span>`;
56
58
  }
59
+ /**
60
+ * @inheritDoc
61
+ */
62
+ renderHtmlFromDepth(depth, options) {
63
+ void options;
64
+ const annotation = this.getInlineHtmlAnnotationAtDepth(depth);
65
+ if (!annotation)
66
+ return this.toHtml();
67
+ return this.renderTokenWithWrapperStr(annotation);
68
+ }
69
+ /**
70
+ * Render token markup wrapped by inline HTML annotations, preserving token attributes.
71
+ *
72
+ * @param {InlineHtmlAnnotation} inlineHtmlNode - Current wrapper annotation.
73
+ * @returns {string} Token HTML wrapped by inline HTML annotations.
74
+ */
75
+ renderTokenWithWrapperStr(inlineHtmlNode) {
76
+ const { htmlTag, child } = inlineHtmlNode;
77
+ const attrStr = this.inlineHtmlAnnotationAttrStr(inlineHtmlNode);
78
+ if (!child) {
79
+ if (HTML_VOID_TAGS.has(htmlTag)) {
80
+ return `<${htmlTag}${attrStr}>`;
81
+ }
82
+ return `<${htmlTag}${attrStr}>${this.toHtml()}</${htmlTag}>`;
83
+ }
84
+ return `<${htmlTag}${attrStr}>${this.renderTokenWithWrapperStr(child)}</${htmlTag}>`;
85
+ }
86
+ /**
87
+ * Build inline HTML wrapper attributes string.
88
+ *
89
+ * @param {InlineHtmlAnnotation} annotation - Inline HTML annotation.
90
+ * @returns {string} Serialized attribute string.
91
+ */
92
+ inlineHtmlAnnotationAttrStr(annotation) {
93
+ const { customAttribute, customClass, customStyle } = annotation;
94
+ const attrs = [
95
+ ...((customAttribute === null || customAttribute === void 0 ? void 0 : customAttribute.toString()) || []),
96
+ customClass === null || customClass === void 0 ? void 0 : customClass.toString(),
97
+ customStyle === null || customStyle === void 0 ? void 0 : customStyle.toString(),
98
+ ].filter(isNonNullable);
99
+ return attrs.length > 0 ? ` ${attrs.join(' ')}` : '';
100
+ }
57
101
  }
58
102
  RTETokenNode.dtoName = 'RTETokenNode';
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
8
8
  import { isArrayEqual } from '../../../../utils/array';
9
9
  import { forceUpdate } from '@stencil/core';
10
+ import { BlockBoundaryRegistry } from '../../extensions/block-boundary-registry';
10
11
  /**
11
12
  * Inject the editor context to the extensions.
12
13
  */
@@ -113,6 +114,7 @@ export class RTEExtensionController extends VegaSlimmer {
113
114
  getSelectedNodes: this.getSelectedNodes,
114
115
  setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
115
116
  getSelection: this.selectionController.getSelection.bind(this.selectionController),
117
+ blockBoundaryRegistry: new BlockBoundaryRegistry(),
116
118
  };
117
119
  }
118
120
  }
@@ -23,7 +23,10 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
23
23
  }
24
24
  /**
25
25
  * Get the node type of element. The element type is determined in the following
26
- * order: "data-type" attribute, node name, font size and class name.
26
+ * order: "data-type" attribute, class name, node name, font size.
27
+ * Class name is checked before node name so that an explicit
28
+ * `v-rte--text-style-*` marker (e.g. applied by the Word paste transformer)
29
+ * takes precedence over the element's default tag-based role.
27
30
  *
28
31
  * @param {HTMLElement} element - element.
29
32
  * @returns {Nullable<VegaRTETextStyleType>} - node type.
@@ -32,15 +35,15 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
32
35
  const byDataType = this.getElementTypeByDataType(element);
33
36
  if (byDataType)
34
37
  return byDataType;
38
+ const byClassName = this.getElementTypeByClassName(element);
39
+ if (byClassName)
40
+ return byClassName;
35
41
  const byNodeName = this.getElementTypeByNodeName(element);
36
42
  if (byNodeName)
37
43
  return byNodeName;
38
44
  const byFontSize = this.getElementTypeByFontSize(element);
39
45
  if (byFontSize)
40
46
  return byFontSize;
41
- const byClassName = this.getElementTypeByClassName(element);
42
- if (byClassName)
43
- return byClassName;
44
47
  return null;
45
48
  }
46
49
  /**
@@ -1,6 +1,7 @@
1
1
  import { generateUUID } from '../../../../../../utils/misc';
2
2
  import { RTETextBlock } from '../../../../dto/blocks/text-block';
3
3
  import { RTETextNode } from '../../../../dto/nodes/text-node';
4
+ import { RTE_BLOCK_BOUNDARY_ATTRIBUTE } from '../../../../constants/constant';
4
5
  import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
5
6
  import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.abstract';
6
7
  import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS, PHRASING_CONTENT_TAGS, isInBlockTextContext, } from './strategy-tags';
@@ -83,6 +84,8 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
83
84
  isInlineCandidate(element, options) {
84
85
  if (element.nodeType === Node.TEXT_NODE)
85
86
  return true;
87
+ if (this.isBlockBoundaryElement(element, options))
88
+ return false;
86
89
  if (ALWAYS_INLINE_TAGS.has(element.nodeName))
87
90
  return true;
88
91
  if (this.isDedicatedBlockTag(element.nodeName))
@@ -91,6 +94,20 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
91
94
  return true;
92
95
  return this.isInlineLeafOrWrapper(element);
93
96
  }
97
+ /**
98
+ * Check whether an element marks a block boundary.
99
+ *
100
+ * @param {HTMLElement} element - Element to inspect.
101
+ * @param {VegaRTETransformOptions} options - Transformation options.
102
+ * @returns {boolean} Whether the element is a boundary.
103
+ */
104
+ isBlockBoundaryElement(element, options) {
105
+ var _a;
106
+ if (element.hasAttribute(RTE_BLOCK_BOUNDARY_ATTRIBUTE)) {
107
+ return true;
108
+ }
109
+ return !!((_a = options.blockBoundaryRegistry) === null || _a === void 0 ? void 0 : _a.isBoundary(element));
110
+ }
94
111
  /**
95
112
  * Returns true when the tag has a dedicated block strategy (excludes inline annotation tags CODE and A).
96
113
  *
@@ -8,6 +8,7 @@ import { RTETextNode } from '../../../../dto/nodes/text-node';
8
8
  import { generateUUID } from '../../../../../../utils/misc';
9
9
  import { escapeHtml } from '../../../../helpers/utils';
10
10
  import { ReplaceSelectedTextAction } from '../../../../dto/actions/replace-selected-text-action';
11
+ import { RTE_PASTE_MODE_DATA_TYPE, RTE_PASTE_MODE_WORD } from '../../../../constants/constant';
11
12
  /**
12
13
  * Handle user paste
13
14
  */
@@ -110,8 +111,11 @@ export class InsertPasteHandler extends BaseHandler {
110
111
  const body = parsedDoc.body;
111
112
  // Extract plain text from the parsed document
112
113
  const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
113
- // Check for rich inline formatting
114
- let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
114
+ // Check for rich inline formatting. Code blocks (`pre` carrying
115
+ // `data-language`, the marker the code-block strategy recognizes) count as
116
+ // formatting so they are never flattened to inline plain text, which would
117
+ // drop the code block on single-line pastes whose text equals the HTML text.
118
+ let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark,code,pre[data-language]'));
115
119
  if (!hasFormatting) {
116
120
  hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
117
121
  const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
@@ -202,9 +206,18 @@ export class InsertPasteHandler extends BaseHandler {
202
206
  context.restore(rootElements);
203
207
  this.normalizeImportedHtmlArtifacts(parsedDoc.body);
204
208
  const htmlElements = Array.from(parsedDoc.body.childNodes);
205
- const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements)
209
+ // Word paste enables custom-annotation processing (skipCustomAnnotations: false)
210
+ // so that inline styles produced by WordPasteStrategy (colors, font-weight, etc.)
211
+ // are mapped to RTE annotations. Regular rich paste skips them (undefined → default).
212
+ const transformOptions = payload.type === RTE_PASTE_MODE_WORD
213
+ ? {
214
+ autoMatchFormat: true,
215
+ skipCustomAnnotations: false,
216
+ }
217
+ : undefined;
218
+ const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements, transformOptions)
206
219
  .filter(Boolean)
207
- .map((output) => output.toDto())
220
+ .map((output) => output.toDto(transformOptions))
208
221
  .filter(Boolean);
209
222
  // Fallback for synthetic payloads: if strategy conversion yields no blocks
210
223
  // but we still have plain text, create paragraph/text blocks directly.
@@ -475,6 +488,7 @@ export class InsertPasteHandler extends BaseHandler {
475
488
  return {
476
489
  html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
477
490
  text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
491
+ type: event.dataTransfer.getData(RTE_PASTE_MODE_DATA_TYPE) || '',
478
492
  };
479
493
  }
480
494
  }
@@ -475,21 +475,40 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
475
475
  * @returns {Nullable<FocusNodeRangeState>} - The detected element's range state or null if not found.
476
476
  */
477
477
  detectNearestElement(block, offset) {
478
+ // Atomic blocks (e.g. table) opt out of descent so the caret stays anchored to the
479
+ // block boundary — resolving into a cell would break paragraph insertion before/after.
480
+ if (!block.allowsCaretDescend()) {
481
+ return;
482
+ }
478
483
  if (block.children) {
479
484
  const currentNode = block.children[offset];
480
485
  const prevNode = block.children[offset - 1];
481
- if (currentNode && currentNode instanceof RTENode) {
486
+ // A nested block (e.g. an html-block's inner paragraph rendered with
487
+ // `display: contents`) can receive the caret at its own boundary, so descend
488
+ // into it to reach the real node — the start of the next block or the end of
489
+ // the previous one.
490
+ if (currentNode instanceof RTENode) {
482
491
  return {
483
492
  startNode: currentNode,
484
493
  startOffset: 0,
485
494
  };
486
495
  }
487
- else if (prevNode && prevNode instanceof RTENode) {
496
+ else if (currentNode instanceof RTEBlock) {
497
+ // Fall through to the previous node if descending yields nothing (e.g. an empty block).
498
+ const nested = this.detectNearestElement(currentNode, 0);
499
+ if (nested) {
500
+ return nested;
501
+ }
502
+ }
503
+ if (prevNode instanceof RTENode) {
488
504
  return {
489
505
  startNode: prevNode,
490
506
  startOffset: prevNode.getRangeEndOffset(),
491
507
  };
492
508
  }
509
+ else if (prevNode instanceof RTEBlock) {
510
+ return this.detectNearestElement(prevNode, prevNode.children.length);
511
+ }
493
512
  }
494
513
  }
495
514
  }
@@ -9,6 +9,7 @@ import { VegaInternalIconManager } from '../../../../../helpers/icon/internal-ic
9
9
  import displayCode from '../../../assets/display-code';
10
10
  import { MapToComponentField } from 'vega-slimmer/core';
11
11
  import { VegaRTEContent } from '../../../dto/content-state';
12
+ import extensionContextManager from '../../../helpers/extension-context-manager';
12
13
  export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
13
14
  constructor() {
14
15
  super({
@@ -36,7 +37,9 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
36
37
  return super.isDisabled();
37
38
  }
38
39
  async saveSourceCode() {
40
+ var _a;
39
41
  const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
42
+ const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
40
43
  if (!sourceViewValue && this.value.isEmpty()) {
41
44
  return;
42
45
  }
@@ -44,6 +47,7 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
44
47
  await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
45
48
  autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
46
49
  filterInlineStyles: this.sourceEditConfig.filterInlineStyles,
50
+ blockBoundaryRegistry,
47
51
  }));
48
52
  }
49
53
  }
@@ -66,6 +70,9 @@ __decorate([
66
70
  __decorate([
67
71
  MapToComponentField()
68
72
  ], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
73
+ __decorate([
74
+ MapToComponentField()
75
+ ], SourceEditToolbarButtonSlimmer.prototype, "host", void 0);
69
76
  __decorate([
70
77
  MapToComponentField()
71
78
  ], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
@@ -10,6 +10,7 @@ import CodeFormatter from '../../../../helpers/code-format/code-formatter';
10
10
  import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
11
11
  import { VegaInternalCodeBlockBlur } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
12
12
  import { VegaRTEContent } from '../../dto/content-state';
13
+ import extensionContextManager from '../../helpers/extension-context-manager';
13
14
  /**
14
15
  * The renderer for the source view of the rich text editor. It renders a code block for editing the source code of the rich text editor content.
15
16
  */
@@ -21,14 +22,16 @@ export class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
21
22
  * Handle the blur event of the code block. When the code block loses focus, emit the source code change event with the current source code.
22
23
  */
23
24
  this.handleCodeBlockBlur = () => {
24
- var _a;
25
+ var _a, _b;
25
26
  // If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
26
27
  if (this.sourceView) {
27
28
  const filterInlineStyles = Boolean(this.sourceEditConfig.filterInlineStyles);
28
29
  const sourceCode = this.getSourceCode();
30
+ const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
29
31
  const newValue = VegaRTEContent.fromHtml(sourceCode, {
30
- autoMatchFormat: (_a = this.sourceEditConfig.autoMatchFormat) !== null && _a !== void 0 ? _a : true,
32
+ autoMatchFormat: (_b = this.sourceEditConfig.autoMatchFormat) !== null && _b !== void 0 ? _b : true,
31
33
  filterInlineStyles,
34
+ blockBoundaryRegistry,
32
35
  });
33
36
  const newSourceCode = newValue.toHtml({ filterInlineStyles });
34
37
  if (newSourceCode !== this.prevRecord) {
@@ -78,18 +78,24 @@ export class VegaTabGroupTabListRenderer extends VegaSlimmer {
78
78
  renderCounterBadgeDom(item) {
79
79
  const counterBadge = item.counterBadge;
80
80
  const counterBadgeClass = this.getCounterBadgeClassByCount(counterBadge);
81
- return ((counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.count) !== undefined &&
82
- counterBadge.count > 0 && (h("div", { class: `vega-counter-badge ${counterBadgeClass}`, "aria-hidden": "true" },
83
- h("vega-counter-badge", { count: counterBadge.count, color: counterBadge.color }))));
81
+ return (counterBadge &&
82
+ (!!counterBadge.dot || (counterBadge.count !== undefined && counterBadge.count > 0)) && (h("div", { class: `vega-counter-badge ${counterBadgeClass}`, "aria-hidden": "true" },
83
+ h("vega-counter-badge", { count: counterBadge.count, color: counterBadge.color, dot: counterBadge.dot }))));
84
84
  }
85
85
  getTabAriaLabel(item) {
86
86
  const counterBadge = item.counterBadge;
87
+ if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.dot) {
88
+ return `${item.label}, ${this.translationSlimmer.t('notification')}`;
89
+ }
87
90
  return (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.count) && counterBadge.count > 0
88
91
  ? `${item.label}, ${counterBadge.count}`
89
92
  : item.label;
90
93
  }
91
94
  getCounterBadgeClassByCount(counterBadge) {
92
- if (counterBadge && counterBadge.count) {
95
+ if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.dot) {
96
+ return 'dot-variant';
97
+ }
98
+ if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.count) {
93
99
  const digits = counterBadge.count.toString().length;
94
100
  if (digits === 1) {
95
101
  return 'one-digit';
@@ -101,9 +107,7 @@ export class VegaTabGroupTabListRenderer extends VegaSlimmer {
101
107
  return 'multi-digits';
102
108
  }
103
109
  }
104
- else {
105
- return '';
106
- }
110
+ return '';
107
111
  }
108
112
  handleTabItemClick(event, dataTarget) {
109
113
  this.selectedTargetController.handleTabItemClick(dataTarget);
@@ -143,3 +147,6 @@ __decorate([
143
147
  __decorate([
144
148
  MapToComponentField({ componentFieldName: 'vegaTabGroupVoiceOverFocusController' })
145
149
  ], VegaTabGroupTabListRenderer.prototype, "voiceOverFocusController", void 0);
150
+ __decorate([
151
+ MapToComponentField()
152
+ ], VegaTabGroupTabListRenderer.prototype, "translationSlimmer", void 0);
@@ -114,6 +114,12 @@
114
114
  padding-left: 8px;
115
115
  top: 10px;
116
116
  }
117
+ .vega-tab > div > .label .vega-counter-badge.dot-variant {
118
+ width: 20px;
119
+ }
120
+ .vega-tab > div > .label .vega-counter-badge.dot-variant vega-counter-badge {
121
+ left: 10px;
122
+ }
117
123
  .vega-tab > div > .label .vega-counter-badge.one-digit {
118
124
  width: 20px;
119
125
  }
@@ -23,6 +23,7 @@ import { createEventEmitSlimmer, } from '../../helpers/event-manager/slimmers/ev
23
23
  import { VegaClick } from '../../helpers/event-manager/event-id/vega-event-id';
24
24
  import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
25
25
  import { VegaTabGroupRuntimeMetricsPayloadDefinition } from '../../constants/runtime-metrics-payload-definition/vega-tab-group/runtime-metrics-payload-definition';
26
+ import { TranslationSlimmer } from '../../helpers/slimmers/translation';
26
27
  /**
27
28
  * The Tab Group component organizes content into separate views, and allows users to switch between them without navigating away from the parent page.
28
29
  *
@@ -32,6 +33,7 @@ export class VegaTabGroup {
32
33
  constructor() {
33
34
  this.globalSlimmers = {};
34
35
  this.vegaTabGroupRenderer = new VegaTabGroupRenderer();
36
+ this.translationSlimmer = new TranslationSlimmer();
35
37
  this.vegaTabGroupDirectionButtonRenderer = new VegaTabGroupSwitchPageButtonRenderer();
36
38
  this.vegaTabGroupTabListRenderer = new VegaTabGroupTabListRenderer();
37
39
  this.vegaTabGroupCloseButtonRenderer = new VegaTabGroupCloseButtonRenderer();
@@ -402,6 +404,9 @@ __decorate([
402
404
  __decorate([
403
405
  InjectVegaSlimmer()
404
406
  ], VegaTabGroup.prototype, "vegaTabGroupRenderer", void 0);
407
+ __decorate([
408
+ InjectVegaSlimmer()
409
+ ], VegaTabGroup.prototype, "translationSlimmer", void 0);
405
410
  __decorate([
406
411
  InjectVegaSlimmer()
407
412
  ], VegaTabGroup.prototype, "vegaTabGroupDirectionButtonRenderer", void 0);
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
8
8
  import { resolveBodyColSpan } from '../renderers/vega-table-body-col-span-resolver';
9
+ import { BreakpointKeys } from '../../../../constants/ui';
9
10
  /**
10
11
  * Per-row body colspan controller.
11
12
  *
@@ -16,6 +17,10 @@ import { resolveBodyColSpan } from '../renderers/vega-table-body-col-span-resolv
16
17
  *
17
18
  * The structural shape (a {@link VegaSlimmer} controller reading component fields) mirrors the
18
19
  * main-branch `VegaTableExpandRowController` paradigm.
20
+ *
21
+ * Breakpoint-aware: maps the current breakpoint from the parent vega-table and computes
22
+ * which columns are hidden at that breakpoint so the colspan resolver can shrink before
23
+ * breakpoint-hidden columns (instead of mirroring across them).
19
24
  */
20
25
  export class VegaTableBodyColSpanController extends VegaSlimmer {
21
26
  constructor() {
@@ -43,6 +48,8 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
43
48
  this.warnedColSpanKeys.clear();
44
49
  this.lastWarnedColumnsRef = this.columns;
45
50
  }
51
+ // Compute per-leaf hidden state based on current breakpoint.
52
+ const isHiddenAtBreakpoint = leaves.map((leaf) => this.isColumnHiddenAtBreakpoint(leaf));
46
53
  const results = new Array(leaves.length).fill(null);
47
54
  let skipCount = 0;
48
55
  leaves.forEach((leaf, leafIndex) => {
@@ -53,7 +60,7 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
53
60
  }
54
61
  const column = this.findColumn(leaf);
55
62
  const result = column
56
- ? resolveBodyColSpan(column, record, rowIndex, leafIndex, leaves, this.warnedColSpanKeys)
63
+ ? resolveBodyColSpan(column, record, rowIndex, leafIndex, leaves, this.warnedColSpanKeys, isHiddenAtBreakpoint)
57
64
  : { htmlColspan: 1, skipCount: 0 };
58
65
  results[leafIndex] = result;
59
66
  skipCount = result.skipCount;
@@ -71,7 +78,30 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
71
78
  column.prop === renderInput.key ||
72
79
  column.label === renderInput.key);
73
80
  }
81
+ /**
82
+ * Determine whether a leaf is hidden at the current breakpoint.
83
+ *
84
+ * A leaf is hidden when the column's breakpoint threshold is greater than the current breakpoint.
85
+ * Breakpoint order: 'default' < 'S' < 'M' < 'L' < 'XL'.
86
+ * Example: if currentBreakpoint is 'S' and column.breakpoint is 'M', the column is hidden (S < M).
87
+ *
88
+ * @param {ColumnRenderInputModel} leaf - The leaf render input to check.
89
+ * @returns {boolean} True if the leaf is hidden at the current breakpoint.
90
+ */
91
+ isColumnHiddenAtBreakpoint(leaf) {
92
+ const column = this.findColumn(leaf);
93
+ if (!column || !column.breakpoint) {
94
+ return false; // No breakpoint = never hidden.
95
+ }
96
+ const currentBreakpointIndex = BreakpointKeys.indexOf(this.currentBreakpoint);
97
+ const columnBreakpointIndex = BreakpointKeys.indexOf(column.breakpoint);
98
+ // Column is hidden when current breakpoint is smaller than the column's breakpoint threshold.
99
+ return currentBreakpointIndex < columnBreakpointIndex;
100
+ }
74
101
  }
75
102
  __decorate([
76
103
  MapToComponentField()
77
104
  ], VegaTableBodyColSpanController.prototype, "columns", void 0);
105
+ __decorate([
106
+ MapToComponentField()
107
+ ], VegaTableBodyColSpanController.prototype, "currentBreakpoint", void 0);
@@ -37,16 +37,16 @@ function normalizeSpan(rawSpan) {
37
37
  * Walk rightward from the starting leaf to find the widest legal span.
38
38
  *
39
39
  * Stops (and returns a clamp reason) when the span would either run past the end of the
40
- * row or cross a pinned ↔ unpinned column boundary (which would break sticky positioning).
41
- * Breakpoint-hidden columns are intentionally **not** a stop condition the span mirrors
42
- * across them (matching header group colSpan).
40
+ * row, cross a pinned ↔ unpinned column boundary, or encounter a breakpoint-hidden column.
41
+ * Breakpoint-hidden columns are a shrink trigger (the span stops before them).
43
42
  *
44
43
  * @param {number} declared - The declared span requested by the column.
45
44
  * @param {number} leafIndex - Index of the starting leaf in the flattened render-input array.
46
45
  * @param {ColumnRenderInputModel[]} allLeaves - All leaf render inputs for the table (ordered).
46
+ * @param {boolean[]} isHiddenAtBreakpoint - Per-leaf boolean: true if leaf is hidden at current breakpoint.
47
47
  * @returns {MaxSpan} The widest legal span plus the clamp reason (null when unconstrained).
48
48
  */
49
- function computeMaxSpan(declared, leafIndex, allLeaves) {
49
+ function computeMaxSpan(declared, leafIndex, allLeaves, isHiddenAtBreakpoint) {
50
50
  var _a, _b;
51
51
  const startPinned = (_a = allLeaves[leafIndex]) === null || _a === void 0 ? void 0 : _a.pinned;
52
52
  let span = 1;
@@ -58,6 +58,13 @@ function computeMaxSpan(declared, leafIndex, allLeaves) {
58
58
  clampReason: `extends past the end of the row (${allLeaves.length} columns total)`,
59
59
  };
60
60
  }
61
+ // Reject if the next column is hidden at the current breakpoint.
62
+ if (isHiddenAtBreakpoint[leafIndex + offset]) {
63
+ return {
64
+ span,
65
+ clampReason: null, // Breakpoint-hidden stop is not a config-error warning — it is legitimate responsive hiding.
66
+ };
67
+ }
61
68
  // Reject if the next column is in a different pinned group.
62
69
  if (nextLeaf.pinned !== startPinned) {
63
70
  return {
@@ -87,11 +94,10 @@ function warnClampOnce(colKey, declared, effective, reason, warnedKeys) {
87
94
  /**
88
95
  * Resolve the effective body-cell colspan for a single source-data row cell.
89
96
  *
90
- * Clamps the declared span so it never runs past the end of the row nor crosses a
91
- * pinned ↔ unpinned column boundary. Structural clamps (end-of-row / pinned boundary) emit a
92
- * warning once per column key (tracked via the caller-supplied {@link warnedKeys} set).
93
- * Breakpoint-hidden columns are **not** clamped the span mirrors across a `display: none`
94
- * column (matching header group colSpan) so the body grid stays column-aligned with the header.
97
+ * Clamps the declared span so it never runs past the end of the row, crosses a
98
+ * pinned ↔ unpinned column boundary, or encounters a breakpoint-hidden column (shrink before it).
99
+ * Structural clamps (end-of-row / pinned boundary) emit a warning once per column key
100
+ * (tracked via the caller-supplied {@link warnedKeys} set). Breakpoint-hidden stops are silent.
95
101
  *
96
102
  * @param {VegaTableColumnConfig} column - The column configuration for the spanning cell.
97
103
  * @param {VegaTableDataSourceItem} record - The row data record.
@@ -99,14 +105,15 @@ function warnClampOnce(colKey, declared, effective, reason, warnedKeys) {
99
105
  * @param {number} leafIndex - Index of this column in the flattened leaf render-input array.
100
106
  * @param {ColumnRenderInputModel[]} allLeaves - All leaf render inputs for the table (ordered).
101
107
  * @param {Set<string>} warnedKeys - Per-instance set tracking column keys that have already received a clamping warning.
108
+ * @param {boolean[]} isHiddenAtBreakpoint - Per-leaf boolean: true if leaf is hidden at current breakpoint.
102
109
  * @returns {BodyColSpanResult} Resolved spanning metadata for the cell.
103
110
  */
104
- export function resolveBodyColSpan(column, record, rowIndex, leafIndex, allLeaves, warnedKeys) {
111
+ export function resolveBodyColSpan(column, record, rowIndex, leafIndex, allLeaves, warnedKeys, isHiddenAtBreakpoint) {
105
112
  var _a, _b, _c;
106
113
  const declared = getDeclaredSpan(column, record, rowIndex);
107
114
  if (!declared || declared <= 1)
108
115
  return NO_SPAN;
109
- const { span, clampReason } = computeMaxSpan(declared, leafIndex, allLeaves);
116
+ const { span, clampReason } = computeMaxSpan(declared, leafIndex, allLeaves, isHiddenAtBreakpoint);
110
117
  const effectiveSpan = Math.min(declared, span);
111
118
  if (clampReason && effectiveSpan < declared) {
112
119
  const colKey = (_c = (_b = (_a = column.key) !== null && _a !== void 0 ? _a : column.prop) !== null && _b !== void 0 ? _b : column.label) !== null && _c !== void 0 ? _c : '';
@@ -188,6 +188,7 @@ export const staticTranslations = {
188
188
  'pm': 'pm',
189
189
  '{0} Selected': '{0} Selected',
190
190
  'date picker': 'Date Picker',
191
+ 'notification': 'notification',
191
192
  'Selected result': 'Selected result',
192
193
  'Close event preview detail': 'Close event preview detail',
193
194
  'Edit event': 'Edit event',
@@ -220,5 +221,6 @@ export const staticTranslations = {
220
221
  'Next': 'Next',
221
222
  'Copy': 'Copy',
222
223
  'Cut': 'Cut',
224
+ 'Use Word': 'Use Word',
223
225
  };
224
226
  export default staticTranslations;
@@ -3,10 +3,11 @@
3
3
  */
4
4
  export { HtmlSanitizer } from './core/html-sanitizer';
5
5
  export { SanitizeStrategy } from './core/sanitize-strategy';
6
- export { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy } from './strategies';
6
+ export { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy, PlainTextSanitizeStrategy, } from './strategies';
7
7
  import { HtmlSanitizer } from './core/html-sanitizer';
8
- import { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy } from './strategies';
8
+ import { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy, PlainTextSanitizeStrategy, } from './strategies';
9
9
  export const htmlSanitizer = new HtmlSanitizer();
10
10
  export const labelSanitizeStrategy = new LabelSanitizeStrategy();
11
11
  export const styleSanitizeStrategy = new StyleSanitizeStrategy();
12
12
  export const emptySanitizeStrategy = new EmptySanitizeStrategy();
13
+ export const plainTextSanitizeStrategy = new PlainTextSanitizeStrategy();
@@ -1,3 +1,4 @@
1
1
  export { LabelSanitizeStrategy } from './label-sanitize-strategy';
2
2
  export { StyleSanitizeStrategy } from './style-sanitize-strategy';
3
3
  export { EmptySanitizeStrategy } from './empty-sanitize-strategy';
4
+ export { PlainTextSanitizeStrategy } from './plain-text-sanitize-strategy';
@@ -10,4 +10,18 @@ export class LabelSanitizeStrategy extends SanitizeStrategy {
10
10
  super(...arguments);
11
11
  this.allowedTags = LABEL_ALLOWED_TAGS;
12
12
  }
13
+ /**
14
+ * Drops script/style nodes entirely, including their text contents.
15
+ *
16
+ * @param {HTMLElement} element - Element node to sanitize.
17
+ * @param {Document} doc - Document reference used to create safe nodes.
18
+ * @returns {Nullable<Node>} Sanitized node or null when removed.
19
+ */
20
+ sanitizeElement(element, doc) {
21
+ const tagName = element.tagName;
22
+ if (tagName === 'SCRIPT' || tagName === 'STYLE') {
23
+ return null;
24
+ }
25
+ return super.sanitizeElement(element, doc);
26
+ }
13
27
  }