@globalpayments/vega 2.93.0 → 2.94.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 (367) hide show
  1. package/dist/cjs/{app-globals-f7ad9275.js → app-globals-d05c3410.js} +11 -10
  2. package/dist/cjs/{code-block-2f3d0f38.js → code-block-493c7ce7.js} +77 -21
  3. package/dist/cjs/{component-value-history-controller-slimmer.abstract-31d2c7aa.js → component-value-history-controller-slimmer.abstract-ab21fcbf.js} +3 -3
  4. package/dist/cjs/{content-state-13daf87a.js → content-state-fc34a814.js} +2 -2
  5. package/dist/cjs/{date-required-rule-e65ddd7d.js → date-required-rule-4ab06a82.js} +1 -1
  6. package/dist/cjs/{design-token-47393cbb.js → design-token-d3d12fa0.js} +3 -3
  7. package/dist/cjs/{element-appender-slimmer-29c4ac60.js → element-appender-slimmer-1d6323c2.js} +2 -2
  8. package/dist/cjs/{form-field-controller-slimmer-3bfcf88c.js → form-field-controller-slimmer-d638ba12.js} +1 -1
  9. package/dist/cjs/{image-annotation-action-c2b163bb.js → image-annotation-action-7c4cd316.js} +3 -3
  10. package/dist/cjs/{image-extension-4e99b620.js → image-extension-30a7c10f.js} +18 -1
  11. package/dist/cjs/index.cjs.js +19 -17
  12. package/dist/cjs/{inject-keyboard-manager-4b2ebbe4.js → inject-keyboard-manager-5a105612.js} +1 -1
  13. package/dist/cjs/{internal-calendar-period-factory-7a0ecdb1.js → internal-calendar-period-factory-b76006f7.js} +1 -1
  14. package/dist/cjs/{internal-translation-controller-31f2b057.js → internal-translation-controller-eb02c3b1.js} +2 -0
  15. package/dist/cjs/{keyboard-manager-c78b46bd.js → keyboard-manager-ca76d4dc.js} +1 -1
  16. package/dist/cjs/{keyboard-manager-slimmer-d350c931.js → keyboard-manager-slimmer-a1223714.js} +1 -1
  17. package/dist/cjs/{link-extension-455c02b3.js → link-extension-92a63cb7.js} +3 -3
  18. package/dist/cjs/loader.cjs.js +12 -13
  19. package/dist/cjs/{month-view-generator-006562dc.js → month-view-generator-876c50d4.js} +1 -1
  20. package/dist/cjs/{public-rules-c59eba88.js → public-rules-9e1ea1d9.js} +7 -7
  21. package/dist/cjs/{range-bf80fa40.js → range-30219330.js} +1 -1
  22. package/dist/cjs/{responsive-format-facade-1af54330.js → responsive-format-facade-25e9f30d.js} +1 -1
  23. package/dist/cjs/{rich-text-editor-required-rule-1085c71a.js → rich-text-editor-required-rule-23bf7485.js} +1 -1
  24. package/dist/cjs/{split-cell-operation-2fa5c9e4.js → split-cell-operation-43752212.js} +3 -3
  25. package/dist/cjs/{state-border-formatter-501f6645.js → state-border-formatter-f1ce0f3b.js} +1 -1
  26. package/dist/cjs/{string-format-strategy.abstract-a02bf002.js → string-format-strategy.abstract-b22f7754.js} +1 -1
  27. package/dist/cjs/{string-input-formatter-slimmer-9cca6151.js → string-input-formatter-slimmer-d2c248f7.js} +1 -1
  28. package/dist/cjs/{string-mask-strategy-4c174ebf.js → string-mask-strategy-fc01a500.js} +2 -2
  29. package/dist/cjs/{style-formatter-2c749500.js → style-formatter-73205450.js} +2 -2
  30. package/dist/cjs/{time-required-rule-04994a5e.js → time-required-rule-12d2f394.js} +1 -1
  31. package/dist/cjs/{token-extension-d217914d.js → token-extension-ea891d54.js} +307 -17
  32. package/dist/cjs/{translation-slimmer-7fb6e94c.js → translation-slimmer-9099f56c.js} +1 -1
  33. package/dist/cjs/{type-guard-1c3770d4.js → type-guard-f354af8b.js} +1 -1
  34. package/dist/cjs/{valid-credit-card-number-rule-f719a8c6.js → valid-credit-card-number-rule-8d370163.js} +1 -1
  35. package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
  36. package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
  37. package/dist/cjs/vega-box.cjs.entry.js +6 -6
  38. package/dist/cjs/vega-button-circle.cjs.entry.js +5 -5
  39. package/dist/cjs/vega-button.cjs.entry.js +8 -5
  40. package/dist/cjs/vega-calendar_5.cjs.entry.js +7 -7
  41. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  42. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  43. package/dist/cjs/vega-checkbox_2.cjs.entry.js +2 -2
  44. package/dist/cjs/vega-chip.cjs.entry.js +5 -5
  45. package/dist/cjs/vega-code-block.cjs.entry.js +8 -8
  46. package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
  47. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +3 -3
  48. package/dist/cjs/vega-color-swatch.cjs.entry.js +2 -2
  49. package/dist/cjs/vega-combo-box.cjs.entry.js +8 -8
  50. package/dist/cjs/vega-date-picker_2.cjs.entry.js +13 -13
  51. package/dist/cjs/vega-dialog_2.cjs.entry.js +3 -3
  52. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  53. package/dist/cjs/vega-dropdown_5.cjs.entry.js +7 -7
  54. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  55. package/dist/cjs/vega-field-label.cjs.entry.js +2 -2
  56. package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
  57. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  58. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  59. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  60. package/dist/cjs/vega-form.cjs.entry.js +3 -3
  61. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  63. package/dist/cjs/vega-image-uploader.cjs.entry.js +5 -5
  64. package/dist/cjs/vega-input-credit-card.cjs.entry.js +6 -6
  65. package/dist/cjs/vega-input-numeric.cjs.entry.js +5 -5
  66. package/dist/cjs/vega-input-passcode.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-input-phone-number.cjs.entry.js +4 -4
  68. package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
  69. package/dist/cjs/vega-input-select.cjs.entry.js +5 -5
  70. package/dist/cjs/vega-input.cjs.entry.js +6 -6
  71. package/dist/cjs/vega-left-nav_5.cjs.entry.js +313 -108
  72. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  73. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  74. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  75. package/dist/cjs/vega-popover_2.cjs.entry.js +8 -8
  76. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
  77. package/dist/cjs/vega-radio_2.cjs.entry.js +5 -5
  78. package/dist/cjs/vega-rich-text-content.cjs.entry.js +6 -6
  79. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +55 -28
  80. package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +1 -1
  81. package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
  82. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +12 -12
  83. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
  84. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +2 -2
  85. package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
  86. package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
  87. package/dist/cjs/vega-stepper.cjs.entry.js +2 -2
  88. package/dist/cjs/vega-table_11.cjs.entry.js +69 -9
  89. package/dist/cjs/vega-textarea.cjs.entry.js +2 -2
  90. package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -9
  91. package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
  92. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  93. package/dist/cjs/vega.cjs.js +12 -13
  94. package/dist/collection/components/vega-button/vega-button.css +4 -0
  95. package/dist/collection/components/vega-button/vega-button.js +4 -1
  96. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.js +4 -6
  97. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.js +23 -68
  98. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.js +74 -0
  99. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +16 -2
  100. package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.js +2 -2
  101. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +7 -2
  102. package/dist/collection/components/vega-rich-text-editor/dto/annotations/custom-style-annotation.js +3 -2
  103. package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +2 -1
  104. package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.js +1 -1
  105. package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +2 -1
  106. package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +1 -1
  107. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.js +21 -7
  108. package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +12 -0
  109. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.js +3 -0
  110. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.js +3 -0
  111. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.js +156 -0
  112. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.js +31 -0
  113. package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +73 -0
  114. package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +1 -0
  115. package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-toolbar-popover-renderer.js +1 -0
  116. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +1 -1
  117. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +1 -1
  118. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +1 -1
  119. package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +1 -1
  120. package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +71 -15
  121. package/dist/collection/components/vega-rich-text-editor/public-api.js +2 -0
  122. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
  123. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +1 -1
  124. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +1 -1
  125. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +1 -1
  126. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
  127. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
  128. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +11 -1
  129. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +19 -1
  130. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +1 -1
  131. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-cell-renderer.js +3 -1
  132. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +89 -7
  133. package/dist/collection/global/scripts/before-vega-load.js +2 -0
  134. package/dist/collection/helpers/backdrop/index.js +1 -0
  135. package/dist/collection/helpers/backdrop/shared-backdrop-manager.js +163 -0
  136. package/dist/collection/helpers/translation/locales/en.js +2 -0
  137. package/dist/esm/{app-globals-9950d055.js → app-globals-f2336686.js} +11 -10
  138. package/dist/esm/{code-block-ae2337c2.js → code-block-e12588fe.js} +77 -21
  139. package/dist/esm/{component-value-history-controller-slimmer.abstract-b1ee1b8e.js → component-value-history-controller-slimmer.abstract-4e8eb313.js} +3 -3
  140. package/dist/esm/{content-state-c3b85ae6.js → content-state-8032467a.js} +2 -2
  141. package/dist/esm/{date-required-rule-e06115f8.js → date-required-rule-b88e1650.js} +1 -1
  142. package/dist/esm/{design-token-4e682056.js → design-token-76bd217c.js} +3 -3
  143. package/dist/esm/{element-appender-slimmer-a4485ef6.js → element-appender-slimmer-7fcb944b.js} +2 -2
  144. package/dist/esm/{form-field-controller-slimmer-a1c7b28c.js → form-field-controller-slimmer-395c23e3.js} +1 -1
  145. package/dist/esm/{image-annotation-action-4c77d314.js → image-annotation-action-b3b6c308.js} +3 -3
  146. package/dist/esm/{image-extension-7108c27d.js → image-extension-b6c7e4a7.js} +18 -2
  147. package/dist/esm/index.js +17 -17
  148. package/dist/esm/{inject-keyboard-manager-e8ddb78d.js → inject-keyboard-manager-86126b5b.js} +1 -1
  149. package/dist/esm/{internal-calendar-period-factory-6f19d767.js → internal-calendar-period-factory-3a07dba0.js} +1 -1
  150. package/dist/esm/{internal-translation-controller-09b8bd13.js → internal-translation-controller-16709132.js} +2 -0
  151. package/dist/esm/{keyboard-manager-ec18721b.js → keyboard-manager-a0c3e1cf.js} +1 -1
  152. package/dist/esm/{keyboard-manager-slimmer-531ddb0e.js → keyboard-manager-slimmer-f3f66c15.js} +1 -1
  153. package/dist/esm/{link-extension-74eaa826.js → link-extension-97fcb8fb.js} +3 -3
  154. package/dist/esm/loader.js +12 -13
  155. package/dist/esm/{month-view-generator-afd78ff8.js → month-view-generator-fd0e1856.js} +1 -1
  156. package/dist/esm/{public-rules-5fce32a5.js → public-rules-c06f0d2a.js} +7 -7
  157. package/dist/esm/{range-8f877dbf.js → range-e999837f.js} +1 -1
  158. package/dist/esm/{responsive-format-facade-299e6304.js → responsive-format-facade-ced96b0b.js} +1 -1
  159. package/dist/esm/{rich-text-editor-required-rule-3047bab0.js → rich-text-editor-required-rule-71f8ee98.js} +1 -1
  160. package/dist/esm/{split-cell-operation-98d58410.js → split-cell-operation-359f8082.js} +3 -3
  161. package/dist/esm/{state-border-formatter-da52b626.js → state-border-formatter-b680e922.js} +1 -1
  162. package/dist/esm/{string-format-strategy.abstract-a45b5ff7.js → string-format-strategy.abstract-23faab71.js} +1 -1
  163. package/dist/esm/{string-input-formatter-slimmer-4a032fed.js → string-input-formatter-slimmer-4b4866a6.js} +1 -1
  164. package/dist/esm/{string-mask-strategy-37e53e48.js → string-mask-strategy-66586cd8.js} +2 -2
  165. package/dist/esm/{style-formatter-3d5ddfb1.js → style-formatter-f4e16af5.js} +2 -2
  166. package/dist/esm/{time-required-rule-355b73d2.js → time-required-rule-6e80a9ab.js} +1 -1
  167. package/dist/esm/{token-extension-ecfafe94.js → token-extension-9896879b.js} +306 -17
  168. package/dist/esm/{translation-slimmer-3ea56354.js → translation-slimmer-21748a0e.js} +1 -1
  169. package/dist/esm/{type-guard-2bfb2c7b.js → type-guard-ec5e8628.js} +1 -1
  170. package/dist/esm/{valid-credit-card-number-rule-52c6b029.js → valid-credit-card-number-rule-ca5a47d6.js} +1 -1
  171. package/dist/esm/vega-accordion.entry.js +6 -6
  172. package/dist/esm/vega-app-header-button.entry.js +5 -5
  173. package/dist/esm/vega-box.entry.js +6 -6
  174. package/dist/esm/vega-button-circle.entry.js +5 -5
  175. package/dist/esm/vega-button.entry.js +8 -5
  176. package/dist/esm/vega-calendar_5.entry.js +7 -7
  177. package/dist/esm/vega-card.entry.js +5 -5
  178. package/dist/esm/vega-carousel.entry.js +3 -3
  179. package/dist/esm/vega-checkbox_2.entry.js +2 -2
  180. package/dist/esm/vega-chip.entry.js +5 -5
  181. package/dist/esm/vega-code-block.entry.js +8 -8
  182. package/dist/esm/vega-color-picker.entry.js +2 -2
  183. package/dist/esm/vega-color-swatch-picker.entry.js +3 -3
  184. package/dist/esm/vega-color-swatch.entry.js +2 -2
  185. package/dist/esm/vega-combo-box.entry.js +8 -8
  186. package/dist/esm/vega-date-picker_2.entry.js +13 -13
  187. package/dist/esm/vega-dialog_2.entry.js +3 -3
  188. package/dist/esm/vega-divider.entry.js +5 -5
  189. package/dist/esm/vega-dropdown_5.entry.js +7 -7
  190. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  191. package/dist/esm/vega-field-label.entry.js +2 -2
  192. package/dist/esm/vega-file-uploader.entry.js +3 -3
  193. package/dist/esm/vega-flag-icon.entry.js +5 -5
  194. package/dist/esm/vega-flex.entry.js +6 -6
  195. package/dist/esm/vega-font.entry.js +5 -5
  196. package/dist/esm/vega-form.entry.js +3 -3
  197. package/dist/esm/vega-grid.entry.js +5 -5
  198. package/dist/esm/vega-icon.entry.js +5 -5
  199. package/dist/esm/vega-image-uploader.entry.js +5 -5
  200. package/dist/esm/vega-input-credit-card.entry.js +6 -6
  201. package/dist/esm/vega-input-numeric.entry.js +5 -5
  202. package/dist/esm/vega-input-passcode.entry.js +5 -5
  203. package/dist/esm/vega-input-phone-number.entry.js +4 -4
  204. package/dist/esm/vega-input-range.entry.js +3 -3
  205. package/dist/esm/vega-input-select.entry.js +5 -5
  206. package/dist/esm/vega-input.entry.js +6 -6
  207. package/dist/esm/vega-left-nav_5.entry.js +313 -108
  208. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  209. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
  210. package/dist/esm/vega-pagination.entry.js +4 -4
  211. package/dist/esm/vega-popover_2.entry.js +8 -8
  212. package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
  213. package/dist/esm/vega-radio_2.entry.js +5 -5
  214. package/dist/esm/vega-rich-text-content.entry.js +6 -6
  215. package/dist/esm/vega-rich-text-editor_4.entry.js +51 -24
  216. package/dist/esm/vega-rich-text-find-replace-panel.entry.js +1 -1
  217. package/dist/esm/vega-rich-text-special-characters-panel.entry.js +5 -5
  218. package/dist/esm/vega-rich-text-table-properties_3.entry.js +12 -12
  219. package/dist/esm/vega-selection-chip_2.entry.js +4 -4
  220. package/dist/esm/vega-selection-tile_2.entry.js +2 -2
  221. package/dist/esm/vega-sidenav_3.entry.js +3 -3
  222. package/dist/esm/vega-signature-capture.entry.js +7 -7
  223. package/dist/esm/vega-stepper.entry.js +2 -2
  224. package/dist/esm/vega-table_11.entry.js +69 -9
  225. package/dist/esm/vega-textarea.entry.js +2 -2
  226. package/dist/esm/vega-time-picker_2.entry.js +9 -9
  227. package/dist/esm/vega-toggle-switch.entry.js +2 -2
  228. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  229. package/dist/esm/vega.js +12 -13
  230. package/dist/sri/vega-sri-manifest.json +318 -322
  231. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.d.ts +0 -1
  232. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.d.ts +12 -19
  233. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.d.ts +41 -0
  234. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +4 -1
  235. package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.d.ts +1 -1
  236. package/dist/types/components/vega-nav/vega-left-nav/vega-left-nav.d.ts +2 -0
  237. package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.d.ts +15 -4
  238. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.d.ts +3 -0
  239. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.d.ts +3 -0
  240. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.d.ts +63 -0
  241. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.d.ts +20 -0
  242. package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.d.ts +40 -0
  243. package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +19 -0
  244. package/dist/types/components/vega-rich-text-editor/interface.d.ts +20 -0
  245. package/dist/types/components/vega-rich-text-editor/public-api.d.ts +2 -0
  246. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +5 -0
  247. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +8 -0
  248. package/dist/types/components/vega-table/interface.d.ts +13 -0
  249. package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +14 -0
  250. package/dist/types/components.d.ts +10 -0
  251. package/dist/types/helpers/backdrop/index.d.ts +1 -0
  252. package/dist/types/helpers/backdrop/shared-backdrop-manager.d.ts +67 -0
  253. package/dist/types/helpers/translation/interface.d.ts +3 -1
  254. package/dist/vega/index.esm.js +1 -1
  255. package/dist/vega/{p-21e21f51.js → p-02355de8.js} +1 -1
  256. package/dist/vega/{p-05f937c5.entry.js → p-0af32f31.entry.js} +1 -1
  257. package/dist/vega/{p-2fcc604c.entry.js → p-0b311599.entry.js} +1 -1
  258. package/dist/vega/{p-ad35dea4.entry.js → p-0b9c7c79.entry.js} +1 -1
  259. package/dist/vega/p-0be4df0a.js +1 -0
  260. package/dist/vega/{p-0e607b44.js → p-0d18368b.js} +1 -1
  261. package/dist/vega/{p-6b1893f6.entry.js → p-1232b553.entry.js} +1 -1
  262. package/dist/vega/{p-944b43ce.entry.js → p-14559974.entry.js} +1 -1
  263. package/dist/vega/{p-32a67ba1.js → p-14baa886.js} +1 -1
  264. package/dist/vega/{p-846b1ab9.entry.js → p-2364be92.entry.js} +1 -1
  265. package/dist/vega/p-270697c0.entry.js +1 -0
  266. package/dist/vega/{p-af98539f.entry.js → p-288d65ad.entry.js} +1 -1
  267. package/dist/vega/p-2bf17505.entry.js +1 -0
  268. package/dist/vega/{p-afb96938.js → p-320091b7.js} +1 -1
  269. package/dist/vega/{p-73fd18d9.entry.js → p-341a6b32.entry.js} +1 -1
  270. package/dist/vega/p-36949349.js +1 -0
  271. package/dist/vega/p-38c9d782.js +1 -0
  272. package/dist/vega/{p-e4309574.js → p-3c309a38.js} +1 -1
  273. package/dist/vega/{p-4d9562bc.js → p-3dee1e55.js} +1 -1
  274. package/dist/vega/p-3e8baeac.entry.js +1 -0
  275. package/dist/vega/{p-d7f32ccf.entry.js → p-46fe3154.entry.js} +1 -1
  276. package/dist/vega/{p-8c1a5fa4.entry.js → p-48ee3e24.entry.js} +1 -1
  277. package/dist/vega/{p-ccf7518b.js → p-4fe40b76.js} +1 -1
  278. package/dist/vega/{p-7d54e9c1.js → p-4ff48b84.js} +1 -1
  279. package/dist/vega/{p-56c4e349.entry.js → p-5107277d.entry.js} +1 -1
  280. package/dist/vega/{p-5139e516.js → p-51b68d25.js} +1 -1
  281. package/dist/vega/{p-751a5cd6.entry.js → p-52c6a399.entry.js} +1 -1
  282. package/dist/vega/{p-a359e53c.js → p-579cdeae.js} +1 -1
  283. package/dist/vega/{p-c2d28797.entry.js → p-595998d9.entry.js} +1 -1
  284. package/dist/vega/{p-653a6dd8.entry.js → p-5db61a12.entry.js} +1 -1
  285. package/dist/vega/{p-f2f22b5d.entry.js → p-5df2d6a1.entry.js} +1 -1
  286. package/dist/vega/p-5f377954.js +1 -1
  287. package/dist/vega/{p-1efab41b.js → p-61ce8029.js} +1 -1
  288. package/dist/vega/{p-ddf03de1.entry.js → p-62d6e063.entry.js} +1 -1
  289. package/dist/vega/{p-1818f399.entry.js → p-6c9c2f8c.entry.js} +1 -1
  290. package/dist/vega/{p-5dbfffcd.js → p-6cde45fc.js} +1 -1
  291. package/dist/vega/p-6dfe2407.js +1 -0
  292. package/dist/vega/{p-d4bb6f93.entry.js → p-6f01a71a.entry.js} +1 -1
  293. package/dist/vega/p-6f70a10f.entry.js +1 -0
  294. package/dist/vega/p-73f2c3c0.entry.js +1 -0
  295. package/dist/vega/p-75e33859.js +1 -0
  296. package/dist/vega/p-762ea523.entry.js +1 -0
  297. package/dist/vega/{p-c5ecbc53.entry.js → p-782eb312.entry.js} +1 -1
  298. package/dist/vega/p-7a88a3d3.entry.js +1 -0
  299. package/dist/vega/{p-e410c4ad.entry.js → p-7b57a845.entry.js} +1 -1
  300. package/dist/vega/p-83a16285.entry.js +1 -0
  301. package/dist/vega/p-8720816e.js +1 -0
  302. package/dist/vega/{p-6712a9c7.entry.js → p-892edf88.entry.js} +1 -1
  303. package/dist/vega/{p-63101cb4.entry.js → p-8c083255.entry.js} +1 -1
  304. package/dist/vega/{p-19c42e30.js → p-8db904dc.js} +1 -1
  305. package/dist/vega/{p-0cb78838.entry.js → p-91287214.entry.js} +1 -1
  306. package/dist/vega/{p-c553d37e.js → p-919cddc3.js} +1 -1
  307. package/dist/vega/{p-e86c6802.entry.js → p-95913e3c.entry.js} +1 -1
  308. package/dist/vega/p-97215133.js +1 -0
  309. package/dist/vega/{p-3f7b10b9.entry.js → p-9bdc6e11.entry.js} +1 -1
  310. package/dist/vega/{p-cf8d5b3f.entry.js → p-9d18ba7f.entry.js} +1 -1
  311. package/dist/vega/{p-7b93a756.entry.js → p-9dca874d.entry.js} +1 -1
  312. package/dist/vega/{p-ffdacaf9.entry.js → p-9f38448c.entry.js} +1 -1
  313. package/dist/vega/{p-ef605271.js → p-9f7154d2.js} +1 -1
  314. package/dist/vega/{p-7c8e579e.entry.js → p-a057285e.entry.js} +1 -1
  315. package/dist/vega/{p-3c9da3cd.entry.js → p-a0a58295.entry.js} +1 -1
  316. package/dist/vega/{p-4c49b2e3.js → p-a7209700.js} +1 -1
  317. package/dist/vega/{p-c3c0e415.entry.js → p-a890d60b.entry.js} +1 -1
  318. package/dist/vega/{p-fda6e2cc.entry.js → p-addbca58.entry.js} +1 -1
  319. package/dist/vega/{p-f0d4c78c.js → p-b1eb9ff0.js} +1 -1
  320. package/dist/vega/p-b4e7c967.js +1 -0
  321. package/dist/vega/{p-2de61f1b.js → p-b775e51f.js} +1 -1
  322. package/dist/vega/{p-bbabb1c8.entry.js → p-b8f8e480.entry.js} +1 -1
  323. package/dist/vega/{p-95d6c85f.js → p-ba662fe5.js} +1 -1
  324. package/dist/vega/p-c66d2a1e.js +1 -0
  325. package/dist/vega/{p-3932f964.entry.js → p-c67b9aba.entry.js} +1 -1
  326. package/dist/vega/{p-acbba6da.entry.js → p-c9daabe1.entry.js} +1 -1
  327. package/dist/vega/{p-ddd28a8e.entry.js → p-cad5222a.entry.js} +1 -1
  328. package/dist/vega/{p-b042e3b4.entry.js → p-cb90163a.entry.js} +1 -1
  329. package/dist/vega/{p-422d88ae.entry.js → p-d08ffdf1.entry.js} +1 -1
  330. package/dist/vega/{p-d44943e2.entry.js → p-e235020b.entry.js} +1 -1
  331. package/dist/vega/{p-4f327808.entry.js → p-e4266b45.entry.js} +1 -1
  332. package/dist/vega/{p-9cafbc26.entry.js → p-e48a870f.entry.js} +1 -1
  333. package/dist/vega/{p-832d1a72.entry.js → p-e8ee70c5.entry.js} +1 -1
  334. package/dist/vega/{p-d62b85ff.entry.js → p-ed103a1a.entry.js} +1 -1
  335. package/dist/vega/{p-e5187a86.entry.js → p-f05a193e.entry.js} +1 -1
  336. package/dist/vega/p-f1974321.js +1 -0
  337. package/dist/vega/{p-615a2b8c.entry.js → p-f246f125.entry.js} +1 -1
  338. package/dist/vega/{p-4256252c.js → p-f4da615a.js} +1 -1
  339. package/dist/vega/{p-09d50f59.entry.js → p-f5d7b89f.entry.js} +1 -1
  340. package/dist/vega/{p-0f1d6ceb.entry.js → p-f651df3b.entry.js} +1 -1
  341. package/dist/vega/{p-6d40635e.js → p-f7e459cd.js} +1 -1
  342. package/dist/vega/{p-cb81fc2a.entry.js → p-f906a7bc.entry.js} +1 -1
  343. package/dist/vega/{p-66b7d1c7.entry.js → p-f96d0503.entry.js} +1 -1
  344. package/dist/vega/{p-8d27b9cc.js → p-fe24b459.js} +1 -1
  345. package/dist/vega/vega.esm.js +1 -1
  346. package/package.json +1 -1
  347. package/dist/cjs/replace-selected-text-action-a80f5a6a.js +0 -20
  348. package/dist/esm/replace-selected-text-action-c9278a0f.js +0 -18
  349. package/dist/vega/p-07562b9c.js +0 -1
  350. package/dist/vega/p-18a5e8bc.js +0 -1
  351. package/dist/vega/p-2de88b4a.entry.js +0 -1
  352. package/dist/vega/p-392e049c.entry.js +0 -1
  353. package/dist/vega/p-4e1aa86f.js +0 -1
  354. package/dist/vega/p-4ef5c4a7.entry.js +0 -1
  355. package/dist/vega/p-88863658.js +0 -1
  356. package/dist/vega/p-99b699be.entry.js +0 -1
  357. package/dist/vega/p-9a01be93.js +0 -1
  358. package/dist/vega/p-9a472a04.entry.js +0 -1
  359. package/dist/vega/p-a9a87b9a.js +0 -1
  360. package/dist/vega/p-b5bee669.entry.js +0 -1
  361. package/dist/vega/p-b5f308ee.entry.js +0 -1
  362. package/dist/vega/p-bbf1f988.entry.js +0 -1
  363. package/dist/vega/p-ccb9bf86.js +0 -1
  364. package/dist/vega/p-dca3278f.js +0 -1
  365. package/dist/vega/p-e0ecafca.js +0 -1
  366. package/dist/vega/p-e33e1e90.js +0 -1
  367. package/dist/vega/p-ff8dd200.js +0 -1
