@heartlandone/vega 2.75.0 → 2.76.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 (752) hide show
  1. package/dist/cjs/{app-globals-bf183914.js → app-globals-12b7d808.js} +28 -32
  2. package/dist/cjs/breakpoints-751d433a.js +56 -0
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-aca87dac.js → child-nodes-event-prevent-slimmer-84435957.js} +2 -2
  4. package/dist/cjs/{child-nodes-notify-observer-slimmer-257fedb3.js → child-nodes-notify-observer-slimmer-ed39283b.js} +1 -1
  5. package/dist/cjs/{code-block-c1d2e6a8.js → code-block-f1480ec3.js} +17 -17
  6. package/dist/cjs/{component-global-style-slimmer-adfa2e59.js → component-global-style-slimmer-93c5fb50.js} +2 -1
  7. package/dist/cjs/{component-usage-runtime-metrics-d10ace87.js → component-usage-runtime-metrics-4572c5b7.js} +1 -1
  8. package/dist/cjs/{component-value-history-controller-slimmer.abstract-787c67dc.js → component-value-history-controller-slimmer.abstract-a9264cc8.js} +5 -5
  9. package/dist/cjs/{create-public-api-runtime-metrics-slimmer-e2e274e1.js → create-public-api-runtime-metrics-slimmer-9cb09fb2.js} +3 -41
  10. package/dist/cjs/{dark-mode-style-controller-c21172aa.js → dark-mode-style-controller-3a04af3d.js} +292 -1254
  11. package/dist/cjs/{date-required-rule-30ee62d0.js → date-required-rule-912469e0.js} +1 -1
  12. package/dist/cjs/{design-token-cbc01283.js → design-token-41baf118.js} +2 -2
  13. package/dist/cjs/dom-node-subject-observer-factory-c62823de.js +141 -0
  14. package/dist/cjs/{dto-renderer-manager-2fc24151.js → dto-renderer-manager-809c947b.js} +230 -55
  15. package/dist/cjs/{element-appender-slimmer-318d29c7.js → element-appender-slimmer-34e4eb56.js} +349 -166
  16. package/dist/cjs/{event-emit-slimmer-2dacabbd.js → event-emit-slimmer-062cdcb8.js} +2 -2
  17. package/dist/cjs/{feature-flag-controller-ce2162c8.js → feature-flag-controller-04cb1e69.js} +7 -1
  18. package/dist/cjs/{form-field-controller-slimmer-aef2fb1e.js → form-field-controller-slimmer-102f37c7.js} +13 -14
  19. package/dist/cjs/{internal-icon-manager-32f9ed63.js → icon-manager-c12c6ea9.js} +1 -52
  20. package/dist/cjs/{image-annotation-action-e4a35325.js → image-annotation-action-8d9fa20c.js} +10 -9
  21. package/dist/cjs/index-592b4052.js +220 -0
  22. package/dist/cjs/{index-4d7bce1a.js → index-f054eb5d.js} +15 -3
  23. package/dist/cjs/index.cjs.js +68 -65
  24. package/dist/cjs/{inject-keyboard-manager-d21b4387.js → inject-keyboard-manager-0f5bd568.js} +1 -1
  25. package/dist/cjs/internal-icon-manager-c989189a.js +55 -0
  26. package/dist/cjs/{translation-5f9f9c0c.js → internal-translation-controller-053eb0f1.js} +0 -93
  27. package/dist/cjs/{internal-vega-event-manager-6befeb34.js → internal-vega-event-manager-f7ecf3d4.js} +81 -81
  28. package/dist/cjs/internal-vega-z-index-manager-f03ddb37.js +180 -0
  29. package/dist/cjs/{keyboard-manager-3dea6b28.js → keyboard-manager-055e9f67.js} +2 -2
  30. package/dist/cjs/{keyboard-manager-slimmer-0d45f944.js → keyboard-manager-slimmer-0cc0c1c7.js} +1 -1
  31. package/dist/cjs/loader.cjs.js +26 -23
  32. package/dist/cjs/misc-3d30df91.js +41 -0
  33. package/dist/cjs/{month-view-generator-49cc5fc2.js → month-view-generator-6a6dd527.js} +1 -1
  34. package/dist/cjs/{page-resize-observer-slimmer-11937d6f.js → page-resize-observer-slimmer-7f065ee1.js} +2 -54
  35. package/dist/cjs/{public-rules-661823fa.js → public-rules-922849f3.js} +12 -13
  36. package/dist/cjs/{range-79b668e7.js → range-8aa49b08.js} +2 -2
  37. package/dist/cjs/{responsive-format-facade-f71d399c.js → responsive-format-facade-ea59bdcd.js} +13 -22
  38. package/dist/cjs/{rich-text-editor-required-rule-d5feeffd.js → rich-text-editor-required-rule-22225840.js} +1 -1
  39. package/dist/cjs/{string-format-strategy.abstract-63514c60.js → string-format-strategy.abstract-f2575647.js} +1 -1
  40. package/dist/cjs/{string-input-formatter-slimmer-f3e0bbc7.js → string-input-formatter-slimmer-0a334fc6.js} +5 -5
  41. package/dist/cjs/{string-mask-strategy-d23ac21a.js → string-mask-strategy-dda58395.js} +2 -2
  42. package/dist/cjs/{style-formatter-566df206.js → style-formatter-0c3ced39.js} +2 -2
  43. package/dist/cjs/{sub-state-notify-slimmer-468e19aa.js → sub-state-notify-slimmer-58121111.js} +1 -1
  44. package/dist/cjs/{sub-state-observer-slimmer-5d0b8ac3.js → sub-state-observer-slimmer-1dfbc4c3.js} +2 -2
  45. package/dist/cjs/{time-required-rule-c96ecdc9.js → time-required-rule-d6fa7aa8.js} +1 -1
  46. package/dist/cjs/{function-extension-ca9aa115.js → token-extension-07cac85d.js} +501 -387
  47. package/dist/cjs/{translation-slimmer-f0ebe710.js → translation-slimmer-4533bd67.js} +4 -4
  48. package/dist/cjs/{type-guard-a0f026d8.js → type-guard-407ba0b8.js} +3 -3
  49. package/dist/cjs/{ui-9e181079.js → ui-234ea151.js} +12 -0
  50. package/dist/cjs/{valid-credit-card-number-rule-c854bed9.js → valid-credit-card-number-rule-41a8b51b.js} +1 -1
  51. package/dist/cjs/vega-accordion.cjs.entry.js +21 -30
  52. package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
  53. package/dist/cjs/vega-app-header-button.cjs.entry.js +183 -49
  54. package/dist/cjs/vega-backdrop.cjs.entry.js +2 -2
  55. package/dist/cjs/vega-banner.cjs.entry.js +15 -13
  56. package/dist/cjs/vega-bar-chart.cjs.entry.js +1 -1
  57. package/dist/cjs/vega-box.cjs.entry.js +18 -33
  58. package/dist/cjs/vega-brand-logo.cjs.entry.js +7 -5
  59. package/dist/cjs/vega-breadcrumb.cjs.entry.js +14 -13
  60. package/dist/cjs/vega-button-circle.cjs.entry.js +20 -30
  61. package/dist/cjs/vega-button-group_2.cjs.entry.js +15 -15
  62. package/dist/cjs/vega-button-link.cjs.entry.js +15 -14
  63. package/dist/cjs/vega-button.cjs.entry.js +21 -30
  64. package/dist/cjs/vega-calendar_4.cjs.entry.js +48 -45
  65. package/dist/cjs/vega-card.cjs.entry.js +9 -28
  66. package/dist/cjs/vega-carousel.cjs.entry.js +15 -26
  67. package/dist/cjs/vega-checkbox_2.cjs.entry.js +22 -20
  68. package/dist/cjs/vega-chip.cjs.entry.js +22 -33
  69. package/dist/cjs/vega-code-block.cjs.entry.js +658 -2709
  70. package/dist/cjs/vega-color-picker.cjs.entry.js +15 -12
  71. package/dist/cjs/vega-combo-box.cjs.entry.js +29 -28
  72. package/dist/cjs/vega-counter-badge.cjs.entry.js +1 -1
  73. package/dist/cjs/vega-date-picker_2.cjs.entry.js +53 -56
  74. package/dist/cjs/vega-dialog-controller-03ef4d9a.js +84 -0
  75. package/dist/cjs/vega-dialog_2.cjs.entry.js +37 -44
  76. package/dist/cjs/vega-divider.cjs.entry.js +12 -30
  77. package/dist/cjs/vega-dropdown_5.cjs.entry.js +49 -55
  78. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  79. package/dist/cjs/{dom-node-subject-observer-factory-b5e71bf6.js → vega-event-id-ee01d8dd.js} +0 -139
  80. package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
  81. package/dist/cjs/vega-field-label.cjs.entry.js +9 -8
  82. package/dist/cjs/vega-file-uploader.cjs.entry.js +28 -23
  83. package/dist/cjs/vega-flag-icon.cjs.entry.js +13 -27
  84. package/dist/cjs/vega-flex.cjs.entry.js +11 -28
  85. package/dist/cjs/vega-font.cjs.entry.js +12 -29
  86. package/dist/cjs/vega-form.cjs.entry.js +24 -22
  87. package/dist/cjs/vega-grid.cjs.entry.js +9 -28
  88. package/dist/cjs/vega-hint.cjs.entry.js +1 -1
  89. package/dist/cjs/vega-icon.cjs.entry.js +18 -31
  90. package/dist/cjs/vega-image-uploader.cjs.entry.js +34 -37
  91. package/dist/cjs/vega-input-credit-card.cjs.entry.js +31 -27
  92. package/dist/cjs/vega-input-numeric.cjs.entry.js +24 -22
  93. package/dist/cjs/vega-input-passcode.cjs.entry.js +26 -24
  94. package/dist/cjs/vega-input-phone-number.cjs.entry.js +31 -35
  95. package/dist/cjs/vega-input-range.cjs.entry.js +22 -20
  96. package/dist/cjs/vega-input-select.cjs.entry.js +41 -46
  97. package/dist/cjs/vega-input.cjs.entry.js +43 -31
  98. package/dist/cjs/vega-item-toggle.cjs.entry.js +8 -7
  99. package/dist/cjs/vega-left-nav_5.cjs.entry.js +38 -40
  100. package/dist/cjs/vega-line-chart.cjs.entry.js +1 -1
  101. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +16 -32
  102. package/dist/cjs/vega-page-notification_2.cjs.entry.js +5 -4
  103. package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +12 -12
  104. package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +9 -10
  105. package/dist/cjs/vega-pagination.cjs.entry.js +28 -38
  106. package/dist/cjs/vega-pie-chart.cjs.entry.js +1 -1
  107. package/dist/cjs/vega-popover_2.cjs.entry.js +21 -31
  108. package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +66 -39
  109. package/dist/cjs/vega-radio_2.cjs.entry.js +25 -23
  110. package/dist/cjs/vega-rich-text-content.cjs.entry.js +22 -20
  111. package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +115 -62
  112. package/dist/cjs/vega-section-title.cjs.entry.js +1 -1
  113. package/dist/cjs/vega-segment-control.cjs.entry.js +10 -8
  114. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +25 -32
  115. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +22 -20
  116. package/dist/cjs/vega-sidenav_3.cjs.entry.js +34 -40
  117. package/dist/cjs/vega-signature-capture.cjs.entry.js +27 -31
  118. package/dist/cjs/vega-skeleton.cjs.entry.js +1 -1
  119. package/dist/cjs/vega-slot-container.cjs.entry.js +1 -1
  120. package/dist/cjs/vega-stepper.cjs.entry.js +23 -21
  121. package/dist/cjs/vega-tab-group_2.cjs.entry.js +15 -14
  122. package/dist/cjs/vega-table_11.cjs.entry.js +67 -68
  123. package/dist/cjs/vega-text.cjs.entry.js +4 -3
  124. package/dist/cjs/vega-textarea.cjs.entry.js +22 -20
  125. package/dist/cjs/vega-time-picker_2.cjs.entry.js +35 -41
  126. package/dist/cjs/vega-toggle-switch.cjs.entry.js +15 -12
  127. package/dist/cjs/vega-tooltip_2.cjs.entry.js +17 -28
  128. package/dist/cjs/vega.cjs.js +26 -23
  129. package/dist/cjs/{index-95fca64f.js → wait-for-component-did-render-70a01bf9.js} +1 -12
  130. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +17 -2
  131. package/dist/collection/components/vega-box/slimmers/controllers/vega-box-responsive-style-controller.js +2 -1
  132. package/dist/collection/components/vega-box/slimmers/controllers/vega-box-state-styles-controller.js +2 -1
  133. package/dist/collection/components/vega-button/vega-button.js +2 -1
  134. package/dist/collection/components/vega-button-circle/vega-button-circle.js +2 -1
  135. package/dist/collection/components/vega-button-link/vega-button-link.css +1 -1
  136. package/dist/collection/components/vega-button-link/vega-button-link.js +2 -1
  137. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/base-repeat-pattern.js +1 -1
  138. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-daily-repeat-pattern.js +1 -1
  139. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-monthly-repeat-pattern.js +1 -1
  140. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-weekly-repeat-pattern.js +1 -1
  141. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-yearly-repeat-pattern.js +1 -1
  142. package/dist/collection/components/vega-code-block/slimmers/controllers/prism-code-highlight-parse-controller.js +5 -14
  143. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -2
  144. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +1 -1
  145. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +1 -1
  146. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +2 -2
  147. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +2 -2
  148. package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +3 -3
  149. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +6 -4
  150. package/dist/collection/components/vega-icon/vega-icon.js +2 -1
  151. package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +10 -2
  152. package/dist/collection/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.js +1 -1
  153. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +2 -2
  154. package/dist/collection/components/vega-pagination/vega-pagination.js +1 -1
  155. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.js +30 -6
  156. package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.js +1 -1
  157. package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +8 -1
  158. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.js +27 -0
  159. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.css +12 -0
  160. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +8 -3
  161. package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +1 -1
  162. package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +16 -0
  163. package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +3 -22
  164. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.js +59 -0
  165. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.js +4 -0
  166. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.js +21 -0
  167. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.js +21 -0
  168. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.js +77 -0
  169. package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +1 -1
  170. package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +1 -1
  171. package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/html-block.test.js +39 -0
  172. package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +166 -1
  173. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.js +186 -0
  174. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.js +22 -0
  175. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.js +22 -0
  176. package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.js +26 -0
  177. package/dist/collection/components/vega-signature-capture/slimmers/written-mode/controllers/written-mode-svg-controller.js +2 -1
  178. package/dist/collection/components/vega-table/interface.js +3 -0
  179. package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +1 -1
  180. package/dist/collection/global/scripts/before-vega-load.js +4 -3
  181. package/dist/collection/helpers/calendar/calendar-date.js +1 -1
  182. package/dist/collection/helpers/calendar/calendar-event.js +1 -1
  183. package/dist/collection/helpers/calendar/calendar-time.js +1 -1
  184. package/dist/collection/helpers/code-format/code-formatter.js +57 -7
  185. package/dist/collection/helpers/code-format/test/code-formatter.test.js +49 -1
  186. package/dist/collection/helpers/common/index.js +2 -37
  187. package/dist/collection/helpers/common/test/wait-for-vega-handler.test.js +2 -2
  188. package/dist/collection/helpers/common/wait-for-component-did-render.js +27 -0
  189. package/dist/collection/helpers/common/wait-for-vega-handler.js +12 -1
  190. package/dist/collection/helpers/feature-control/feature-flags-map.js +6 -0
  191. package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-border-radius-style-formatter.js +1 -1
  192. package/dist/collection/helpers/public-api.js +0 -2
  193. package/dist/collection/helpers/slimmers/component-global-style-slimmer.js +2 -1
  194. package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +3 -4
  195. package/dist/collection/helpers/slimmers/form-field-message-translator.js +1 -1
  196. package/dist/collection/helpers/slimmers/global/vega-translate-observer-slimmer.js +1 -1
  197. package/dist/collection/helpers/slimmers/global/vega-watch-method-cancel-slimmer.js +1 -1
  198. package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +128 -0
  199. package/dist/collection/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.js +196 -0
  200. package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +162 -151
  201. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +9 -0
  202. package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +112 -1
  203. package/dist/collection/helpers/slimmers/position-calculation/screen-scroll-position-update.js +53 -0
  204. package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +103 -6
  205. package/dist/collection/helpers/slimmers/string-input-formatter-slimmer.js +1 -1
  206. package/dist/collection/helpers/slimmers/translation/translation-slimmer.js +1 -1
  207. package/dist/collection/helpers/theme/controllers/brand-style-controller.js +3 -1
  208. package/dist/collection/helpers/theme/controllers/color-schema-overriding-controller.js +8 -6
  209. package/dist/collection/helpers/theme/controllers/dark-mode-style-controller.js +3 -1
  210. package/dist/collection/helpers/theme/internal-theme-manager.js +2 -1
  211. package/dist/collection/helpers/theme/tests/theme-manager-controller.test.js +1 -2
  212. package/dist/collection/helpers/ui/element-appender.js +4 -5
  213. package/dist/collection/helpers/ui/test/element-appender.test.js +66 -17
  214. package/dist/collection/index.js +2 -0
  215. package/dist/collection/polyfill/prism/index.js +2 -0
  216. package/dist/collection/polyfill/prism/languages/css.js +86 -0
  217. package/dist/collection/polyfill/prism/languages/javascript.js +96 -0
  218. package/dist/collection/polyfill/prism/languages/jsx.js +46 -0
  219. package/dist/collection/polyfill/prism/languages/language-registry.js +41 -0
  220. package/dist/collection/polyfill/prism/languages/markup.js +71 -0
  221. package/dist/collection/polyfill/prism/languages/tsx.js +10 -0
  222. package/dist/collection/polyfill/prism/languages/typescript.js +64 -0
  223. package/dist/collection/polyfill/prism/test/css.test.js +61 -0
  224. package/dist/collection/polyfill/prism/test/javascript.test.js +113 -0
  225. package/dist/collection/polyfill/prism/test/jsx.test.js +48 -0
  226. package/dist/collection/polyfill/prism/test/language-registry.test.js +77 -0
  227. package/dist/collection/polyfill/prism/test/markup.test.js +57 -0
  228. package/dist/collection/polyfill/prism/test/test-utils.js +22 -0
  229. package/dist/collection/polyfill/prism/test/tokenizer.test.js +180 -0
  230. package/dist/collection/polyfill/prism/test/tsx.test.js +87 -0
  231. package/dist/collection/polyfill/prism/test/typescript.test.js +86 -0
  232. package/dist/collection/polyfill/prism/tokenizer.js +242 -0
  233. package/dist/collection/polyfill/prism/types.js +1 -0
  234. package/dist/collection/polyfill/tinycolor/tinycolor-polyfill.js +320 -0
  235. package/dist/collection/polyfill/tinycolor/tinycolor-polyfill.test.js +361 -0
  236. package/dist/collection/types/ui.type.js +12 -0
  237. package/dist/collection/utils/e2e-utils.js +10 -3
  238. package/dist/collection/utils/sanitize/constants/tag-sets.js +5 -0
  239. package/dist/collection/utils/sanitize/core/html-sanitizer.js +39 -0
  240. package/dist/collection/utils/sanitize/core/sanitize-strategy.js +62 -0
  241. package/dist/collection/utils/sanitize/core/types.js +4 -0
  242. package/dist/collection/utils/sanitize/index.js +12 -0
  243. package/dist/collection/utils/sanitize/strategies/empty-sanitize-strategy.js +17 -0
  244. package/dist/collection/utils/sanitize/strategies/index.js +3 -0
  245. package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +13 -0
  246. package/dist/collection/utils/sanitize/strategies/style-sanitize-strategy.js +50 -0
  247. package/dist/collection/utils/sanitize/test/empty-strategy.test.js +12 -0
  248. package/dist/collection/utils/sanitize/test/html-sanitizer.test.js +57 -0
  249. package/dist/collection/utils/sanitize/test/label-strategy.test.js +56 -0
  250. package/dist/collection/utils/sanitize/test/sanitize-strategy.test.js +85 -0
  251. package/dist/collection/utils/sanitize/test/sanitize.test.js +22 -0
  252. package/dist/collection/utils/sanitize/test/serialize-fragment.test.js +25 -0
  253. package/dist/collection/utils/sanitize/test/style-strategy.test.js +45 -0
  254. package/dist/collection/utils/sanitize/utils/serialize-fragment.js +17 -0
  255. package/dist/esm/{app-globals-f3414aca.js → app-globals-c0676920.js} +12 -16
  256. package/dist/esm/breakpoints-56e5407b.js +53 -0
  257. package/dist/esm/{child-nodes-event-prevent-slimmer-e662bee2.js → child-nodes-event-prevent-slimmer-649b9d30.js} +2 -2
  258. package/dist/esm/{child-nodes-notify-observer-slimmer-b676cd2b.js → child-nodes-notify-observer-slimmer-541dd6a4.js} +1 -1
  259. package/dist/esm/{code-block-8ee34ab6.js → code-block-b6247a45.js} +7 -7
  260. package/dist/esm/{component-global-style-slimmer-08046b38.js → component-global-style-slimmer-ac703085.js} +2 -1
  261. package/dist/esm/{component-usage-runtime-metrics-a84cc93e.js → component-usage-runtime-metrics-46020a03.js} +1 -1
  262. package/dist/esm/{component-value-history-controller-slimmer.abstract-a61bf821.js → component-value-history-controller-slimmer.abstract-2bb8533d.js} +6 -6
  263. package/dist/esm/{create-public-api-runtime-metrics-slimmer-bedf3a1e.js → create-public-api-runtime-metrics-slimmer-aaadaa08.js} +3 -38
  264. package/dist/esm/{dark-mode-style-controller-de88a117.js → dark-mode-style-controller-82e5c1c6.js} +292 -1254
  265. package/dist/esm/{date-required-rule-47ecc28f.js → date-required-rule-e771e7d9.js} +1 -1
  266. package/dist/esm/{design-token-9b299589.js → design-token-4aee1c56.js} +2 -2
  267. package/dist/esm/dom-node-subject-observer-factory-82f346e3.js +138 -0
  268. package/dist/esm/{dto-renderer-manager-f07cf2d9.js → dto-renderer-manager-6fd22ab7.js} +204 -29
  269. package/dist/esm/{element-appender-slimmer-7cb08343.js → element-appender-slimmer-e4713a72.js} +348 -165
  270. package/dist/esm/{event-emit-slimmer-09827cec.js → event-emit-slimmer-ffaecb9a.js} +2 -2
  271. package/dist/esm/{feature-flag-controller-51659753.js → feature-flag-controller-09ea7e87.js} +7 -1
  272. package/dist/esm/{form-field-controller-slimmer-5d9dc384.js → form-field-controller-slimmer-5817d14d.js} +10 -11
  273. package/dist/esm/{internal-icon-manager-f0486245.js → icon-manager-539d7cf7.js} +2 -52
  274. package/dist/esm/{image-annotation-action-53529cd9.js → image-annotation-action-6701b4c9.js} +6 -5
  275. package/dist/esm/index-3b327f29.js +215 -0
  276. package/dist/esm/{index-e9da316f.js → index-bfc6dfa2.js} +13 -1
  277. package/dist/esm/index.js +32 -29
  278. package/dist/esm/{inject-keyboard-manager-83d76ff5.js → inject-keyboard-manager-78730062.js} +1 -1
  279. package/dist/esm/internal-icon-manager-bd80b3bb.js +53 -0
  280. package/dist/esm/{translation-96e5debd.js → internal-translation-controller-911515f9.js} +1 -93
  281. package/dist/esm/{internal-vega-event-manager-efb6786e.js → internal-vega-event-manager-32a3d848.js} +1 -1
  282. package/dist/esm/internal-vega-z-index-manager-7d2b54c3.js +178 -0
  283. package/dist/esm/{keyboard-manager-c92808d8.js → keyboard-manager-38934f94.js} +2 -2
  284. package/dist/esm/{keyboard-manager-slimmer-79c78ce8.js → keyboard-manager-slimmer-9984d922.js} +1 -1
  285. package/dist/esm/loader.js +27 -24
  286. package/dist/esm/misc-9fdbcfbb.js +37 -0
  287. package/dist/esm/{month-view-generator-16192182.js → month-view-generator-eaf9029c.js} +1 -1
  288. package/dist/esm/{page-resize-observer-slimmer-8744cb44.js → page-resize-observer-slimmer-d6af0d86.js} +2 -52
  289. package/dist/esm/{public-rules-6ebdfcf5.js → public-rules-25cc3a39.js} +13 -14
  290. package/dist/esm/{range-5257c062.js → range-663f44dc.js} +2 -2
  291. package/dist/esm/{responsive-format-facade-05e53016.js → responsive-format-facade-7a071174.js} +3 -12
  292. package/dist/esm/{rich-text-editor-required-rule-f63a37d1.js → rich-text-editor-required-rule-a238b862.js} +1 -1
  293. package/dist/esm/{string-format-strategy.abstract-fc60db79.js → string-format-strategy.abstract-713fba36.js} +1 -1
  294. package/dist/esm/{string-input-formatter-slimmer-ee32b1fd.js → string-input-formatter-slimmer-5b413ff9.js} +4 -4
  295. package/dist/esm/{string-mask-strategy-0b0accaa.js → string-mask-strategy-6beaf664.js} +2 -2
  296. package/dist/esm/{style-formatter-5f5bd714.js → style-formatter-3d06b72d.js} +2 -2
  297. package/dist/esm/{sub-state-notify-slimmer-4453047a.js → sub-state-notify-slimmer-5133f1a8.js} +2 -2
  298. package/dist/esm/{sub-state-observer-slimmer-202ec7dc.js → sub-state-observer-slimmer-478c9f41.js} +3 -3
  299. package/dist/esm/{time-required-rule-5fa43804.js → time-required-rule-e4138a76.js} +1 -1
  300. package/dist/esm/{function-extension-63028f20.js → token-extension-e33fd151.js} +488 -376
  301. package/dist/esm/{translation-slimmer-c936cb1b.js → translation-slimmer-2394b173.js} +1 -1
  302. package/dist/esm/{type-guard-c65a227d.js → type-guard-f50e34d6.js} +1 -1
  303. package/dist/esm/{ui-bb99c0c2.js → ui-ee31416b.js} +12 -0
  304. package/dist/esm/{valid-credit-card-number-rule-666c415d.js → valid-credit-card-number-rule-22ce81db.js} +1 -1
  305. package/dist/esm/vega-accordion.entry.js +19 -28
  306. package/dist/esm/vega-app-footer.entry.js +3 -3
  307. package/dist/esm/vega-app-header-button.entry.js +174 -40
  308. package/dist/esm/vega-backdrop.entry.js +2 -2
  309. package/dist/esm/vega-banner.entry.js +12 -10
  310. package/dist/esm/vega-bar-chart.entry.js +1 -1
  311. package/dist/esm/vega-box.entry.js +14 -29
  312. package/dist/esm/vega-brand-logo.entry.js +7 -5
  313. package/dist/esm/vega-breadcrumb.entry.js +11 -10
  314. package/dist/esm/vega-button-circle.entry.js +19 -29
  315. package/dist/esm/vega-button-group_2.entry.js +12 -12
  316. package/dist/esm/vega-button-link.entry.js +13 -12
  317. package/dist/esm/vega-button.entry.js +19 -28
  318. package/dist/esm/vega-calendar_4.entry.js +23 -20
  319. package/dist/esm/vega-card.entry.js +9 -28
  320. package/dist/esm/vega-carousel.entry.js +14 -25
  321. package/dist/esm/vega-checkbox_2.entry.js +19 -17
  322. package/dist/esm/vega-chip.entry.js +18 -29
  323. package/dist/esm/vega-code-block.entry.js +653 -2704
  324. package/dist/esm/vega-color-picker.entry.js +15 -12
  325. package/dist/esm/vega-combo-box.entry.js +22 -21
  326. package/dist/esm/vega-counter-badge.entry.js +1 -1
  327. package/dist/esm/vega-date-picker_2.entry.js +34 -37
  328. package/dist/esm/vega-dialog-controller-bbb2fc52.js +82 -0
  329. package/dist/esm/vega-dialog_2.entry.js +23 -30
  330. package/dist/esm/vega-divider.entry.js +11 -29
  331. package/dist/esm/vega-dropdown_5.entry.js +39 -45
  332. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  333. package/dist/esm/vega-event-id-38aa77a0.js +113 -0
  334. package/dist/esm/vega-field-error.entry.js +1 -1
  335. package/dist/esm/vega-field-label.entry.js +7 -6
  336. package/dist/esm/vega-file-uploader.entry.js +19 -14
  337. package/dist/esm/vega-flag-icon.entry.js +12 -26
  338. package/dist/esm/vega-flex.entry.js +11 -28
  339. package/dist/esm/vega-font.entry.js +11 -28
  340. package/dist/esm/vega-form.entry.js +20 -18
  341. package/dist/esm/vega-grid.entry.js +9 -28
  342. package/dist/esm/vega-hint.entry.js +1 -1
  343. package/dist/esm/vega-icon.entry.js +15 -28
  344. package/dist/esm/vega-image-uploader.entry.js +28 -31
  345. package/dist/esm/vega-input-credit-card.entry.js +25 -21
  346. package/dist/esm/vega-input-numeric.entry.js +21 -19
  347. package/dist/esm/vega-input-passcode.entry.js +20 -18
  348. package/dist/esm/vega-input-phone-number.entry.js +27 -31
  349. package/dist/esm/vega-input-range.entry.js +19 -17
  350. package/dist/esm/vega-input-select.entry.js +27 -32
  351. package/dist/esm/vega-input.entry.js +33 -21
  352. package/dist/esm/{vega-internal-event-id-4a06d705.js → vega-internal-event-id-799d012e.js} +1 -1
  353. package/dist/esm/vega-item-toggle.entry.js +6 -5
  354. package/dist/esm/vega-left-nav_5.entry.js +29 -31
  355. package/dist/esm/vega-line-chart.entry.js +1 -1
  356. package/dist/esm/vega-loader-wrapper_2.entry.js +13 -29
  357. package/dist/esm/vega-page-notification_2.entry.js +4 -3
  358. package/dist/esm/vega-pagination-page-selector-mobile.entry.js +9 -9
  359. package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +7 -8
  360. package/dist/esm/vega-pagination.entry.js +20 -30
  361. package/dist/esm/vega-pie-chart.entry.js +1 -1
  362. package/dist/esm/vega-popover_2.entry.js +20 -30
  363. package/dist/esm/vega-progress-tracker_2.entry.js +64 -37
  364. package/dist/esm/vega-radio_2.entry.js +21 -19
  365. package/dist/esm/vega-rich-text-content.entry.js +18 -16
  366. package/dist/esm/vega-rich-text-editor_4.entry.js +90 -37
  367. package/dist/esm/vega-section-title.entry.js +1 -1
  368. package/dist/esm/vega-segment-control.entry.js +9 -7
  369. package/dist/esm/vega-selection-chip_2.entry.js +22 -29
  370. package/dist/esm/vega-selection-tile_2.entry.js +19 -17
  371. package/dist/esm/vega-sidenav_3.entry.js +24 -30
  372. package/dist/esm/vega-signature-capture.entry.js +24 -28
  373. package/dist/esm/vega-skeleton.entry.js +1 -1
  374. package/dist/esm/vega-slot-container.entry.js +1 -1
  375. package/dist/esm/vega-stepper.entry.js +18 -16
  376. package/dist/esm/vega-tab-group_2.entry.js +11 -10
  377. package/dist/esm/vega-table_11.entry.js +28 -29
  378. package/dist/esm/vega-text.entry.js +4 -3
  379. package/dist/esm/vega-textarea.entry.js +18 -16
  380. package/dist/esm/vega-time-picker_2.entry.js +26 -32
  381. package/dist/esm/vega-toggle-switch.entry.js +15 -12
  382. package/dist/esm/vega-tooltip_2.entry.js +18 -29
  383. package/dist/esm/vega.js +27 -24
  384. package/dist/esm/{index-51a7da7f.js → wait-for-component-did-render-b08ef07b.js} +3 -13
  385. package/dist/sri/vega-sri-manifest.json +415 -403
  386. package/dist/types/components/vega-app-footer/types.d.ts +18 -0
  387. package/dist/types/components/vega-app-header-button/types.d.ts +31 -0
  388. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +2 -0
  389. package/dist/types/components/vega-banner/types.d.ts +9 -0
  390. package/dist/types/components/vega-box/interface.d.ts +46 -0
  391. package/dist/types/components/vega-breadcrumb/types.d.ts +28 -0
  392. package/dist/types/components/vega-button/types.d.ts +12 -0
  393. package/dist/types/components/vega-button-circle/types.d.ts +9 -0
  394. package/dist/types/components/vega-button-group/types.d.ts +48 -0
  395. package/dist/types/components/vega-button-link/types.d.ts +3 -0
  396. package/dist/types/components/vega-calendar/types.d.ts +189 -0
  397. package/dist/types/components/vega-calendar/vega-calendar-event-preview/types.d.ts +6 -0
  398. package/dist/types/components/vega-chart/vega-bar-chart/types.d.ts +3 -0
  399. package/dist/types/components/vega-chip/types.d.ts +12 -0
  400. package/dist/types/components/vega-code-block/slimmers/controllers/prism-code-highlight-parse-controller.d.ts +2 -10
  401. package/dist/types/components/vega-combo-box/types.d.ts +6 -0
  402. package/dist/types/components/vega-date-picker/types.d.ts +39 -0
  403. package/dist/types/components/vega-dialog/types.d.ts +5 -0
  404. package/dist/types/components/vega-divider/interface.d.ts +18 -0
  405. package/dist/types/components/vega-dropdown/types.d.ts +30 -0
  406. package/dist/types/components/vega-dropdown/vega-dropdown-item/types.d.ts +9 -1
  407. package/dist/types/components/vega-field-error/types.d.ts +12 -0
  408. package/dist/types/components/vega-field-label/types.d.ts +16 -0
  409. package/dist/types/components/vega-file-uploader/types.d.ts +12 -0
  410. package/dist/types/components/vega-font/types.d.ts +3 -0
  411. package/dist/types/components/vega-form/types.d.ts +45 -0
  412. package/dist/types/components/vega-image-uploader/types.d.ts +33 -1
  413. package/dist/types/components/vega-input/types.d.ts +31 -0
  414. package/dist/types/components/vega-input-phone-number/types.d.ts +15 -0
  415. package/dist/types/components/vega-input-range/types.d.ts +9 -0
  416. package/dist/types/components/vega-input-select/types.d.ts +45 -0
  417. package/dist/types/components/vega-item-toggle/types.d.ts +21 -0
  418. package/dist/types/components/vega-loading-indicator/types.d.ts +3 -0
  419. package/dist/types/components/vega-modal/types.d.ts +9 -0
  420. package/dist/types/components/vega-nav/interface.d.ts +108 -0
  421. package/dist/types/components/vega-page-notification/types.d.ts +15 -0
  422. package/dist/types/components/vega-pagination/types.d.ts +11 -0
  423. package/dist/types/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.d.ts +16 -4
  424. package/dist/types/components/vega-progress-tracker/type.d.ts +8 -0
  425. package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.d.ts +6 -0
  426. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +2 -2
  427. package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +10 -0
  428. package/dist/types/components/vega-rich-text-editor/interface.d.ts +473 -2
  429. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.d.ts +13 -0
  430. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.d.ts +35 -0
  431. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.d.ts +4 -0
  432. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.d.ts +19 -0
  433. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.d.ts +19 -0
  434. package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.d.ts +59 -0
  435. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.d.ts +1 -0
  436. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.d.ts +1 -0
  437. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.d.ts +1 -0
  438. package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.d.ts +1 -0
  439. package/dist/types/components/vega-rich-text-editor/vega-rich-text-image-editor/types.d.ts +24 -0
  440. package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/types.d.ts +24 -0
  441. package/dist/types/components/vega-segment-control/types.d.ts +18 -0
  442. package/dist/types/components/vega-selection-chip/interface.d.ts +12 -0
  443. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/interface.d.ts +4 -0
  444. package/dist/types/components/vega-selection-tile/interface.d.ts +9 -0
  445. package/dist/types/components/vega-sidenav/types.d.ts +51 -0
  446. package/dist/types/components/vega-signature-capture/types.d.ts +29 -2
  447. package/dist/types/components/vega-skeleton/interface.d.ts +6 -0
  448. package/dist/types/components/vega-tab-group/types.d.ts +36 -0
  449. package/dist/types/components/vega-table/interface.d.ts +237 -20
  450. package/dist/types/components/vega-table/vega-table-expand-row/types.d.ts +6 -0
  451. package/dist/types/components/vega-table/vega-table-foot/types.d.ts +9 -0
  452. package/dist/types/components/vega-table/vega-table-foot-row/types.d.ts +9 -0
  453. package/dist/types/components/vega-table/vega-table-head/types.d.ts +9 -0
  454. package/dist/types/components/vega-table/vega-table-head-row/types.d.ts +12 -0
  455. package/dist/types/components/vega-table/vega-table-row/types.d.ts +18 -0
  456. package/dist/types/components/vega-text/types.d.ts +6 -0
  457. package/dist/types/components/vega-time-picker/types.d.ts +33 -0
  458. package/dist/types/components/vega-virtual-scroll/types.d.ts +30 -1
  459. package/dist/types/components.d.ts +13 -3
  460. package/dist/types/helpers/code-format/code-formatter.d.ts +14 -0
  461. package/dist/types/helpers/common/index.d.ts +2 -15
  462. package/dist/types/helpers/common/wait-for-component-did-render.d.ts +8 -0
  463. package/dist/types/helpers/common/wait-for-vega-handler.d.ts +6 -15
  464. package/dist/types/helpers/feature-control/feature-flag.d.ts +2 -1
  465. package/dist/types/helpers/public-api.d.ts +0 -2
  466. package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +44 -0
  467. package/dist/types/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.d.ts +1 -0
  468. package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +57 -48
  469. package/dist/types/helpers/slimmers/position-calculation/position-calculation-controller.d.ts +5 -0
  470. package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +41 -1
  471. package/dist/types/helpers/slimmers/position-calculation/screen-scroll-position-update.d.ts +39 -0
  472. package/dist/types/helpers/ui/element-appender.d.ts +0 -1
  473. package/dist/types/index.d.ts +2 -0
  474. package/dist/types/polyfill/prism/index.d.ts +3 -0
  475. package/dist/types/polyfill/prism/languages/css.d.ts +6 -0
  476. package/dist/types/polyfill/prism/languages/javascript.d.ts +7 -0
  477. package/dist/types/polyfill/prism/languages/jsx.d.ts +7 -0
  478. package/dist/types/polyfill/prism/languages/language-registry.d.ts +8 -0
  479. package/dist/types/polyfill/prism/languages/markup.d.ts +6 -0
  480. package/dist/types/polyfill/prism/languages/tsx.d.ts +7 -0
  481. package/dist/types/polyfill/prism/languages/typescript.d.ts +2 -0
  482. package/dist/types/polyfill/prism/test/css.test.d.ts +1 -0
  483. package/dist/types/polyfill/prism/test/javascript.test.d.ts +1 -0
  484. package/dist/types/polyfill/prism/test/jsx.test.d.ts +1 -0
  485. package/dist/types/polyfill/prism/test/language-registry.test.d.ts +1 -0
  486. package/dist/types/polyfill/prism/test/markup.test.d.ts +1 -0
  487. package/dist/types/polyfill/prism/test/test-utils.d.ts +10 -0
  488. package/dist/types/polyfill/prism/test/tokenizer.test.d.ts +1 -0
  489. package/dist/types/polyfill/prism/test/tsx.test.d.ts +1 -0
  490. package/dist/types/polyfill/prism/test/typescript.test.d.ts +1 -0
  491. package/dist/types/polyfill/prism/tokenizer.d.ts +17 -0
  492. package/dist/types/polyfill/prism/types.d.ts +25 -0
  493. package/dist/types/polyfill/tinycolor/tinycolor-polyfill.d.ts +149 -0
  494. package/dist/types/polyfill/tinycolor/tinycolor-polyfill.test.d.ts +1 -0
  495. package/dist/types/types/components.type.d.ts +4 -1
  496. package/dist/types/types/design-token.type.d.ts +36 -0
  497. package/dist/types/types/flag.type.d.ts +3 -0
  498. package/dist/types/types/general.d.ts +12 -0
  499. package/dist/types/types/ui.type.d.ts +372 -0
  500. package/dist/types/types/vega-chart.d.ts +281 -2
  501. package/dist/types/utils/e2e-utils.d.ts +2 -0
  502. package/dist/types/utils/sanitize/constants/tag-sets.d.ts +6 -0
  503. package/dist/types/utils/sanitize/core/html-sanitizer.d.ts +22 -0
  504. package/dist/types/utils/sanitize/core/sanitize-strategy.d.ts +27 -0
  505. package/dist/types/utils/sanitize/core/types.d.ts +13 -0
  506. package/dist/types/utils/sanitize/index.d.ts +12 -0
  507. package/dist/types/utils/sanitize/strategies/empty-sanitize-strategy.d.ts +14 -0
  508. package/dist/types/utils/sanitize/strategies/index.d.ts +3 -0
  509. package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +10 -0
  510. package/dist/types/utils/sanitize/strategies/style-sanitize-strategy.d.ts +24 -0
  511. package/dist/types/utils/sanitize/test/empty-strategy.test.d.ts +1 -0
  512. package/dist/types/utils/sanitize/test/html-sanitizer.test.d.ts +1 -0
  513. package/dist/types/utils/sanitize/test/label-strategy.test.d.ts +1 -0
  514. package/dist/types/utils/sanitize/test/sanitize-strategy.test.d.ts +1 -0
  515. package/dist/types/utils/sanitize/test/sanitize.test.d.ts +1 -0
  516. package/dist/types/utils/sanitize/test/serialize-fragment.test.d.ts +1 -0
  517. package/dist/types/utils/sanitize/test/style-strategy.test.d.ts +1 -0
  518. package/dist/types/utils/sanitize/utils/serialize-fragment.d.ts +12 -0
  519. package/dist/vega/index.esm.js +1 -1
  520. package/dist/vega/p-01d58eb8.entry.js +1 -0
  521. package/dist/vega/p-021d4ae4.js +1 -0
  522. package/dist/vega/p-02a7d60c.entry.js +1 -0
  523. package/dist/vega/{p-66fa700b.js → p-02c9796a.js} +1 -1
  524. package/dist/vega/p-033c31d8.entry.js +1 -0
  525. package/dist/vega/{p-e77a83e4.js → p-07cb0243.js} +1 -1
  526. package/dist/vega/p-087ea379.entry.js +1 -0
  527. package/dist/vega/{p-e5af5a4d.entry.js → p-0b4880bd.entry.js} +1 -1
  528. package/dist/vega/{p-920719ad.js → p-0e679d8c.js} +1 -1
  529. package/dist/vega/{p-c9b6b5a9.js → p-10734a00.js} +1 -1
  530. package/dist/vega/p-154f9cf7.entry.js +1 -0
  531. package/dist/vega/p-179aad4f.entry.js +1 -0
  532. package/dist/vega/p-1a3236e7.entry.js +1 -0
  533. package/dist/vega/p-1f3cd061.entry.js +1 -0
  534. package/dist/vega/p-1f5e35dc.entry.js +1 -0
  535. package/dist/vega/p-242fbcad.entry.js +1 -0
  536. package/dist/vega/p-249df6d2.entry.js +1 -0
  537. package/dist/vega/p-28ad1864.entry.js +1 -0
  538. package/dist/vega/p-2a10e2e5.js +1 -0
  539. package/dist/vega/p-2b49686d.entry.js +1 -0
  540. package/dist/vega/p-2ba78982.entry.js +1 -0
  541. package/dist/vega/p-2bb5a232.js +1 -0
  542. package/dist/vega/{p-e9b86dac.entry.js → p-2c1a85dd.entry.js} +1 -1
  543. package/dist/vega/p-2cc9d126.entry.js +1 -0
  544. package/dist/vega/p-2d69632d.js +1 -0
  545. package/dist/vega/p-2e91295d.entry.js +1 -0
  546. package/dist/vega/p-31ac7386.js +1 -0
  547. package/dist/vega/p-32033e7a.js +1 -0
  548. package/dist/vega/p-32183637.entry.js +1 -0
  549. package/dist/vega/p-3244c605.entry.js +1 -0
  550. package/dist/vega/p-32faa460.entry.js +1 -0
  551. package/dist/vega/p-33f9ad94.entry.js +1 -0
  552. package/dist/vega/{p-4897bedd.entry.js → p-358b4a06.entry.js} +1 -1
  553. package/dist/vega/p-3afc025e.entry.js +1 -0
  554. package/dist/vega/p-3d8122ab.entry.js +1 -0
  555. package/dist/vega/{p-ea04a387.entry.js → p-3f3c771a.entry.js} +1 -1
  556. package/dist/vega/{p-1f83cebf.js → p-415ffa35.js} +1 -1
  557. package/dist/vega/{p-d849e0f5.js → p-4415ad28.js} +1 -1
  558. package/dist/vega/{p-ce1a2982.js → p-464559e3.js} +1 -1
  559. package/dist/vega/p-49845a91.js +1 -0
  560. package/dist/vega/{p-e16b3adf.js → p-4bffdb28.js} +1 -1
  561. package/dist/vega/p-4e017458.entry.js +1 -0
  562. package/dist/vega/p-4e4a0228.entry.js +1 -0
  563. package/dist/vega/{p-a2aeb646.js → p-4ea30592.js} +1 -1
  564. package/dist/vega/{p-0b38a01f.entry.js → p-51fcb07f.entry.js} +1 -1
  565. package/dist/vega/p-57927b10.entry.js +1 -0
  566. package/dist/vega/p-5831d6d3.entry.js +1 -0
  567. package/dist/vega/p-593e0f80.js +1 -0
  568. package/dist/vega/p-5a25014f.js +1 -0
  569. package/dist/vega/p-5eb7f382.js +1 -0
  570. package/dist/vega/p-5f377954.js +1 -1
  571. package/dist/vega/p-644f701a.js +1 -0
  572. package/dist/vega/p-6a62e476.entry.js +1 -0
  573. package/dist/vega/{p-75f981ce.js → p-6b6f0fb4.js} +1 -1
  574. package/dist/vega/p-6d219c44.entry.js +1 -0
  575. package/dist/vega/p-6d60b66a.entry.js +1 -0
  576. package/dist/vega/{p-ad2055f4.entry.js → p-6dcdb580.entry.js} +1 -1
  577. package/dist/vega/{p-c8f1b9d5.js → p-7181861a.js} +1 -1
  578. package/dist/vega/p-76181a70.entry.js +1 -0
  579. package/dist/vega/p-781fd6e0.js +1 -0
  580. package/dist/vega/p-7958614a.entry.js +1 -0
  581. package/dist/vega/{p-5b71c85e.js → p-7c39ce96.js} +1 -1
  582. package/dist/vega/p-7d7aaff9.entry.js +1 -0
  583. package/dist/vega/{p-4dd6554e.entry.js → p-7f46cc1e.entry.js} +1 -1
  584. package/dist/vega/{p-badad9ed.js → p-81b044b9.js} +1 -1
  585. package/dist/vega/p-8950987b.entry.js +1 -0
  586. package/dist/vega/p-89f2e16d.entry.js +1 -0
  587. package/dist/vega/p-8ac2d165.js +1 -0
  588. package/dist/vega/p-8b153acd.entry.js +1 -0
  589. package/dist/vega/p-8b5d3a52.js +1 -0
  590. package/dist/vega/{p-fff13ed1.entry.js → p-8b891f36.entry.js} +1 -1
  591. package/dist/vega/p-8dbdd609.entry.js +1 -0
  592. package/dist/vega/{p-dd11f735.js → p-9339c6c4.js} +1 -1
  593. package/dist/vega/p-94a77fbe.entry.js +1 -0
  594. package/dist/vega/p-95528b47.js +1 -0
  595. package/dist/vega/p-9a137bab.entry.js +1 -0
  596. package/dist/vega/{p-6f8be8ea.js → p-a0b66c25.js} +1 -1
  597. package/dist/vega/{p-0bb3be0b.entry.js → p-a13a73fa.entry.js} +1 -1
  598. package/dist/vega/p-a560d8c5.entry.js +1 -0
  599. package/dist/vega/{p-d0e31633.js → p-a786259a.js} +1 -1
  600. package/dist/vega/p-a7a8a4eb.entry.js +1 -0
  601. package/dist/vega/p-a8792e3d.js +1 -0
  602. package/dist/vega/{p-60851f9d.js → p-aa1174dc.js} +1 -1
  603. package/dist/vega/p-ab834f06.js +1 -0
  604. package/dist/vega/p-b136ebba.entry.js +1 -0
  605. package/dist/vega/p-b201f379.js +1 -0
  606. package/dist/vega/p-b256b7a4.js +1 -0
  607. package/dist/vega/p-b366deff.entry.js +1 -0
  608. package/dist/vega/p-b597393b.entry.js +1 -0
  609. package/dist/vega/p-b7f3221f.js +1 -0
  610. package/dist/vega/p-bb5e0192.entry.js +1 -0
  611. package/dist/vega/p-be1a210b.js +1 -0
  612. package/dist/vega/p-bebfbe95.entry.js +1 -0
  613. package/dist/vega/p-bf6fc19f.entry.js +1 -0
  614. package/dist/vega/p-c1d13eec.entry.js +1 -0
  615. package/dist/vega/p-c29068fb.entry.js +1 -0
  616. package/dist/vega/p-c3d2f316.js +1 -0
  617. package/dist/vega/{p-671afda4.entry.js → p-c72e08c6.entry.js} +1 -1
  618. package/dist/vega/p-c801c85d.js +1 -0
  619. package/dist/vega/p-c8feb644.entry.js +1 -0
  620. package/dist/vega/p-ca5898dc.entry.js +1 -0
  621. package/dist/vega/p-d555f677.entry.js +1 -0
  622. package/dist/vega/p-d64fab3d.js +1 -0
  623. package/dist/vega/p-d6dbbe61.entry.js +1 -0
  624. package/dist/vega/p-d7a78c5e.entry.js +1 -0
  625. package/dist/vega/p-d8fadcdc.entry.js +1 -0
  626. package/dist/vega/p-dad3ba5f.js +1 -0
  627. package/dist/vega/p-dd3a94f4.entry.js +1 -0
  628. package/dist/vega/p-e1431c14.entry.js +1 -0
  629. package/dist/vega/p-e1fbfd20.js +1 -0
  630. package/dist/vega/p-e2af0e24.entry.js +1 -0
  631. package/dist/vega/{p-521d1d07.js → p-e52890db.js} +1 -1
  632. package/dist/vega/{p-1298b126.js → p-e632475e.js} +1 -1
  633. package/dist/vega/p-e6adf829.js +1 -0
  634. package/dist/vega/{p-77edf50c.js → p-e827d56d.js} +1 -1
  635. package/dist/vega/p-e8775a56.entry.js +1 -0
  636. package/dist/vega/p-e89e3ede.entry.js +1 -0
  637. package/dist/vega/p-eda988d5.entry.js +1 -0
  638. package/dist/vega/p-f05b8f76.entry.js +1 -0
  639. package/dist/vega/p-f0e828d8.js +1 -0
  640. package/dist/vega/p-f14a5eae.entry.js +1 -0
  641. package/dist/vega/p-f2b0b58a.js +1 -0
  642. package/dist/vega/p-f3d0f2dc.js +1 -0
  643. package/dist/vega/{p-5910be31.entry.js → p-f5bafc45.entry.js} +1 -1
  644. package/dist/vega/p-fc1fa345.js +1 -0
  645. package/dist/vega/p-fd7ddd64.entry.js +1 -0
  646. package/dist/vega/vega.esm.js +1 -1
  647. package/package.json +3 -5
  648. package/dist/cjs/_commonjsHelpers-537d719a.js +0 -20
  649. package/dist/cjs/language-extension-38e4905e.js +0 -210
  650. package/dist/cjs/sanitize-fb222510.js +0 -131
  651. package/dist/cjs/wait-for-vega-handler-5469ff80.js +0 -63
  652. package/dist/collection/utils/sanitize.js +0 -126
  653. package/dist/collection/utils/test/sanitize.test.js +0 -65
  654. package/dist/esm/_commonjsHelpers-9943807e.js +0 -17
  655. package/dist/esm/dom-node-subject-observer-factory-064ee2b2.js +0 -250
  656. package/dist/esm/language-extension-c4ff21dd.js +0 -207
  657. package/dist/esm/sanitize-fd0cb40d.js +0 -129
  658. package/dist/esm/wait-for-vega-handler-c2c07ac3.js +0 -61
  659. package/dist/types/utils/sanitize.d.ts +0 -71
  660. package/dist/vega/p-011b94b1.entry.js +0 -1
  661. package/dist/vega/p-06aaced4.js +0 -1
  662. package/dist/vega/p-07d3df01.entry.js +0 -1
  663. package/dist/vega/p-08f18b22.entry.js +0 -1
  664. package/dist/vega/p-10ac8b57.js +0 -1
  665. package/dist/vega/p-112455b1.js +0 -1
  666. package/dist/vega/p-17c55205.entry.js +0 -1
  667. package/dist/vega/p-1e0d8228.entry.js +0 -1
  668. package/dist/vega/p-20ad42be.js +0 -1
  669. package/dist/vega/p-22b2841f.entry.js +0 -1
  670. package/dist/vega/p-22c5d83b.js +0 -1
  671. package/dist/vega/p-34246870.entry.js +0 -1
  672. package/dist/vega/p-35bf5789.entry.js +0 -1
  673. package/dist/vega/p-3bbc0c7d.entry.js +0 -1
  674. package/dist/vega/p-3bf66be2.js +0 -1
  675. package/dist/vega/p-3c5a28e4.entry.js +0 -1
  676. package/dist/vega/p-3cfd8616.entry.js +0 -1
  677. package/dist/vega/p-3e5f362f.js +0 -1
  678. package/dist/vega/p-43f585f7.entry.js +0 -1
  679. package/dist/vega/p-476a173a.js +0 -1
  680. package/dist/vega/p-4a537391.entry.js +0 -1
  681. package/dist/vega/p-509eb52e.entry.js +0 -1
  682. package/dist/vega/p-50ab977c.entry.js +0 -1
  683. package/dist/vega/p-53a694d1.entry.js +0 -1
  684. package/dist/vega/p-56e97df8.js +0 -1
  685. package/dist/vega/p-5a27084e.entry.js +0 -1
  686. package/dist/vega/p-5d676a94.js +0 -1
  687. package/dist/vega/p-5df9a856.entry.js +0 -1
  688. package/dist/vega/p-5ea2e43c.entry.js +0 -1
  689. package/dist/vega/p-60274fb1.js +0 -1
  690. package/dist/vega/p-60da99c6.entry.js +0 -1
  691. package/dist/vega/p-67f18b9e.entry.js +0 -1
  692. package/dist/vega/p-67fcf6f2.entry.js +0 -9
  693. package/dist/vega/p-6a2205a1.entry.js +0 -1
  694. package/dist/vega/p-6a4277df.entry.js +0 -1
  695. package/dist/vega/p-6e136980.js +0 -1
  696. package/dist/vega/p-6f239144.entry.js +0 -1
  697. package/dist/vega/p-7045e84c.entry.js +0 -1
  698. package/dist/vega/p-7288f8c4.js +0 -1
  699. package/dist/vega/p-747d6afc.entry.js +0 -1
  700. package/dist/vega/p-75651f32.entry.js +0 -1
  701. package/dist/vega/p-7ae55fd5.js +0 -1
  702. package/dist/vega/p-81134e9e.entry.js +0 -1
  703. package/dist/vega/p-87238c4c.entry.js +0 -1
  704. package/dist/vega/p-8a887843.entry.js +0 -1
  705. package/dist/vega/p-8c0eb12f.entry.js +0 -1
  706. package/dist/vega/p-8c9ea6f4.js +0 -1
  707. package/dist/vega/p-8d0ca805.js +0 -1
  708. package/dist/vega/p-8e42a14c.entry.js +0 -1
  709. package/dist/vega/p-91ec2e30.js +0 -1
  710. package/dist/vega/p-94394df7.entry.js +0 -1
  711. package/dist/vega/p-991008a8.entry.js +0 -1
  712. package/dist/vega/p-9fd503e9.entry.js +0 -1
  713. package/dist/vega/p-a20854d6.entry.js +0 -1
  714. package/dist/vega/p-a4670e23.js +0 -1
  715. package/dist/vega/p-a530797f.entry.js +0 -1
  716. package/dist/vega/p-a5bd3c15.entry.js +0 -1
  717. package/dist/vega/p-a65941d0.entry.js +0 -1
  718. package/dist/vega/p-a85ad369.entry.js +0 -1
  719. package/dist/vega/p-a86010f7.entry.js +0 -1
  720. package/dist/vega/p-aa10eeb3.entry.js +0 -1
  721. package/dist/vega/p-ab2f35af.entry.js +0 -1
  722. package/dist/vega/p-ac4563d7.js +0 -1
  723. package/dist/vega/p-aedf7146.js +0 -1
  724. package/dist/vega/p-b4ea3fad.js +0 -1
  725. package/dist/vega/p-bb4a558d.entry.js +0 -1
  726. package/dist/vega/p-bb8339ed.entry.js +0 -1
  727. package/dist/vega/p-be930e85.entry.js +0 -1
  728. package/dist/vega/p-bf2bd6d0.entry.js +0 -1
  729. package/dist/vega/p-c379a5a5.entry.js +0 -1
  730. package/dist/vega/p-c616c592.js +0 -1
  731. package/dist/vega/p-ca3472c1.entry.js +0 -1
  732. package/dist/vega/p-cc43bffb.js +0 -1
  733. package/dist/vega/p-d6ed3d76.entry.js +0 -1
  734. package/dist/vega/p-db8cdba6.js +0 -1
  735. package/dist/vega/p-e1610196.entry.js +0 -1
  736. package/dist/vega/p-e87b0b4a.entry.js +0 -1
  737. package/dist/vega/p-e9c4fd24.entry.js +0 -1
  738. package/dist/vega/p-eb60cfe1.entry.js +0 -1
  739. package/dist/vega/p-ef001c70.entry.js +0 -1
  740. package/dist/vega/p-ef9cbad1.js +0 -1
  741. package/dist/vega/p-f383c856.js +0 -1
  742. package/dist/vega/p-f3c3ff26.entry.js +0 -1
  743. package/dist/vega/p-f52a0155.entry.js +0 -1
  744. package/dist/vega/p-f69f84a7.js +0 -1
  745. package/dist/vega/p-f8f7cf48.entry.js +0 -1
  746. package/dist/vega/p-fba14ad2.entry.js +0 -1
  747. package/dist/vega/p-fbd64f9c.entry.js +0 -1
  748. package/dist/vega/p-fdc270b8.entry.js +0 -1
  749. package/dist/vega/p-fe12eff6.js +0 -1
  750. package/dist/vega/p-ffbff9b5.entry.js +0 -1
  751. /package/dist/{types/utils/test/sanitize.test.d.ts → collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner-processor.interface.js} +0 -0
  752. /package/dist/vega/{p-d9671d27.js → p-6c170474.js} +0 -0
