@heartlandone/vega 2.82.0 → 2.83.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 (119) hide show
  1. package/dist/cjs/{app-globals-3350d580.js → app-globals-40b1b1b2.js} +1 -1
  2. package/dist/cjs/{dto-renderer-manager-ae5fcbba.js → dto-renderer-manager-7eb5c5ce.js} +42 -2
  3. package/dist/cjs/{element-appender-slimmer-dedd3a34.js → element-appender-slimmer-52c2b455.js} +84 -8
  4. package/dist/cjs/index.cjs.js +2 -2
  5. package/dist/cjs/loader.cjs.js +4 -4
  6. package/dist/cjs/{token-extension-9b213b6b.js → token-extension-361273fb.js} +77 -20
  7. package/dist/cjs/vega-banner.cjs.entry.js +13 -2
  8. package/dist/cjs/vega-checkbox_2.cjs.entry.js +37 -4
  9. package/dist/cjs/vega-date-picker_2.cjs.entry.js +1 -1
  10. package/dist/cjs/vega-dialog_2.cjs.entry.js +27 -5
  11. package/dist/cjs/vega-dropdown_5.cjs.entry.js +1 -1
  12. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  13. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +1 -1
  14. package/dist/cjs/vega-pagination.cjs.entry.js +1 -1
  15. package/dist/cjs/vega-popover_2.cjs.entry.js +1 -1
  16. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +8 -9
  17. package/dist/cjs/vega-rich-text-content.cjs.entry.js +1 -1
  18. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +54 -9
  19. package/dist/cjs/vega-text.cjs.entry.js +10 -0
  20. package/dist/cjs/vega-time-picker_2.cjs.entry.js +1 -1
  21. package/dist/cjs/vega-tooltip_2.cjs.entry.js +1 -1
  22. package/dist/cjs/vega.cjs.js +4 -4
  23. package/dist/collection/components/vega-banner/slimmers/renderers/vega-banner-renderer.js +11 -2
  24. package/dist/collection/components/vega-banner/vega-banner.js +3 -1
  25. package/dist/collection/components/vega-checkbox/vega-checkbox.css +19 -14
  26. package/dist/collection/components/vega-checkbox/vega-checkbox.js +57 -3
  27. package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-backdrop-controller.js +9 -3
  28. package/dist/collection/components/vega-modal/slimmers/controllers/vega-nested-modal-controller.js +17 -2
  29. package/dist/collection/components/vega-pagination/internal/vega-pagination-go-to.js +1 -1
  30. package/dist/collection/components/vega-pagination/vega-pagination-page-selector-mobile/slimmers/renderers/page-selector-mobile-renderer.js +1 -1
  31. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +12 -10
  32. package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +28 -3
  33. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +24 -6
  34. package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +23 -8
  35. package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +2 -2
  36. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +18 -1
  37. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +1 -1
  38. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +5 -3
  39. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +8 -3
  40. package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +47 -0
  41. package/dist/collection/components/vega-text/slimmers/renderers/vega-text-tooltip-renderer.js +10 -0
  42. package/dist/collection/helpers/rte-manager/dto-renderer-manager.js +42 -2
  43. package/dist/collection/helpers/slimmers/element-appender/body-positioned-wrapper/third-party-dialog-wrapper.js +73 -0
  44. package/dist/collection/helpers/slimmers/element-appender/element-appender-container-controller.js +6 -0
  45. package/dist/esm/{app-globals-0b7e8b50.js → app-globals-f67d0eaf.js} +1 -1
  46. package/dist/esm/{dto-renderer-manager-12bc9121.js → dto-renderer-manager-abc7eb5f.js} +42 -2
  47. package/dist/esm/{element-appender-slimmer-5aca1bca.js → element-appender-slimmer-29c94a18.js} +84 -8
  48. package/dist/esm/index.js +2 -2
  49. package/dist/esm/loader.js +4 -4
  50. package/dist/esm/{token-extension-9d717a35.js → token-extension-0710dbc5.js} +77 -20
  51. package/dist/esm/vega-banner.entry.js +13 -2
  52. package/dist/esm/vega-checkbox_2.entry.js +37 -4
  53. package/dist/esm/vega-date-picker_2.entry.js +1 -1
  54. package/dist/esm/vega-dialog_2.entry.js +27 -5
  55. package/dist/esm/vega-dropdown_5.entry.js +1 -1
  56. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  57. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +1 -1
  58. package/dist/esm/vega-pagination.entry.js +1 -1
  59. package/dist/esm/vega-popover_2.entry.js +1 -1
  60. package/dist/esm/vega-progress-tracker_2.entry.js +8 -9
  61. package/dist/esm/vega-rich-text-content.entry.js +1 -1
  62. package/dist/esm/vega-rich-text-editor_4.entry.js +54 -9
  63. package/dist/esm/vega-text.entry.js +10 -0
  64. package/dist/esm/vega-time-picker_2.entry.js +1 -1
  65. package/dist/esm/vega-tooltip_2.entry.js +1 -1
  66. package/dist/esm/vega.js +4 -4
  67. package/dist/sri/vega-sri-manifest.json +70 -70
  68. package/dist/types/components/vega-banner/slimmers/renderers/vega-banner-renderer.d.ts +6 -0
  69. package/dist/types/components/vega-banner/vega-banner.d.ts +2 -0
  70. package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +22 -1
  71. package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-backdrop-controller.d.ts +1 -0
  72. package/dist/types/components/vega-modal/slimmers/controllers/vega-nested-modal-controller.d.ts +3 -2
  73. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +8 -9
  74. package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +20 -2
  75. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +13 -2
  76. package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +15 -4
  77. package/dist/types/components/vega-rich-text-editor/extensions/table/table-extension.d.ts +1 -1
  78. package/dist/types/components/vega-rich-text-editor/interface.d.ts +4 -0
  79. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +7 -0
  80. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +1 -0
  81. package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.d.ts +4 -3
  82. package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +14 -1
  83. package/dist/types/components/vega-text/slimmers/renderers/vega-text-tooltip-renderer.d.ts +1 -0
  84. package/dist/types/components.d.ts +29 -5
  85. package/dist/types/helpers/rte-manager/dto-renderer-manager.d.ts +26 -1
  86. package/dist/types/helpers/slimmers/element-appender/body-positioned-wrapper/third-party-dialog-wrapper.d.ts +45 -0
  87. package/dist/types/helpers/slimmers/element-appender/element-appender-container-controller.d.ts +2 -0
  88. package/dist/types/types/components.type.d.ts +1 -0
  89. package/dist/vega/index.esm.js +1 -1
  90. package/dist/vega/p-0bcb2945.entry.js +1 -0
  91. package/dist/vega/{p-a30ae8a1.js → p-0bf8743f.js} +1 -1
  92. package/dist/vega/p-142f371b.entry.js +1 -0
  93. package/dist/vega/p-158c6a9f.entry.js +1 -0
  94. package/dist/vega/p-1b48e8a5.entry.js +1 -0
  95. package/dist/vega/p-380abceb.entry.js +1 -0
  96. package/dist/vega/{p-3505f7cc.entry.js → p-54ba35e3.entry.js} +1 -1
  97. package/dist/vega/p-5be546c5.js +1 -0
  98. package/dist/vega/p-5f377954.js +1 -1
  99. package/dist/vega/{p-246eb001.entry.js → p-608f234f.entry.js} +1 -1
  100. package/dist/vega/p-81a11dc6.entry.js +1 -0
  101. package/dist/vega/{p-23c840dc.entry.js → p-8559e36f.entry.js} +1 -1
  102. package/dist/vega/p-90cb665e.entry.js +1 -0
  103. package/dist/vega/{p-88b6184c.entry.js → p-a4738b70.entry.js} +1 -1
  104. package/dist/vega/p-b6c3ce6d.js +1 -0
  105. package/dist/vega/p-b9728ca8.js +1 -0
  106. package/dist/vega/{p-7faaa5e1.entry.js → p-cc00135a.entry.js} +1 -1
  107. package/dist/vega/{p-97f36f4e.entry.js → p-e00fb667.entry.js} +1 -1
  108. package/dist/vega/vega.esm.js +1 -1
  109. package/package.json +1 -1
  110. package/dist/vega/p-1dd6ba67.js +0 -1
  111. package/dist/vega/p-1efb47fe.entry.js +0 -1
  112. package/dist/vega/p-4f938ee4.entry.js +0 -1
  113. package/dist/vega/p-6d95390b.entry.js +0 -1
  114. package/dist/vega/p-a5bd3ecd.entry.js +0 -1
  115. package/dist/vega/p-c366e7f7.entry.js +0 -1
  116. package/dist/vega/p-d872beb1.entry.js +0 -1
  117. package/dist/vega/p-d9d5c693.entry.js +0 -1
  118. package/dist/vega/p-dd6211cd.js +0 -1
  119. package/dist/vega/p-fcabf0dc.js +0 -1
