@heartlandone/vega 2.75.1 → 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.
- package/dist/cjs/{app-globals-35614ce8.js → app-globals-12b7d808.js} +28 -32
- package/dist/cjs/breakpoints-751d433a.js +56 -0
- package/dist/cjs/{child-nodes-event-prevent-slimmer-aca87dac.js → child-nodes-event-prevent-slimmer-84435957.js} +2 -2
- package/dist/cjs/{child-nodes-notify-observer-slimmer-257fedb3.js → child-nodes-notify-observer-slimmer-ed39283b.js} +1 -1
- package/dist/cjs/{code-block-c1d2e6a8.js → code-block-f1480ec3.js} +17 -17
- package/dist/cjs/{component-global-style-slimmer-adfa2e59.js → component-global-style-slimmer-93c5fb50.js} +2 -1
- package/dist/cjs/{component-usage-runtime-metrics-d10ace87.js → component-usage-runtime-metrics-4572c5b7.js} +1 -1
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-787c67dc.js → component-value-history-controller-slimmer.abstract-a9264cc8.js} +5 -5
- package/dist/cjs/{create-public-api-runtime-metrics-slimmer-e2e274e1.js → create-public-api-runtime-metrics-slimmer-9cb09fb2.js} +3 -41
- package/dist/cjs/{dark-mode-style-controller-c21172aa.js → dark-mode-style-controller-3a04af3d.js} +292 -1254
- package/dist/cjs/{date-required-rule-30ee62d0.js → date-required-rule-912469e0.js} +1 -1
- package/dist/cjs/{design-token-bb39e07e.js → design-token-41baf118.js} +2 -2
- package/dist/cjs/dom-node-subject-observer-factory-c62823de.js +141 -0
- package/dist/cjs/{dto-renderer-manager-03e1a038.js → dto-renderer-manager-809c947b.js} +33 -33
- package/dist/cjs/{element-appender-slimmer-daa8b9f5.js → element-appender-slimmer-34e4eb56.js} +349 -166
- package/dist/cjs/{event-emit-slimmer-2dacabbd.js → event-emit-slimmer-062cdcb8.js} +2 -2
- package/dist/cjs/{feature-flag-controller-ce2162c8.js → feature-flag-controller-04cb1e69.js} +7 -1
- package/dist/cjs/{form-field-controller-slimmer-aef2fb1e.js → form-field-controller-slimmer-102f37c7.js} +13 -14
- package/dist/cjs/{internal-icon-manager-32f9ed63.js → icon-manager-c12c6ea9.js} +1 -52
- package/dist/cjs/{image-annotation-action-3fa501b7.js → image-annotation-action-8d9fa20c.js} +10 -9
- package/dist/cjs/index-592b4052.js +220 -0
- package/dist/cjs/{index-4d7bce1a.js → index-f054eb5d.js} +15 -3
- package/dist/cjs/index.cjs.js +68 -65
- package/dist/cjs/{inject-keyboard-manager-d21b4387.js → inject-keyboard-manager-0f5bd568.js} +1 -1
- package/dist/cjs/internal-icon-manager-c989189a.js +55 -0
- package/dist/cjs/{translation-5f9f9c0c.js → internal-translation-controller-053eb0f1.js} +0 -93
- package/dist/cjs/{internal-vega-event-manager-6befeb34.js → internal-vega-event-manager-f7ecf3d4.js} +81 -81
- package/dist/cjs/internal-vega-z-index-manager-f03ddb37.js +180 -0
- package/dist/cjs/{keyboard-manager-3dea6b28.js → keyboard-manager-055e9f67.js} +2 -2
- package/dist/cjs/{keyboard-manager-slimmer-0d45f944.js → keyboard-manager-slimmer-0cc0c1c7.js} +1 -1
- package/dist/cjs/loader.cjs.js +26 -23
- package/dist/cjs/misc-3d30df91.js +41 -0
- package/dist/cjs/{month-view-generator-49cc5fc2.js → month-view-generator-6a6dd527.js} +1 -1
- package/dist/cjs/{page-resize-observer-slimmer-11937d6f.js → page-resize-observer-slimmer-7f065ee1.js} +2 -54
- package/dist/cjs/{public-rules-dc2a8d62.js → public-rules-922849f3.js} +12 -13
- package/dist/cjs/{range-79b668e7.js → range-8aa49b08.js} +2 -2
- package/dist/cjs/{responsive-format-facade-d5dba942.js → responsive-format-facade-ea59bdcd.js} +13 -22
- package/dist/cjs/{rich-text-editor-required-rule-ba312af9.js → rich-text-editor-required-rule-22225840.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-63514c60.js → string-format-strategy.abstract-f2575647.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-f3e0bbc7.js → string-input-formatter-slimmer-0a334fc6.js} +5 -5
- package/dist/cjs/{string-mask-strategy-d23ac21a.js → string-mask-strategy-dda58395.js} +2 -2
- package/dist/cjs/{style-formatter-49693da7.js → style-formatter-0c3ced39.js} +2 -2
- package/dist/cjs/{sub-state-notify-slimmer-468e19aa.js → sub-state-notify-slimmer-58121111.js} +1 -1
- package/dist/cjs/{sub-state-observer-slimmer-5d0b8ac3.js → sub-state-observer-slimmer-1dfbc4c3.js} +2 -2
- package/dist/cjs/{time-required-rule-c96ecdc9.js → time-required-rule-d6fa7aa8.js} +1 -1
- package/dist/cjs/{function-extension-cfbbc57e.js → token-extension-07cac85d.js} +501 -387
- package/dist/cjs/{translation-slimmer-f0ebe710.js → translation-slimmer-4533bd67.js} +4 -4
- package/dist/cjs/{type-guard-a0f026d8.js → type-guard-407ba0b8.js} +3 -3
- package/dist/cjs/{ui-9e181079.js → ui-234ea151.js} +12 -0
- package/dist/cjs/{valid-credit-card-number-rule-c854bed9.js → valid-credit-card-number-rule-41a8b51b.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +21 -30
- package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
- package/dist/cjs/vega-app-header-button.cjs.entry.js +183 -49
- package/dist/cjs/vega-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/vega-banner.cjs.entry.js +15 -13
- package/dist/cjs/vega-bar-chart.cjs.entry.js +1 -1
- package/dist/cjs/vega-box.cjs.entry.js +18 -33
- package/dist/cjs/vega-brand-logo.cjs.entry.js +7 -5
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +14 -13
- package/dist/cjs/vega-button-circle.cjs.entry.js +20 -30
- package/dist/cjs/vega-button-group_2.cjs.entry.js +15 -15
- package/dist/cjs/vega-button-link.cjs.entry.js +15 -14
- package/dist/cjs/vega-button.cjs.entry.js +21 -30
- package/dist/cjs/vega-calendar_4.cjs.entry.js +48 -45
- package/dist/cjs/vega-card.cjs.entry.js +9 -28
- package/dist/cjs/vega-carousel.cjs.entry.js +15 -26
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +22 -20
- package/dist/cjs/vega-chip.cjs.entry.js +22 -33
- package/dist/cjs/vega-code-block.cjs.entry.js +658 -2709
- package/dist/cjs/vega-color-picker.cjs.entry.js +15 -12
- package/dist/cjs/vega-combo-box.cjs.entry.js +29 -28
- package/dist/cjs/vega-counter-badge.cjs.entry.js +1 -1
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +53 -56
- package/dist/cjs/vega-dialog-controller-03ef4d9a.js +84 -0
- package/dist/cjs/vega-dialog_2.cjs.entry.js +37 -44
- package/dist/cjs/vega-divider.cjs.entry.js +12 -30
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +49 -55
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/{dom-node-subject-observer-factory-b5e71bf6.js → vega-event-id-ee01d8dd.js} +0 -139
- package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
- package/dist/cjs/vega-field-label.cjs.entry.js +9 -8
- package/dist/cjs/vega-file-uploader.cjs.entry.js +28 -23
- package/dist/cjs/vega-flag-icon.cjs.entry.js +13 -27
- package/dist/cjs/vega-flex.cjs.entry.js +11 -28
- package/dist/cjs/vega-font.cjs.entry.js +12 -29
- package/dist/cjs/vega-form.cjs.entry.js +24 -22
- package/dist/cjs/vega-grid.cjs.entry.js +9 -28
- package/dist/cjs/vega-hint.cjs.entry.js +1 -1
- package/dist/cjs/vega-icon.cjs.entry.js +18 -31
- package/dist/cjs/vega-image-uploader.cjs.entry.js +34 -37
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +31 -27
- package/dist/cjs/vega-input-numeric.cjs.entry.js +24 -22
- package/dist/cjs/vega-input-passcode.cjs.entry.js +26 -24
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +31 -35
- package/dist/cjs/vega-input-range.cjs.entry.js +22 -20
- package/dist/cjs/vega-input-select.cjs.entry.js +41 -46
- package/dist/cjs/vega-input.cjs.entry.js +43 -31
- package/dist/cjs/vega-item-toggle.cjs.entry.js +8 -7
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +38 -40
- package/dist/cjs/vega-line-chart.cjs.entry.js +1 -1
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +16 -32
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +5 -4
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +12 -12
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +9 -10
- package/dist/cjs/vega-pagination.cjs.entry.js +28 -38
- package/dist/cjs/vega-pie-chart.cjs.entry.js +1 -1
- package/dist/cjs/vega-popover_2.cjs.entry.js +21 -31
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +66 -39
- package/dist/cjs/vega-radio_2.cjs.entry.js +25 -23
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +22 -20
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +58 -55
- package/dist/cjs/vega-section-title.cjs.entry.js +1 -1
- package/dist/cjs/vega-segment-control.cjs.entry.js +10 -8
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +25 -32
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +22 -20
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +34 -40
- package/dist/cjs/vega-signature-capture.cjs.entry.js +27 -31
- package/dist/cjs/vega-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/vega-slot-container.cjs.entry.js +1 -1
- package/dist/cjs/vega-stepper.cjs.entry.js +23 -21
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +15 -14
- package/dist/cjs/vega-table_11.cjs.entry.js +67 -68
- package/dist/cjs/vega-text.cjs.entry.js +4 -3
- package/dist/cjs/vega-textarea.cjs.entry.js +22 -20
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +35 -41
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +15 -12
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +17 -28
- package/dist/cjs/vega.cjs.js +26 -23
- package/dist/cjs/{index-95fca64f.js → wait-for-component-did-render-70a01bf9.js} +1 -12
- package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +17 -2
- package/dist/collection/components/vega-box/slimmers/controllers/vega-box-responsive-style-controller.js +2 -1
- package/dist/collection/components/vega-box/slimmers/controllers/vega-box-state-styles-controller.js +2 -1
- package/dist/collection/components/vega-button/vega-button.js +2 -1
- package/dist/collection/components/vega-button-circle/vega-button-circle.js +2 -1
- package/dist/collection/components/vega-button-link/vega-button-link.css +1 -1
- package/dist/collection/components/vega-button-link/vega-button-link.js +2 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/base-repeat-pattern.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-daily-repeat-pattern.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-monthly-repeat-pattern.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-weekly-repeat-pattern.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-yearly-repeat-pattern.js +1 -1
- package/dist/collection/components/vega-code-block/slimmers/controllers/prism-code-highlight-parse-controller.js +5 -14
- package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -2
- package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +1 -1
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +1 -1
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +2 -2
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +2 -2
- package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +3 -3
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +6 -4
- package/dist/collection/components/vega-icon/vega-icon.js +2 -1
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +10 -2
- package/dist/collection/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.js +1 -1
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +2 -2
- package/dist/collection/components/vega-pagination/vega-pagination.js +1 -1
- package/dist/collection/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.js +30 -6
- package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-steps-controller.js +1 -1
- package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +8 -1
- package/dist/collection/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.js +27 -0
- package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.css +12 -0
- package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +8 -3
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +1 -1
- package/dist/collection/components/vega-signature-capture/slimmers/written-mode/controllers/written-mode-svg-controller.js +2 -1
- package/dist/collection/components/vega-table/interface.js +3 -0
- package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +1 -1
- package/dist/collection/global/scripts/before-vega-load.js +4 -3
- package/dist/collection/helpers/calendar/calendar-date.js +1 -1
- package/dist/collection/helpers/calendar/calendar-event.js +1 -1
- package/dist/collection/helpers/calendar/calendar-time.js +1 -1
- package/dist/collection/helpers/code-format/test/code-formatter.test.js +1 -1
- package/dist/collection/helpers/common/index.js +2 -37
- package/dist/collection/helpers/common/test/wait-for-vega-handler.test.js +2 -2
- package/dist/collection/helpers/common/wait-for-component-did-render.js +27 -0
- package/dist/collection/helpers/common/wait-for-vega-handler.js +12 -1
- package/dist/collection/helpers/feature-control/feature-flags-map.js +6 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-border-radius-style-formatter.js +1 -1
- package/dist/collection/helpers/public-api.js +0 -2
- package/dist/collection/helpers/slimmers/component-global-style-slimmer.js +2 -1
- package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +3 -4
- package/dist/collection/helpers/slimmers/form-field-message-translator.js +1 -1
- package/dist/collection/helpers/slimmers/global/vega-translate-observer-slimmer.js +1 -1
- package/dist/collection/helpers/slimmers/global/vega-watch-method-cancel-slimmer.js +1 -1
- package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +128 -0
- package/dist/collection/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.js +196 -0
- package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +162 -151
- package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +9 -0
- package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +112 -1
- package/dist/collection/helpers/slimmers/position-calculation/screen-scroll-position-update.js +53 -0
- package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +103 -6
- package/dist/collection/helpers/slimmers/string-input-formatter-slimmer.js +1 -1
- package/dist/collection/helpers/slimmers/translation/translation-slimmer.js +1 -1
- package/dist/collection/helpers/theme/controllers/brand-style-controller.js +3 -1
- package/dist/collection/helpers/theme/controllers/color-schema-overriding-controller.js +8 -6
- package/dist/collection/helpers/theme/controllers/dark-mode-style-controller.js +3 -1
- package/dist/collection/helpers/theme/internal-theme-manager.js +2 -1
- package/dist/collection/helpers/theme/tests/theme-manager-controller.test.js +1 -2
- package/dist/collection/helpers/ui/element-appender.js +4 -5
- package/dist/collection/helpers/ui/test/element-appender.test.js +66 -17
- package/dist/collection/index.js +2 -0
- package/dist/collection/polyfill/prism/index.js +2 -0
- package/dist/collection/polyfill/prism/languages/css.js +86 -0
- package/dist/collection/polyfill/prism/languages/javascript.js +96 -0
- package/dist/collection/polyfill/prism/languages/jsx.js +46 -0
- package/dist/collection/polyfill/prism/languages/language-registry.js +41 -0
- package/dist/collection/polyfill/prism/languages/markup.js +71 -0
- package/dist/collection/polyfill/prism/languages/tsx.js +10 -0
- package/dist/collection/polyfill/prism/languages/typescript.js +64 -0
- package/dist/collection/polyfill/prism/test/css.test.js +61 -0
- package/dist/collection/polyfill/prism/test/javascript.test.js +113 -0
- package/dist/collection/polyfill/prism/test/jsx.test.js +48 -0
- package/dist/collection/polyfill/prism/test/language-registry.test.js +77 -0
- package/dist/collection/polyfill/prism/test/markup.test.js +57 -0
- package/dist/collection/polyfill/prism/test/test-utils.js +22 -0
- package/dist/collection/polyfill/prism/test/tokenizer.test.js +180 -0
- package/dist/collection/polyfill/prism/test/tsx.test.js +87 -0
- package/dist/collection/polyfill/prism/test/typescript.test.js +86 -0
- package/dist/collection/polyfill/prism/tokenizer.js +242 -0
- package/dist/collection/polyfill/tinycolor/tinycolor-polyfill.js +320 -0
- package/dist/collection/polyfill/tinycolor/tinycolor-polyfill.test.js +361 -0
- package/dist/collection/types/ui.type.js +12 -0
- package/dist/collection/utils/e2e-utils.js +10 -3
- package/dist/collection/utils/sanitize/constants/tag-sets.js +5 -0
- package/dist/collection/utils/sanitize/core/html-sanitizer.js +39 -0
- package/dist/collection/utils/sanitize/core/sanitize-strategy.js +62 -0
- package/dist/collection/utils/sanitize/core/types.js +4 -0
- package/dist/collection/utils/sanitize/index.js +12 -0
- package/dist/collection/utils/sanitize/strategies/empty-sanitize-strategy.js +17 -0
- package/dist/collection/utils/sanitize/strategies/index.js +3 -0
- package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +13 -0
- package/dist/collection/utils/sanitize/strategies/style-sanitize-strategy.js +50 -0
- package/dist/collection/utils/sanitize/test/empty-strategy.test.js +12 -0
- package/dist/collection/utils/sanitize/test/html-sanitizer.test.js +57 -0
- package/dist/collection/utils/sanitize/test/label-strategy.test.js +56 -0
- package/dist/collection/utils/sanitize/test/sanitize-strategy.test.js +85 -0
- package/dist/collection/utils/sanitize/test/sanitize.test.js +22 -0
- package/dist/collection/utils/sanitize/test/serialize-fragment.test.js +25 -0
- package/dist/collection/utils/sanitize/test/style-strategy.test.js +45 -0
- package/dist/collection/utils/sanitize/utils/serialize-fragment.js +17 -0
- package/dist/esm/{app-globals-2ac60ff5.js → app-globals-c0676920.js} +12 -16
- package/dist/esm/breakpoints-56e5407b.js +53 -0
- package/dist/esm/{child-nodes-event-prevent-slimmer-e662bee2.js → child-nodes-event-prevent-slimmer-649b9d30.js} +2 -2
- package/dist/esm/{child-nodes-notify-observer-slimmer-b676cd2b.js → child-nodes-notify-observer-slimmer-541dd6a4.js} +1 -1
- package/dist/esm/{code-block-8ee34ab6.js → code-block-b6247a45.js} +7 -7
- package/dist/esm/{component-global-style-slimmer-08046b38.js → component-global-style-slimmer-ac703085.js} +2 -1
- package/dist/esm/{component-usage-runtime-metrics-a84cc93e.js → component-usage-runtime-metrics-46020a03.js} +1 -1
- package/dist/esm/{component-value-history-controller-slimmer.abstract-a61bf821.js → component-value-history-controller-slimmer.abstract-2bb8533d.js} +6 -6
- package/dist/esm/{create-public-api-runtime-metrics-slimmer-bedf3a1e.js → create-public-api-runtime-metrics-slimmer-aaadaa08.js} +3 -38
- package/dist/esm/{dark-mode-style-controller-de88a117.js → dark-mode-style-controller-82e5c1c6.js} +292 -1254
- package/dist/esm/{date-required-rule-47ecc28f.js → date-required-rule-e771e7d9.js} +1 -1
- package/dist/esm/{design-token-007efbaa.js → design-token-4aee1c56.js} +2 -2
- package/dist/esm/dom-node-subject-observer-factory-82f346e3.js +138 -0
- package/dist/esm/{dto-renderer-manager-ee1a5864.js → dto-renderer-manager-6fd22ab7.js} +7 -7
- package/dist/esm/{element-appender-slimmer-35e26b5a.js → element-appender-slimmer-e4713a72.js} +348 -165
- package/dist/esm/{event-emit-slimmer-09827cec.js → event-emit-slimmer-ffaecb9a.js} +2 -2
- package/dist/esm/{feature-flag-controller-51659753.js → feature-flag-controller-09ea7e87.js} +7 -1
- package/dist/esm/{form-field-controller-slimmer-5d9dc384.js → form-field-controller-slimmer-5817d14d.js} +10 -11
- package/dist/esm/{internal-icon-manager-f0486245.js → icon-manager-539d7cf7.js} +2 -52
- package/dist/esm/{image-annotation-action-285d432e.js → image-annotation-action-6701b4c9.js} +6 -5
- package/dist/esm/index-3b327f29.js +215 -0
- package/dist/esm/{index-e9da316f.js → index-bfc6dfa2.js} +13 -1
- package/dist/esm/index.js +32 -29
- package/dist/esm/{inject-keyboard-manager-83d76ff5.js → inject-keyboard-manager-78730062.js} +1 -1
- package/dist/esm/internal-icon-manager-bd80b3bb.js +53 -0
- package/dist/esm/{translation-96e5debd.js → internal-translation-controller-911515f9.js} +1 -93
- package/dist/esm/{internal-vega-event-manager-efb6786e.js → internal-vega-event-manager-32a3d848.js} +1 -1
- package/dist/esm/internal-vega-z-index-manager-7d2b54c3.js +178 -0
- package/dist/esm/{keyboard-manager-c92808d8.js → keyboard-manager-38934f94.js} +2 -2
- package/dist/esm/{keyboard-manager-slimmer-79c78ce8.js → keyboard-manager-slimmer-9984d922.js} +1 -1
- package/dist/esm/loader.js +27 -24
- package/dist/esm/misc-9fdbcfbb.js +37 -0
- package/dist/esm/{month-view-generator-16192182.js → month-view-generator-eaf9029c.js} +1 -1
- package/dist/esm/{page-resize-observer-slimmer-8744cb44.js → page-resize-observer-slimmer-d6af0d86.js} +2 -52
- package/dist/esm/{public-rules-724873f5.js → public-rules-25cc3a39.js} +13 -14
- package/dist/esm/{range-5257c062.js → range-663f44dc.js} +2 -2
- package/dist/esm/{responsive-format-facade-28ee2dbd.js → responsive-format-facade-7a071174.js} +3 -12
- package/dist/esm/{rich-text-editor-required-rule-873e2e67.js → rich-text-editor-required-rule-a238b862.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-fc60db79.js → string-format-strategy.abstract-713fba36.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-ee32b1fd.js → string-input-formatter-slimmer-5b413ff9.js} +4 -4
- package/dist/esm/{string-mask-strategy-0b0accaa.js → string-mask-strategy-6beaf664.js} +2 -2
- package/dist/esm/{style-formatter-314b37f3.js → style-formatter-3d06b72d.js} +2 -2
- package/dist/esm/{sub-state-notify-slimmer-4453047a.js → sub-state-notify-slimmer-5133f1a8.js} +2 -2
- package/dist/esm/{sub-state-observer-slimmer-202ec7dc.js → sub-state-observer-slimmer-478c9f41.js} +3 -3
- package/dist/esm/{time-required-rule-5fa43804.js → time-required-rule-e4138a76.js} +1 -1
- package/dist/esm/{function-extension-e8c0e43e.js → token-extension-e33fd151.js} +488 -376
- package/dist/esm/{translation-slimmer-c936cb1b.js → translation-slimmer-2394b173.js} +1 -1
- package/dist/esm/{type-guard-c65a227d.js → type-guard-f50e34d6.js} +1 -1
- package/dist/esm/{ui-bb99c0c2.js → ui-ee31416b.js} +12 -0
- package/dist/esm/{valid-credit-card-number-rule-666c415d.js → valid-credit-card-number-rule-22ce81db.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +19 -28
- package/dist/esm/vega-app-footer.entry.js +3 -3
- package/dist/esm/vega-app-header-button.entry.js +174 -40
- package/dist/esm/vega-backdrop.entry.js +2 -2
- package/dist/esm/vega-banner.entry.js +12 -10
- package/dist/esm/vega-bar-chart.entry.js +1 -1
- package/dist/esm/vega-box.entry.js +14 -29
- package/dist/esm/vega-brand-logo.entry.js +7 -5
- package/dist/esm/vega-breadcrumb.entry.js +11 -10
- package/dist/esm/vega-button-circle.entry.js +19 -29
- package/dist/esm/vega-button-group_2.entry.js +12 -12
- package/dist/esm/vega-button-link.entry.js +13 -12
- package/dist/esm/vega-button.entry.js +19 -28
- package/dist/esm/vega-calendar_4.entry.js +23 -20
- package/dist/esm/vega-card.entry.js +9 -28
- package/dist/esm/vega-carousel.entry.js +14 -25
- package/dist/esm/vega-checkbox_2.entry.js +19 -17
- package/dist/esm/vega-chip.entry.js +18 -29
- package/dist/esm/vega-code-block.entry.js +653 -2704
- package/dist/esm/vega-color-picker.entry.js +15 -12
- package/dist/esm/vega-combo-box.entry.js +22 -21
- package/dist/esm/vega-counter-badge.entry.js +1 -1
- package/dist/esm/vega-date-picker_2.entry.js +34 -37
- package/dist/esm/vega-dialog-controller-bbb2fc52.js +82 -0
- package/dist/esm/vega-dialog_2.entry.js +23 -30
- package/dist/esm/vega-divider.entry.js +11 -29
- package/dist/esm/vega-dropdown_5.entry.js +39 -45
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-event-id-38aa77a0.js +113 -0
- package/dist/esm/vega-field-error.entry.js +1 -1
- package/dist/esm/vega-field-label.entry.js +7 -6
- package/dist/esm/vega-file-uploader.entry.js +19 -14
- package/dist/esm/vega-flag-icon.entry.js +12 -26
- package/dist/esm/vega-flex.entry.js +11 -28
- package/dist/esm/vega-font.entry.js +11 -28
- package/dist/esm/vega-form.entry.js +20 -18
- package/dist/esm/vega-grid.entry.js +9 -28
- package/dist/esm/vega-hint.entry.js +1 -1
- package/dist/esm/vega-icon.entry.js +15 -28
- package/dist/esm/vega-image-uploader.entry.js +28 -31
- package/dist/esm/vega-input-credit-card.entry.js +25 -21
- package/dist/esm/vega-input-numeric.entry.js +21 -19
- package/dist/esm/vega-input-passcode.entry.js +20 -18
- package/dist/esm/vega-input-phone-number.entry.js +27 -31
- package/dist/esm/vega-input-range.entry.js +19 -17
- package/dist/esm/vega-input-select.entry.js +27 -32
- package/dist/esm/vega-input.entry.js +33 -21
- package/dist/esm/{vega-internal-event-id-4a06d705.js → vega-internal-event-id-799d012e.js} +1 -1
- package/dist/esm/vega-item-toggle.entry.js +6 -5
- package/dist/esm/vega-left-nav_5.entry.js +29 -31
- package/dist/esm/vega-line-chart.entry.js +1 -1
- package/dist/esm/vega-loader-wrapper_2.entry.js +13 -29
- package/dist/esm/vega-page-notification_2.entry.js +4 -3
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +9 -9
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +7 -8
- package/dist/esm/vega-pagination.entry.js +20 -30
- package/dist/esm/vega-pie-chart.entry.js +1 -1
- package/dist/esm/vega-popover_2.entry.js +20 -30
- package/dist/esm/vega-progress-tracker_2.entry.js +64 -37
- package/dist/esm/vega-radio_2.entry.js +21 -19
- package/dist/esm/vega-rich-text-content.entry.js +18 -16
- package/dist/esm/vega-rich-text-editor_4.entry.js +33 -30
- package/dist/esm/vega-section-title.entry.js +1 -1
- package/dist/esm/vega-segment-control.entry.js +9 -7
- package/dist/esm/vega-selection-chip_2.entry.js +22 -29
- package/dist/esm/vega-selection-tile_2.entry.js +19 -17
- package/dist/esm/vega-sidenav_3.entry.js +24 -30
- package/dist/esm/vega-signature-capture.entry.js +24 -28
- package/dist/esm/vega-skeleton.entry.js +1 -1
- package/dist/esm/vega-slot-container.entry.js +1 -1
- package/dist/esm/vega-stepper.entry.js +18 -16
- package/dist/esm/vega-tab-group_2.entry.js +11 -10
- package/dist/esm/vega-table_11.entry.js +28 -29
- package/dist/esm/vega-text.entry.js +4 -3
- package/dist/esm/vega-textarea.entry.js +18 -16
- package/dist/esm/vega-time-picker_2.entry.js +26 -32
- package/dist/esm/vega-toggle-switch.entry.js +15 -12
- package/dist/esm/vega-tooltip_2.entry.js +18 -29
- package/dist/esm/vega.js +27 -24
- package/dist/esm/{index-51a7da7f.js → wait-for-component-did-render-b08ef07b.js} +3 -13
- package/dist/sri/vega-sri-manifest.json +418 -406
- package/dist/types/components/vega-app-footer/types.d.ts +18 -0
- package/dist/types/components/vega-app-header-button/types.d.ts +31 -0
- package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +2 -0
- package/dist/types/components/vega-banner/types.d.ts +9 -0
- package/dist/types/components/vega-box/interface.d.ts +46 -0
- package/dist/types/components/vega-breadcrumb/types.d.ts +28 -0
- package/dist/types/components/vega-button/types.d.ts +12 -0
- package/dist/types/components/vega-button-circle/types.d.ts +9 -0
- package/dist/types/components/vega-button-group/types.d.ts +48 -0
- package/dist/types/components/vega-button-link/types.d.ts +3 -0
- package/dist/types/components/vega-calendar/types.d.ts +189 -0
- package/dist/types/components/vega-calendar/vega-calendar-event-preview/types.d.ts +6 -0
- package/dist/types/components/vega-chart/vega-bar-chart/types.d.ts +3 -0
- package/dist/types/components/vega-chip/types.d.ts +12 -0
- package/dist/types/components/vega-code-block/slimmers/controllers/prism-code-highlight-parse-controller.d.ts +2 -10
- package/dist/types/components/vega-combo-box/types.d.ts +6 -0
- package/dist/types/components/vega-date-picker/types.d.ts +39 -0
- package/dist/types/components/vega-dialog/types.d.ts +5 -0
- package/dist/types/components/vega-divider/interface.d.ts +18 -0
- package/dist/types/components/vega-dropdown/types.d.ts +30 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/types.d.ts +9 -1
- package/dist/types/components/vega-field-error/types.d.ts +12 -0
- package/dist/types/components/vega-field-label/types.d.ts +16 -0
- package/dist/types/components/vega-file-uploader/types.d.ts +12 -0
- package/dist/types/components/vega-font/types.d.ts +3 -0
- package/dist/types/components/vega-form/types.d.ts +45 -0
- package/dist/types/components/vega-image-uploader/types.d.ts +33 -1
- package/dist/types/components/vega-input/types.d.ts +31 -0
- package/dist/types/components/vega-input-phone-number/types.d.ts +15 -0
- package/dist/types/components/vega-input-range/types.d.ts +9 -0
- package/dist/types/components/vega-input-select/types.d.ts +45 -0
- package/dist/types/components/vega-item-toggle/types.d.ts +21 -0
- package/dist/types/components/vega-loading-indicator/types.d.ts +3 -0
- package/dist/types/components/vega-modal/types.d.ts +9 -0
- package/dist/types/components/vega-nav/interface.d.ts +108 -0
- package/dist/types/components/vega-page-notification/types.d.ts +15 -0
- package/dist/types/components/vega-pagination/types.d.ts +11 -0
- package/dist/types/components/vega-progress-tracker/slimmers/controllers/dto/internal-progress-tracker-step.d.ts +16 -4
- package/dist/types/components/vega-progress-tracker/type.d.ts +8 -0
- package/dist/types/components/vega-progress-tracker/vega-progress-tracker-step/vega-progress-tracker-step.d.ts +6 -0
- package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +473 -2
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-image-editor/types.d.ts +24 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/types.d.ts +24 -0
- package/dist/types/components/vega-segment-control/types.d.ts +18 -0
- package/dist/types/components/vega-selection-chip/interface.d.ts +12 -0
- package/dist/types/components/vega-selection-chip/vega-selection-chip-group/interface.d.ts +4 -0
- package/dist/types/components/vega-selection-tile/interface.d.ts +9 -0
- package/dist/types/components/vega-sidenav/types.d.ts +51 -0
- package/dist/types/components/vega-signature-capture/types.d.ts +29 -2
- package/dist/types/components/vega-skeleton/interface.d.ts +6 -0
- package/dist/types/components/vega-tab-group/types.d.ts +36 -0
- package/dist/types/components/vega-table/interface.d.ts +237 -20
- package/dist/types/components/vega-table/vega-table-expand-row/types.d.ts +6 -0
- package/dist/types/components/vega-table/vega-table-foot/types.d.ts +9 -0
- package/dist/types/components/vega-table/vega-table-foot-row/types.d.ts +9 -0
- package/dist/types/components/vega-table/vega-table-head/types.d.ts +9 -0
- package/dist/types/components/vega-table/vega-table-head-row/types.d.ts +12 -0
- package/dist/types/components/vega-table/vega-table-row/types.d.ts +18 -0
- package/dist/types/components/vega-text/types.d.ts +6 -0
- package/dist/types/components/vega-time-picker/types.d.ts +33 -0
- package/dist/types/components/vega-virtual-scroll/types.d.ts +30 -1
- package/dist/types/components.d.ts +13 -3
- package/dist/types/helpers/common/index.d.ts +2 -15
- package/dist/types/helpers/common/wait-for-component-did-render.d.ts +8 -0
- package/dist/types/helpers/common/wait-for-vega-handler.d.ts +6 -15
- package/dist/types/helpers/feature-control/feature-flag.d.ts +2 -1
- package/dist/types/helpers/public-api.d.ts +0 -2
- package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +44 -0
- package/dist/types/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.d.ts +1 -0
- package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +57 -48
- package/dist/types/helpers/slimmers/position-calculation/position-calculation-controller.d.ts +5 -0
- package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +41 -1
- package/dist/types/helpers/slimmers/position-calculation/screen-scroll-position-update.d.ts +39 -0
- package/dist/types/helpers/ui/element-appender.d.ts +0 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/polyfill/prism/index.d.ts +3 -0
- package/dist/types/polyfill/prism/languages/css.d.ts +6 -0
- package/dist/types/polyfill/prism/languages/javascript.d.ts +7 -0
- package/dist/types/polyfill/prism/languages/jsx.d.ts +7 -0
- package/dist/types/polyfill/prism/languages/language-registry.d.ts +8 -0
- package/dist/types/polyfill/prism/languages/markup.d.ts +6 -0
- package/dist/types/polyfill/prism/languages/tsx.d.ts +7 -0
- package/dist/types/polyfill/prism/languages/typescript.d.ts +2 -0
- package/dist/types/polyfill/prism/test/css.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/javascript.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/jsx.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/language-registry.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/markup.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/test-utils.d.ts +10 -0
- package/dist/types/polyfill/prism/test/tokenizer.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/tsx.test.d.ts +1 -0
- package/dist/types/polyfill/prism/test/typescript.test.d.ts +1 -0
- package/dist/types/polyfill/prism/tokenizer.d.ts +17 -0
- package/dist/types/polyfill/prism/types.d.ts +25 -0
- package/dist/types/polyfill/tinycolor/tinycolor-polyfill.d.ts +149 -0
- package/dist/types/polyfill/tinycolor/tinycolor-polyfill.test.d.ts +1 -0
- package/dist/types/types/components.type.d.ts +4 -1
- package/dist/types/types/design-token.type.d.ts +36 -0
- package/dist/types/types/flag.type.d.ts +3 -0
- package/dist/types/types/general.d.ts +12 -0
- package/dist/types/types/ui.type.d.ts +372 -0
- package/dist/types/types/vega-chart.d.ts +281 -2
- package/dist/types/utils/e2e-utils.d.ts +2 -0
- package/dist/types/utils/sanitize/constants/tag-sets.d.ts +6 -0
- package/dist/types/utils/sanitize/core/html-sanitizer.d.ts +22 -0
- package/dist/types/utils/sanitize/core/sanitize-strategy.d.ts +27 -0
- package/dist/types/utils/sanitize/core/types.d.ts +13 -0
- package/dist/types/utils/sanitize/index.d.ts +12 -0
- package/dist/types/utils/sanitize/strategies/empty-sanitize-strategy.d.ts +14 -0
- package/dist/types/utils/sanitize/strategies/index.d.ts +3 -0
- package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +10 -0
- package/dist/types/utils/sanitize/strategies/style-sanitize-strategy.d.ts +24 -0
- package/dist/types/utils/sanitize/test/empty-strategy.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/html-sanitizer.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/label-strategy.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/sanitize-strategy.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/sanitize.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/serialize-fragment.test.d.ts +1 -0
- package/dist/types/utils/sanitize/test/style-strategy.test.d.ts +1 -0
- package/dist/types/utils/sanitize/utils/serialize-fragment.d.ts +12 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-01d58eb8.entry.js +1 -0
- package/dist/vega/p-021d4ae4.js +1 -0
- package/dist/vega/p-02a7d60c.entry.js +1 -0
- package/dist/vega/{p-66fa700b.js → p-02c9796a.js} +1 -1
- package/dist/vega/p-033c31d8.entry.js +1 -0
- package/dist/vega/{p-e77a83e4.js → p-07cb0243.js} +1 -1
- package/dist/vega/p-087ea379.entry.js +1 -0
- package/dist/vega/{p-e5af5a4d.entry.js → p-0b4880bd.entry.js} +1 -1
- package/dist/vega/{p-920719ad.js → p-0e679d8c.js} +1 -1
- package/dist/vega/{p-c9b6b5a9.js → p-10734a00.js} +1 -1
- package/dist/vega/p-154f9cf7.entry.js +1 -0
- package/dist/vega/p-179aad4f.entry.js +1 -0
- package/dist/vega/p-1a3236e7.entry.js +1 -0
- package/dist/vega/p-1f3cd061.entry.js +1 -0
- package/dist/vega/p-1f5e35dc.entry.js +1 -0
- package/dist/vega/p-242fbcad.entry.js +1 -0
- package/dist/vega/p-249df6d2.entry.js +1 -0
- package/dist/vega/p-28ad1864.entry.js +1 -0
- package/dist/vega/p-2a10e2e5.js +1 -0
- package/dist/vega/p-2b49686d.entry.js +1 -0
- package/dist/vega/p-2ba78982.entry.js +1 -0
- package/dist/vega/p-2bb5a232.js +1 -0
- package/dist/vega/{p-e9b86dac.entry.js → p-2c1a85dd.entry.js} +1 -1
- package/dist/vega/p-2cc9d126.entry.js +1 -0
- package/dist/vega/p-2d69632d.js +1 -0
- package/dist/vega/p-2e91295d.entry.js +1 -0
- package/dist/vega/p-31ac7386.js +1 -0
- package/dist/vega/p-32033e7a.js +1 -0
- package/dist/vega/p-32183637.entry.js +1 -0
- package/dist/vega/p-3244c605.entry.js +1 -0
- package/dist/vega/p-32faa460.entry.js +1 -0
- package/dist/vega/p-33f9ad94.entry.js +1 -0
- package/dist/vega/{p-4897bedd.entry.js → p-358b4a06.entry.js} +1 -1
- package/dist/vega/p-3afc025e.entry.js +1 -0
- package/dist/vega/p-3d8122ab.entry.js +1 -0
- package/dist/vega/{p-ea04a387.entry.js → p-3f3c771a.entry.js} +1 -1
- package/dist/vega/{p-1f83cebf.js → p-415ffa35.js} +1 -1
- package/dist/vega/{p-d849e0f5.js → p-4415ad28.js} +1 -1
- package/dist/vega/{p-0575d22e.js → p-464559e3.js} +1 -1
- package/dist/vega/p-49845a91.js +1 -0
- package/dist/vega/{p-e16b3adf.js → p-4bffdb28.js} +1 -1
- package/dist/vega/p-4e017458.entry.js +1 -0
- package/dist/vega/p-4e4a0228.entry.js +1 -0
- package/dist/vega/{p-a2aeb646.js → p-4ea30592.js} +1 -1
- package/dist/vega/{p-0b38a01f.entry.js → p-51fcb07f.entry.js} +1 -1
- package/dist/vega/p-57927b10.entry.js +1 -0
- package/dist/vega/p-5831d6d3.entry.js +1 -0
- package/dist/vega/p-593e0f80.js +1 -0
- package/dist/vega/p-5a25014f.js +1 -0
- package/dist/vega/p-5eb7f382.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-644f701a.js +1 -0
- package/dist/vega/p-6a62e476.entry.js +1 -0
- package/dist/vega/{p-75f981ce.js → p-6b6f0fb4.js} +1 -1
- package/dist/vega/p-6d219c44.entry.js +1 -0
- package/dist/vega/p-6d60b66a.entry.js +1 -0
- package/dist/vega/{p-ad2055f4.entry.js → p-6dcdb580.entry.js} +1 -1
- package/dist/vega/{p-691ba1ae.js → p-7181861a.js} +1 -1
- package/dist/vega/p-76181a70.entry.js +1 -0
- package/dist/vega/p-781fd6e0.js +1 -0
- package/dist/vega/p-7958614a.entry.js +1 -0
- package/dist/vega/{p-5b71c85e.js → p-7c39ce96.js} +1 -1
- package/dist/vega/p-7d7aaff9.entry.js +1 -0
- package/dist/vega/{p-4dd6554e.entry.js → p-7f46cc1e.entry.js} +1 -1
- package/dist/vega/{p-badad9ed.js → p-81b044b9.js} +1 -1
- package/dist/vega/p-8950987b.entry.js +1 -0
- package/dist/vega/p-89f2e16d.entry.js +1 -0
- package/dist/vega/p-8ac2d165.js +1 -0
- package/dist/vega/p-8b153acd.entry.js +1 -0
- package/dist/vega/p-8b5d3a52.js +1 -0
- package/dist/vega/{p-fff13ed1.entry.js → p-8b891f36.entry.js} +1 -1
- package/dist/vega/p-8dbdd609.entry.js +1 -0
- package/dist/vega/{p-dd11f735.js → p-9339c6c4.js} +1 -1
- package/dist/vega/p-94a77fbe.entry.js +1 -0
- package/dist/vega/p-95528b47.js +1 -0
- package/dist/vega/p-9a137bab.entry.js +1 -0
- package/dist/vega/{p-6f8be8ea.js → p-a0b66c25.js} +1 -1
- package/dist/vega/{p-0bb3be0b.entry.js → p-a13a73fa.entry.js} +1 -1
- package/dist/vega/p-a560d8c5.entry.js +1 -0
- package/dist/vega/{p-d0e31633.js → p-a786259a.js} +1 -1
- package/dist/vega/p-a7a8a4eb.entry.js +1 -0
- package/dist/vega/p-a8792e3d.js +1 -0
- package/dist/vega/{p-60851f9d.js → p-aa1174dc.js} +1 -1
- package/dist/vega/p-ab834f06.js +1 -0
- package/dist/vega/p-b136ebba.entry.js +1 -0
- package/dist/vega/p-b201f379.js +1 -0
- package/dist/vega/p-b256b7a4.js +1 -0
- package/dist/vega/p-b366deff.entry.js +1 -0
- package/dist/vega/p-b597393b.entry.js +1 -0
- package/dist/vega/p-b7f3221f.js +1 -0
- package/dist/vega/p-bb5e0192.entry.js +1 -0
- package/dist/vega/p-be1a210b.js +1 -0
- package/dist/vega/p-bebfbe95.entry.js +1 -0
- package/dist/vega/p-bf6fc19f.entry.js +1 -0
- package/dist/vega/p-c1d13eec.entry.js +1 -0
- package/dist/vega/p-c29068fb.entry.js +1 -0
- package/dist/vega/p-c3d2f316.js +1 -0
- package/dist/vega/{p-671afda4.entry.js → p-c72e08c6.entry.js} +1 -1
- package/dist/vega/p-c801c85d.js +1 -0
- package/dist/vega/p-c8feb644.entry.js +1 -0
- package/dist/vega/p-ca5898dc.entry.js +1 -0
- package/dist/vega/p-d555f677.entry.js +1 -0
- package/dist/vega/p-d64fab3d.js +1 -0
- package/dist/vega/p-d6dbbe61.entry.js +1 -0
- package/dist/vega/p-d7a78c5e.entry.js +1 -0
- package/dist/vega/p-d8fadcdc.entry.js +1 -0
- package/dist/vega/p-dad3ba5f.js +1 -0
- package/dist/vega/p-dd3a94f4.entry.js +1 -0
- package/dist/vega/p-e1431c14.entry.js +1 -0
- package/dist/vega/p-e1fbfd20.js +1 -0
- package/dist/vega/p-e2af0e24.entry.js +1 -0
- package/dist/vega/{p-521d1d07.js → p-e52890db.js} +1 -1
- package/dist/vega/{p-1298b126.js → p-e632475e.js} +1 -1
- package/dist/vega/p-e6adf829.js +1 -0
- package/dist/vega/{p-77edf50c.js → p-e827d56d.js} +1 -1
- package/dist/vega/p-e8775a56.entry.js +1 -0
- package/dist/vega/p-e89e3ede.entry.js +1 -0
- package/dist/vega/p-eda988d5.entry.js +1 -0
- package/dist/vega/p-f05b8f76.entry.js +1 -0
- package/dist/vega/p-f0e828d8.js +1 -0
- package/dist/vega/p-f14a5eae.entry.js +1 -0
- package/dist/vega/p-f2b0b58a.js +1 -0
- package/dist/vega/p-f3d0f2dc.js +1 -0
- package/dist/vega/{p-5910be31.entry.js → p-f5bafc45.entry.js} +1 -1
- package/dist/vega/p-fc1fa345.js +1 -0
- package/dist/vega/p-fd7ddd64.entry.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +3 -5
- package/dist/cjs/_commonjsHelpers-537d719a.js +0 -20
- package/dist/cjs/language-extension-8c4a56ff.js +0 -210
- package/dist/cjs/sanitize-fb222510.js +0 -131
- package/dist/cjs/wait-for-vega-handler-5469ff80.js +0 -63
- package/dist/collection/utils/sanitize.js +0 -126
- package/dist/collection/utils/test/sanitize.test.js +0 -65
- package/dist/esm/_commonjsHelpers-9943807e.js +0 -17
- package/dist/esm/dom-node-subject-observer-factory-064ee2b2.js +0 -250
- package/dist/esm/language-extension-29bf8acd.js +0 -207
- package/dist/esm/sanitize-fd0cb40d.js +0 -129
- package/dist/esm/wait-for-vega-handler-c2c07ac3.js +0 -61
- package/dist/types/utils/sanitize.d.ts +0 -71
- package/dist/vega/p-011b94b1.entry.js +0 -1
- package/dist/vega/p-012753b5.entry.js +0 -1
- package/dist/vega/p-024331ce.entry.js +0 -1
- package/dist/vega/p-08a90cc6.entry.js +0 -1
- package/dist/vega/p-0ede1fea.entry.js +0 -1
- package/dist/vega/p-10ac8b57.js +0 -1
- package/dist/vega/p-112455b1.js +0 -1
- package/dist/vega/p-17c55205.entry.js +0 -1
- package/dist/vega/p-1e0d8228.entry.js +0 -1
- package/dist/vega/p-3353b3d7.js +0 -1
- package/dist/vega/p-365b1b35.entry.js +0 -1
- package/dist/vega/p-3ae9ee3d.entry.js +0 -1
- package/dist/vega/p-3af92370.entry.js +0 -1
- package/dist/vega/p-3bf66be2.js +0 -1
- package/dist/vega/p-3c5a28e4.entry.js +0 -1
- package/dist/vega/p-3e5f362f.js +0 -1
- package/dist/vega/p-430be941.js +0 -1
- package/dist/vega/p-43f585f7.entry.js +0 -1
- package/dist/vega/p-45296fd4.entry.js +0 -1
- package/dist/vega/p-476a173a.js +0 -1
- package/dist/vega/p-491618a6.entry.js +0 -1
- package/dist/vega/p-4a537391.entry.js +0 -1
- package/dist/vega/p-4aa893ef.entry.js +0 -1
- package/dist/vega/p-4c47e8bb.entry.js +0 -1
- package/dist/vega/p-4da75f2b.js +0 -1
- package/dist/vega/p-509eb52e.entry.js +0 -1
- package/dist/vega/p-5110ba73.entry.js +0 -1
- package/dist/vega/p-556f9a21.entry.js +0 -1
- package/dist/vega/p-55b54ba0.entry.js +0 -1
- package/dist/vega/p-5d676a94.js +0 -1
- package/dist/vega/p-5ea2e43c.entry.js +0 -1
- package/dist/vega/p-5efc6fe1.entry.js +0 -1
- package/dist/vega/p-64cd1931.entry.js +0 -1
- package/dist/vega/p-67fcf6f2.entry.js +0 -9
- package/dist/vega/p-68df4288.js +0 -1
- package/dist/vega/p-6a2205a1.entry.js +0 -1
- package/dist/vega/p-6a4277df.entry.js +0 -1
- package/dist/vega/p-6e136980.js +0 -1
- package/dist/vega/p-6fa8e231.entry.js +0 -1
- package/dist/vega/p-7045e84c.entry.js +0 -1
- package/dist/vega/p-7288f8c4.js +0 -1
- package/dist/vega/p-749f96a4.js +0 -1
- package/dist/vega/p-7aaece55.entry.js +0 -1
- package/dist/vega/p-7ec6a104.entry.js +0 -1
- package/dist/vega/p-81134e9e.entry.js +0 -1
- package/dist/vega/p-89d685a8.js +0 -1
- package/dist/vega/p-8c0eb12f.entry.js +0 -1
- package/dist/vega/p-8c9ea6f4.js +0 -1
- package/dist/vega/p-8d0ca805.js +0 -1
- package/dist/vega/p-8d701832.entry.js +0 -1
- package/dist/vega/p-8e42a14c.entry.js +0 -1
- package/dist/vega/p-8ed0faa2.entry.js +0 -1
- package/dist/vega/p-94394df7.entry.js +0 -1
- package/dist/vega/p-99aa554b.entry.js +0 -1
- package/dist/vega/p-9a2446f1.entry.js +0 -1
- package/dist/vega/p-9fd503e9.entry.js +0 -1
- package/dist/vega/p-a4670e23.js +0 -1
- package/dist/vega/p-a475d525.entry.js +0 -1
- package/dist/vega/p-a530797f.entry.js +0 -1
- package/dist/vega/p-a85ad369.entry.js +0 -1
- package/dist/vega/p-ac5e9955.entry.js +0 -1
- package/dist/vega/p-aedf7146.js +0 -1
- package/dist/vega/p-b1f869fb.js +0 -1
- package/dist/vega/p-b4ea3fad.js +0 -1
- package/dist/vega/p-bb4a558d.entry.js +0 -1
- package/dist/vega/p-bb8339ed.entry.js +0 -1
- package/dist/vega/p-be930e85.entry.js +0 -1
- package/dist/vega/p-bf2bd6d0.entry.js +0 -1
- package/dist/vega/p-c2488ed6.js +0 -1
- package/dist/vega/p-c379a5a5.entry.js +0 -1
- package/dist/vega/p-c616c592.js +0 -1
- package/dist/vega/p-ca3472c1.entry.js +0 -1
- package/dist/vega/p-cc43bffb.js +0 -1
- package/dist/vega/p-cf5b80f9.entry.js +0 -1
- package/dist/vega/p-db60a38e.entry.js +0 -1
- package/dist/vega/p-db8cdba6.js +0 -1
- package/dist/vega/p-e93545fd.js +0 -1
- package/dist/vega/p-e9c4fd24.entry.js +0 -1
- package/dist/vega/p-eb60cfe1.entry.js +0 -1
- package/dist/vega/p-ec192283.entry.js +0 -1
- package/dist/vega/p-ef9cbad1.js +0 -1
- package/dist/vega/p-f2a3a1ec.entry.js +0 -1
- package/dist/vega/p-f2cdd212.entry.js +0 -1
- package/dist/vega/p-f3c3ff26.entry.js +0 -1
- package/dist/vega/p-f4c05b4a.entry.js +0 -1
- package/dist/vega/p-f52a0155.entry.js +0 -1
- package/dist/vega/p-f69f84a7.js +0 -1
- package/dist/vega/p-f8641214.entry.js +0 -1
- package/dist/vega/p-f89443aa.entry.js +0 -1
- package/dist/vega/p-f8f7cf48.entry.js +0 -1
- package/dist/vega/p-fe12eff6.js +0 -1
- /package/dist/{types/utils/test/sanitize.test.d.ts → collection/polyfill/prism/types.js} +0 -0
- /package/dist/vega/{p-d9671d27.js → p-6c170474.js} +0 -0
|
@@ -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,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TinyColor Polyfill - A lightweight color manipulation utility.
|
|
3
|
+
*
|
|
4
|
+
* This is a drop-in replacement for tinycolor2, implementing only the methods
|
|
5
|
+
* used in the Vega theme overriding system.
|
|
6
|
+
*
|
|
7
|
+
* @see VD-5026 - [Zero Dependencies] remove tinycolor2 dependency
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* TinyColor polyfill class for color manipulation.
|
|
11
|
+
* Implements the same interface as tinycolor2.Instance for the methods used in Vega.
|
|
12
|
+
*/
|
|
13
|
+
export class TinyColorPolyfill {
|
|
14
|
+
/**
|
|
15
|
+
* Create a new TinyColorPolyfill instance.
|
|
16
|
+
*
|
|
17
|
+
* @param {string | RgbaValue} color - The color to parse.
|
|
18
|
+
*/
|
|
19
|
+
constructor(color) {
|
|
20
|
+
const rgba = TinyColorPolyfill.parseColor(color);
|
|
21
|
+
this._r = rgba.r;
|
|
22
|
+
this._g = rgba.g;
|
|
23
|
+
this._b = rgba.b;
|
|
24
|
+
this._a = rgba.a;
|
|
25
|
+
}
|
|
26
|
+
// ==================== Private Static Helper Methods ====================
|
|
27
|
+
/**
|
|
28
|
+
* Clamp a value between a minimum and maximum.
|
|
29
|
+
*
|
|
30
|
+
* @param {number} value - The value to clamp.
|
|
31
|
+
* @param {number} min - The minimum allowed value.
|
|
32
|
+
* @param {number} max - The maximum allowed value.
|
|
33
|
+
* @returns {number} The clamped value.
|
|
34
|
+
*/
|
|
35
|
+
static clamp(value, min, max) {
|
|
36
|
+
return Math.min(Math.max(value, min), max);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Parse a color string or RGBA object into an RgbaValue.
|
|
40
|
+
*
|
|
41
|
+
* Supported formats:
|
|
42
|
+
* - Hex: #RGB, #RRGGBB, #RRGGBBAA
|
|
43
|
+
* - RGB: rgb(r, g, b)
|
|
44
|
+
* - RGBA: rgba(r, g, b, a)
|
|
45
|
+
* - Object: { r, g, b, a? }
|
|
46
|
+
*
|
|
47
|
+
* @param {string | RgbaValue} color - The color to parse.
|
|
48
|
+
* @returns {RgbaValue} The parsed RGBA value.
|
|
49
|
+
*/
|
|
50
|
+
static parseColor(color) {
|
|
51
|
+
if (typeof color === 'object' && 'r' in color && 'g' in color && 'b' in color) {
|
|
52
|
+
return {
|
|
53
|
+
r: Math.round(TinyColorPolyfill.clamp(color.r, 0, 255)),
|
|
54
|
+
g: Math.round(TinyColorPolyfill.clamp(color.g, 0, 255)),
|
|
55
|
+
b: Math.round(TinyColorPolyfill.clamp(color.b, 0, 255)),
|
|
56
|
+
a: color.a !== undefined ? TinyColorPolyfill.clamp(color.a, 0, 1) : 1,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (typeof color !== 'string') {
|
|
60
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
61
|
+
}
|
|
62
|
+
const trimmed = color.trim().toLowerCase();
|
|
63
|
+
// Hex format
|
|
64
|
+
if (trimmed.startsWith('#')) {
|
|
65
|
+
return TinyColorPolyfill.parseHex(trimmed);
|
|
66
|
+
}
|
|
67
|
+
// RGB/RGBA format
|
|
68
|
+
if (trimmed.startsWith('rgb')) {
|
|
69
|
+
return TinyColorPolyfill.parseRgbString(trimmed);
|
|
70
|
+
}
|
|
71
|
+
// Fallback to black for unsupported formats
|
|
72
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
73
|
+
}
|
|
74
|
+
/* eslint-disable spellcheck/spell-checker */
|
|
75
|
+
/**
|
|
76
|
+
* Parse a hex color string into RGBA values.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} hex - The hex color string (e.g., "#fff", "#ffffff", "#ffffffff").
|
|
79
|
+
* @returns {RgbaValue} The parsed RGBA value.
|
|
80
|
+
*/
|
|
81
|
+
static parseHex(hex) {
|
|
82
|
+
/* eslint-enable spellcheck/spell-checker */
|
|
83
|
+
// Remove the # prefix
|
|
84
|
+
let hexValue = hex.slice(1);
|
|
85
|
+
// Expand shorthand format (#RGB -> #RRGGBB)
|
|
86
|
+
if (hexValue.length === 3) {
|
|
87
|
+
hexValue = hexValue
|
|
88
|
+
.split('')
|
|
89
|
+
.map((c) => c + c)
|
|
90
|
+
.join('');
|
|
91
|
+
}
|
|
92
|
+
// Handle #RGBA shorthand
|
|
93
|
+
if (hexValue.length === 4) {
|
|
94
|
+
hexValue = hexValue
|
|
95
|
+
.split('')
|
|
96
|
+
.map((c) => c + c)
|
|
97
|
+
.join('');
|
|
98
|
+
}
|
|
99
|
+
const r = parseInt(hexValue.slice(0, 2), 16);
|
|
100
|
+
const g = parseInt(hexValue.slice(2, 4), 16);
|
|
101
|
+
const b = parseInt(hexValue.slice(4, 6), 16);
|
|
102
|
+
let a = 1;
|
|
103
|
+
// Handle #RRGGBBAA format
|
|
104
|
+
if (hexValue.length === 8) {
|
|
105
|
+
a = parseInt(hexValue.slice(6, 8), 16) / 255;
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
r: Number.isNaN(r) ? 0 : r,
|
|
109
|
+
g: Number.isNaN(g) ? 0 : g,
|
|
110
|
+
b: Number.isNaN(b) ? 0 : b,
|
|
111
|
+
a: Number.isNaN(a) ? 1 : a,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Parse an RGB or RGBA string into RGBA values.
|
|
116
|
+
*
|
|
117
|
+
* @param {string} rgbString - The RGB/RGBA string (e.g., "rgb(255, 128, 0)" or "rgba(255, 128, 0, 0.5)").
|
|
118
|
+
* @returns {RgbaValue} The parsed RGBA value.
|
|
119
|
+
*/
|
|
120
|
+
static parseRgbString(rgbString) {
|
|
121
|
+
// Match rgb(r, g, b) or rgba(r, g, b, a) with comma-separated integer values.
|
|
122
|
+
// Note: Does NOT support percentage values (e.g., rgb(100%, 50%, 0%)) or
|
|
123
|
+
// modern CSS space-separated syntax (e.g., rgb(255 128 0 / 0.5)).
|
|
124
|
+
const match = rgbString.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+\.?\d*))?\s*\)/);
|
|
125
|
+
if (!match) {
|
|
126
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
r: TinyColorPolyfill.clamp(parseInt(match[1], 10), 0, 255),
|
|
130
|
+
g: TinyColorPolyfill.clamp(parseInt(match[2], 10), 0, 255),
|
|
131
|
+
b: TinyColorPolyfill.clamp(parseInt(match[3], 10), 0, 255),
|
|
132
|
+
a: match[4] !== undefined ? TinyColorPolyfill.clamp(parseFloat(match[4]), 0, 1) : 1,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Convert RGB to HSL.
|
|
137
|
+
*
|
|
138
|
+
* @param {number} r - Red (0-255).
|
|
139
|
+
* @param {number} g - Green (0-255).
|
|
140
|
+
* @param {number} b - Blue (0-255).
|
|
141
|
+
* @returns {HslValue} The HSL values (h: 0-360, s: 0-1, l: 0-1).
|
|
142
|
+
*/
|
|
143
|
+
static rgbToHsl(r, g, b) {
|
|
144
|
+
r /= 255;
|
|
145
|
+
g /= 255;
|
|
146
|
+
b /= 255;
|
|
147
|
+
const max = Math.max(r, g, b);
|
|
148
|
+
const min = Math.min(r, g, b);
|
|
149
|
+
const l = (max + min) / 2;
|
|
150
|
+
let h = 0;
|
|
151
|
+
let s = 0;
|
|
152
|
+
if (max !== min) {
|
|
153
|
+
const d = max - min;
|
|
154
|
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
155
|
+
switch (max) {
|
|
156
|
+
case r:
|
|
157
|
+
h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
|
|
158
|
+
break;
|
|
159
|
+
case g:
|
|
160
|
+
h = ((b - r) / d + 2) / 6;
|
|
161
|
+
break;
|
|
162
|
+
case b:
|
|
163
|
+
h = ((r - g) / d + 4) / 6;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return { h: h * 360, s, l };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert HSL to RGB.
|
|
171
|
+
*
|
|
172
|
+
* @param {number} h - Hue (0-360).
|
|
173
|
+
* @param {number} s - Saturation (0-1).
|
|
174
|
+
* @param {number} l - Lightness (0-1).
|
|
175
|
+
* @returns {RgbValue} The RGB values (0-255).
|
|
176
|
+
*/
|
|
177
|
+
static hslToRgb(h, s, l) {
|
|
178
|
+
h /= 360;
|
|
179
|
+
let r;
|
|
180
|
+
let g;
|
|
181
|
+
let b;
|
|
182
|
+
if (s === 0) {
|
|
183
|
+
r = g = b = l;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
/**
|
|
187
|
+
* Helper function to convert hue to RGB component.
|
|
188
|
+
*
|
|
189
|
+
* @param {number} p - First intermediate value.
|
|
190
|
+
* @param {number} q - Second intermediate value.
|
|
191
|
+
* @param {number} t - Hue offset value.
|
|
192
|
+
* @returns {number} RGB component value (0-1).
|
|
193
|
+
*/
|
|
194
|
+
const hue2rgb = (p, q, t) => {
|
|
195
|
+
if (t < 0)
|
|
196
|
+
t += 1;
|
|
197
|
+
if (t > 1)
|
|
198
|
+
t -= 1;
|
|
199
|
+
if (t < 1 / 6)
|
|
200
|
+
return p + (q - p) * 6 * t;
|
|
201
|
+
if (t < 1 / 2)
|
|
202
|
+
return q;
|
|
203
|
+
if (t < 2 / 3)
|
|
204
|
+
return p + (q - p) * (2 / 3 - t) * 6;
|
|
205
|
+
return p;
|
|
206
|
+
};
|
|
207
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
208
|
+
const p = 2 * l - q;
|
|
209
|
+
r = hue2rgb(p, q, h + 1 / 3);
|
|
210
|
+
g = hue2rgb(p, q, h);
|
|
211
|
+
b = hue2rgb(p, q, h - 1 / 3);
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
r: Math.round(r * 255),
|
|
215
|
+
g: Math.round(g * 255),
|
|
216
|
+
b: Math.round(b * 255),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Calculate the perceived brightness of a color using the YIQ formula.
|
|
221
|
+
* This matches tinycolor2's brightness calculation.
|
|
222
|
+
*
|
|
223
|
+
* @param {number} r - Red (0-255).
|
|
224
|
+
* @param {number} g - Green (0-255).
|
|
225
|
+
* @param {number} b - Blue (0-255).
|
|
226
|
+
* @returns {number} Brightness value (0-255).
|
|
227
|
+
*/
|
|
228
|
+
static getBrightness(r, g, b) {
|
|
229
|
+
return (r * 299 + g * 587 + b * 114) / 1000;
|
|
230
|
+
}
|
|
231
|
+
// ==================== Public Instance Methods ====================
|
|
232
|
+
/**
|
|
233
|
+
* Check if the color is dark (brightness < 128).
|
|
234
|
+
*
|
|
235
|
+
* @returns {boolean} True if the color is considered dark.
|
|
236
|
+
*/
|
|
237
|
+
isDark() {
|
|
238
|
+
return TinyColorPolyfill.getBrightness(this._r, this._g, this._b) < 128;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Check if the color is light (brightness >= 128).
|
|
242
|
+
*
|
|
243
|
+
* @returns {boolean} True if the color is considered light.
|
|
244
|
+
*/
|
|
245
|
+
isLight() {
|
|
246
|
+
return !this.isDark();
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Create a copy of this color.
|
|
250
|
+
*
|
|
251
|
+
* @returns {TinyColorPolyfill} A new TinyColorPolyfill instance with the same values.
|
|
252
|
+
*/
|
|
253
|
+
clone() {
|
|
254
|
+
const cloned = new TinyColorPolyfill({
|
|
255
|
+
r: this._r,
|
|
256
|
+
g: this._g,
|
|
257
|
+
b: this._b,
|
|
258
|
+
a: this._a,
|
|
259
|
+
});
|
|
260
|
+
return cloned;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Lighten the color by a given amount.
|
|
264
|
+
* Note: tinycolor2 accepts negative values to darken.
|
|
265
|
+
*
|
|
266
|
+
* @param {number} amount - The amount to lighten (0-100). Negative values darken.
|
|
267
|
+
* @returns {TinyColorPolyfill} This instance for chaining.
|
|
268
|
+
*/
|
|
269
|
+
lighten(amount = 10) {
|
|
270
|
+
const hsl = TinyColorPolyfill.rgbToHsl(this._r, this._g, this._b);
|
|
271
|
+
hsl.l = TinyColorPolyfill.clamp(hsl.l + amount / 100, 0, 1);
|
|
272
|
+
const rgb = TinyColorPolyfill.hslToRgb(hsl.h, hsl.s, hsl.l);
|
|
273
|
+
this._r = rgb.r;
|
|
274
|
+
this._g = rgb.g;
|
|
275
|
+
this._b = rgb.b;
|
|
276
|
+
return this;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Darken the color by a given amount.
|
|
280
|
+
*
|
|
281
|
+
* @param {number} amount - The amount to darken (0-100).
|
|
282
|
+
* @returns {TinyColorPolyfill} This instance for chaining.
|
|
283
|
+
*/
|
|
284
|
+
darken(amount = 10) {
|
|
285
|
+
return this.lighten(-amount);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Set the alpha (opacity) of the color.
|
|
289
|
+
*
|
|
290
|
+
* @param {number} alpha - The alpha value (0-1).
|
|
291
|
+
* @returns {TinyColorPolyfill} This instance for chaining.
|
|
292
|
+
*/
|
|
293
|
+
setAlpha(alpha) {
|
|
294
|
+
this._a = TinyColorPolyfill.clamp(alpha, 0, 1);
|
|
295
|
+
return this;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get the RGBA representation of the color.
|
|
299
|
+
*
|
|
300
|
+
* @returns {RgbaValue} The RGBA values.
|
|
301
|
+
*/
|
|
302
|
+
toRgb() {
|
|
303
|
+
return {
|
|
304
|
+
r: this._r,
|
|
305
|
+
g: this._g,
|
|
306
|
+
b: this._b,
|
|
307
|
+
a: this._a,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Factory function to create a TinyColorPolyfill instance.
|
|
313
|
+
* This provides API compatibility with tinycolor2's default export.
|
|
314
|
+
*
|
|
315
|
+
* @param {string | RgbaValue} color - The color to parse.
|
|
316
|
+
* @returns {TinyColorPolyfill} A new TinyColorPolyfill instance.
|
|
317
|
+
*/
|
|
318
|
+
export function tinycolor(color) {
|
|
319
|
+
return new TinyColorPolyfill(color);
|
|
320
|
+
}
|