@@ -0,0 +1,180 @@
1
+ import { tokenize } from '../tokenizer';
2
+ describe('Syntax Highlight Tokenizer', () => {
3
+ describe('tokenize', () => {
4
+ it('should return the original string when grammar is not provided', () => {
5
+ const result = tokenize('hello world', undefined);
6
+ expect(result).toEqual(['hello world']);
7
+ });
8
+ it('should return the original string when code is empty', () => {
9
+ const result = tokenize('', { keyword: { pattern: /\bvar\b/ } });
10
+ expect(result).toEqual(['']);
11
+ });
12
+ it('should tokenize a simple keyword', () => {
13
+ const grammar = {
14
+ keyword: { pattern: /\bvar\b/ },
15
+ };
16
+ const result = tokenize('var x = 1', grammar);
17
+ expect(result.length).toBe(2);
18
+ expect(result[0].type).toBe('keyword');
19
+ expect(result[0].content).toBe('var');
20
+ expect(result[1]).toBe(' x = 1');
21
+ });
22
+ it('should tokenize multiple keywords in a string', () => {
23
+ const grammar = {
24
+ keyword: { pattern: /\b(?:var|let|const)\b/ },
25
+ };
26
+ const result = tokenize('var x; let y; const z;', grammar);
27
+ const keywords = result.filter((t) => typeof t !== 'string' && t.type === 'keyword');
28
+ expect(keywords.length).toBe(3);
29
+ expect(keywords[0].content).toBe('var');
30
+ expect(keywords[1].content).toBe('let');
31
+ expect(keywords[2].content).toBe('const');
32
+ });
33
+ it('should handle multiple grammar rules', () => {
34
+ const grammar = {
35
+ keyword: { pattern: /\b(?:var|let|const)\b/ },
36
+ number: { pattern: /\b\d+\b/ },
37
+ };
38
+ const result = tokenize('var x = 42', grammar);
39
+ const tokens = result.filter((t) => typeof t !== 'string');
40
+ expect(tokens.length).toBe(2);
41
+ expect(tokens[0].type).toBe('keyword');
42
+ expect(tokens[0].content).toBe('var');
43
+ expect(tokens[1].type).toBe('number');
44
+ expect(tokens[1].content).toBe('42');
45
+ });
46
+ it('should handle greedy matching', () => {
47
+ const grammar = {
48
+ string: {
49
+ pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\\n\r])*\1/,
50
+ greedy: true,
51
+ },
52
+ };
53
+ const result = tokenize('"hello world"', grammar);
54
+ expect(result.length).toBe(1);
55
+ expect(result[0].type).toBe('string');
56
+ expect(result[0].content).toBe('"hello world"');
57
+ });
58
+ it('should handle lookbehind patterns', () => {
59
+ const grammar = {
60
+ function: {
61
+ pattern: /(\b)(\w+)(?=\s*\()/,
62
+ lookbehind: true,
63
+ },
64
+ };
65
+ const result = tokenize('call foo()', grammar);
66
+ const funcTokens = result.filter((t) => typeof t !== 'string' && t.type === 'function');
67
+ expect(funcTokens.length).toBeGreaterThanOrEqual(1);
68
+ });
69
+ it('should handle array of patterns for a single token type', () => {
70
+ const grammar = {
71
+ comment: [
72
+ { pattern: /\/\/.*/, greedy: true },
73
+ { pattern: /\/\*[\s\S]*?\*\//, greedy: true },
74
+ ],
75
+ };
76
+ const singleLineResult = tokenize('x = 1; // comment', grammar);
77
+ const multiLineResult = tokenize('x = 1; /* block */', grammar);
78
+ const singleComments = singleLineResult.filter((t) => typeof t !== 'string' && t.type === 'comment');
79
+ const multiComments = multiLineResult.filter((t) => typeof t !== 'string' && t.type === 'comment');
80
+ expect(singleComments.length).toBe(1);
81
+ expect(multiComments.length).toBe(1);
82
+ });
83
+ it('should handle nested grammar via inside property', () => {
84
+ const grammar = {
85
+ 'template-string': {
86
+ pattern: /`[^`]*`/,
87
+ greedy: true,
88
+ inside: {
89
+ 'template-punctuation': { pattern: /^`|`$/ },
90
+ 'string': { pattern: /[\s\S]+/ },
91
+ },
92
+ },
93
+ };
94
+ const result = tokenize('`hello`', grammar);
95
+ expect(result.length).toBe(1);
96
+ const templateToken = result[0];
97
+ expect(templateToken.type).toBe('template-string');
98
+ expect(Array.isArray(templateToken.content)).toBe(true);
99
+ });
100
+ it('should preserve unmatched text as plain strings', () => {
101
+ const grammar = {
102
+ keyword: { pattern: /\bvar\b/ },
103
+ };
104
+ const result = tokenize('var x = hello', grammar);
105
+ const strings = result.filter((t) => typeof t === 'string');
106
+ expect(strings.length).toBe(1);
107
+ expect(strings[0]).toBe(' x = hello');
108
+ });
109
+ it('should handle code with no matches', () => {
110
+ const grammar = {
111
+ keyword: { pattern: /\bxyz\b/ },
112
+ };
113
+ const result = tokenize('hello world', grammar);
114
+ expect(result).toEqual(['hello world']);
115
+ });
116
+ it('greedy string patterns should prevent keywords inside strings from being tokenized', () => {
117
+ const grammar = {
118
+ string: {
119
+ pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\\n\r])*\1/,
120
+ greedy: true,
121
+ },
122
+ keyword: { pattern: /\b(?:var|let|const|function|return)\b/ },
123
+ };
124
+ const code = 'var x = "function return let"';
125
+ const result = tokenize(code, grammar);
126
+ const keywords = result.filter((t) => typeof t !== 'string' && t.type === 'keyword');
127
+ const strings = result.filter((t) => typeof t !== 'string' && t.type === 'string');
128
+ // Only 'var' should be a keyword; keywords inside the string should NOT be tokenized
129
+ expect(keywords.length).toBe(1);
130
+ expect(keywords[0].content).toBe('var');
131
+ expect(strings.length).toBe(1);
132
+ expect(strings[0].content).toBe('"function return let"');
133
+ });
134
+ it('greedy comment patterns should prevent tokens inside comments from being tokenized', () => {
135
+ const grammar = {
136
+ comment: {
137
+ pattern: /\/\*[\s\S]*?\*\//,
138
+ greedy: true,
139
+ },
140
+ keyword: { pattern: /\b(?:var|let|const)\b/ },
141
+ number: { pattern: /\b\d+\b/ },
142
+ };
143
+ const code = 'var x = 1; /* let y = 42 */';
144
+ const result = tokenize(code, grammar);
145
+ const keywords = result.filter((t) => typeof t !== 'string' && t.type === 'keyword');
146
+ const numbers = result.filter((t) => typeof t !== 'string' && t.type === 'number');
147
+ const comments = result.filter((t) => typeof t !== 'string' && t.type === 'comment');
148
+ expect(keywords.length).toBe(1);
149
+ expect(keywords[0].content).toBe('var');
150
+ expect(numbers.length).toBe(1);
151
+ expect(numbers[0].content).toBe('1');
152
+ expect(comments.length).toBe(1);
153
+ expect(comments[0].content).toBe('/* let y = 42 */');
154
+ });
155
+ it('multiple greedy patterns should not interfere with each other', () => {
156
+ const grammar = {
157
+ string: {
158
+ pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\\n\r])*\1/,
159
+ greedy: true,
160
+ },
161
+ comment: {
162
+ pattern: /\/\/.*|\/\*[\s\S]*?\*\//,
163
+ greedy: true,
164
+ },
165
+ keyword: { pattern: /\b(?:var|let|const)\b/ },
166
+ };
167
+ const code = 'var x = "hello"; // let y';
168
+ const result = tokenize(code, grammar);
169
+ const keywords = result.filter((t) => typeof t !== 'string' && t.type === 'keyword');
170
+ const strings = result.filter((t) => typeof t !== 'string' && t.type === 'string');
171
+ const comments = result.filter((t) => typeof t !== 'string' && t.type === 'comment');
172
+ expect(keywords.length).toBe(1);
173
+ expect(keywords[0].content).toBe('var');
174
+ expect(strings.length).toBe(1);
175
+ expect(strings[0].content).toBe('"hello"');
176
+ expect(comments.length).toBe(1);
177
+ expect(comments[0].content).toBe('// let y');
178
+ });
179
+ });
180
+ });
@@ -0,0 +1,87 @@
1
+ import { tokenize } from '../tokenizer';
2
+ import { tsxGrammar } from '../languages/tsx';
3
+ import { findTokensByType } from './test-utils';
4
+ describe('TSX Language Grammar', () => {
5
+ it('should tokenize JSX tags in TSX', () => {
6
+ const code = '<div>Hello</div>';
7
+ const tokens = tokenize(code, tsxGrammar);
8
+ const tags = findTokensByType(tokens, 'tag');
9
+ expect(tags.length).toBe(2);
10
+ });
11
+ it('should tokenize TypeScript keywords in TSX', () => {
12
+ const code = 'interface Props { name: string; }';
13
+ const tokens = tokenize(code, tsxGrammar);
14
+ const keywords = findTokensByType(tokens, 'keyword');
15
+ const interfaceKw = keywords.find((t) => t.content === 'interface');
16
+ expect(interfaceKw).toBeDefined();
17
+ });
18
+ it('should tokenize TypeScript builtin types in TSX', () => {
19
+ const code = 'const x: number = 42;';
20
+ const tokens = tokenize(code, tsxGrammar);
21
+ const builtins = findTokensByType(tokens, 'builtin');
22
+ expect(builtins.length).toBeGreaterThanOrEqual(1);
23
+ });
24
+ it('should tokenize a typed TSX component', () => {
25
+ const code = `const App: React.FC<Props> = ({ name }) => {
26
+ return <div>{name}</div>;
27
+ };`;
28
+ const tokens = tokenize(code, tsxGrammar);
29
+ const keywords = findTokensByType(tokens, 'keyword');
30
+ const tags = findTokensByType(tokens, 'tag');
31
+ expect(keywords.length).toBeGreaterThanOrEqual(2);
32
+ // 3 tags: <Props> (generic false positive), <div>, </div>
33
+ expect(tags.length).toBe(3);
34
+ });
35
+ it('should tokenize TSX with generics and JSX', () => {
36
+ const code = `function useHook<T>(initial: T): T {
37
+ return initial;
38
+ }`;
39
+ const tokens = tokenize(code, tsxGrammar);
40
+ const keywords = findTokensByType(tokens, 'keyword');
41
+ expect(keywords.length).toBeGreaterThanOrEqual(2);
42
+ });
43
+ it('should tokenize enum in TSX', () => {
44
+ const code = 'enum Direction { Up, Down, Left, Right }';
45
+ const tokens = tokenize(code, tsxGrammar);
46
+ const keywords = findTokensByType(tokens, 'keyword');
47
+ const enumKw = keywords.find((t) => t.content === 'enum');
48
+ expect(enumKw).toBeDefined();
49
+ });
50
+ it('should tokenize function names before parentheses in TSX', () => {
51
+ const code = `interface MyComponentProps {
52
+ name: string;
53
+ }
54
+
55
+ function MyComponent({ name }: MyComponentProps) {
56
+ return (
57
+ <h1>Hello, {name}!</h1>
58
+ );
59
+ }`;
60
+ const tokens = tokenize(code, tsxGrammar);
61
+ const functions = findTokensByType(tokens, 'function');
62
+ const myComponent = functions.find((t) => t.content === 'MyComponent');
63
+ expect(myComponent).toBeDefined();
64
+ });
65
+ it('should tokenize complete TSX component with types', () => {
66
+ const code = `interface CardProps {
67
+ title: string;
68
+ count: number;
69
+ }
70
+
71
+ const Card: React.FC<CardProps> = ({ title, count }) => {
72
+ return (
73
+ <div className="card">
74
+ <h1>{title}</h1>
75
+ <span>{count}</span>
76
+ </div>
77
+ );
78
+ };`;
79
+ const tokens = tokenize(code, tsxGrammar);
80
+ const keywords = findTokensByType(tokens, 'keyword');
81
+ const builtins = findTokensByType(tokens, 'builtin');
82
+ const tags = findTokensByType(tokens, 'tag');
83
+ expect(keywords.length).toBeGreaterThanOrEqual(2);
84
+ expect(builtins.length).toBeGreaterThanOrEqual(2);
85
+ expect(tags.length).toBeGreaterThan(0);
86
+ });
87
+ });
@@ -0,0 +1,86 @@
1
+ import { tokenize } from '../tokenizer';
2
+ import { typescriptGrammar } from '../languages/typescript';
3
+ import { findTokensByType } from './test-utils';
4
+ describe('TypeScript Language Grammar', () => {
5
+ it('should tokenize TypeScript-specific keywords', () => {
6
+ const code = 'interface Foo { bar: string; }';
7
+ const tokens = tokenize(code, typescriptGrammar);
8
+ const keywords = findTokensByType(tokens, 'keyword');
9
+ const interfaceKw = keywords.find((t) => t.content === 'interface');
10
+ expect(interfaceKw).toBeDefined();
11
+ });
12
+ it('should tokenize type annotations with builtin types', () => {
13
+ const code = 'const x: number = 42;';
14
+ const tokens = tokenize(code, typescriptGrammar);
15
+ const builtins = findTokensByType(tokens, 'builtin');
16
+ expect(builtins.length).toBeGreaterThanOrEqual(1);
17
+ });
18
+ it('should tokenize enum declarations', () => {
19
+ const code = 'enum Color { Red, Green, Blue }';
20
+ const tokens = tokenize(code, typescriptGrammar);
21
+ const keywords = findTokensByType(tokens, 'keyword');
22
+ const enumKw = keywords.find((t) => t.content === 'enum');
23
+ expect(enumKw).toBeDefined();
24
+ });
25
+ it('should tokenize access modifiers', () => {
26
+ const code = 'class Foo { private bar: string; protected baz: number; public qux: boolean; }';
27
+ const tokens = tokenize(code, typescriptGrammar);
28
+ const keywords = findTokensByType(tokens, 'keyword');
29
+ const privateKw = keywords.find((t) => t.content === 'private');
30
+ const protectedKw = keywords.find((t) => t.content === 'protected');
31
+ const publicKw = keywords.find((t) => t.content === 'public');
32
+ expect(privateKw).toBeDefined();
33
+ expect(protectedKw).toBeDefined();
34
+ expect(publicKw).toBeDefined();
35
+ });
36
+ it('should tokenize readonly keyword', () => {
37
+ const code = 'readonly name: string;';
38
+ const tokens = tokenize(code, typescriptGrammar);
39
+ const keywords = findTokensByType(tokens, 'keyword');
40
+ const readonlyKw = keywords.find((t) => t.content === 'readonly');
41
+ expect(readonlyKw).toBeDefined();
42
+ });
43
+ it('should tokenize type keyword', () => {
44
+ const code = 'type Result = string | number;';
45
+ const tokens = tokenize(code, typescriptGrammar);
46
+ const keywords = findTokensByType(tokens, 'keyword');
47
+ const typeKw = keywords.find((t) => t.content === 'type');
48
+ expect(typeKw).toBeDefined();
49
+ });
50
+ it('should tokenize builtin types', () => {
51
+ const code = 'let a: string; let b: number; let c: boolean; let d: void;';
52
+ const tokens = tokenize(code, typescriptGrammar);
53
+ const builtins = findTokensByType(tokens, 'builtin');
54
+ expect(builtins.length).toBe(4);
55
+ });
56
+ it('should still tokenize JS-inherited features', () => {
57
+ const code = 'const fn = async () => { await fetch(url); };';
58
+ const tokens = tokenize(code, typescriptGrammar);
59
+ const keywords = findTokensByType(tokens, 'keyword');
60
+ const constKw = keywords.find((t) => t.content === 'const');
61
+ const asyncKw = keywords.find((t) => t.content === 'async');
62
+ const awaitKw = keywords.find((t) => t.content === 'await');
63
+ expect(constKw).toBeDefined();
64
+ expect(asyncKw).toBeDefined();
65
+ expect(awaitKw).toBeDefined();
66
+ });
67
+ it('should tokenize a complete TypeScript interface', () => {
68
+ const code = `interface User {
69
+ name: string;
70
+ age: number;
71
+ isActive: boolean;
72
+ }`;
73
+ const tokens = tokenize(code, typescriptGrammar);
74
+ const keywords = findTokensByType(tokens, 'keyword');
75
+ const builtins = findTokensByType(tokens, 'builtin');
76
+ expect(keywords.length).toBeGreaterThanOrEqual(1);
77
+ expect(builtins.length).toBe(3);
78
+ });
79
+ it('should tokenize namespace keyword', () => {
80
+ const code = 'namespace MyNamespace { }';
81
+ const tokens = tokenize(code, typescriptGrammar);
82
+ const keywords = findTokensByType(tokens, 'keyword');
83
+ const namespaceKw = keywords.find((t) => t.content === 'namespace');
84
+ expect(namespaceKw).toBeDefined();
85
+ });
86
+ });
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Unique placeholder used to mark greedy-matched regions so they are not
3
+ * re-tokenized by later grammar rules. The surrounding curly-brace pairs
4
+ * make an accidental collision with real source code extremely unlikely.
5
+ */
6
+ const GREEDY_PLACEHOLDER = '\x00GREEDY_PLACEHOLDER\x00';
7
+ /**
8
+ * Core tokenizer that converts source code into syntax tokens based on a grammar definition.
9
+ * This is a local replacement for Prism tokenize.
10
+ *
11
+ * The tokenizer works by:
12
+ * 1. Pre-processing greedy patterns to claim their matched regions first
13
+ * 2. Iterating through all grammar rules in order
14
+ * 3. Finding regex matches in the source text
15
+ * 4. Splitting the text into matched (typed) and unmatched (plain) segments
16
+ * 5. Recursively tokenizing nested content when an `inside` grammar is specified
17
+ *
18
+ * @param {string} code - The source code string to tokenize.
19
+ * @param {Grammar} grammar - The grammar rules to apply for tokenization.
20
+ * @returns {(string | SyntaxToken)[]} An array of plain strings and syntax tokens.
21
+ */
22
+ export function tokenize(code, grammar) {
23
+ if (!code || !grammar) {
24
+ return [code];
25
+ }
26
+ const tokens = [code];
27
+ matchGrammar(tokens, grammar);
28
+ return tokens;
29
+ }
30
+ /**
31
+ * Apply grammar rules to tokenize string entries in the token list.
32
+ * Greedy patterns are applied first: their matched regions are replaced with
33
+ * opaque placeholder tokens so that subsequent (non-greedy) rules cannot
34
+ * match inside those regions. After all rules have run the placeholders are
35
+ * restored to the original matched text.
36
+ *
37
+ * @param {(string | SyntaxToken)[]} tokens - The current token list to process in-place.
38
+ * @param {Grammar} grammar - The grammar rules to apply.
39
+ */
40
+ function matchGrammar(tokens, grammar) {
41
+ const greedyEntries = [];
42
+ const nonGreedyEntries = [];
43
+ for (const tokenType of Object.keys(grammar)) {
44
+ const grammarEntry = grammar[tokenType];
45
+ const patterns = Array.isArray(grammarEntry) ? grammarEntry : [grammarEntry];
46
+ for (const patternDef of patterns) {
47
+ if (patternDef.greedy) {
48
+ greedyEntries.push({ tokenType, patternDef });
49
+ }
50
+ else {
51
+ nonGreedyEntries.push({ tokenType, patternDef });
52
+ }
53
+ }
54
+ }
55
+ // --- Phase 1: Apply greedy patterns first --------------------------------
56
+ // Greedy patterns claim regions of the source text exclusively.
57
+ // We replace matched regions with a placeholder string of equal length so
58
+ // that character offsets remain stable. Each greedy match is recorded so
59
+ // we can later restore the original text inside the token.
60
+ if (greedyEntries.length > 0) {
61
+ applyGreedyPatterns(tokens, greedyEntries);
62
+ }
63
+ // --- Phase 2: Apply remaining non-greedy patterns ------------------------
64
+ for (const { tokenType, patternDef } of nonGreedyEntries) {
65
+ applyPattern(tokens, tokenType, patternDef);
66
+ }
67
+ }
68
+ /**
69
+ * Process all greedy patterns against the current token list.
70
+ *
71
+ * For every plain-string entry in the list the function builds a *mask* string
72
+ * of the same length. Greedy matches are recorded and their corresponding
73
+ * character ranges in the mask are overwritten with a placeholder character so
74
+ * that later greedy patterns (and all non-greedy patterns) will never match
75
+ * inside an already-claimed region.
76
+ *
77
+ * After all greedy patterns have been collected the affected string entries are
78
+ * rebuilt by splicing in SyntaxToken objects for each greedy match.
79
+ *
80
+ * @param {(string | SyntaxToken)[]} tokens - The token list to process in-place.
81
+ * @param {{ tokenType: string; patternDef: GrammarPattern }[]} greedyEntries - Greedy patterns to apply.
82
+ */
83
+ function applyGreedyPatterns(tokens, greedyEntries) {
84
+ for (let i = 0; i < tokens.length; i++) {
85
+ const token = tokens[i];
86
+ /* istanbul ignore next -- defensive: greedy phase only sees strings from initial tokenize() call */
87
+ if (typeof token !== 'string') {
88
+ continue;
89
+ }
90
+ // Build the full text by concatenating all consecutive string segments
91
+ // so greedy regex can match across them — but for simplicity we operate
92
+ // per-segment, which matches prismjs behavior for the patterns we use.
93
+ const originalText = token;
94
+ // Mask tracks which characters have been claimed. A GREEDY_PLACEHOLDER
95
+ // character at position j means that character is already part of a greedy match.
96
+ let mask = originalText;
97
+ const matches = [];
98
+ for (const { tokenType, patternDef } of greedyEntries) {
99
+ const { pattern, lookbehind, inside } = patternDef;
100
+ const regex = new RegExp(pattern.source, pattern.flags.replace(/g/g, '') + 'g');
101
+ let execResult;
102
+ while ((execResult = regex.exec(mask)) !== null) {
103
+ let matchIndex = execResult.index;
104
+ let match = execResult[0];
105
+ /* istanbul ignore next -- defensive: prevents infinite loop on zero-length regex matches */
106
+ if (match.length === 0) {
107
+ regex.lastIndex++;
108
+ continue;
109
+ }
110
+ // If matched text contains a placeholder char it overlaps a
111
+ // previously claimed region — skip it.
112
+ /* istanbul ignore next -- defensive: prevents re-tokenizing already-claimed greedy regions */
113
+ if (match.indexOf(GREEDY_PLACEHOLDER) !== -1) {
114
+ continue;
115
+ }
116
+ if (lookbehind && execResult[1]) {
117
+ const lookbehindLength = execResult[1].length;
118
+ matchIndex += lookbehindLength;
119
+ match = match.slice(lookbehindLength);
120
+ }
121
+ // Record the match and blank out the region in the mask.
122
+ const matchEnd = matchIndex + match.length;
123
+ matches.push({
124
+ tokenType,
125
+ matchStart: matchIndex,
126
+ matchEnd,
127
+ matchText: originalText.slice(matchIndex, matchEnd),
128
+ inside,
129
+ });
130
+ // Replace matched region in the mask with placeholder so later
131
+ // patterns cannot match inside it.
132
+ mask =
133
+ mask.slice(0, matchIndex) +
134
+ GREEDY_PLACEHOLDER.repeat(match.length).slice(0, match.length) +
135
+ mask.slice(matchEnd);
136
+ }
137
+ }
138
+ if (matches.length === 0) {
139
+ continue;
140
+ }
141
+ // Sort matches by start position for deterministic splicing.
142
+ matches.sort((a, b) => a.matchStart - b.matchStart);
143
+ // Build replacement array.
144
+ const replacement = [];
145
+ let lastIndex = 0;
146
+ for (const m of matches) {
147
+ if (m.matchStart > lastIndex) {
148
+ replacement.push(originalText.slice(lastIndex, m.matchStart));
149
+ }
150
+ let content = m.matchText;
151
+ if (m.inside) {
152
+ const nested = tokenize(m.matchText, m.inside);
153
+ content = nested.length === 1 ? nested[0] : nested;
154
+ }
155
+ replacement.push({ type: m.tokenType, content });
156
+ lastIndex = m.matchEnd;
157
+ }
158
+ if (lastIndex < originalText.length) {
159
+ replacement.push(originalText.slice(lastIndex));
160
+ }
161
+ tokens.splice(i, 1, ...replacement);
162
+ i += replacement.length - 1;
163
+ }
164
+ }
165
+ /**
166
+ * Apply a single pattern definition across all string entries in the token list.
167
+ * For each string entry, finds ALL matches of the pattern and splits the string
168
+ * into alternating unmatched/matched segments in one pass.
169
+ *
170
+ * @param {(string | SyntaxToken)[]} tokens - The token list to process.
171
+ * @param {string} tokenType - The token type name for matched content.
172
+ * @param {GrammarPattern} patternDef - The pattern definition to apply.
173
+ */
174
+ function applyPattern(tokens, tokenType, patternDef) {
175
+ for (let i = 0; i < tokens.length; i++) {
176
+ const token = tokens[i];
177
+ // Only process string tokens, skip already-tokenized entries
178
+ if (typeof token !== 'string') {
179
+ continue;
180
+ }
181
+ const replacement = tokenizeStringByPattern(token, tokenType, patternDef);
182
+ // Only splice if matches were found (replacement differs from original)
183
+ if (replacement.length === 1 && typeof replacement[0] === 'string') {
184
+ continue;
185
+ }
186
+ tokens.splice(i, 1, ...replacement);
187
+ // Skip past the entire replacement — all matches in this string are handled
188
+ i += replacement.length - 1;
189
+ }
190
+ }
191
+ /**
192
+ * Find all matches of a pattern within a string and return the split result
193
+ * as an array of alternating plain strings and syntax tokens.
194
+ *
195
+ * @param {string} text - The string to tokenize.
196
+ * @param {string} tokenType - The token type name for matched content.
197
+ * @param {GrammarPattern} patternDef - The pattern definition to apply.
198
+ * @returns {(string | SyntaxToken)[]} The tokenized result.
199
+ */
200
+ function tokenizeStringByPattern(text, tokenType, patternDef) {
201
+ const { pattern, lookbehind, inside } = patternDef;
202
+ const regex = new RegExp(pattern.source, pattern.flags.replace(/g/g, '') + 'g');
203
+ const result = [];
204
+ let lastIndex = 0;
205
+ let execResult;
206
+ while ((execResult = regex.exec(text)) !== null) {
207
+ let matchIndex = execResult.index;
208
+ let match = execResult[0];
209
+ // Prevent zero-length match infinite loops
210
+ if (match.length === 0) {
211
+ regex.lastIndex++;
212
+ continue;
213
+ }
214
+ // Handle lookbehind: adjust match position and content
215
+ if (lookbehind && execResult[1]) {
216
+ const lookbehindLength = execResult[1].length;
217
+ matchIndex += lookbehindLength;
218
+ match = match.slice(lookbehindLength);
219
+ }
220
+ // Add unmatched text before this match
221
+ if (matchIndex > lastIndex) {
222
+ result.push(text.slice(lastIndex, matchIndex));
223
+ }
224
+ // Process nested grammar if specified
225
+ let content = match;
226
+ if (inside) {
227
+ const nestedTokens = tokenize(match, inside);
228
+ content = nestedTokens.length === 1 ? nestedTokens[0] : nestedTokens;
229
+ }
230
+ result.push({ type: tokenType, content });
231
+ lastIndex = matchIndex + match.length;
232
+ }
233
+ // Add remaining unmatched text
234
+ if (lastIndex < text.length) {
235
+ result.push(text.slice(lastIndex));
236
+ }
237
+ /* istanbul ignore next -- defensive: tokenizeStringByPattern always has remainder text */
238
+ if (result.length === 0) {
239
+ return [text];
240
+ }
241
+ return result;
242
+ }
@@ -0,0 +1 @@
1
+ export {};