@@ -14,6 +14,8 @@ import { c as createEventEmitSlimmer } from './event-emit-slimmer-32da9d90.js';
14
14
  import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-9c24d4fc.js';
15
15
  import { C as ComponentGlobalStyleSlimmer } from './component-global-style-slimmer-ac703085.js';
16
16
  import { c as createDeprecatedPropertySlimmer } from './deprecated-property-slimmer-ea34fa7b.js';
17
+ import { M as MutationObserverSlimmer } from './mutation-observer-slimmer-58ebc13c.js';
18
+ import { T as TagNameMutationFilter } from './mutation-observer-filters-1a054fb0.js';
17
19
  import { g as generateUUID } from './misc-9fdbcfbb.js';
18
20
  import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
19
21
  import { D as DefaultModalSize } from './ui-93922c59.js';
@@ -33,9 +35,10 @@ import './vega-env-manager-8f8dc473.js';
33
35
  import './vega-nonce-manager-497e5eb5.js';
34
36
  import './index-3b327f29.js';
35
37
  import './object-0c277f57.js';
38
+ import './array-7888f339.js';
39
+ import './number-4398f2e1.js';
36
40
  import './synchronize-task-queue-ac8acc3b.js';
37
41
  import './vega-internal-event-id-194bac82.js';
38
- import './number-4398f2e1.js';
39
42
 
