@heartlandone/vega 2.82.0 → 2.84.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 (436) hide show
  1. package/dist/cjs/{accessibility-bfa227f6.js → accessibility-a5ef2038.js} +3 -2
  2. package/dist/cjs/{app-globals-3350d580.js → app-globals-ea063074.js} +7 -7
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-9b7095a4.js → child-nodes-event-prevent-slimmer-58bbc5fc.js} +1 -1
  4. package/dist/cjs/{code-block-b1f8aded.js → code-block-6da521e6.js} +24 -40
  5. package/dist/cjs/{component-value-history-controller-slimmer.abstract-99fbd1f2.js → component-value-history-controller-slimmer.abstract-f3f35f94.js} +3 -3
  6. package/dist/cjs/{content-state-648652b4.js → content-state-89fafb3b.js} +2 -2
  7. package/dist/cjs/{date-required-rule-6addf5dd.js → date-required-rule-0dd83683.js} +1 -1
  8. package/dist/cjs/{design-token-93070bb8.js → design-token-4b3509dd.js} +3 -3
  9. package/dist/cjs/{dto-renderer-manager-ae5fcbba.js → dto-renderer-manager-7eb5c5ce.js} +42 -2
  10. package/dist/cjs/{element-appender-slimmer-dedd3a34.js → element-appender-slimmer-2b4e0a62.js} +86 -10
  11. package/dist/cjs/{event-emit-slimmer-bcb458b2.js → event-emit-slimmer-ecca412d.js} +1 -1
  12. package/dist/cjs/{form-field-controller-slimmer-0f3a028e.js → form-field-controller-slimmer-a07e3de0.js} +1 -1
  13. package/dist/cjs/{image-annotation-action-0339e983.js → image-annotation-action-a6e1e9ed.js} +2 -2
  14. package/dist/cjs/index-58ea899e.js +4 -0
  15. package/dist/cjs/index.cjs.js +16 -16
  16. package/dist/cjs/{inject-keyboard-manager-2d9c4f92.js → inject-keyboard-manager-ff8735b8.js} +1 -1
  17. package/dist/cjs/{internal-translation-controller-fb1532f4.js → internal-translation-controller-8360a89c.js} +2 -0
  18. package/dist/cjs/{internal-vega-event-manager-fef893bf.js → internal-vega-event-manager-6b74b3af.js} +2 -1
  19. package/dist/cjs/{keyboard-manager-5ed6c472.js → keyboard-manager-cc446230.js} +1 -1
  20. package/dist/cjs/{keyboard-manager-slimmer-879ff4f3.js → keyboard-manager-slimmer-a10b7d6f.js} +1 -1
  21. package/dist/cjs/loader.cjs.js +11 -11
  22. package/dist/cjs/{month-view-generator-d262e6ce.js → month-view-generator-41b6c6b6.js} +1 -1
  23. package/dist/cjs/{public-rules-bce88d4e.js → public-rules-fc52d624.js} +7 -7
  24. package/dist/cjs/{range-5bd6d72b.js → range-93cc8ab1.js} +1 -1
  25. package/dist/cjs/{responsive-format-facade-2cab7344.js → responsive-format-facade-5f6cd211.js} +1 -1
  26. package/dist/cjs/{rich-text-editor-required-rule-e8a922be.js → rich-text-editor-required-rule-fd3711fb.js} +1 -1
  27. package/dist/cjs/{split-cell-operation-bb388de6.js → split-cell-operation-532fb9f0.js} +3 -3
  28. package/dist/cjs/{state-border-formatter-4e5e4ed0.js → state-border-formatter-d1c80c1d.js} +1 -1
  29. package/dist/cjs/{string-format-strategy.abstract-9a35e3b4.js → string-format-strategy.abstract-b39da0dd.js} +1 -1
  30. package/dist/cjs/{string-input-formatter-slimmer-1018ddec.js → string-input-formatter-slimmer-127cf2b8.js} +1 -1
  31. package/dist/cjs/{string-mask-strategy-3aa17744.js → string-mask-strategy-524d0f69.js} +2 -2
  32. package/dist/cjs/{style-formatter-2226c869.js → style-formatter-c201e7d0.js} +2 -2
  33. package/dist/cjs/{time-required-rule-970dfdca.js → time-required-rule-ecb45905.js} +1 -1
  34. package/dist/cjs/{token-extension-9b213b6b.js → token-extension-39f2b886.js} +83 -26
  35. package/dist/cjs/{translation-slimmer-d0c77ad2.js → translation-slimmer-3cd7d3b2.js} +1 -1
  36. package/dist/cjs/{type-guard-3ec852d7.js → type-guard-2e97fc56.js} +14 -1
  37. package/dist/cjs/{valid-credit-card-number-rule-99d1bb34.js → valid-credit-card-number-rule-2d7d20ce.js} +1 -1
  38. package/dist/cjs/vega-accordion.cjs.entry.js +7 -7
  39. package/dist/cjs/vega-app-header-button.cjs.entry.js +28 -9
  40. package/dist/cjs/vega-banner.cjs.entry.js +16 -5
  41. package/dist/cjs/vega-box.cjs.entry.js +6 -6
  42. package/dist/cjs/vega-breadcrumb.cjs.entry.js +3 -3
  43. package/dist/cjs/vega-button-circle.cjs.entry.js +8 -8
  44. package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
  45. package/dist/cjs/vega-button-link.cjs.entry.js +3 -3
  46. package/dist/cjs/vega-button.cjs.entry.js +6 -6
  47. package/dist/cjs/vega-calendar_4.cjs.entry.js +8 -8
  48. package/dist/cjs/vega-card.cjs.entry.js +5 -5
  49. package/dist/cjs/vega-carousel.cjs.entry.js +6 -6
  50. package/dist/cjs/vega-checkbox_2.cjs.entry.js +57 -10
  51. package/dist/cjs/vega-chip.cjs.entry.js +9 -9
  52. package/dist/cjs/vega-code-block.cjs.entry.js +11 -11
  53. package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
  54. package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +627 -0
  55. package/dist/cjs/vega-color-swatch.cjs.entry.js +7 -7
  56. package/dist/cjs/vega-combo-box.cjs.entry.js +9 -9
  57. package/dist/cjs/vega-date-picker_2.cjs.entry.js +17 -17
  58. package/dist/cjs/vega-dialog_2.cjs.entry.js +217 -90
  59. package/dist/cjs/vega-divider.cjs.entry.js +5 -5
  60. package/dist/cjs/vega-dropdown_5.cjs.entry.js +11 -11
  61. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  62. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  63. package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
  64. package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
  65. package/dist/cjs/vega-flex.cjs.entry.js +6 -6
  66. package/dist/cjs/vega-font.cjs.entry.js +5 -5
  67. package/dist/cjs/vega-form.cjs.entry.js +6 -6
  68. package/dist/cjs/vega-grid.cjs.entry.js +5 -5
  69. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  70. package/dist/cjs/vega-image-uploader.cjs.entry.js +9 -9
  71. package/dist/cjs/vega-input-credit-card.cjs.entry.js +9 -9
  72. package/dist/cjs/vega-input-numeric.cjs.entry.js +8 -8
  73. package/dist/cjs/vega-input-passcode.cjs.entry.js +8 -8
  74. package/dist/cjs/vega-input-phone-number.cjs.entry.js +7 -7
  75. package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
  76. package/dist/cjs/vega-input-select.cjs.entry.js +9 -9
  77. package/dist/cjs/vega-input.cjs.entry.js +9 -9
  78. package/dist/cjs/vega-item-toggle.cjs.entry.js +2 -2
  79. package/dist/cjs/vega-left-nav_5.cjs.entry.js +9 -9
  80. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
  81. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  82. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
  83. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
  84. package/dist/cjs/vega-pagination.cjs.entry.js +8 -8
  85. package/dist/cjs/vega-popover_2.cjs.entry.js +10 -10
  86. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +14 -15
  87. package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
  88. package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
  89. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +85 -25
  90. package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +11 -11
  91. package/dist/cjs/vega-segment-control.cjs.entry.js +2 -2
  92. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
  93. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +6 -6
  94. package/dist/cjs/vega-sidenav_3.cjs.entry.js +6 -6
  95. package/dist/cjs/vega-signature-capture.cjs.entry.js +9 -9
  96. package/dist/cjs/vega-stepper.cjs.entry.js +5 -5
  97. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  98. package/dist/cjs/vega-table_11.cjs.entry.js +8 -8
  99. package/dist/cjs/vega-text.cjs.entry.js +46 -1
  100. package/dist/cjs/vega-textarea.cjs.entry.js +5 -5
  101. package/dist/cjs/vega-time-picker_2.cjs.entry.js +50 -19
  102. package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
  103. package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
  104. package/dist/cjs/vega.cjs.js +11 -11
  105. package/dist/collection/collection-manifest.json +6 -0
  106. package/dist/collection/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.js +14 -1
  107. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +46 -3
  108. package/dist/collection/components/vega-banner/slimmers/renderers/vega-banner-renderer.js +11 -2
  109. package/dist/collection/components/vega-banner/vega-banner.js +3 -1
  110. package/dist/collection/components/vega-checkbox/vega-checkbox.css +19 -14
  111. package/dist/collection/components/vega-checkbox/vega-checkbox.js +73 -3
  112. package/dist/collection/components/vega-color-swatch/slimmers/renderers/vega-color-swatch-renderer.js +2 -2
  113. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/assets/hashtag.js +3 -0
  114. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/controllers/color-swatch-picker-color-format-controller.js +64 -0
  115. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/controllers/color-swatch-picker-value-controller.js +65 -0
  116. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-grid-renderer.js +59 -0
  117. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-input-renderer.js +83 -0
  118. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.js +115 -0
  119. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.css +67 -0
  120. package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +585 -0
  121. package/dist/collection/components/vega-dialog/vega-dialog.css +1 -0
  122. package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
  123. package/dist/collection/components/vega-grid/vega-grid.js +2 -2
  124. package/dist/collection/components/vega-input/vega-input.js +1 -1
  125. package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
  126. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-backdrop-controller.js +9 -3
  127. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-padding-state-controller.js +43 -0
  128. package/dist/collection/components/vega-modal/slimmers/controllers/vega-nested-modal-controller.js +17 -2
  129. package/dist/collection/components/vega-modal/slimmers/models/vega-modal-section-padding-state.js +56 -0
  130. package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +11 -11
  131. package/dist/collection/components/vega-modal/vega-modal.css +20 -21
  132. package/dist/collection/components/vega-modal/vega-modal.js +19 -3
  133. package/dist/collection/components/vega-pagination/internal/vega-pagination-go-to.js +1 -1
  134. package/dist/collection/components/vega-pagination/vega-pagination-page-selector-mobile/slimmers/renderers/page-selector-mobile-renderer.js +1 -1
  135. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +12 -10
  136. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +4 -39
  137. package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +30 -0
  138. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +28 -3
  139. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +24 -6
  140. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +23 -8
  141. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +2 -2
  142. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +18 -1
  143. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +1 -1
  144. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +5 -3
  145. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +23 -3
  146. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +47 -0
  147. package/dist/collection/components/vega-text/slimmers/renderers/vega-text-tooltip-renderer.js +46 -1
  148. package/dist/collection/components/vega-time-picker/slimmers/renderers/vega-time-picker-range-clear-button-renderer.js +13 -5
  149. package/dist/collection/components/vega-time-picker/slimmers/renderers/vega-time-picker-single-input-renderer.js +4 -1
  150. package/dist/collection/components/vega-time-picker/vega-time-picker.js +44 -0
  151. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +3 -2
  152. package/dist/collection/helpers/rte-manager/dto-renderer-manager.js +42 -2
  153. package/dist/collection/helpers/slimmers/element-appender/body-positioned-wrapper/third-party-dialog-wrapper.js +73 -0
  154. package/dist/collection/helpers/slimmers/element-appender/element-appender-container-controller.js +6 -0
  155. package/dist/collection/helpers/translation/locales/en.js +2 -0
  156. package/dist/collection/types/type-guard.js +12 -0
  157. package/dist/collection/utils/accessibility.js +3 -2
  158. package/dist/collection/value-model-adapters/angular-ng-model-accessor-adapter.js +1 -0
  159. package/dist/collection/value-model-adapters/vue-component-v-model-adaptor.js +1 -0
  160. package/dist/esm/{accessibility-e5fd0fab.js → accessibility-524cabd2.js} +3 -2
  161. package/dist/esm/{app-globals-0b7e8b50.js → app-globals-d06de2a5.js} +7 -7
  162. package/dist/esm/{child-nodes-event-prevent-slimmer-9c24d4fc.js → child-nodes-event-prevent-slimmer-f65e2452.js} +1 -1
  163. package/dist/esm/{code-block-b8be290a.js → code-block-65c8804b.js} +24 -40
  164. package/dist/esm/{component-value-history-controller-slimmer.abstract-10ccf8e6.js → component-value-history-controller-slimmer.abstract-26c154f6.js} +3 -3
  165. package/dist/esm/{content-state-72b513d1.js → content-state-e676bdf0.js} +2 -2
  166. package/dist/esm/{date-required-rule-891a6a57.js → date-required-rule-a84c21d4.js} +1 -1
  167. package/dist/esm/{design-token-59d07aa2.js → design-token-57de4f4f.js} +3 -3
  168. package/dist/esm/{dto-renderer-manager-12bc9121.js → dto-renderer-manager-abc7eb5f.js} +42 -2
  169. package/dist/esm/{element-appender-slimmer-5aca1bca.js → element-appender-slimmer-d4a82dc3.js} +86 -10
  170. package/dist/esm/{event-emit-slimmer-32da9d90.js → event-emit-slimmer-18711776.js} +1 -1
  171. package/dist/esm/{form-field-controller-slimmer-899864a8.js → form-field-controller-slimmer-9a0f8c54.js} +1 -1
  172. package/dist/esm/{image-annotation-action-ebd6c421.js → image-annotation-action-2d87b66a.js} +3 -3
  173. package/dist/esm/index-090d31ca.js +4 -0
  174. package/dist/esm/index.js +17 -17
  175. package/dist/esm/{inject-keyboard-manager-dc1d7135.js → inject-keyboard-manager-1ceb9ee0.js} +1 -1
  176. package/dist/esm/{internal-translation-controller-4fb104b2.js → internal-translation-controller-d7dee4a0.js} +2 -0
  177. package/dist/esm/{internal-vega-event-manager-8a657bac.js → internal-vega-event-manager-bed71930.js} +3 -2
  178. package/dist/esm/{keyboard-manager-6ea9968b.js → keyboard-manager-50a1d90e.js} +1 -1
  179. package/dist/esm/{keyboard-manager-slimmer-7eed4734.js → keyboard-manager-slimmer-3891ee20.js} +1 -1
  180. package/dist/esm/loader.js +12 -12
  181. package/dist/esm/{month-view-generator-aaa27fce.js → month-view-generator-70c597a6.js} +1 -1
  182. package/dist/esm/{public-rules-f2005e11.js → public-rules-a61ff09f.js} +7 -7
  183. package/dist/esm/{range-ed532278.js → range-d9e55d00.js} +1 -1
  184. package/dist/esm/{responsive-format-facade-e9926018.js → responsive-format-facade-456a9f16.js} +1 -1
  185. package/dist/esm/{rich-text-editor-required-rule-b559cf1a.js → rich-text-editor-required-rule-6a4c853a.js} +1 -1
  186. package/dist/esm/{split-cell-operation-5587f594.js → split-cell-operation-2e700c5c.js} +3 -3
  187. package/dist/esm/{state-border-formatter-be51463d.js → state-border-formatter-afac8d33.js} +1 -1
  188. package/dist/esm/{string-format-strategy.abstract-0157b3c5.js → string-format-strategy.abstract-f9907969.js} +1 -1
  189. package/dist/esm/{string-input-formatter-slimmer-33ed3478.js → string-input-formatter-slimmer-ad234bec.js} +1 -1
  190. package/dist/esm/{string-mask-strategy-b58891b5.js → string-mask-strategy-5f655300.js} +2 -2
  191. package/dist/esm/{style-formatter-9662ae88.js → style-formatter-ee52d8d0.js} +2 -2
  192. package/dist/esm/{time-required-rule-a9dc8473.js → time-required-rule-db873c19.js} +1 -1
  193. package/dist/esm/{token-extension-9d717a35.js → token-extension-d3a46c04.js} +84 -27
  194. package/dist/esm/{translation-slimmer-4faae5a3.js → translation-slimmer-5e2bff5f.js} +1 -1
  195. package/dist/esm/{type-guard-152070e9.js → type-guard-adc244fd.js} +14 -2
  196. package/dist/esm/{valid-credit-card-number-rule-a7907cb7.js → valid-credit-card-number-rule-a826dd49.js} +1 -1
  197. package/dist/esm/vega-accordion.entry.js +8 -8
  198. package/dist/esm/vega-app-header-button.entry.js +29 -10
  199. package/dist/esm/vega-banner.entry.js +17 -6
  200. package/dist/esm/vega-box.entry.js +6 -6
  201. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  202. package/dist/esm/vega-button-circle.entry.js +9 -9
  203. package/dist/esm/vega-button-group_2.entry.js +4 -4
  204. package/dist/esm/vega-button-link.entry.js +4 -4
  205. package/dist/esm/vega-button.entry.js +7 -7
  206. package/dist/esm/vega-calendar_4.entry.js +9 -9
  207. package/dist/esm/vega-card.entry.js +5 -5
  208. package/dist/esm/vega-carousel.entry.js +7 -7
  209. package/dist/esm/vega-checkbox_2.entry.js +58 -11
  210. package/dist/esm/vega-chip.entry.js +10 -10
  211. package/dist/esm/vega-code-block.entry.js +12 -12
  212. package/dist/esm/vega-color-picker.entry.js +6 -6
  213. package/dist/esm/vega-color-swatch-picker.entry.js +623 -0
  214. package/dist/esm/vega-color-swatch.entry.js +8 -8
  215. package/dist/esm/vega-combo-box.entry.js +10 -10
  216. package/dist/esm/vega-date-picker_2.entry.js +18 -18
  217. package/dist/esm/vega-dialog_2.entry.js +218 -91
  218. package/dist/esm/vega-divider.entry.js +5 -5
  219. package/dist/esm/vega-dropdown_5.entry.js +12 -12
  220. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  221. package/dist/esm/{vega-event-id-4ede557a.js → vega-event-id-5841d1d3.js} +1 -1
  222. package/dist/esm/vega-field-label.entry.js +4 -4
  223. package/dist/esm/vega-file-uploader.entry.js +7 -7
  224. package/dist/esm/vega-flag-icon.entry.js +5 -5
  225. package/dist/esm/vega-flex.entry.js +6 -6
  226. package/dist/esm/vega-font.entry.js +5 -5
  227. package/dist/esm/vega-form.entry.js +7 -7
  228. package/dist/esm/vega-grid.entry.js +5 -5
  229. package/dist/esm/vega-icon.entry.js +5 -5
  230. package/dist/esm/vega-image-uploader.entry.js +10 -10
  231. package/dist/esm/vega-input-credit-card.entry.js +10 -10
  232. package/dist/esm/vega-input-numeric.entry.js +9 -9
  233. package/dist/esm/vega-input-passcode.entry.js +9 -9
  234. package/dist/esm/vega-input-phone-number.entry.js +8 -8
  235. package/dist/esm/vega-input-range.entry.js +8 -8
  236. package/dist/esm/vega-input-select.entry.js +10 -10
  237. package/dist/esm/vega-input.entry.js +10 -10
  238. package/dist/esm/vega-item-toggle.entry.js +3 -3
  239. package/dist/esm/vega-left-nav_5.entry.js +10 -10
  240. package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
  241. package/dist/esm/vega-page-notification_2.entry.js +2 -2
  242. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
  243. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +3 -3
  244. package/dist/esm/vega-pagination.entry.js +9 -9
  245. package/dist/esm/vega-popover_2.entry.js +11 -11
  246. package/dist/esm/vega-progress-tracker_2.entry.js +15 -16
  247. package/dist/esm/vega-radio_2.entry.js +10 -10
  248. package/dist/esm/vega-rich-text-content.entry.js +8 -8
  249. package/dist/esm/vega-rich-text-editor_4.entry.js +86 -26
  250. package/dist/esm/vega-rich-text-table-properties_3.entry.js +12 -12
  251. package/dist/esm/vega-segment-control.entry.js +3 -3
  252. package/dist/esm/vega-selection-chip_2.entry.js +9 -9
  253. package/dist/esm/vega-selection-tile_2.entry.js +7 -7
  254. package/dist/esm/vega-sidenav_3.entry.js +7 -7
  255. package/dist/esm/vega-signature-capture.entry.js +10 -10
  256. package/dist/esm/vega-stepper.entry.js +6 -6
  257. package/dist/esm/vega-tab-group_2.entry.js +5 -5
  258. package/dist/esm/vega-table_11.entry.js +9 -9
  259. package/dist/esm/vega-text.entry.js +46 -1
  260. package/dist/esm/vega-textarea.entry.js +6 -6
  261. package/dist/esm/vega-time-picker_2.entry.js +51 -20
  262. package/dist/esm/vega-toggle-switch.entry.js +6 -6
  263. package/dist/esm/vega-tooltip_2.entry.js +6 -6
  264. package/dist/esm/vega.js +12 -12
  265. package/dist/sri/vega-sri-manifest.json +350 -346
  266. package/dist/types/components/vega-app-header-button/slimmers/renderers/vega-app-header-button-dropdown-renderer.d.ts +8 -0
  267. package/dist/types/components/vega-app-header-button/types.d.ts +2 -0
  268. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +16 -0
  269. package/dist/types/components/vega-banner/slimmers/renderers/vega-banner-renderer.d.ts +6 -0
  270. package/dist/types/components/vega-banner/vega-banner.d.ts +2 -0
  271. package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +23 -1
  272. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/assets/hashtag.d.ts +3 -0
  273. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/controllers/color-swatch-picker-color-format-controller.d.ts +32 -0
  274. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/controllers/color-swatch-picker-value-controller.d.ts +31 -0
  275. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-grid-renderer.d.ts +26 -0
  276. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-input-renderer.d.ts +25 -0
  277. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.d.ts +43 -0
  278. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/types.d.ts +17 -0
  279. package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +149 -0
  280. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-backdrop-controller.d.ts +1 -0
  281. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-padding-state-controller.d.ts +21 -0
  282. package/dist/types/components/vega-modal/slimmers/controllers/vega-nested-modal-controller.d.ts +3 -2
  283. package/dist/types/components/vega-modal/slimmers/models/vega-modal-section-padding-state.d.ts +29 -0
  284. package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +1 -1
  285. package/dist/types/components/vega-modal/types.d.ts +11 -0
  286. package/dist/types/components/vega-modal/vega-modal.d.ts +7 -2
  287. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +8 -9
  288. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +0 -7
  289. package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +3 -0
  290. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +20 -2
  291. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +13 -2
  292. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +15 -4
  293. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +1 -1
  294. package/dist/types/components/vega-rich-text-editor/interface.d.ts +4 -0
  295. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +7 -0
  296. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +1 -0
  297. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.d.ts +4 -3
  298. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +14 -1
  299. package/dist/types/components/vega-text/slimmers/renderers/vega-text-tooltip-renderer.d.ts +1 -0
  300. package/dist/types/components/vega-time-picker/slimmers/renderers/vega-time-picker-range-clear-button-renderer.d.ts +6 -3
  301. package/dist/types/components/vega-time-picker/slimmers/renderers/vega-time-picker-single-input-renderer.d.ts +1 -0
  302. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +20 -0
  303. package/dist/types/components.d.ts +224 -8
  304. package/dist/types/helpers/rte-manager/dto-renderer-manager.d.ts +26 -1
  305. package/dist/types/helpers/slimmers/element-appender/body-positioned-wrapper/third-party-dialog-wrapper.d.ts +45 -0
  306. package/dist/types/helpers/slimmers/element-appender/element-appender-container-controller.d.ts +2 -0
  307. package/dist/types/helpers/translation/interface.d.ts +3 -1
  308. package/dist/types/types/components.type.d.ts +7 -1
  309. package/dist/types/types/type-guard.d.ts +8 -0
  310. package/dist/types/utils/accessibility.d.ts +6 -1
  311. package/dist/vega/index.esm.js +1 -1
  312. package/dist/vega/{p-fc7ab79d.js → p-031c0cf7.js} +1 -1
  313. package/dist/vega/{p-e71864ff.js → p-032183c1.js} +1 -1
  314. package/dist/vega/{p-246eb001.entry.js → p-03cf2df1.entry.js} +1 -1
  315. package/dist/vega/{p-7d85cc74.entry.js → p-096d186d.entry.js} +1 -1
  316. package/dist/vega/{p-ebdb489c.entry.js → p-0bb0b521.entry.js} +1 -1
  317. package/dist/vega/{p-19a30f98.entry.js → p-0e15fa94.entry.js} +1 -1
  318. package/dist/vega/p-0f31b00b.entry.js +1 -0
  319. package/dist/vega/{p-42141782.js → p-11a2f834.js} +1 -1
  320. package/dist/vega/{p-eb0ebf50.entry.js → p-19e10a87.entry.js} +1 -1
  321. package/dist/vega/{p-2b5cf2b3.js → p-1a869f0e.js} +1 -1
  322. package/dist/vega/{p-8b217c7e.entry.js → p-1df2c29b.entry.js} +1 -1
  323. package/dist/vega/{p-9c1a48b9.entry.js → p-20f0060f.entry.js} +1 -1
  324. package/dist/vega/p-220f8ee7.js +1 -0
  325. package/dist/vega/{p-c36afa21.entry.js → p-27b1dc0f.entry.js} +1 -1
  326. package/dist/vega/{p-103d20f5.js → p-34964a53.js} +1 -1
  327. package/dist/vega/p-39b71df9.entry.js +1 -0
  328. package/dist/vega/p-3ae5f50e.entry.js +1 -0
  329. package/dist/vega/{p-d5531d3c.js → p-3b791b5d.js} +1 -1
  330. package/dist/vega/p-4123559f.entry.js +1 -0
  331. package/dist/vega/p-43aaeb30.entry.js +1 -0
  332. package/dist/vega/{p-3fae8d3f.entry.js → p-45aaaef6.entry.js} +1 -1
  333. package/dist/vega/{p-085de8fc.js → p-4cefd7fe.js} +1 -1
  334. package/dist/vega/{p-8583dd34.entry.js → p-5215e1d8.entry.js} +1 -1
  335. package/dist/vega/{p-783531cf.entry.js → p-5409275a.entry.js} +1 -1
  336. package/dist/vega/{p-d7bd2470.entry.js → p-5490d499.entry.js} +1 -1
  337. package/dist/vega/{p-d456386a.entry.js → p-549bea2c.entry.js} +1 -1
  338. package/dist/vega/p-5657f768.js +1 -0
  339. package/dist/vega/{p-d4f1f007.js → p-56c28943.js} +1 -1
  340. package/dist/vega/{p-14de7ba0.entry.js → p-571a6d15.entry.js} +1 -1
  341. package/dist/vega/{p-6572e038.js → p-57f220b5.js} +1 -1
  342. package/dist/vega/{p-25ab7a33.entry.js → p-5ac4649a.entry.js} +1 -1
  343. package/dist/vega/{p-988401c3.entry.js → p-5bbb3e68.entry.js} +1 -1
  344. package/dist/vega/{p-ef59f6f0.js → p-5bf3ab33.js} +1 -1
  345. package/dist/vega/{p-bb46d8e6.entry.js → p-5f23c52d.entry.js} +1 -1
  346. package/dist/vega/p-5f377954.js +1 -1
  347. package/dist/vega/p-6236f592.entry.js +1 -0
  348. package/dist/vega/p-68a96fbb.entry.js +1 -0
  349. package/dist/vega/p-6ac8e655.js +1 -0
  350. package/dist/vega/{p-4e95248c.entry.js → p-6ba71ec4.entry.js} +1 -1
  351. package/dist/vega/{p-02467b61.js → p-6cada843.js} +1 -1
  352. package/dist/vega/{p-f7a5746b.js → p-6f790577.js} +1 -1
  353. package/dist/vega/{p-597588d0.entry.js → p-74136508.entry.js} +1 -1
  354. package/dist/vega/p-748268e6.entry.js +1 -0
  355. package/dist/vega/{p-ea564928.entry.js → p-753a7832.entry.js} +1 -1
  356. package/dist/vega/{p-116e3963.js → p-7595ad55.js} +1 -1
  357. package/dist/vega/{p-475bd8bf.entry.js → p-7702a906.entry.js} +1 -1
  358. package/dist/vega/{p-cc18970f.entry.js → p-78099a83.entry.js} +1 -1
  359. package/dist/vega/{p-0915a8d3.entry.js → p-7cf1e1f7.entry.js} +1 -1
  360. package/dist/vega/p-7dbaed6c.entry.js +1 -0
  361. package/dist/vega/{p-a6dbc63d.entry.js → p-7dca19d3.entry.js} +1 -1
  362. package/dist/vega/p-80cb302f.entry.js +1 -0
  363. package/dist/vega/p-82039afd.entry.js +1 -0
  364. package/dist/vega/{p-e340d58c.entry.js → p-84030271.entry.js} +1 -1
  365. package/dist/vega/{p-88b6184c.entry.js → p-865fc90b.entry.js} +1 -1
  366. package/dist/vega/{p-58b6ac33.entry.js → p-88f57353.entry.js} +1 -1
  367. package/dist/vega/{p-30445cd9.entry.js → p-8d833b44.entry.js} +1 -1
  368. package/dist/vega/p-91739ed3.entry.js +1 -0
  369. package/dist/vega/{p-d320496e.entry.js → p-9297f4a9.entry.js} +1 -1
  370. package/dist/vega/{p-cab70b95.entry.js → p-9308f874.entry.js} +1 -1
  371. package/dist/vega/p-9375fbce.js +1 -0
  372. package/dist/vega/{p-7df43192.entry.js → p-99670c56.entry.js} +1 -1
  373. package/dist/vega/p-9de25451.js +1 -0
  374. package/dist/vega/{p-b9a95aca.entry.js → p-9f064488.entry.js} +1 -1
  375. package/dist/vega/p-9f728e0b.js +1 -0
  376. package/dist/vega/p-a2d6d695.entry.js +1 -0
  377. package/dist/vega/{p-c8435185.js → p-a5e6a3be.js} +1 -1
  378. package/dist/vega/{p-9751c801.js → p-a87cb7ac.js} +1 -1
  379. package/dist/vega/{p-5ffdea8e.js → p-aa040383.js} +1 -1
  380. package/dist/vega/{p-ed01657b.entry.js → p-aa4d419c.entry.js} +1 -1
  381. package/dist/vega/p-b48b3264.js +1 -0
  382. package/dist/vega/p-b6c3ce6d.js +1 -0
  383. package/dist/vega/{p-ab829745.js → p-b7721666.js} +1 -1
  384. package/dist/vega/{p-c5eb0fa6.js → p-b78eaec4.js} +1 -1
  385. package/dist/vega/{p-c8d41cdc.entry.js → p-b80217fa.entry.js} +1 -1
  386. package/dist/vega/{p-280f63fa.entry.js → p-b88eab9a.entry.js} +1 -1
  387. package/dist/vega/{p-8da66d41.entry.js → p-bc2786f9.entry.js} +1 -1
  388. package/dist/vega/{p-d32e83e7.js → p-bdddddb7.js} +1 -1
  389. package/dist/vega/{p-da742a7f.entry.js → p-c0323a55.entry.js} +1 -1
  390. package/dist/vega/{p-edda10f7.js → p-c47c37f2.js} +1 -1
  391. package/dist/vega/{p-3505f7cc.entry.js → p-c6837173.entry.js} +1 -1
  392. package/dist/vega/{p-b7624ce4.js → p-c85e743d.js} +1 -1
  393. package/dist/vega/{p-b9947846.js → p-c95dbf11.js} +1 -1
  394. package/dist/vega/p-ce975c69.entry.js +1 -0
  395. package/dist/vega/{p-eda7cd76.entry.js → p-d10ae46a.entry.js} +1 -1
  396. package/dist/vega/p-d3864b94.entry.js +1 -0
  397. package/dist/vega/{p-b5497af2.entry.js → p-d3ed7c27.entry.js} +1 -1
  398. package/dist/vega/{p-29f42c27.entry.js → p-d6c9ef6c.entry.js} +1 -1
  399. package/dist/vega/{p-23c840dc.entry.js → p-d76e3b3c.entry.js} +1 -1
  400. package/dist/vega/{p-a07c0f8c.js → p-dba16739.js} +1 -1
  401. package/dist/vega/{p-a30ae8a1.js → p-dec5b448.js} +1 -1
  402. package/dist/vega/{p-b08a70e6.entry.js → p-e1b1f5f9.entry.js} +1 -1
  403. package/dist/vega/{p-956b170c.js → p-e1d2c60d.js} +1 -1
  404. package/dist/vega/{p-b9386dd0.js → p-e4c4ea35.js} +1 -1
  405. package/dist/vega/{p-efc8c09e.entry.js → p-e4c5b8d1.entry.js} +1 -1
  406. package/dist/vega/{p-f020738c.entry.js → p-e5546af5.entry.js} +1 -1
  407. package/dist/vega/{p-513f51ec.entry.js → p-e5cc839a.entry.js} +1 -1
  408. package/dist/vega/{p-44044ed7.js → p-effa6495.js} +1 -1
  409. package/dist/vega/{p-0dbd7723.entry.js → p-f0e855b2.entry.js} +1 -1
  410. package/dist/vega/{p-f89cf75a.entry.js → p-f6414a24.entry.js} +1 -1
  411. package/dist/vega/{p-7faaa5e1.entry.js → p-f8c700dd.entry.js} +1 -1
  412. package/dist/vega/{p-51d2e0ab.entry.js → p-f986f875.entry.js} +1 -1
  413. package/dist/vega/vega.esm.js +1 -1
  414. package/package.json +1 -1
  415. package/dist/vega/p-075bb809.entry.js +0 -1
  416. package/dist/vega/p-1ca95601.entry.js +0 -1
  417. package/dist/vega/p-1dd6ba67.js +0 -1
  418. package/dist/vega/p-1efb47fe.entry.js +0 -1
  419. package/dist/vega/p-29d31c98.entry.js +0 -1
  420. package/dist/vega/p-318f0df5.js +0 -1
  421. package/dist/vega/p-337a5e76.js +0 -1
  422. package/dist/vega/p-47611a83.entry.js +0 -1
  423. package/dist/vega/p-4f938ee4.entry.js +0 -1
  424. package/dist/vega/p-596bc4f6.entry.js +0 -1
  425. package/dist/vega/p-6d95390b.entry.js +0 -1
  426. package/dist/vega/p-6e9f832f.js +0 -1
  427. package/dist/vega/p-85abe824.entry.js +0 -1
  428. package/dist/vega/p-86194314.js +0 -1
  429. package/dist/vega/p-97f36f4e.entry.js +0 -1
  430. package/dist/vega/p-9d854d43.js +0 -1
  431. package/dist/vega/p-a5bd3ecd.entry.js +0 -1
  432. package/dist/vega/p-c366e7f7.entry.js +0 -1
  433. package/dist/vega/p-d872beb1.entry.js +0 -1
  434. package/dist/vega/p-d9d5c693.entry.js +0 -1
  435. package/dist/vega/p-dd6211cd.js +0 -1
  436. package/dist/vega/p-fcabf0dc.js +0 -1