@@ -0,0 +1,31 @@
1
+ import { VegaRTEExtension } from '../extension.abstract';
2
+ import { RTEFullscreenToolbarButtonRenderer } from './fullscreen-toolbar-button-renderer';
3
+ import { FullscreenController } from './controller/fullscreen-controller';
4
+ /**
5
+ * Rich Text Editor extension that adds a toolbar button for viewport fullscreen mode.
6
+ *
7
+ * OOP Pattern: Extends VegaRTEExtension with fullscreen feature.
8
+ * Uses a per-host controller store to isolate state across hosts.
9
+ */
10
+ export class VegaRTEFullscreenExtension extends VegaRTEExtension {
11
+ /** @inheritDoc */
12
+ prepareBeforeLoad(host) {
13
+ const controller = new FullscreenController(host);
14
+ VegaRTEFullscreenExtension.controllerStore.set(host, controller);
15
+ this.registerToolbarButtonRenderer(VegaRTEFullscreenExtension.TOOLBAR_BUTTON_KEY, new RTEFullscreenToolbarButtonRenderer(controller), host);
16
+ }
17
+ /**
18
+ * Restore document scroll if the editor is removed while fullscreen is active.
19
+ * Without this, body overflow:hidden would persist after the host is gone.
20
+ */
21
+ destroyExtension() {
22
+ var _a, _b;
23
+ if ((_a = this.extensionContext) === null || _a === void 0 ? void 0 : _a.host) {
24
+ const host = this.extensionContext.host;
25
+ (_b = VegaRTEFullscreenExtension.controllerStore.get(host)) === null || _b === void 0 ? void 0 : _b.exitFullscreen();
26
+ VegaRTEFullscreenExtension.controllerStore.delete(host);
27
+ }
28
+ }
29
+ }
30
+ VegaRTEFullscreenExtension.TOOLBAR_BUTTON_KEY = 'fullscreen';
31
+ VegaRTEFullscreenExtension.controllerStore = VegaRTEFullscreenExtension.createStateStore();
@@ -0,0 +1,73 @@
1
+ import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
2
+ import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
3
+ import { VegaInternalTranslation } from '../../../../helpers/translation/internal-translation-controller';
4
+ import fullscreenEnter from './assets/fullscreen-enter';
5
+ import fullscreenExit from './assets/fullscreen-exit';
6
+ /**
7
+ * Toolbar button renderer for fullscreen toggle.
8
+ */
9
+ export class RTEFullscreenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
10
+ constructor(controller) {
11
+ super();
12
+ this.controller = controller;
13
+ }
14
+ /**
15
+ * Always shows the fullscreen button.
16
+ *
17
+ * @returns {boolean} Always false for hidden state.
18
+ */
19
+ isHidden() {
20
+ return false;
21
+ }
22
+ /**
23
+ * Renders the fullscreen toolbar button with current state.
24
+ *
25
+ * @param {VegaRTECreateElementFunction} createElement - Create element function.
26
+ * @param {VegaRTEToolbarRenderContext} editorContext - Toolbar render context.
27
+ * @returns {VegaRTERenderResult} The toolbar button render result.
28
+ */
29
+ render(createElement, editorContext) {
30
+ const selected = this.isSelected();
31
+ return this.renderButton(createElement, editorContext, {
32
+ icon: selected ? 'rte-fullscreen-exit' : 'rte-fullscreen-enter',
33
+ tooltip: {
34
+ text: selected
35
+ ? VegaInternalTranslation.t('Exit fullscreen mode')
36
+ : VegaInternalTranslation.t('Enter fullscreen mode'),
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * Returns whether fullscreen mode is currently active.
42
+ *
43
+ * @returns {boolean} Whether fullscreen mode is active.
44
+ */
45
+ isSelected() {
46
+ return this.controller.isActive();
47
+ }
48
+ /**
49
+ * Toggles fullscreen mode and forces toolbar button refresh.
50
+ *
51
+ * @param {VegaRTEToolbarRenderContext} editorContext - Toolbar render context.
52
+ */
53
+ handleButtonClick(editorContext) {
54
+ this.controller.toggleFullscreen();
55
+ const extensionContext = this.getExtensionContext(editorContext.host);
56
+ if (extensionContext) {
57
+ extensionContext.forceUpdate(editorContext.host);
58
+ }
59
+ }
60
+ /**
61
+ * No dropdown behavior for fullscreen button.
62
+ */
63
+ handleDropdownClick() {
64
+ // No dropdown for fullscreen
65
+ }
66
+ }
67
+ // Register icons in static block
68
+ (() => {
69
+ VegaInternalIconManager.register({
70
+ 'rte-fullscreen-enter': fullscreenEnter,
71
+ 'rte-fullscreen-exit': fullscreenExit,
72
+ });
73
+ })();
@@ -91,6 +91,7 @@ export class RTEPasteChooserUI {
91
91
  dropdownEl.maxWidth = 220;
92
92
  dropdownEl.alignment = 'start';
93
93
  dropdownEl.itemDisplayRule = 'ellipsis';
94
+ dropdownEl.isScreenPosition = true;
94
95
  const triggerButton = doc.createElement('vega-rich-text-editor-toolbar-button');
95
96
  const arrowIcon = placement[0] === 'top' ? 'chevron-up' : 'chevron-down';
96
97
  triggerButton.setAttribute(RTEPasteChooserUI.CHOOSER_TRIGGER_ATTR, 'true');
@@ -25,6 +25,7 @@ export class RTETableToolbarPopoverRenderer extends TablePopoverBaseRenderer {
25
25
  alignment: 'start',
26
26
  placement: 'bottom',
27
27
  showArrow: false,
28
+ isScreenPosition: true,
28
29
  // eslint-disable-next-line jsdoc/require-jsdoc
29
30
  ref: (ref) => {
30
31
  if (ref) {
@@ -216,7 +216,7 @@ export class VegaRichTextTablePropertiesBaseFormFieldRenderer extends VegaSlimme
216
216
  this.borderColorPickerRef.value = this.controller.getColorByKey(formValue['borderColor']);
217
217
  }
218
218
  });
219
- }, trigger: "click" },
219
+ }, trigger: "click", isScreenPosition: true },
220
220
  h("div", { slot: "popover-content", class: "color-picker-container" },
221
221
  h("vega-input", { ref: this.handleFormChange, "data-vega-form": "borderColor", type: "hidden" }),
222
222
  h("span", { role: "button", tabIndex: 0, "aria-label": "Clear border color", onKeyDown: createEnterKeyHandlerToTriggerClick(), class: "display-color-placeholder color-none" })),