40
43
  const vegaDialogCss = ":host vega-modal{padding-left:16px;padding-right:16px}@media (min-width: 768px){:host vega-modal{padding:0px}}:host .vega-dialog-actions-container{display:flex;justify-content:center;flex-direction:column;gap:12px}@media (min-width: 768px){:host .vega-dialog-actions-container{justify-content:flex-end;flex-direction:row}}:host .vega-dialog-modal-content{font-family:\"Inter\", sans-serif;font-size:18px;font-weight:500;line-height:30px;letter-spacing:0px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));word-break:break-word}@media screen and (min-width: 768px) and (max-width: 1023px){:host .vega-dialog-modal-content{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:28px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .vega-dialog-modal-content{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:28px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .vega-dialog-modal-content{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:28px;letter-spacing:0px}}";
41
44
 
@@ -181,7 +184,20 @@ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators,
181
184
  /**
182
185
  * Nested modal controller
183
186
  */
184
- class VegaNestedModalController extends VegaSlimmer {
187
+ class VegaNestedModalController extends MutationObserverSlimmer {
188
+ constructor() {
189
+ super({
190
+ mutationFilter: TagNameMutationFilter('VEGA-MODAL'),
191
+ options: {
192
+ childList: true,
193
+ subtree: true,
194
+ },
195
+ // eslint-disable-next-line jsdoc/require-jsdoc
196
+ callback: () => {
197
+ this.appendNestedModalToBody();
198
+ },
199
+ });
200
+ }
185
201
  /**
186
202
  * Component lifecycle - [connectedCallback]
187
203
  */
@@ -885,18 +901,23 @@ class VegaModalBackdropController extends VegaSlimmer {
885
901
  * Set backdrop of modal.
886
902
  */
887
903
  setBackdrop() {
904
+ var _a;
888
905
  if (this.backdrop === 'none')
889
906
  return;
890
907
  // eslint-disable-next-line no-restricted-globals
891
- let backdrop = document.querySelector('vega-backdrop.modal-backdrop');
908
+ let backdrop = document.querySelector(`vega-backdrop.${VegaModalBackdropController.modalBackdropClass}`);
892
909
  if (!backdrop) {
893
910
  // eslint-disable-next-line no-restricted-globals
894
911
  backdrop = document.createElement('vega-backdrop');
895
- backdrop.classList.add('modal-backdrop');
912
+ backdrop.classList.add(VegaModalBackdropController.modalBackdropClass);
896
913
  backdrop.color = VegaModalBackdropController.backdropColorMap[this.backdropColor];
897
914
  backdrop.visible = true;
915
+ // Append backdrop as a sibling of the modal host so it shares the same stacking context.
916
+ // - When vega-modal is in document.body (normal case), parentElement is document.body.
917
+ // - When vega-modal is inside a third-party dialog (e.g. Bootstrap modal), parentElement is the dialog container — keeping the backdrop inside the focus-trap root.
918
+ // - Falls back to document.body when parentElement is null (e.g. VegaDialog creates the vega-modal element before appending it to the DOM).
898
919
  // eslint-disable-next-line no-restricted-globals
899
- document.querySelector('body').append(backdrop);
920
+ ((_a = this.host.parentElement) !== null && _a !== void 0 ? _a : document.body).append(backdrop);
900
921
  }
901
922
  this.backdropRef = backdrop;
902
923
  }
@@ -907,6 +928,7 @@ class VegaModalBackdropController extends VegaSlimmer {
907
928
  this.backdropRef && this.backdropRef.remove();
908
929
  }
909
930
  }
931
+ VegaModalBackdropController.modalBackdropClass = 'vega-modal-backdrop';
910
932
  VegaModalBackdropController.backdropColorMap = {
911
933
  default: 'bg-backdrop-modal',
912
934
  semi: 'bg-backdrop-popover',
@@ -10,7 +10,7 @@ import { D as DomNodeSubjectObserverFactory, d as domNodeSubjectFactory } from '
10
10
  import { h as VegaChange, t as VegaDropdownShow, u as VegaDropdownHide, V as VegaDropdownClick, e as VegaReset, o as VegaCreate, v as VegaDropdownSearch, w as VegaSearchTrigger, a as VegaClick } from './vega-event-id-4ede557a.js';
11
11
  import { K as KeyboardManagerSlimmer } from './keyboard-manager-slimmer-7eed4734.js';
12
12
  import { c as createDynamicSlimmer } from './dynamic-slimmer-90b8af32.js';
13
- import { E as ElementAppenderSlimmer } from './element-appender-slimmer-5aca1bca.js';
13
+ import { E as ElementAppenderSlimmer } from './element-appender-slimmer-29c94a18.js';
14
14
  import { A as AriaDialogFocusableTrapSlimmer } from './aria-dialog-focusable-trap-slimmer-853a91de.js';
15
15
  import { h as htmlSanitizer, l as labelSanitizeStrategy } from './index-3b327f29.js';
16
16
  import { i as isArrayEqual } from './array-7888f339.js';
@@ -9,9 +9,9 @@ var FrameworkEnum;
9
9
  /** The VegaEnvManager class manages vega environment parameters. */
10
10
  class VegaEnvManager {
11
11
  constructor() {
12
- // The `2.82.0` will be replaced to a version string when running publish script.
12
+ // The `2.83.0` will be replaced to a version string when running publish script.
13
13
  // eslint-disable-next-line @typescript-eslint/no-magic-numbers
14
- this.vegaVersion = '2.82.0';
14
+ this.vegaVersion = '2.83.0';
15
15
  this.framework = FrameworkEnum.VanillaJs;
16
16
  }
17
17
  /**
@@ -54,7 +54,7 @@ class PageSelectorMobileRenderer extends VegaSlimmer {
54
54
  h("vega-form", { ref: (ref) => {
55
55
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaFormSubmit, this.handleChange);
56
56
  } },
57
- h("vega-input", { "data-vega-form": "pageSelectorMobile_goTo", size: "small", showClearIcon: false, style: { width: '54px' }, maskConfig: {
57
+ h("vega-input", { "data-vega-form": "pageSelectorMobile_goTo", size: "small", autocomplete: "on", showClearIcon: false, style: { width: '54px' }, maskConfig: {
58
58
  type: 'number',
59
59
  options: {
60
60
  allowNegative: false,
@@ -56,7 +56,7 @@ const VegaPaginationGoTo = ({ onChange, pageCount, translationSlimmer, }) => {
56
56
  ref: (ref) => {
57
57
  DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaFormSubmit, handleChange);
58
58
  } },
59
- h("vega-input", { "data-vega-form": "paginationGoTo", type: "number", size: "small", showClearIcon: false, style: { width: '60px' }, maskConfig: {
59
+ h("vega-input", { "data-vega-form": "paginationGoTo", type: "number", size: "small", autocomplete: "on", showClearIcon: false, style: { width: '60px' }, maskConfig: {
60
60
  type: 'number',
61
61
  options: {
62
62
  allowNegative: false,
@@ -6,7 +6,7 @@ import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlim
6
6
  import { c as createEventEmitSlimmer } from './event-emit-slimmer-32da9d90.js';
7
7
  import { b as VegaPopoverShow, c as VegaPopoverHide } from './vega-event-id-4ede557a.js';
8
8
  import { c as createDynamicSlimmer } from './dynamic-slimmer-90b8af32.js';
9
- import { E as ElementAppenderSlimmer } from './element-appender-slimmer-5aca1bca.js';
9
+ import { E as ElementAppenderSlimmer } from './element-appender-slimmer-29c94a18.js';
10
10
  import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
11
11
  import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-aca0116e.js';
12
12
  import { V as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-194bac82.js';
@@ -769,17 +769,16 @@ const VegaProgressTracker = class {
769
769
  */
770
770
  this.canClickStep = true;
771
771
  /**
772
- * When enabled, allows `current` to be set to `-1` to indicate
773
- * no highlighted/current step (e.g. all steps are pending or
774
- * the workflow has not started).
772
+ * When enabled, `current = -1` becomes a valid state that indicates
773
+ * no highlighted/current step (e.g. all steps are pending or the
774
+ * workflow has not started).
775
775
  *
776
- * Defaults to `false` to preserve backward-compatible behavior:
777
- * `current` is clamped to `[0, steps.length - 1]`.
776
+ * Two ways to enter this state:
777
+ * - Set the `current` prop to `-1`.
778
+ * - Call the `setCurrent(-1)` method.
778
779
  *
779
- * When enabled, `current = -1` is a valid state. The `prevStep()`
780
- * method still clamps at `0` — reaching `-1` is only possible
781
- * by explicitly setting `current = -1` via the prop or
782
- * `setCurrent(-1)`.
780
+ * @VegaHint `prevStep()` still clamps at `0` and will not take `current`
781
+ * into `-1`.
783
782
  *
784
783
  * @vegaVersion 2.82.0
785
784
  */
@@ -11,7 +11,7 @@ import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0f
11
11
  import { D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-aca0116e.js';
12
12
  import { h as VegaChange, n as VegaRemove } from './vega-event-id-4ede557a.js';
13
13
  import { i as isNonNullable } from './type-guard-152070e9.js';
14
- import { R as RTEDTORendererManager } from './dto-renderer-manager-12bc9121.js';
14
+ import { R as RTEDTORendererManager } from './dto-renderer-manager-abc7eb5f.js';
15
15
  import { x as VegaInternalCodeBlockSelectionChange } from './vega-internal-event-id-194bac82.js';
16
16
  import { t as tryGetDocument } from './try-get-document-bef0f526.js';
17
17
  import { v as vegaNonceManager } from './vega-nonce-manager-497e5eb5.js';
@@ -6,7 +6,7 @@ import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0f
6
6
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
7
7
  import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-aca0116e.js';
8
8
  import { s as VegaInternalComponentDidRender, d as VegaInternalRichTextEditorFlushChanges, K as VegaInternalRichTextEditDeleteSelectedNodes, L as VegaInternalRichTextImageClick, M as VegaInternalRichTextImageDeleteButtonClicked, y as VegaInternalCodeBlockBlur, V as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-194bac82.js';
9
- import { R as RTEDTORendererManager } from './dto-renderer-manager-12bc9121.js';
9
+ import { R as RTEDTORendererManager } from './dto-renderer-manager-abc7eb5f.js';
10
10
  import { i as isNonNullable } from './type-guard-152070e9.js';
11
11
  import { V as VegaInternalIconManager } from './internal-icon-manager-bd80b3bb.js';
12
12
  import { c as RTETextNode, ah as BoldAnnotationAction, F as NodeAnnotationTypeEnum, ai as ItalicAnnotationAction, aj as UnderlineAnnotationAction, e as RTETextBlock, T as TextStyleAnnotationAction, a3 as TextStyleAnnotation, ak as BoldAnnotation, y as BlockAnnotationTypeEnum, al as ClearFormattingAnnotationAction, am as CodeAnnotationAction, an as StrikethroughAnnotationAction, af as SelectionChangeAction, ad as LinkAnnotationAction, ao as IndentAnnotationAction, M as ModifyContentAction, l as ModifyContentActionType, a9 as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, h as AppendChildrenAction, ac as ZERO_WIDTH_SPACE, U as UpdateTextAction, j as InsertChildrenBeforeAction, O as SplitBlockWithNodeAction, i as RTENode, n as RemoveChildrenAction, L as ReplaceChildNodesAction, E as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems } from './code-block-b8be290a.js';
@@ -14,7 +14,6 @@ import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as T
14
14
  import { V as VegaDropdownClick, h as VegaChange, a as VegaClick, X as VegaImageInserted, Y as VegaSourceCodeChange, b as VegaPopoverShow, c as VegaPopoverHide } from './vega-event-id-4ede557a.js';
15
15
  import { g as generateUUID } from './misc-9fdbcfbb.js';
16
16
  import { w as waitForComponentDidRender } from './wait-for-component-did-render-30cde59c.js';
17
- import { t as tryGetDocument } from './try-get-document-bef0f526.js';
18
17
  import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-899864a8.js';
19
18
  import { c as createEventEmitSlimmer } from './event-emit-slimmer-32da9d90.js';
20
19
  import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-1f907173.js';
@@ -45,6 +44,7 @@ import './dynamic-slimmer-90b8af32.js';
45
44
  import './string-a953eafc.js';
46
45
  import './object-0c277f57.js';
47
46
  import './index-3b327f29.js';
47
+ import './try-get-document-bef0f526.js';
48
48
  import './page-resize-observer-slimmer-e24d36c5.js';
49
49
  import './breakpoints-332702ed.js';
50
50
  import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
@@ -276,7 +276,7 @@ class ToolbarRenderer extends VegaSlimmer {
276
276
  const groupElement = group
277
277
  .map((item) => {
278
278
  const presetRenderer = this.getToolbarBtnRenderer(item);
279
- const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item);
279
+ const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item, this.host);
280
280
  if (presetRenderer) {
281
281
  if (!presetRenderer.isHidden()) {
282
282
  totalVisibleCount++;
@@ -534,8 +534,9 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
534
534
  tooltip: { text: 'Text Styles' },
535
535
  });
536
536
  this.handleDropdownItemClick = (payload) => {
537
+ var _a, _b;
537
538
  const selectedType = payload.detail;
538
- const boldByDefault = TextStylesToolbarButtonSlimmer.items.find((item) => item.key === selectedType).bold;
539
+ 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;
539
540
  const selectedTextBlocks = this.selectionController
540
541
  .getSelectedBlocks()
541
542
  .filter((block) => block instanceof RTETextBlock);
@@ -564,7 +565,8 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
564
565
  h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())));
565
566
  }
566
567
  renderDropdownContent() {
567
- return (h(Fragment, null, TextStylesToolbarButtonSlimmer.items.map((item) => {
568
+ const visibleItems = TextStylesToolbarButtonSlimmer.allItems.filter((item) => this.textStyleItems.some((config) => config.key === item.key));
569
+ return (h(Fragment, null, visibleItems.map((item) => {
568
570
  const textStyleAnnotation = new TextStyleAnnotation(item.key);
569
571
  const boldAnnotation = new BoldAnnotation(item.bold);
570
572
  return (h("vega-dropdown-item", { key: item.key, itemKey: item.key },
@@ -602,7 +604,7 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
602
604
  'text-size': textSize,
603
605
  });
604
606
  })();
605
- TextStylesToolbarButtonSlimmer.items = [
607
+ TextStylesToolbarButtonSlimmer.allItems = [
606
608
  {
607
609
  key: 'title',
608
610
  label: 'Title',
@@ -638,6 +640,9 @@ __decorate$x([
638
640
  __decorate$x([
639
641
  MapToComponentField()
640
642
  ], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
643
+ __decorate$x([
644
+ MapToComponentField()
645
+ ], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
641
646
 
642
647
  const TextSlash = {
643
648
  icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
@@ -992,7 +997,6 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
992
997
  await this.insertURLModalRef.modal('hide');
993
998
  };
994
999
  this.handleDropdownItemClick = async (payload) => {
995
- const safeDocument = tryGetDocument();
996
1000
  switch (payload.detail) {
997
1001
  case 'upload':
998
1002
  this.uploadInputRef.click();
@@ -1001,7 +1005,8 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
1001
1005
  this.currentRange = this.selectionController.getCurrentRange();
1002
1006
  this.currentSelectedNodes = this.selectionController.getSelectedNodes();
1003
1007
  this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
1004
- safeDocument && safeDocument.body.append(this.insertURLModalRef);
1008
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1009
+ this.host.parentElement.append(this.insertURLModalRef);
1005
1010
  this.insertURLInputRef.value = '';
1006
1011
  await this.insertURLModalRef.modal('show');
1007
1012
  await this.insertURLInputRef.doFocus();
@@ -1129,6 +1134,9 @@ ImageToolbarButtonSlimmer.items = [
1129
1134
  label: 'Insert via URL',
1130
1135
  },
1131
1136
  ];
1137
+ __decorate$q([
1138
+ MapToComponentField()
1139
+ ], ImageToolbarButtonSlimmer.prototype, "host", void 0);
1132
1140
  __decorate$q([
1133
1141
  MapToComponentField()
1134
1142
  ], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
@@ -3633,6 +3641,19 @@ class RTEExtensionController extends VegaSlimmer {
3633
3641
  return this.selectionController.getSelectedNodes();
3634
3642
  };
3635
3643
  }
3644
+ /**
3645
+ * Prepares all registered extensions before the first render.
3646
+ * This method is called during `componentWillLoad` so that extensions can perform
3647
+ * host-specific setup (e.g. registering per-host toolbar button renderers) before
3648
+ * Stencil renders the component for the first time.
3649
+ */
3650
+ prepareExtensionsBeforeLoad() {
3651
+ if (this.extensions && this.host) {
3652
+ for (const extension of this.extensions) {
3653
+ extension.prepareBeforeLoad(this.host);
3654
+ }
3655
+ }
3656
+ }
3636
3657
  /**
3637
3658
  * Initializes the extension context for all registered extensions.
3638
3659
  * This method is called when the component is connected and whenever the extensions property changes.
@@ -3641,7 +3662,7 @@ class RTEExtensionController extends VegaSlimmer {
3641
3662
  if (this.extensions && this.host) {
3642
3663
  const extensionContext = this.generateExtensionContext();
3643
3664
  for (const extension of this.extensions) {
3644
- extension.initialExtension(extensionContext);
3665
+ extension.initialExtensionAfterLoad(extensionContext);
3645
3666
  }
3646
3667
  }
3647
3668
  }
@@ -3668,6 +3689,7 @@ class RTEExtensionController extends VegaSlimmer {
3668
3689
  }
3669
3690
  }
3670
3691
  if (!isArrayEqual(newValue, oldValue, false, (a, b) => a === b ? 0 : 1)) {
3692
+ this.prepareExtensionsBeforeLoad();
3671
3693
  this.initialExtensionContext();
3672
3694
  }
3673
3695
  }
@@ -3702,6 +3724,9 @@ __decorate$8([
3702
3724
  __decorate$8([
3703
3725
  MapToComponentField()
3704
3726
  ], RTEExtensionController.prototype, "selectionController", void 0);
3727
+ __decorate$8([
3728
+ MapToComponentMethod('componentWillLoad')
3729
+ ], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
3705
3730
  __decorate$8([
3706
3731
  MapToComponentMethod('componentDidLoad')
3707
3732
  ], RTEExtensionController.prototype, "initialExtensionContext", null);
@@ -4157,6 +4182,26 @@ const VegaRichTextEditor = class {
4157
4182
  * @vegaVersion 2.34.0
4158
4183
  */
4159
4184
  this.validationRules = [];
4185
+ /**
4186
+ * Specifies which text style items appear in the Text Styles toolbar dropdown.
4187
+ *
4188
+ * Use this to control which heading levels and text styles are available to users.
4189
+ * For example, omit `{ key: 'heading-1' }` to prevent users from applying H1
4190
+ * (which is typically reserved for the page title).
4191
+ *
4192
+ * Items are displayed in a fixed internal order regardless of the order in this array.
4193
+ *
4194
+ * @vegaVersion 2.83.0
4195
+ * @defaultValue [{ key: 'title' }, { key: 'subtitle' }, { key: 'heading-1' }, { key: 'heading-2' }, { key: 'heading-3' }, { key: 'paragraph' }]
4196
+ */
4197
+ this.textStyleItems = [
4198
+ { key: 'title' },
4199
+ { key: 'subtitle' },
4200
+ { key: 'heading-1' },
4201
+ { key: 'heading-2' },
4202
+ { key: 'heading-3' },
4203
+ { key: 'paragraph' },
4204
+ ];
4160
4205
  /**
4161
4206
  * Specifies the configuration for the rich text editor extensions.
4162
4207
  *
@@ -19,10 +19,15 @@ class VegaTextTooltipRenderer extends PageResizeObserverSlimmer {
19
19
  /**
20
20
  * The below method is e2e-test covered in
21
21
  * @see{module:vega-text-with-long-text-change-screen-size}
22
+ * @see{module:vega-text-restore-on-enlarge-screen-size}
22
23
  */
23
24
  constructor() {
24
25
  /* eslint-disable jsdoc/require-jsdoc*/
25
26
  super({
27
+ // Observe both the host (catches show/hide e.g. in vega-tab-group-panel, VD-8769)
28
+ // and document.body (catches viewport resize after truncation collapses host width).
29
+ // eslint-disable-next-line no-restricted-globals
30
+ target: /* istanbul ignore next */ () => [this.host, document.body],
26
31
  callback: /* istanbul ignore next */ () => {
27
32
  if (this.overflow === 'ellipsis') {
28
33
  if (this.tooltipRef) {
@@ -40,6 +45,11 @@ class VegaTextTooltipRenderer extends PageResizeObserverSlimmer {
40
45
  */
41
46
  /* istanbul ignore next */
42
47
  this.handleTooltip = async () => {
48
+ // Skip when host has no layout (e.g. hidden inside an inactive vega-tab-group-panel);
49
+ // the observer will re-fire once the host becomes visible.
50
+ if (this.host.clientWidth === 0) {
51
+ return;
52
+ }
43
53
  if (isTextWrapped(this.host)) {
44
54
  const tooltip = this.createTooltip();
45
55
  void tooltip.componentOnReady().then(() => {
@@ -13,7 +13,7 @@ import { Q as isTimeStr, ab as pad, i as isNonNullable, ac as convert12HourTo24H
13
13
  import { i as isArrayEqual } from './array-7888f339.js';
14
14
  import { F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-52f93124.js';
15
15
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
16
- import { E as ElementAppenderSlimmer } from './element-appender-slimmer-5aca1bca.js';
16
+ import { E as ElementAppenderSlimmer } from './element-appender-slimmer-29c94a18.js';
17
17
  import { C as ClickOutsideOnlyToDismissStrategy } from './click-outside-only-to-dismiss-strategy-3d286c1b.js';
18
18
  import { K as KeyboardManagerSlimmer } from './keyboard-manager-slimmer-7eed4734.js';
19
19
  import { I as InternalFormFieldValidationRule } from './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
@@ -3,7 +3,7 @@ import { s as sanitizeVegaComponent } from './component-7d906393.js';
3
3
  import { I as InjectKeyboardManager } from './inject-keyboard-manager-dc1d7135.js';
4
4
  import { c as MapToComponentField, M as MapToComponentMethod, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
5
5
  import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-46020a03.js';
6
- import { E as ElementAppenderSlimmer } from './element-appender-slimmer-5aca1bca.js';
6
+ import { E as ElementAppenderSlimmer } from './element-appender-slimmer-29c94a18.js';
7
7
  import { c as createDeprecatedPropertySlimmer } from './deprecated-property-slimmer-ea34fa7b.js';
8
8
  import './keyboard-manager-6ea9968b.js';
9
9
  import './ui-b7600a48.js';