@@ -2,30 +2,41 @@ import { methodPlaceholder } from 'vega-slimmer/core';
2
2
  import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
3
3
  /**
4
4
  * Toolbar button renderer for language selection in Vega Rich Text Editor.
5
+ *
6
+ * Each {@link HTMLVegaRichTextEditorElement} that uses a language extension receives its
7
+ * **own** instance of this renderer, registered in the per-host map inside
8
+ * {@link RTEDTORendererManager} via {@link VegaRTEExtension#prepareBeforeLoad}. Because
9
+ * every editor has a dedicated renderer, all state (label DOM ref, selected language, and
10
+ * the language-change callback) is held in plain instance fields — no WeakMaps or shared
11
+ * singletons are required.
5
12
  */
6
13
  export class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
7
- constructor(languageList, languageChangeCallback, selectedLanguage) {
14
+ constructor(languageList, languageChangeCallback, selectedLanguage = '') {
8
15
  super();
9
16
  this.languageList = [];
10
- this.selectedLanguage = 'Select Language';
17
+ this.languageChangeCallback = null;
18
+ this.selectedLanguage = '';
11
19
  this.labelRef = null;
12
20
  /**
13
21
  * Handles the language selection event.
22
+ * Because each editor has its own renderer instance, the language-change callback
23
+ * is stored directly on this instance — no indirect context lookup is needed.
14
24
  *
15
25
  * @param {string} itemKey - The key of the selected language item.
16
26
  */
17
27
  this.handleDropdownClick = (itemKey) => {
18
28
  this.setSelectedLanguage(itemKey);
19
29
  if (typeof this.languageChangeCallback === 'function') {
20
- this.languageChangeCallback(this.selectedLanguage);
30
+ this.languageChangeCallback(itemKey);
21
31
  }
22
32
  };
23
33
  this.languageList = languageList;
24
- this.selectedLanguage = selectedLanguage;
25
34
  this.languageChangeCallback = languageChangeCallback;
35
+ this.selectedLanguage = selectedLanguage;
26
36
  }
27
37
  /**
28
- * Public method to set the selected language.
38
+ * Updates the selected language and refreshes the button label text in-place,
39
+ * without requiring a full re-render of the toolbar.
29
40
  *
30
41
  * @param {string} language The language key to set as selected.
31
42
  */
@@ -55,7 +66,8 @@ export class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRender
55
66
  ]);