@@ -32,7 +32,7 @@ export class ColumnButtonSlimmer extends TableSettingButtonSlimmer {
32
32
  };
33
33
  }
34
34
  renderBtnWrapper(renderBtn) {
35
- return (h("vega-dropdown", { isScreenPosition: true, minWidth: 210, trigger: "click", ref: (el) => {
35
+ return (h("vega-dropdown", { minWidth: 210, trigger: "click", ref: (el) => {
36
36
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
37
37
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownShow, this.handleDropdownVisibilityChange);
38
38
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownHide, this.handleDropdownVisibilityChange);
@@ -35,7 +35,7 @@ export class MergeCellsButtonSlimmer extends TableSettingButtonSlimmer {
35
35
  };
36
36
  }
37
37
  renderBtnWrapper(renderBtn) {
38
- return (h("vega-dropdown", { isScreenPosition: true, minWidth: 150, trigger: "click", ref: (el) => {
38
+ return (h("vega-dropdown", { minWidth: 150, trigger: "click", ref: (el) => {
39
39
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
40
40
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownShow, this.handleDropdownVisibilityChange);
41
41
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownHide, this.handleDropdownVisibilityChange);
@@ -23,7 +23,7 @@ export class RowButtonSlimmer extends TableSettingButtonSlimmer {
23
23
  };
24
24
  }
25
25
  renderBtnWrapper(renderBtn) {
26
- return (h("vega-dropdown", { isScreenPosition: true, minWidth: 180, trigger: "click", ref: (el) => {
26
+ return (h("vega-dropdown", { minWidth: 180, trigger: "click", ref: (el) => {
27
27
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, this.handleDropdownItemClick);
28
28
  } },
29
29
  renderBtn(),
@@ -2,25 +2,67 @@ import { dashCaseToCamel } from '../../../utils/string';
2
2
  /**
3
3
  * Creates a style map from the inline styles of an HTML element. This function extracts the 'style' attribute from the given element.
4
4
  *
5
+ * Manually parses the style string to handle complex CSS values that contain semicolons (e.g., data URLs),
6
+ * colons (e.g., https:// URLs), or commas (e.g., rgba, gradients). This approach avoids reliance on
7
+ * CSSStyleDeclaration's array-like behavior, which is inconsistent in Jest/JSDOM test environments.
8
+ *
5
9
  * @param {HTMLElement} element The HTML element from which to extract inline styles.
6
10
  * @returns {AnnotationStyle} An object representing the custom style annotations.
7
11
  */
8
12
  export function createStyleMapFromElement(element) {
9
- const customStyle = element.getAttribute('style');
10
- if (!customStyle)
11
- return {};
12
- const styleValue = customStyle.split(';').filter(Boolean);
13
- return styleValue
14
- .filter((key) => key !== ' ')
15
- .map((key) => {
16
- // to remove redundant quote pairs if needed, for example: ['fontFamily: "Roboto Mono"'] will be updated to ['fontFamily: Roboto Mono']
17
- const styleObject = key.replace(/(['"])(.*?)\1/g, '$2').split(':');
18
- const styleKey = dashCaseToCamel(styleObject[0].trim());
19
- return {
20
- [styleKey]: styleObject[1].trim().replace(';', ''),
21
- };
22
- })
23
- .reduce((current, obj) => (Object.assign(Object.assign({}, current), obj)), {});
13
+ const styleMap = {};
14
+ const styleAttr = element.getAttribute('style');
15
+ if (!styleAttr) {
16
+ return styleMap;
17
+ }
18
+ // Split by semicolons, but only those outside of parentheses (to handle data URLs with semicolons)
19
+ const properties = splitStyleProperties(styleAttr);
20
+ for (const property of properties) {
21
+ const trimmedProperty = property.trim();
22
+ const colonIndex = trimmedProperty.indexOf(':');
23
+ const propertyName = trimmedProperty.substring(0, colonIndex).trim();
24
+ const propertyValue = trimmedProperty.substring(colonIndex + 1).trim();
25
+ // Convert CSS property name to camelCase (e.g., 'background-color' -> 'backgroundColor')
26
+ const camelCaseName = dashCaseToCamel(propertyName);
27
+ styleMap[camelCaseName] = propertyValue;
28
+ }
29
+ return styleMap;
30
+ }
31
+ /**
32
+ * Split a CSS style string by semicolons, but only those outside of parentheses.
33
+ * This ensures that semicolons inside url() or other functions are not treated as property separators.
34
+ *
35
+ * @param {string} styleAttr The style attribute string to split.
36
+ * @returns {string[]} Array of individual CSS property strings.
37
+ */
38
+ export function splitStyleProperties(styleAttr) {
39
+ const properties = [];
40
+ let currentProperty = '';
41
+ let parenthesesDepth = 0;
42
+ for (let i = 0; i < styleAttr.length; i++) {
43
+ const char = styleAttr[i];
44
+ if (char === '(') {
45
+ parenthesesDepth++;
46
+ currentProperty += char;
47
+ }
48
+ else if (char === ')') {
49
+ parenthesesDepth--;
50
+ currentProperty += char;
51
+ }
52
+ else if (char === ';' && parenthesesDepth === 0) {
53
+ // Semicolon outside parentheses - this is a property separator
54
+ properties.push(currentProperty);
55
+ currentProperty = '';
56
+ }
57
+ else {
58
+ currentProperty += char;
59
+ }
60
+ }
61
+ // Add the last property if it doesn't end with a semicolon
62
+ if (currentProperty) {
63
+ properties.push(currentProperty);
64
+ }
65
+ return properties;
24
66
  }
25
67
  /**
26
68
  * Escape HTML-sensitive characters so text can be rendered literally in HTML.
@@ -36,3 +78,17 @@ export function escapeHtml(text) {
36
78
  .replace(/"/g, '&quot;')
37
79
  .replace(/'/g, '&#39;');
38
80
  }
81
+ /**
82
+ * Escape text for use inside a double-quoted HTML attribute value.
83
+ *
84
+ * @param {string} value - Raw attribute value.
85
+ * @returns {string} Escaped attribute-safe value.
86
+ */
87
+ export function escapeHtmlAttribute(value) {
88
+ return (value
89
+ // Keep existing entities (e.g. &quot;, &#39;) intact to avoid double escaping on repeated transforms.
90
+ .replace(/&(?!(?:[a-zA-Z][a-zA-Z0-9]+|#[0-9]+|#x[a-fA-F0-9]+);)/g, '&amp;')
91
+ .replace(/</g, '&lt;')
92
+ .replace(/>/g, '&gt;')
93
+ .replace(/"/g, '&quot;'));
94
+ }
@@ -27,9 +27,11 @@ export { VegaRTEFindReplaceExtension } from './extensions/find-replace/find-repl
27
27
  export { VegaRTESpecialCharactersEssentials, VegaRTESpecialCharactersLatin, VegaRTESpecialCharactersMathematical, VegaRTESpecialCharactersArrows, VegaRTESpecialCharactersCurrency, VegaRTESpecialCharactersText, } from './extensions/special-characters/constants/default-categories';
28
28
  export { VegaRTELineHeightExtension } from './extensions/line-height/line-height-extension';
29
29
  export { VegaRTELinkExtension } from './extensions/link/link-extension';
30
+ export { VegaRTEFullscreenExtension } from './extensions/fullscreen/fullscreen-extension';
30
31
  export { VegaRTEPasteExtension } from './extensions/paste/paste-extension';
31
32
  export { VegaRTECopyExtension } from './extensions/copy/copy-extension';
32
33
  export { VegaRTECutExtension } from './extensions/cut/cut-extension';
34
+ export { VegaRTEImageExtension } from './extensions/image/image-extension';
33
35
  // actions
34
36
  export { ModifyContentAction, ModifyContentActionType } from './dto/actions/modify-content-action.abstract';
35
37
  export { AppendChildrenAction } from './dto/actions/append-child-nodes-action';
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
8
8
  import { isArrayEqual } from '../../../../utils/array';
9
+ import { forceUpdate } from '@stencil/core';
9
10
  /**
10
11
  * Inject the editor context to the extensions.
11
12
  */
@@ -107,6 +108,7 @@ export class RTEExtensionController extends VegaSlimmer {
107
108
  return {
108
109
  host: this.host,
109
110
  flushValue: this.flushValue,
111
+ forceUpdate: forceUpdate,
110
112
  isSourceEditMode: this.isSourceEditMode,
111
113
  getSelectedNodes: this.getSelectedNodes,
112
114
  setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
@@ -34,7 +34,7 @@ export class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonS
34
34
  }
35
35
  }
36
36
  renderBtnWrapper(renderBtn) {
37
- return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
37
+ return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
38
38
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
39
39
  h("div", { slot: "popover" }, this.renderContent())));
40
40
  }
@@ -43,7 +43,7 @@ export class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarBu
43
43
  }
44
44
  }
45
45
  renderBtnWrapper(renderBtn) {
46
- return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
46
+ return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
47
47
  h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
48
48
  h("div", { slot: "popover" }, this.renderContent())));
49
49
  }
@@ -79,7 +79,7 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
79
79
  return null;
80
80
  }
81
81
  return (h("vega-box", null,
82
- shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
82
+ shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
83
83
  this.dropdownRef = ref;
84
84
  this.addDropdownObserver(ref);
85
85
  } },
@@ -46,7 +46,7 @@ export class TextColorToolbarButtonSlimmer extends VisualModeToolbarButtonSlimme
46
46
  this.popoverShow = false;
47
47
  }
48
48
  renderBtnWrapper(renderBtn) {
49
- return (h("vega-popover", { placement: "bottom", alignment: "center", ref: (ref) => {
49
+ return (h("vega-popover", { placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => {
50
50
  this.popoverRef = ref;
51
51
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, this.handlePopoverShowChange.bind(this));
52
52
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverHide, this.handlePopoverHideChange.bind(this));
@@ -47,7 +47,7 @@ export class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimm
47
47
  };
48
48
  }
49
49
  renderBtnWrapper(renderBtn) {
50
- return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
50
+ return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
51
51
  this.addDropdownObserver(ref);
52
52
  } },
53
53
  renderBtn({ showArrowIcon: true }),
@@ -10,6 +10,7 @@ import { createEnterKeyHandlerToTriggerClick } from '../../../../utils/accessibi
10
10
  import ChangeManager from '../../../../helpers/change-manager/change-manager';
11
11
  import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
12
12
  import { VegaInternalComponentDidRender } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
13
+ import { SHADOW_ROOT_ELEMENT_SCROLLING } from '../../../../helpers/change-manager/subject/static-subject/static-subject-title';
13
14
  import { VegaRTEOneRowHeightPx } from '../../constants/constant';
14
15
  export class VegaRichTextEditorRenderer extends VegaSlimmer {
15
16
  constructor() {
@@ -31,9 +32,18 @@ export class VegaRichTextEditorRenderer extends VegaSlimmer {
31
32
  'disabled': this.disabled,
32
33
  'vega-hidden': this.sourceView,
33
34
  }, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
34
- h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions }),
35
+ h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
35
36
  this.renderCharacterCounter()));
36
37
  };
38
+ /**
39
+ * Propagates rich-text content scrolling inside shadow root so open appender
40
+ * can force position recalculation via ElementAppenderSlimmer.
41
+ */
42
+ this.notifyContentScrolling = () => {
43
+ ChangeManager.notify(SHADOW_ROOT_ELEMENT_SCROLLING, {
44
+ host: this.host,
45
+ });
46
+ };
37
47
  this.renderCharacterCounter = () => {
38
48
  return (h("div", { class: {
39
49
  'text-editor-counter': true,
@@ -64,7 +64,7 @@ export class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
64
64
  render() {
65
65
  if (!this.allowSourceEdit)
66
66
  return;
67
- const sourceCode = this.getSourceTemplate();
67
+ const sourceCode = this.normalizeSourceCodeForEditing(this.getSourceTemplate());
68
68
  const sourceViewValue = this.sourceView ? CodeFormatter.format(sourceCode) : '';
69
69
  // Record the source view value when rendering, which will be used to compare with the current source view value when blurring the code block to determine whether to emit the source code change event.
70
70
  this.prevRecord = sourceCode;
@@ -85,6 +85,24 @@ export class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
85
85
  getSourceTemplate() {
86
86
  return this.value.toHtml({ filterInlineStyles: this.sourceEditConfig.filterInlineStyles });
87
87
  }
88
+ /**
89
+ * Normalize source HTML for source-mode editing.
90
+ *
91
+ * `vega-code-block` renders code as HTML and will decode quote entities, so
92
+ * convert quote entities inside style attributes to single quotes before entering
93
+ * source mode. This preserves valid HTML when switching back to normal mode.
94
+ */
95
+ normalizeSourceCodeForEditing(html) {
96
+ return html.replace(/style="([\s\S]*?)"/gi, (_match, styleValue) => {
97
+ const normalizedStyleValue = styleValue
98
+ .replace(/&amp;|&#38;|&#x26;/gi, '&')
99
+ .replace(/&lt;|&#60;|&#x3c;/gi, '<')
100
+ .replace(/&gt;|&#62;|&#x3e;/gi, '>')
101
+ .replace(/&quot;|&#34;|&#x22;/gi, "'")
102
+ .replace(/&apos;|&#39;|&#x27;/gi, "'");
103
+ return `style="${normalizedStyleValue}"`;
104
+ });
105
+ }
88
106
  }
89
107
  __decorate([
90
108
  MapToComponentField()
@@ -59,7 +59,7 @@ export class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
59
59
  return this.popoverRef;
60
60
  }
61
61
  render() {
62
- return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
62
+ return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
63
63
  this.popoverRef = ref;
64
64
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
65
65
  var _a, _b, _c;
@@ -102,7 +102,9 @@ export class VegaTableCellRenderer extends VegaSlimmer {
102
102
  if (column) {
103
103
  const rowKey = this.vegaTableDataSourceController.getRecordKey(record);
104
104
  const columnKey = `${rowKey}_${column.key || column.prop}`;
105
- return (h("vega-table-cell", { key: columnKey, textAlign: column.align, breakpoint: column.breakpoint, overflow: column.overflow, colSpan: isSpanning ? htmlColspan : undefined, ref: (ref) => {
105
+ const ellipsisOptions = column.ellipsisOptions;
106
+ const ellipsisShowTooltip = !!(ellipsisOptions === null || ellipsisOptions === void 0 ? void 0 : ellipsisOptions.showTooltip);
107
+ return (h("vega-table-cell", { key: columnKey, textAlign: column.align, breakpoint: column.breakpoint, overflow: column.overflow, ellipsisShowTooltip: ellipsisShowTooltip, colSpan: isSpanning ? htmlColspan : undefined, ref: (ref) => {
106
108
  this.vegaTableRenderInputController.addCellRenderInputMap(ref, effectiveRenderInput);
107
109
  } }, this.renderTableCellContent(column, record, index, isSpanning)));
108
110
  }
@@ -30,6 +30,14 @@ export class VegaTableCell {
30
30
  this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
31
31
  this.vegaTableRenderInputConsumerSlimmer = new VegaTableChildRenderInputConsumerSlimmer(VegaInternalColumnBodyCellRenderInputRIC);
32
32
  this.currentBreakpoint = getCurrentBreakpoint();
33
+ this.ellipsisTooltipText = '';
34
+ this.ellipsisTooltipTrigger = 'none';
35
+ /**
36
+ * Whether to show a Vega tooltip (instead of the native title attribute) for truncated ellipsis cell content.
37
+ *
38
+ * @vegaVersion 2.94.0
39
+ */
40
+ this.ellipsisShowTooltip = false;
33
41
  this.getCellOverflowClass = () => {
34
42
  switch (this.overflow) {
35
43
  case 'ellipsis':
@@ -39,6 +47,11 @@ export class VegaTableCell {
39
47
  }
40
48
  };
41
49
  }
50
+ componentDidLoad() {
51
+ if (this.overflow === 'ellipsis' && this.ellipsisShowTooltip) {
52
+ requestAnimationFrame(() => this.updateEllipsisState());
53
+ }
54
+ }
42
55
  render() {
43
56
  var _a, _b, _c, _d, _e, _f;
44
57
  const responsiveClass = generateResponsiveClass(this.breakpoint, 'v-table-cell');
@@ -70,17 +83,63 @@ export class VegaTableCell {
70
83
  /* eslint-disable-next-line react/jsx-no-bind */
71
84
  onMouseEnter: this.onMouseEnter.bind(this),
72
85
  /* eslint-disable-next-line react/jsx-no-bind */
73
- onMouseLeave: this.onMouseLeave.bind(this), style: { width: this.width } },
74
- h("div", { class: overflowClass },
75
- h("slot", null)))), this.host);
86
+ onMouseLeave: this.onMouseLeave.bind(this), style: { width: this.width } }, this.overflow === 'ellipsis' && this.ellipsisShowTooltip ? (h("vega-tooltip", { text: this.ellipsisTooltipText, trigger: this.ellipsisTooltipTrigger, maxWidth: 300, style: { display: 'block', width: '100%', minWidth: '0' } },
87
+ h("div", { class: overflowClass, ref: (ref) => {
88
+ this.overflowContentRef = ref;
89
+ } },
90
+ h("slot", { ref: (ref) => {
91
+ this.slotRef = ref;
92
+ } })))) : (h("div", { class: overflowClass, ref: (ref) => {
93
+ this.overflowContentRef = ref;
94
+ } },
95
+ h("slot", { ref: (ref) => {
96
+ this.slotRef = ref;
97
+ } }))))), this.host);
76
98
  }
77
99
  onMouseEnter() {
78
- const row = this.host.parentElement;
79
- row.querySelectorAll('vega-table-cell').forEach((cell) => cell.classList.add('hovered'));
100
+ this.updateEllipsisState();
101
+ this.getRowCells().forEach((cell) => cell.classList.add('hovered'));
80
102
  }
81
103
  onMouseLeave() {
104
+ this.getRowCells().forEach((cell) => cell.classList.remove('hovered'));
105
+ }
106
+ getRowCells() {
82
107
  const row = this.host.parentElement;
83
- row.querySelectorAll('vega-table-cell').forEach((cell) => cell.classList.remove('hovered'));
108
+ if (!row) {
109
+ return [];
110
+ }
111
+ return Array.from(row.querySelectorAll('vega-table-cell'));
112
+ }
113
+ updateEllipsisState() {
114
+ if (this.overflow !== 'ellipsis' || !this.overflowContentRef) {
115
+ return;
116
+ }
117
+ const isTruncated = this.overflowContentRef.scrollWidth > this.overflowContentRef.clientWidth;
118
+ const text = this.getCellText();
119
+ if (this.ellipsisShowTooltip) {
120
+ this.overflowContentRef.removeAttribute('title');
121
+ this.ellipsisTooltipText = text;
122
+ this.ellipsisTooltipTrigger = isTruncated ? 'hover' : 'none';
123
+ }
124
+ else {
125
+ if (isTruncated && text) {
126
+ this.overflowContentRef.setAttribute('title', text);
127
+ }
128
+ else {
129
+ this.overflowContentRef.removeAttribute('title');
130
+ }
131
+ }
132
+ }
133
+ getCellText() {
134
+ var _a, _b, _c;
135
+ const assignedNodes = this.slotRef && typeof this.slotRef.assignedNodes === 'function'
136
+ ? this.slotRef.assignedNodes({ flatten: true })
137
+ : [];
138
+ const slotText = assignedNodes
139
+ .map((node) => { var _a; return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || ''; })
140
+ .filter((text) => text)
141
+ .join(' ');
142
+ return (slotText || ((_b = (_a = this.overflowContentRef) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '');
84
143
  }
85
144
  static get is() { return "vega-table-cell"; }
86
145
  static get encapsulation() { return "shadow"; }
@@ -195,6 +254,27 @@ export class VegaTableCell {
195
254
  },
196
255
  "attribute": "col-span",
197
256
  "reflect": false
257
+ },
258
+ "ellipsisShowTooltip": {
259
+ "type": "boolean",
260
+ "mutable": false,
261
+ "complexType": {
262
+ "original": "boolean",
263
+ "resolved": "boolean",
264
+ "references": {}
265
+ },
266
+ "required": false,
267
+ "optional": false,
268
+ "docs": {
269
+ "tags": [{
270
+ "name": "vegaVersion",
271
+ "text": "2.94.0"
272
+ }],
273
+ "text": "Whether to show a Vega tooltip (instead of the native title attribute) for truncated ellipsis cell content."
274
+ },
275
+ "attribute": "ellipsis-show-tooltip",
276
+ "reflect": false,
277
+ "defaultValue": "false"
198
278
  }
199
279
  }; }
200
280
  static get states() { return {
@@ -206,7 +286,9 @@ export class VegaTableCell {
206
286
  "checked": {},
207
287
  "striped": {},
208
288
  "expanded": {},
209
- "renderInput": {}
289
+ "renderInput": {},
290
+ "ellipsisTooltipText": {},
291
+ "ellipsisTooltipTrigger": {}
210
292
  }; }
211
293
  static get elementRef() { return "host"; }
212
294
  }
@@ -34,6 +34,7 @@ import { VegaRTELineHeightExtension } from '../../components/vega-rich-text-edit
34
34
  import { VegaRTEDefaultLineHeightOptions } from '../../components/vega-rich-text-editor/extensions/line-height/constants';
35
35
  import { VegaRTELinkExtension } from '../../components/vega-rich-text-editor/extensions/link/link-extension';
36
36
  import { VegaCalendarPeriodFactory } from '../../helpers/calendar';
37
+ import { VegaRTEFullscreenExtension } from '../../components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension';
37
38
  import { VegaRTECopyExtension } from '../../components/vega-rich-text-editor/extensions/copy/copy-extension';
38
39
  import { VegaRTECutExtension } from '../../components/vega-rich-text-editor/extensions/cut/cut-extension';
39
40
  import { VegaRTEPasteExtension } from '../../components/vega-rich-text-editor/extensions/paste/paste-extension';
@@ -226,6 +227,7 @@ function injectVegaRichTextEditorClassIntoGlobal() {
226
227
  globalThis.VegaRTELineHeightExtension = VegaRTELineHeightExtension;
227
228
  globalThis.VegaRTEPasteExtension = VegaRTEPasteExtension;
228
229
  globalThis.VegaRTELinkExtension = VegaRTELinkExtension;
230
+ globalThis.VegaRTEFullscreenExtension = VegaRTEFullscreenExtension;
229
231
  globalThis.VegaRTECopyExtension = VegaRTECopyExtension;
230
232
  globalThis.VegaRTECutExtension = VegaRTECutExtension;
231
233
  globalThis.VegaRTEImageExtension = VegaRTEImageExtension;
@@ -0,0 +1 @@
1
+ export { SharedBackdropManager } from './shared-backdrop-manager';