56
67
  }
57
68
  /**
58
- * Override to render the button label with custom behavior.
69
+ * Override to capture the rendered label element ref so that
70
+ * {@link setSelectedLanguage} can update the button text without a full re-render.
59
71
  *
60
72
  * @inheritDoc
61
73
  */
@@ -65,7 +77,9 @@ export class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRender
65
77
  variant: 'font-field-label-sm',
66
78
  color: isDisabled ? 'text-disabled' : 'text-primary',
67
79
  // eslint-disable-next-line jsdoc/require-jsdoc
68
- ref: (el) => (this.labelRef = el),
80
+ ref: (el) => {
81
+ this.labelRef = el;
82
+ },
69
83
  }, label);
70
84
  }
71
85
  /* istanbul ignore next */
@@ -84,7 +98,8 @@ export class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRender
84
98
  * @returns {string} The label of the language, or the key if not found.
85
99
  */
86
100
  getLanguageLabelByKey(key) {
101
+ var _a;
87
102
  const language = this.getListItemByKey(this.languageList, key);
88
- return language.label;
103
+ return (_a = language === null || language === void 0 ? void 0 : language.label) !== null && _a !== void 0 ? _a : 'Select Language';
89
104
  }
90
105
  }
@@ -129,10 +129,10 @@ export class VegaRTETableExtension extends VegaRTEExtension {
129
129
  *
130
130
  * @param {RTEExtensionContext} context - extension context
131
131
  */
132
- initialExtension(context) {
132
+ initialExtensionAfterLoad(context) {
133
133
  this.tableSelection.init(context);
134
134
  const tableExtensionContext = Object.assign(Object.assign({}, context), { tableSelection: this.tableSelection });
135
- super.initialExtension(tableExtensionContext);
135
+ super.initialExtensionAfterLoad(tableExtensionContext);
136
136
  }
137
137
  /**
138
138
  * @inheritDoc
@@ -46,6 +46,19 @@ export class RTEExtensionController extends VegaSlimmer {
46
46
  return this.selectionController.getSelectedNodes();
47
47
  };
48
48
  }
49
+ /**
50
+ * Prepares all registered extensions before the first render.
51
+ * This method is called during `componentWillLoad` so that extensions can perform
52
+ * host-specific setup (e.g. registering per-host toolbar button renderers) before
53
+ * Stencil renders the component for the first time.
54
+ */
55
+ prepareExtensionsBeforeLoad() {
56
+ if (this.extensions && this.host) {
57
+ for (const extension of this.extensions) {
58
+ extension.prepareBeforeLoad(this.host);
59
+ }
60
+ }
61
+ }
49
62
  /**
50
63
  * Initializes the extension context for all registered extensions.
51
64
  * This method is called when the component is connected and whenever the extensions property changes.
@@ -54,7 +67,7 @@ export class RTEExtensionController extends VegaSlimmer {
54
67
  if (this.extensions && this.host) {
55
68
  const extensionContext = this.generateExtensionContext();
56
69
  for (const extension of this.extensions) {
57
- extension.initialExtension(extensionContext);
70
+ extension.initialExtensionAfterLoad(extensionContext);
58
71
  }
59
72
  }
60
73
  }
@@ -81,6 +94,7 @@ export class RTEExtensionController extends VegaSlimmer {
81
94
  }
82
95
  }
83
96
  if (!isArrayEqual(newValue, oldValue, false, (a, b) => a === b ? 0 : 1)) {
97
+ this.prepareExtensionsBeforeLoad();
84
98
  this.initialExtensionContext();
85
99
  }
86
100
  }
@@ -115,6 +129,9 @@ __decorate([
115
129
  __decorate([
116
130
  MapToComponentField()
117
131
  ], RTEExtensionController.prototype, "selectionController", void 0);
132
+ __decorate([
133
+ MapToComponentMethod('componentWillLoad')
134
+ ], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
118
135
  __decorate([
119
136
  MapToComponentMethod('componentDidLoad')
120
137
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
@@ -70,7 +70,7 @@ export class ToolbarRenderer extends VegaSlimmer {
70
70
  const groupElement = group
71
71
  .map((item) => {
72
72
  const presetRenderer = this.getToolbarBtnRenderer(item);
73
- const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item);
73
+ const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item, this.host);
74
74
  if (presetRenderer) {
75
75
  if (!presetRenderer.isHidden()) {
76
76
  totalVisibleCount++;
@@ -14,7 +14,6 @@ import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-sli
14
14
  import { ModifyContentActionType } from '../../../dto/actions/modify-content-action.abstract';
15
15
  import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
16
16
  import { VegaClick, VegaDropdownClick } from '../../../../../helpers/event-manager/event-id/vega-event-id';
17
- import { tryGetDocument } from '../../../../../utils/try-get-document';
18
17
  export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
19
18
  constructor() {
20
19
  super({
@@ -27,7 +26,6 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
27
26
  await this.insertURLModalRef.modal('hide');
28
27
  };
29
28
  this.handleDropdownItemClick = async (payload) => {
30
- const safeDocument = tryGetDocument();
31
29
  switch (payload.detail) {
32
30
  case 'upload':
33
31
  this.uploadInputRef.click();
@@ -36,7 +34,8 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
36
34
  this.currentRange = this.selectionController.getCurrentRange();
37
35
  this.currentSelectedNodes = this.selectionController.getSelectedNodes();
38
36
  this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
39
- safeDocument && safeDocument.body.append(this.insertURLModalRef);
37
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
38
+ this.host.parentElement.append(this.insertURLModalRef);
40
39
  this.insertURLInputRef.value = '';
41
40
  await this.insertURLModalRef.modal('show');
42
41
  await this.insertURLInputRef.doFocus();
@@ -167,6 +166,9 @@ ImageToolbarButtonSlimmer.items = [
167
166
  label: 'Insert via URL',
168
167
  },
169
168
  ];
169
+ __decorate([
170
+ MapToComponentField()
171
+ ], ImageToolbarButtonSlimmer.prototype, "host", void 0);
170
172
  __decorate([
171
173
  MapToComponentField()
172
174
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
@@ -23,8 +23,9 @@ export class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimm
23
23
  tooltip: { text: 'Text Styles' },
24
24
  });
25
25
  this.handleDropdownItemClick = (payload) => {
26
+ var _a, _b;
26
27
  const selectedType = payload.detail;
27
- const boldByDefault = TextStylesToolbarButtonSlimmer.items.find((item) => item.key === selectedType).bold;
28
+ const boldByDefault = (_b = (_a = TextStylesToolbarButtonSlimmer.allItems.find((item) => item.key === selectedType)) === null || _a === void 0 ? void 0 : _a.bold) !== null && _b !== void 0 ? _b : false;
28
29
  const selectedTextBlocks = this.selectionController
29
30
  .getSelectedBlocks()
30
31
  .filter((block) => block instanceof RTETextBlock);
@@ -53,7 +54,8 @@ export class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimm
53
54
  h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())));
54
55
  }
55
56
  renderDropdownContent() {
56
- return (h(Fragment, null, TextStylesToolbarButtonSlimmer.items.map((item) => {
57
+ const visibleItems = TextStylesToolbarButtonSlimmer.allItems.filter((item) => this.textStyleItems.some((config) => config.key === item.key));
58
+ return (h(Fragment, null, visibleItems.map((item) => {
57
59
  const textStyleAnnotation = new TextStyleAnnotation(item.key);
58
60
  const boldAnnotation = new BoldAnnotation(item.bold);
59
61
  return (h("vega-dropdown-item", { key: item.key, itemKey: item.key },
@@ -91,7 +93,7 @@ export class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimm
91
93
  'text-size': textSize,
92
94
  });
93
95
  })();
94
- TextStylesToolbarButtonSlimmer.items = [
96
+ TextStylesToolbarButtonSlimmer.allItems = [
95
97
  {
96
98
  key: 'title',
97
99
  label: 'Title',
@@ -116,6 +118,21 @@ TextStylesToolbarButtonSlimmer.items = [
116
118
  label: 'Heading 3',
117
119
  bold: true,
118
120
  },
121
+ {
122
+ key: 'heading-4',
123
+ label: 'Heading 4',
124
+ bold: true,
125
+ },
126
+ {
127
+ key: 'heading-5',
128
+ label: 'Heading 5',
129
+ bold: true,
130
+ },
131
+ {
132
+ key: 'heading-6',
133
+ label: 'Heading 6',
134
+ bold: true,
135
+ },
119
136
  {
120
137
  key: 'paragraph',
121
138
  label: 'Paragraph',
@@ -127,3 +144,6 @@ __decorate([
127
144
  __decorate([
128
145
  MapToComponentField()
129
146
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
147
+ __decorate([
148
+ MapToComponentField()
149
+ ], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
@@ -204,6 +204,26 @@ export class VegaRichTextEditor {
204
204
  * @vegaVersion 2.34.0
205
205
  */
206
206
  this.validationRules = [];
207
+ /**
208
+ * Specifies which text style items appear in the Text Styles toolbar dropdown.
209
+ *
210
+ * Use this to control which heading levels and text styles are available to users.
211
+ * For example, omit `{ key: 'heading-1' }` to prevent users from applying H1
212
+ * (which is typically reserved for the page title).
213
+ *
214
+ * Items are displayed in a fixed internal order regardless of the order in this array.
215
+ *
216
+ * @vegaVersion 2.83.0
217
+ * @defaultValue [{ key: 'title' }, { key: 'subtitle' }, { key: 'heading-1' }, { key: 'heading-2' }, { key: 'heading-3' }, { key: 'paragraph' }]
218
+ */
219
+ this.textStyleItems = [
220
+ { key: 'title' },
221
+ { key: 'subtitle' },
222
+ { key: 'heading-1' },
223
+ { key: 'heading-2' },
224
+ { key: 'heading-3' },
225
+ { key: 'paragraph' },
226
+ ];
207
227
  /**
208
228
  * Specifies the configuration for the rich text editor extensions.
209
229
  *
@@ -532,6 +552,33 @@ export class VegaRichTextEditor {
532
552
  },
533
553
  "defaultValue": "[]"
534
554
  },
555
+ "textStyleItems": {
556
+ "type": "unknown",
557
+ "mutable": false,
558
+ "complexType": {
559
+ "original": "VegaRTETextStyleItem[]",
560
+ "resolved": "VegaRTETextStyleItem[]",
561
+ "references": {
562
+ "VegaRTETextStyleItem": {
563
+ "location": "import",
564
+ "path": "./interface"
565
+ }
566
+ }
567
+ },
568
+ "required": false,
569
+ "optional": false,
570
+ "docs": {
571
+ "tags": [{
572
+ "name": "vegaVersion",
573
+ "text": "2.83.0"
574
+ }, {
575
+ "name": "defaultValue",
576
+ "text": "[{ key: 'title' }, { key: 'subtitle' }, { key: 'heading-1' }, { key: 'heading-2' }, { key: 'heading-3' }, { key: 'paragraph' }]"
577
+ }],
578
+ "text": "Specifies which text style items appear in the Text Styles toolbar dropdown.\n\nUse this to control which heading levels and text styles are available to users.\nFor example, omit `{ key: 'heading-1' }` to prevent users from applying H1\n(which is typically reserved for the page title).\n\nItems are displayed in a fixed internal order regardless of the order in this array."
579
+ },
580
+ "defaultValue": "[\n\t\t{ key: 'title' },\n\t\t{ key: 'subtitle' },\n\t\t{ key: 'heading-1' },\n\t\t{ key: 'heading-2' },\n\t\t{ key: 'heading-3' },\n\t\t{ key: 'paragraph' },\n\t]"
581
+ },
535
582
  "extensions": {
536
583
  "type": "unknown",
537
584
  "mutable": false,
@@ -12,10 +12,15 @@ export class VegaTextTooltipRenderer extends PageResizeObserverSlimmer {
12
12
  /**
13
13
  * The below method is e2e-test covered in
14
14
  * @see{module:vega-text-with-long-text-change-screen-size}
15
+ * @see{module:vega-text-restore-on-enlarge-screen-size}
15
16
  */
16
17
  constructor() {
17
18
  /* eslint-disable jsdoc/require-jsdoc*/
18
19
  super({
20
+ // Observe both the host (catches show/hide e.g. in vega-tab-group-panel, VD-8769)
21
+ // and document.body (catches viewport resize after truncation collapses host width).
22
+ // eslint-disable-next-line no-restricted-globals
23
+ target: /* istanbul ignore next */ () => [this.host, document.body],
19
24
  callback: /* istanbul ignore next */ () => {
20
25
  if (this.overflow === 'ellipsis') {
21
26
  if (this.tooltipRef) {
@@ -33,11 +38,52 @@ export class VegaTextTooltipRenderer extends PageResizeObserverSlimmer {
33
38
  */
34
39
  /* istanbul ignore next */
35
40
  this.handleTooltip = async () => {
41
+ // Skip when host has no layout (e.g. hidden inside an inactive vega-tab-group-panel);
42
+ // the observer will re-fire once the host becomes visible.
43
+ if (this.host.clientWidth === 0) {
44
+ return;
45
+ }
46
+ // VD-8855: Reset the inline `min-width` (previously pinned in px by `insertMinWidthStyle()`
47
+ // to work around the Safari wrap issue) back to `auto` BEFORE re-measuring overflow.
48
+ // Without this, a prior ResizeObserver callback that fired during an async container
49
+ // layout transition (e.g. `vega-calendar` mounting inside a `vega-modal` open animation,
50
+ // or a previously hidden `vega-tab-group-panel` becoming visible) could leave the host
51
+ // pinned to a transient narrow width and lock `vega-text` in a truncated state.
52
+ this.host.style.minWidth = 'auto';
36
53
  if (isTextWrapped(this.host)) {
37
54
  const tooltip = this.createTooltip();
38
55
  void tooltip.componentOnReady().then(() => {
39
56
  void this.updateTooltipDisplayText();
40
57
  });
58
+ // VD-8855: After truncating during what may have been a transient narrow layout,
59
+ // schedule one delayed re-measure (after layout settles) to verify whether the
60
+ // truncation is still warranted. If the parent has since expanded, the next
61
+ // `handleTooltip()` call will see no wrap and restore the full text.
62
+ // This breaks the self-reinforcing collapse where, once the host is pinned to a
63
+ // 1-character min-width, no further ResizeObserver event ever fires on it.
64
+ // eslint-disable-next-line no-restricted-globals
65
+ requestAnimationFrame(() => {
66
+ // eslint-disable-next-line no-restricted-globals
67
+ requestAnimationFrame(() => {
68
+ if (!this.host || !this.host.isConnected) {
69
+ return;
70
+ }
71
+ this.host.style.minWidth = 'auto';
72
+ if (this.tooltipRef) {
73
+ this.tooltipRef.innerText = this.content;
74
+ }
75
+ if (!isTextWrapped(this.host)) {
76
+ if (this.tooltipRef && this.tooltipRef.classList.contains('hydrated')) {
77
+ this.host.innerText = this.content;
78
+ this.tooltipRef.remove();
79
+ this.tooltipRef = null;
80
+ }
81
+ }
82
+ else if (this.tooltipRef) {
83
+ void this.updateTooltipDisplayText();
84
+ }
85
+ });
86
+ });
41
87
  }
42
88
  else {
43
89
  if (this.tooltipRef && this.tooltipRef.classList.contains('hydrated')) {
@@ -45,7 +91,6 @@ export class VegaTextTooltipRenderer extends PageResizeObserverSlimmer {
45
91
  this.tooltipRef.remove();
46
92
  this.tooltipRef = null;
47
93
  }
48
- this.host.style.minWidth = 'auto';
49
94
  }
50
95
  };
51
96
  /**
@@ -21,17 +21,22 @@ export class VegaTimePickerRangeClearButtonRenderer extends VegaSlimmer {
21
21
  render() {
22
22
  return (h("div", { class: {
23
23
  'vega-time-picker-range-clear-icon': true,
24
- 'invisible': !this.isInvisible(),
24
+ 'invisible': !this.shouldShowClearButton(),
25
25
  }, "aria-label": "clear input", role: "button", tabindex: !this.disabled ? 0 : -1, onClick: this.onClickClearIcon, onKeyDown: createEnterKeyHandlerToTriggerClick() },
26
26
  h("vega-icon", { icon: "close", class: "v-min-w-min vega-flex-shrink-0" })));
27
27
  }
28
28
  /**
29
- * The function checks if the value is an array and if either of the elements in the array is truthy, returning true if so.
29
+ * Determines whether the range clear button should be visible. The button
30
+ * is shown only when the clear icon feature is enabled, the component is
31
+ * not disabled, and at least one end of the range value is non-empty.
30
32
  *
31
- * @returns {boolean} a boolean value.
33
+ * @returns {boolean} `true` when the clear button should be visible.
32
34
  */
33
- isInvisible() {
34
- return (!this.disabled && Array.isArray(this.value) && (Boolean(this.value[0]) || Boolean(this.value[1])));
35
+ shouldShowClearButton() {
36
+ return (this.showClearIcon &&
37
+ !this.disabled &&
38
+ Array.isArray(this.value) &&
39
+ (Boolean(this.value[0]) || Boolean(this.value[1])));
35
40
  }
36
41
  }
37
42
  __decorate([
@@ -40,6 +45,9 @@ __decorate([
40
45
  __decorate([
41
46
  MapToComponentField()
42
47
  ], VegaTimePickerRangeClearButtonRenderer.prototype, "value", void 0);
48
+ __decorate([
49
+ MapToComponentField()
50
+ ], VegaTimePickerRangeClearButtonRenderer.prototype, "showClearIcon", void 0);
43
51
  __decorate([
44
52
  MapToComponentField()
45
53
  ], VegaTimePickerRangeClearButtonRenderer.prototype, "valueController", void 0);
@@ -41,7 +41,7 @@ export class VegaTimePickerSingleInputRenderer extends VegaSlimmer {
41
41
  /* istanbul ignore next */
42
42
  render() {
43
43
  return (h("div", { class: "time-picker-input" },
44
- h("vega-input", { "prefix-icon": "clock-face", placeholder: this.getPlaceholder(), disabled: this.disabled, readOnly: this.readOnly, size: this.size, value: typeof this.value === 'string' ? this.value : '', ref: (ref) => {
44
+ h("vega-input", { "prefix-icon": "clock-face", placeholder: this.getPlaceholder(), disabled: this.disabled, readOnly: this.readOnly, size: this.size, value: typeof this.value === 'string' ? this.value : '', showClearIcon: this.showClearIcon, ref: (ref) => {
45
45
  this.timeInputRef = ref;
46
46
  this.handleVegaInputEvent(ref);
47
47
  } })));
@@ -104,3 +104,6 @@ __decorate([
104
104
  __decorate([
105
105
  MapToComponentField()
106
106
  ], VegaTimePickerSingleInputRenderer.prototype, "readOnly", void 0);
107
+ __decorate([
108
+ MapToComponentField()
109
+ ], VegaTimePickerSingleInputRenderer.prototype, "showClearIcon", void 0);
@@ -169,6 +169,26 @@ export class VegaTimePicker {
169
169
  * @vegaVersion 2.79.0
170
170
  */
171
171
  this.readOnly = false;
172
+ /**
173
+ * Controls whether a clear (✕) icon button is displayed inside the time
174
+ * picker input when the field has a non-empty value.
175
+ *
176
+ * When `true`, clicking the clear icon resets the time picker value to an
177
+ * empty value (or `['', '']` in `range` mode) and emits a `vegaChange`
178
+ * event. Set to `false` to hide the clear icon (e.g., for time pickers
179
+ * where clearing is not desired).
180
+ *
181
+ * The clear icon is also hidden when the component is `disabled`.
182
+ *
183
+ * When the component is `readOnly`, the clear icon remains visible by
184
+ * design: read-only only suppresses manual keyboard text entry, while
185
+ * users can still update the value via the dropdown UI, so clearing the
186
+ * selected value is still a valid interaction.
187
+ *
188
+ * @default true
189
+ * @vegaVersion 2.84.0
190
+ */
191
+ this.showClearIcon = true;
172
192
  /**
173
193
  * Specifies the validation status of the time picker component.
174
194
  *
@@ -491,6 +511,30 @@ export class VegaTimePicker {
491
511
  "reflect": false,
492
512
  "defaultValue": "false"
493
513
  },
514
+ "showClearIcon": {
515
+ "type": "boolean",
516
+ "mutable": false,
517
+ "complexType": {
518
+ "original": "boolean",
519
+ "resolved": "boolean",
520
+ "references": {}
521
+ },
522
+ "required": false,
523
+ "optional": false,
524
+ "docs": {
525
+ "tags": [{
526
+ "name": "default",
527
+ "text": "true"
528
+ }, {
529
+ "name": "vegaVersion",
530
+ "text": "2.84.0"
531
+ }],
532
+ "text": "Controls whether a clear (\u2715) icon button is displayed inside the time\npicker input when the field has a non-empty value.\n\nWhen `true`, clicking the clear icon resets the time picker value to an\nempty value (or `['', '']` in `range` mode) and emits a `vegaChange`\nevent. Set to `false` to hide the clear icon (e.g., for time pickers\nwhere clearing is not desired).\n\nThe clear icon is also hidden when the component is `disabled`.\n\nWhen the component is `readOnly`, the clear icon remains visible by\ndesign: read-only only suppresses manual keyboard text entry, while\nusers can still update the value via the dropdown UI, so clearing the\nselected value is still a valid interaction."
533
+ },
534
+ "attribute": "show-clear-icon",
535
+ "reflect": false,
536
+ "defaultValue": "true"
537
+ },
494
538
  "isValid": {
495
539
  "type": "boolean",
496
540
  "mutable": true,
@@ -1,7 +1,7 @@
1
- import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaNativeInputChange, VegaFocus, VegaBlur, VegaSuggestionItemClick, VegaPaste, VegaComplete, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSourceCodeChange, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
1
+ import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaDropdownSearch, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaNativeInputChange, VegaFocus, VegaBlur, VegaSuggestionItemClick, VegaPaste, VegaComplete, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSourceCodeChange, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
2
2
  const entries = [
3
3
  ['vega-accordion', [VegaExpand]],
4
- ['vega-app-header-button', [VegaClick, VegaDropdownClick, VegaReset]],
4
+ ['vega-app-header-button', [VegaClick, VegaDropdownClick, VegaReset, VegaDropdownSearch]],
5
5
  ['vega-banner', [VegaClose, VegaActionButtonClick]],
6
6
  ['vega-breadcrumb', [VegaClick]],
7
7
  ['vega-button', [VegaClick]],
@@ -16,6 +16,7 @@ const entries = [
16
16
  ['vega-code-block', [VegaChange, VegaRemove]],
17
17
  ['vega-color-picker', [VegaChange]],
18
18
  ['vega-color-swatch', [VegaClick]],
19
+ ['vega-color-swatch-picker', [VegaChange]],
19
20
  ['vega-combo-box', [VegaChange, VegaCreate, VegaSearch]],
20
21
  ['vega-date-picker', [VegaChange, VegaMonthYearChange]],
21
22
  ['vega-date-picker-calendar', [VegaClear, VegaMonthYearChange, VegaSelectionChange]],
@@ -7,6 +7,14 @@ class RTEDTORendererManager {
7
7
  this.RTE_DTO_RENDERER_MAP = new Map();
8
8
  // Register RTE Toolbar Button Renderers, mapping type strings to their respective renderer instances.
9
9
  this.RTE_TOOLBAR_BUTTON_RENDERER_MAP = new Map();
10
+ /**
11
+ * Per-host toolbar button renderer map.
12
+ * Stores a host-specific renderer map so that extensions that register during
13
+ * {@link VegaRTEExtension#prepareBeforeLoad} can provide isolated renderer instances
14
+ * for each {@link HTMLVegaRichTextEditorElement}. At render time this map is checked
15
+ * first; the global singleton map is used as a fallback.
16
+ */
17
+ this.hostToolbarButtonRendererMap = new WeakMap();
10
18
  }
11
19
  /**
12
20
  * Registers a new RTE DTO renderer.
@@ -32,6 +40,24 @@ class RTEDTORendererManager {
32
40
  registerRTEToolbarButtonRenderer(type, RTEToolbarButtonRenderer) {
33
41
  this.RTE_TOOLBAR_BUTTON_RENDERER_MAP.set(type, RTEToolbarButtonRenderer);
34
42
  }
43
+ /**
44
+ * Registers a host-specific toolbar button renderer.
45
+ * The per-host renderer takes precedence over the global singleton when the host
46
+ * element is passed to {@link getRTEToolbarButtonRenderer}.
47
+ *
48
+ * @typedef HTMLVegaRichTextEditorElement - The rich text editor host element type.
49
+ * @param {HTMLVegaRichTextEditorElement} host - The rich text editor host element.
50
+ * @param {string} type - The type identifier for the toolbar button renderer.
51
+ * @param {VegaRTEToolbarButtonRenderer} renderer - The renderer instance to register for this host.
52
+ */
53
+ registerRTEToolbarButtonRendererForHost(host, type, renderer) {
54
+ let hostMap = this.hostToolbarButtonRendererMap.get(host);
55
+ if (!hostMap) {
56
+ hostMap = new Map();
57
+ this.hostToolbarButtonRendererMap.set(host, hostMap);
58
+ }
59
+ hostMap.set(type, renderer);
60
+ }
35
61
  /**
36
62
  * Retrieves the RTE renderer for a given type.
37
63
  *
@@ -43,12 +69,26 @@ class RTEDTORendererManager {
43
69
  }
44
70
  /**
45
71
  * Retrieves the RTE Toolbar Button Renderer for a given type.
72
+ * When a host element is provided the per-host map registered via
73
+ * {@link registerRTEToolbarButtonRendererForHost} is checked first; the global
74
+ * singleton map is used as a fallback so that extensions that do not override
75
+ * {@link VegaRTEExtension#prepareBeforeLoad} continue to work unchanged.
46
76
  *
77
+ * @typedef HTMLVegaRichTextEditorElement - The rich text editor host element type.
47
78
  * @param {string} type - The type identifier for the RTE Toolbar Button Renderer.
79
+ * @param {HTMLVegaRichTextEditorElement} [host] - Optional host element for per-host lookup.
48
80
  * @returns {Nullable<VegaRTEToolbarButtonRenderer>} - The renderer instance for the RTE Toolbar Button, or null if not found.
49
81
  */
50
- getRTEToolbarButtonRenderer(type) {
51
- return this.RTE_TOOLBAR_BUTTON_RENDERER_MAP.get(type);
82
+ getRTEToolbarButtonRenderer(type, host) {
83
+ var _a, _b;
84
+ if (host) {
85
+ const hostRenderer = (_a = this.hostToolbarButtonRendererMap
86
+ .get(host)) === null || _a === void 0 ? void 0 : _a.get(type);
87
+ if (hostRenderer) {
88
+ return hostRenderer;
89
+ }
90
+ }
91
+ return (_b = this.RTE_TOOLBAR_BUTTON_RENDERER_MAP.get(type)) !== null && _b !== void 0 ? _b : null;
52
92
  }
53
93
  }
54
94
  export default new RTEDTORendererManager();
@@ -0,0 +1,73 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { MapToComponentField as MapToSlimmerField } from 'vega-slimmer/core';
8
+ import { findParent } from '../../../../utils/ui';
9
+ import { BodyPositionedWrapper } from './body-positioned-wrapper.abstract';
10
+ /**
11
+ * Appends the popover content box inside the nearest third-party dialog/modal (e.g. Bootstrap,
12
+ * MUI) so that their focus trap does not block focus on vega-popover content.
13
+ *
14
+ * Detection strategy:
15
+ * 1. Walk up from the target to find `dialog` or `[aria-modal="true"]`.
16
+ * 2. Skip Vega-owned elements (tag starts with `VEGA-`).
17
+ * 3. Locate the focus-trap root via `closest('[tabindex="-1"]')`.
18
+ */
19
+ export class ThirdPartyDialogWrapper extends BodyPositionedWrapper {
20
+ /**
21
+ * Returns true when the target lives inside a third-party dialog.
22
+ *
23
+ * NOTE: Does NOT call super.canRetrieve() — must activate even when isScreenPosition=true
24
+ * (e.g. image editor popover) so the content box stays inside the focus-trap root.
25
+ *
26
+ * @returns {boolean} Whether the target is inside a third-party dialog.
27
+ */
28
+ canRetrieve() {
29
+ this.focusTrapRoot = this.findFocusTrapRoot(this.showConfig.target);
30
+ return !!this.focusTrapRoot;
31
+ }
32
+ /**
33
+ * Appends the popover content box inside the focus-trap root.
34
+ *
35
+ * @returns {HTMLElement} The focus-trap root element.
36
+ */
37
+ retrieve() {
38
+ const root = this.focusTrapRoot;
39
+ this.focusTrapRoot = null;
40
+ if (this.showConfig.appendableElement.parentElement !== root) {
41
+ root.append(this.showConfig.appendableElement);
42
+ }
43
+ return root;
44
+ }
45
+ /**
46
+ * Finds the focus-trap root of the nearest third-party dialog ancestor.
47
+ * Returns null if not inside a third-party dialog or if the dialog is Vega-owned.
48
+ *
49
+ * @param {Nullable<HTMLElement>} el - The element to start searching from.
50
+ * @returns {Nullable<HTMLElement>} The focus-trap root, or null.
51
+ */
52
+ findFocusTrapRoot(el) {
53
+ var _a;
54
+ const dialog = findParent(el, 'dialog, [aria-modal="true"]');
55
+ if (!dialog || this.isVegaOwned(dialog))
56
+ return null;
57
+ // closest() also matches the element itself — needed when [aria-modal] and [tabindex="-1"]
58
+ // are on the same node (e.g. Bootstrap 5 outer .modal div).
59
+ return (_a = dialog.closest('[tabindex="-1"]')) !== null && _a !== void 0 ? _a : dialog;
60
+ }
61
+ /**
62
+ * Returns true when the element is a Vega custom element (tag starts with `VEGA-`).
63
+ *
64
+ * @param {HTMLElement} el - The element to check.
65
+ * @returns {boolean} True if the element is Vega-owned.
66
+ */
67
+ isVegaOwned(el) {
68
+ return el.tagName.startsWith('VEGA-');
69
+ }
70
+ }
71
+ __decorate([
72
+ MapToSlimmerField()
73
+ ], ThirdPartyDialogWrapper.prototype, "showConfig", void 0);