@ngxsmk/theme 1.3.2 → 3.0.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.
@@ -1,20 +1,21 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { Injectable, computed, effect, inject, signal } from '@angular/core';
3
- import { buildThemeCss } from './css';
3
+ import { NgxThemeInjectorService } from './theme-injector.service';
4
4
  import * as i0 from "@angular/core";
5
5
  const STORAGE_KEY = 'ngxsmk-theme-mode';
6
- const STYLE_ID = 'ngxsmk-theme';
7
6
  /**
8
7
  * Runtime theme control: dark-mode switching (class strategy) and dynamic
9
8
  * theme application by injecting generated token CSS into the document.
10
9
  *
10
+ * CSS injection is delegated to {@link NgxThemeInjectorService} for
11
+ * consumers who only need token injection without dark-mode logic.
12
+ *
11
13
  * SSR-safe: all DOM access goes through the injected document and degrades
12
14
  * gracefully when `window`/`matchMedia` are unavailable.
13
15
  */
14
16
  export class NgxsmkThemeService {
15
17
  constructor() {
16
- // Inject DOCUMENT first so that restoreMode() and matchSystemDark()
17
- // can safely access it when the signals are initialised below.
18
+ this.injector = inject(NgxThemeInjectorService);
18
19
  this.document = inject(DOCUMENT);
19
20
  this.mode = signal(this.restoreMode());
20
21
  this.systemDark = signal(this.matchSystemDark());
@@ -37,23 +38,21 @@ export class NgxsmkThemeService {
37
38
  toggle() {
38
39
  this.setMode(this.isDark() ? 'light' : 'dark');
39
40
  }
40
- /**
41
- * Apply a theme at runtime. Generates token CSS from the config and swaps
42
- * it into a dedicated `<style>` element, overriding the build-time theme.
43
- */
44
- applyTheme(config) {
45
- const head = this.document.head;
46
- let style = this.document.getElementById(STYLE_ID);
47
- if (!style) {
48
- style = this.document.createElement('style');
49
- style.id = STYLE_ID;
50
- head.appendChild(style);
51
- }
52
- style.textContent = buildThemeCss(config);
41
+ /** @see NgxThemeInjectorService.applyTheme */
42
+ applyTheme(config, adapter) {
43
+ this.injector.applyTheme(config, adapter);
53
44
  }
54
- /** Remove a runtime-applied theme, falling back to the build-time CSS. */
45
+ /** @see NgxThemeInjectorService.applyIonicTheme */
46
+ applyIonicTheme(config) {
47
+ this.injector.applyIonicTheme(config);
48
+ }
49
+ /** @see NgxThemeInjectorService.clearTheme */
55
50
  clearTheme() {
56
- this.document.getElementById(STYLE_ID)?.remove();
51
+ this.injector.clearTheme();
52
+ }
53
+ /** @see NgxThemeInjectorService.clearIonicTheme */
54
+ clearIonicTheme() {
55
+ this.injector.clearIonicTheme();
57
56
  }
58
57
  restoreMode() {
59
58
  try {
@@ -77,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
77
76
  type: Injectable,
78
77
  args: [{ providedIn: 'root' }]
79
78
  }], ctorParameters: () => [] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9saWIvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFLdEMsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDO0FBRWhDOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFXN0I7UUFDRSxvRUFBb0U7UUFDcEUsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFZLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUMxQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQ3RFLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asd0VBQXdFO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsTUFBbUI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUE0QixDQUFDO1FBQzlFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxLQUFLLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdFLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyQkFBMkI7UUFDN0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQ2xHLENBQUM7OEdBN0VVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnVpbGRUaGVtZUNzcyB9IGZyb20gJy4vY3NzJztcbmltcG9ydCB7IFRoZW1lQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFRoZW1lTW9kZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnc3lzdGVtJztcblxuY29uc3QgU1RPUkFHRV9LRVkgPSAnbmd4c21rLXRoZW1lLW1vZGUnO1xuY29uc3QgU1RZTEVfSUQgPSAnbmd4c21rLXRoZW1lJztcblxuLyoqXG4gKiBSdW50aW1lIHRoZW1lIGNvbnRyb2w6IGRhcmstbW9kZSBzd2l0Y2hpbmcgKGNsYXNzIHN0cmF0ZWd5KSBhbmQgZHluYW1pY1xuICogdGhlbWUgYXBwbGljYXRpb24gYnkgaW5qZWN0aW5nIGdlbmVyYXRlZCB0b2tlbiBDU1MgaW50byB0aGUgZG9jdW1lbnQuXG4gKlxuICogU1NSLXNhZmU6IGFsbCBET00gYWNjZXNzIGdvZXMgdGhyb3VnaCB0aGUgaW5qZWN0ZWQgZG9jdW1lbnQgYW5kIGRlZ3JhZGVzXG4gKiBncmFjZWZ1bGx5IHdoZW4gYHdpbmRvd2AvYG1hdGNoTWVkaWFgIGFyZSB1bmF2YWlsYWJsZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3hzbWtUaGVtZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudDtcblxuICAvKiogVXNlciBwcmVmZXJlbmNlOiBleHBsaWNpdCBsaWdodC9kYXJrIG9yIGZvbGxvdyB0aGUgT1MuICovXG4gIHJlYWRvbmx5IG1vZGU6IFJldHVyblR5cGU8dHlwZW9mIHNpZ25hbDxUaGVtZU1vZGU+PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN5c3RlbURhcms6IFJldHVyblR5cGU8dHlwZW9mIHNpZ25hbDxib29sZWFuPj47XG5cbiAgLyoqIEVmZmVjdGl2ZSBkYXJrbmVzcyBhZnRlciByZXNvbHZpbmcgYHN5c3RlbWAgYWdhaW5zdCB0aGUgT1Mgc2V0dGluZy4gKi9cbiAgcmVhZG9ubHkgaXNEYXJrOiBSZXR1cm5UeXBlPHR5cGVvZiBjb21wdXRlZDxib29sZWFuPj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gSW5qZWN0IERPQ1VNRU5UIGZpcnN0IHNvIHRoYXQgcmVzdG9yZU1vZGUoKSBhbmQgbWF0Y2hTeXN0ZW1EYXJrKClcbiAgICAvLyBjYW4gc2FmZWx5IGFjY2VzcyBpdCB3aGVuIHRoZSBzaWduYWxzIGFyZSBpbml0aWFsaXNlZCBiZWxvdy5cbiAgICB0aGlzLmRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIHRoaXMubW9kZSA9IHNpZ25hbDxUaGVtZU1vZGU+KHRoaXMucmVzdG9yZU1vZGUoKSk7XG4gICAgdGhpcy5zeXN0ZW1EYXJrID0gc2lnbmFsKHRoaXMubWF0Y2hTeXN0ZW1EYXJrKCkpO1xuICAgIHRoaXMuaXNEYXJrID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgIHRoaXMubW9kZSgpID09PSAnc3lzdGVtJyA/IHRoaXMuc3lzdGVtRGFyaygpIDogdGhpcy5tb2RlKCkgPT09ICdkYXJrJyxcbiAgICApO1xuXG4gICAgY29uc3QgbWVkaWEgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5tYXRjaE1lZGlhPy4oJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICBtZWRpYT8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHRoaXMuc3lzdGVtRGFyay5zZXQoZS5tYXRjaGVzKSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnZGFyaycsIHRoaXMuaXNEYXJrKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TW9kZShtb2RlOiBUaGVtZU1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5sb2NhbFN0b3JhZ2U/LnNldEl0ZW0oU1RPUkFHRV9LRVksIG1vZGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3RvcmFnZSB1bmF2YWlsYWJsZSAoU1NSLCBwcml2YWN5IG1vZGUpIOKAlCBwcmVmZXJlbmNlIGlzIHNlc3Npb24tb25seS5cbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRNb2RlKHRoaXMuaXNEYXJrKCkgPyAnbGlnaHQnIDogJ2RhcmsnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhIHRoZW1lIGF0IHJ1bnRpbWUuIEdlbmVyYXRlcyB0b2tlbiBDU1MgZnJvbSB0aGUgY29uZmlnIGFuZCBzd2Fwc1xuICAgKiBpdCBpbnRvIGEgZGVkaWNhdGVkIGA8c3R5bGU+YCBlbGVtZW50LCBvdmVycmlkaW5nIHRoZSBidWlsZC10aW1lIHRoZW1lLlxuICAgKi9cbiAgYXBwbHlUaGVtZShjb25maWc6IFRoZW1lQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZCA9IHRoaXMuZG9jdW1lbnQuaGVhZDtcbiAgICBsZXQgc3R5bGUgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKSBhcyBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXN0eWxlKSB7XG4gICAgICBzdHlsZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlLmlkID0gU1RZTEVfSUQ7XG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG4gICAgc3R5bGUudGV4dENvbnRlbnQgPSBidWlsZFRoZW1lQ3NzKGNvbmZpZyk7XG4gIH1cblxuICAvKiogUmVtb3ZlIGEgcnVudGltZS1hcHBsaWVkIHRoZW1lLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGJ1aWxkLXRpbWUgQ1NTLiAqL1xuICBjbGVhclRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU1RZTEVfSUQpPy5yZW1vdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZU1vZGUoKTogVGhlbWVNb2RlIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RvcmVkID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldz8ubG9jYWxTdG9yYWdlPy5nZXRJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQgPT09ICdsaWdodCcgfHwgc3RvcmVkID09PSAnZGFyaycgfHwgc3RvcmVkID09PSAnc3lzdGVtJykge1xuICAgICAgICByZXR1cm4gc3RvcmVkO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGRlZmF1bHQuXG4gICAgfVxuICAgIHJldHVybiAnc3lzdGVtJztcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hTeXN0ZW1EYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5tYXRjaE1lZGlhPy4oJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzID8/IGZhbHNlO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9saWIvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTW5FLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBRXhDOzs7Ozs7Ozs7R0FTRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFZN0I7UUFWaUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBVzFELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFZLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUMxQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQ3RFLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asd0VBQXdFO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsVUFBVSxDQUFDLE1BQW1CLEVBQUUsT0FBNEI7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsZUFBZSxDQUFDLE1BQW1CO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdFLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyQkFBMkI7UUFDN0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQ2xHLENBQUM7OEdBNUVVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4VGhlbWVJbmplY3RvclNlcnZpY2UgfSBmcm9tICcuL3RoZW1lLWluamVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9rZW5PdXRwdXRBZGFwdGVyIH0gZnJvbSAnLi90b2tlbi1hZGFwdGVyJztcbmltcG9ydCB7IFRoZW1lQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFRoZW1lTW9kZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnc3lzdGVtJztcblxuY29uc3QgU1RPUkFHRV9LRVkgPSAnbmd4c21rLXRoZW1lLW1vZGUnO1xuXG4vKipcbiAqIFJ1bnRpbWUgdGhlbWUgY29udHJvbDogZGFyay1tb2RlIHN3aXRjaGluZyAoY2xhc3Mgc3RyYXRlZ3kpIGFuZCBkeW5hbWljXG4gKiB0aGVtZSBhcHBsaWNhdGlvbiBieSBpbmplY3RpbmcgZ2VuZXJhdGVkIHRva2VuIENTUyBpbnRvIHRoZSBkb2N1bWVudC5cbiAqXG4gKiBDU1MgaW5qZWN0aW9uIGlzIGRlbGVnYXRlZCB0byB7QGxpbmsgTmd4VGhlbWVJbmplY3RvclNlcnZpY2V9IGZvclxuICogY29uc3VtZXJzIHdobyBvbmx5IG5lZWQgdG9rZW4gaW5qZWN0aW9uIHdpdGhvdXQgZGFyay1tb2RlIGxvZ2ljLlxuICpcbiAqIFNTUi1zYWZlOiBhbGwgRE9NIGFjY2VzcyBnb2VzIHRocm91Z2ggdGhlIGluamVjdGVkIGRvY3VtZW50IGFuZCBkZWdyYWRlc1xuICogZ3JhY2VmdWxseSB3aGVuIGB3aW5kb3dgL2BtYXRjaE1lZGlhYCBhcmUgdW5hdmFpbGFibGUuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd4c21rVGhlbWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoTmd4VGhlbWVJbmplY3RvclNlcnZpY2UpO1xuXG4gIC8qKiBVc2VyIHByZWZlcmVuY2U6IGV4cGxpY2l0IGxpZ2h0L2Rhcmsgb3IgZm9sbG93IHRoZSBPUy4gKi9cbiAgcmVhZG9ubHkgbW9kZTogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPFRoZW1lTW9kZT4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3lzdGVtRGFyazogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPGJvb2xlYW4+PjtcblxuICAvKiogRWZmZWN0aXZlIGRhcmtuZXNzIGFmdGVyIHJlc29sdmluZyBgc3lzdGVtYCBhZ2FpbnN0IHRoZSBPUyBzZXR0aW5nLiAqL1xuICByZWFkb25seSBpc0Rhcms6IFJldHVyblR5cGU8dHlwZW9mIGNvbXB1dGVkPGJvb2xlYW4+PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIHRoaXMubW9kZSA9IHNpZ25hbDxUaGVtZU1vZGU+KHRoaXMucmVzdG9yZU1vZGUoKSk7XG4gICAgdGhpcy5zeXN0ZW1EYXJrID0gc2lnbmFsKHRoaXMubWF0Y2hTeXN0ZW1EYXJrKCkpO1xuICAgIHRoaXMuaXNEYXJrID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgIHRoaXMubW9kZSgpID09PSAnc3lzdGVtJyA/IHRoaXMuc3lzdGVtRGFyaygpIDogdGhpcy5tb2RlKCkgPT09ICdkYXJrJyxcbiAgICApO1xuXG4gICAgY29uc3QgbWVkaWEgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5tYXRjaE1lZGlhPy4oJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICBtZWRpYT8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHRoaXMuc3lzdGVtRGFyay5zZXQoZS5tYXRjaGVzKSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnZGFyaycsIHRoaXMuaXNEYXJrKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TW9kZShtb2RlOiBUaGVtZU1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5sb2NhbFN0b3JhZ2U/LnNldEl0ZW0oU1RPUkFHRV9LRVksIG1vZGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3RvcmFnZSB1bmF2YWlsYWJsZSAoU1NSLCBwcml2YWN5IG1vZGUpIOKAlCBwcmVmZXJlbmNlIGlzIHNlc3Npb24tb25seS5cbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRNb2RlKHRoaXMuaXNEYXJrKCkgPyAnbGlnaHQnIDogJ2RhcmsnKTtcbiAgfVxuXG4gIC8qKiBAc2VlIE5neFRoZW1lSW5qZWN0b3JTZXJ2aWNlLmFwcGx5VGhlbWUgKi9cbiAgYXBwbHlUaGVtZShjb25maWc6IFRoZW1lQ29uZmlnLCBhZGFwdGVyPzogVG9rZW5PdXRwdXRBZGFwdGVyKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3Rvci5hcHBseVRoZW1lKGNvbmZpZywgYWRhcHRlcik7XG4gIH1cblxuICAvKiogQHNlZSBOZ3hUaGVtZUluamVjdG9yU2VydmljZS5hcHBseUlvbmljVGhlbWUgKi9cbiAgYXBwbHlJb25pY1RoZW1lKGNvbmZpZzogVGhlbWVDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdG9yLmFwcGx5SW9uaWNUaGVtZShjb25maWcpO1xuICB9XG5cbiAgLyoqIEBzZWUgTmd4VGhlbWVJbmplY3RvclNlcnZpY2UuY2xlYXJUaGVtZSAqL1xuICBjbGVhclRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0b3IuY2xlYXJUaGVtZSgpO1xuICB9XG5cbiAgLyoqIEBzZWUgTmd4VGhlbWVJbmplY3RvclNlcnZpY2UuY2xlYXJJb25pY1RoZW1lICovXG4gIGNsZWFySW9uaWNUaGVtZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdG9yLmNsZWFySW9uaWNUaGVtZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlTW9kZSgpOiBUaGVtZU1vZGUge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZWQgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5sb2NhbFN0b3JhZ2U/LmdldEl0ZW0oU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKHN0b3JlZCA9PT0gJ2xpZ2h0JyB8fCBzdG9yZWQgPT09ICdkYXJrJyB8fCBzdG9yZWQgPT09ICdzeXN0ZW0nKSB7XG4gICAgICAgIHJldHVybiBzdG9yZWQ7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBGYWxsIHRocm91Z2ggdG8gZGVmYXVsdC5cbiAgICB9XG4gICAgcmV0dXJuICdzeXN0ZW0nO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXRjaFN5c3RlbURhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWE/LignKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXMgPz8gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,185 @@
1
+ import { deriveScale, rotateHue } from './color';
2
+ /**
3
+ * Maps NGXSMK semantic color roles to Ionic 7 & 8 color variable specifications.
4
+ *
5
+ * Emits full color suites (base, rgb, contrast, contrast-rgb, shade, tint),
6
+ * 19-step contrast ladder (--ion-color-step-50..950), safe area mappings, and
7
+ * surface variables for seamless Ionic framework interoperability.
8
+ */
9
+ export const ionicVarsAdapter = {
10
+ name: 'ionic',
11
+ vars(theme, options) {
12
+ if (options?.isDark) {
13
+ return this.darkVars ? this.darkVars(theme) : buildLightVars(theme);
14
+ }
15
+ return buildLightVars(theme);
16
+ },
17
+ darkVars(theme) {
18
+ return buildDarkVars(theme);
19
+ },
20
+ };
21
+ function buildColorSuite(prefix, baseHex, vars) {
22
+ const contrastHex = getContrastHex(baseHex);
23
+ vars[`--ion-color-${prefix}`] = baseHex;
24
+ vars[`--ion-color-${prefix}-rgb`] = hexToRgbStr(baseHex);
25
+ vars[`--ion-color-${prefix}-contrast`] = contrastHex;
26
+ vars[`--ion-color-${prefix}-contrast-rgb`] = hexToRgbStr(contrastHex);
27
+ vars[`--ion-color-${prefix}-shade`] = shiftLightnessHex(baseHex, -12);
28
+ vars[`--ion-color-${prefix}-tint`] = shiftLightnessHex(baseHex, 10);
29
+ }
30
+ function buildLightVars(theme) {
31
+ const vars = {};
32
+ // Primary & Secondary
33
+ buildColorSuite('primary', theme.brandBase, vars);
34
+ buildColorSuite('secondary', theme.secondaryBase, vars);
35
+ // Tertiary (derived from brand hue + 64)
36
+ const tertiary = deriveScale(rotateHue(theme.brandBase, 64));
37
+ buildColorSuite('tertiary', tertiary[500], vars);
38
+ // Status & Feedback colors
39
+ const successHex = theme.semantic['success'] ?? '#0D8626';
40
+ const warningHex = theme.semantic['warning'] ?? '#E9AF08';
41
+ const dangerHex = theme.semantic['error'] ?? '#E3193B';
42
+ const infoHex = theme.semantic['info'] ?? '#2563EB';
43
+ buildColorSuite('success', successHex, vars);
44
+ buildColorSuite('warning', warningHex, vars);
45
+ buildColorSuite('danger', dangerHex, vars);
46
+ buildColorSuite('info', infoHex, vars);
47
+ // Medium / Light / Dark baseline scales
48
+ buildColorSuite('light', theme.neutral[100] ?? '#F1F4F7', vars);
49
+ buildColorSuite('medium', theme.neutral[500] ?? '#778593', vars);
50
+ buildColorSuite('dark', theme.neutral[900] ?? '#18181A', vars);
51
+ // Background / Surfaces
52
+ const bgHex = theme.neutral[50] ?? '#FFFFFF';
53
+ const textHex = '#0A1317';
54
+ vars['--ion-background-color'] = bgHex;
55
+ vars['--ion-background-color-rgb'] = hexToRgbStr(bgHex);
56
+ vars['--ion-text-color'] = textHex;
57
+ vars['--ion-text-color-rgb'] = hexToRgbStr(textHex);
58
+ vars['--ion-card-background'] = '#FFFFFF';
59
+ vars['--ion-item-background'] = '#FFFFFF';
60
+ vars['--ion-item-color'] = textHex;
61
+ vars['--ion-toolbar-background'] = bgHex;
62
+ vars['--ion-toolbar-color'] = textHex;
63
+ vars['--ion-tab-bar-background'] = '#FFFFFF';
64
+ vars['--ion-border-color'] = theme.neutral[200] ?? '#CCD3DB';
65
+ // Typography & Radius
66
+ vars['--ion-font-family'] = theme.fontFamily.sans;
67
+ vars['--ion-border-radius'] = theme.radius[theme.radiusBase];
68
+ // Stepped colors for light mode (interpolated between bg and text)
69
+ interpolateSteppedColors(bgHex, textHex, vars);
70
+ // Safe area insets
71
+ vars['--ion-safe-area-top'] = 'var(--ngxsmk-safe-area-top, env(safe-area-inset-top, 0px))';
72
+ vars['--ion-safe-area-bottom'] =
73
+ 'var(--ngxsmk-safe-area-bottom, env(safe-area-inset-bottom, 0px))';
74
+ vars['--ion-safe-area-left'] = 'var(--ngxsmk-safe-area-left, env(safe-area-inset-left, 0px))';
75
+ vars['--ion-safe-area-right'] = 'var(--ngxsmk-safe-area-right, env(safe-area-inset-right, 0px))';
76
+ return vars;
77
+ }
78
+ function buildDarkVars(theme) {
79
+ const vars = {};
80
+ // Primary & Secondary dark adjustments
81
+ const primaryDark = theme.brand[400] ?? theme.brandBase;
82
+ const secondaryDark = theme.secondary[400] ?? theme.secondaryBase;
83
+ buildColorSuite('primary', primaryDark, vars);
84
+ buildColorSuite('secondary', secondaryDark, vars);
85
+ // Tertiary
86
+ const tertiary = deriveScale(rotateHue(theme.brandBase, 64));
87
+ buildColorSuite('tertiary', tertiary[400] ?? tertiary[500], vars);
88
+ // Status & Feedback
89
+ buildColorSuite('success', shiftLightnessHex(theme.semantic['success'] ?? '#0D8626', 10), vars);
90
+ buildColorSuite('warning', shiftLightnessHex(theme.semantic['warning'] ?? '#E9AF08', 8), vars);
91
+ buildColorSuite('danger', shiftLightnessHex(theme.semantic['error'] ?? '#E3193B', 10), vars);
92
+ buildColorSuite('info', shiftLightnessHex(theme.semantic['info'] ?? '#2563EB', 10), vars);
93
+ buildColorSuite('light', theme.neutral[800] ?? '#1F1F22', vars);
94
+ buildColorSuite('medium', theme.neutral[400] ?? '#778593', vars);
95
+ buildColorSuite('dark', theme.neutral[100] ?? '#F1F4F7', vars);
96
+ // Dark backgrounds & surfaces
97
+ const darkBgHex = '#111112';
98
+ const darkTextHex = '#DFE2E5';
99
+ const darkSurface = '#1F1F22';
100
+ vars['--ion-background-color'] = darkBgHex;
101
+ vars['--ion-background-color-rgb'] = hexToRgbStr(darkBgHex);
102
+ vars['--ion-text-color'] = darkTextHex;
103
+ vars['--ion-text-color-rgb'] = hexToRgbStr(darkTextHex);
104
+ vars['--ion-card-background'] = darkSurface;
105
+ vars['--ion-item-background'] = darkSurface;
106
+ vars['--ion-item-color'] = darkTextHex;
107
+ vars['--ion-toolbar-background'] = '#18181A';
108
+ vars['--ion-toolbar-color'] = darkTextHex;
109
+ vars['--ion-tab-bar-background'] = '#18181A';
110
+ vars['--ion-border-color'] = 'rgba(242, 244, 246, 0.1)';
111
+ // Typography & Radius
112
+ vars['--ion-font-family'] = theme.fontFamily.sans;
113
+ vars['--ion-border-radius'] = theme.radius[theme.radiusBase];
114
+ // Stepped colors for dark mode
115
+ interpolateSteppedColors(darkBgHex, darkTextHex, vars);
116
+ // Safe area insets
117
+ vars['--ion-safe-area-top'] = 'var(--ngxsmk-safe-area-top, env(safe-area-inset-top, 0px))';
118
+ vars['--ion-safe-area-bottom'] =
119
+ 'var(--ngxsmk-safe-area-bottom, env(safe-area-inset-bottom, 0px))';
120
+ vars['--ion-safe-area-left'] = 'var(--ngxsmk-safe-area-left, env(safe-area-inset-left, 0px))';
121
+ vars['--ion-safe-area-right'] = 'var(--ngxsmk-safe-area-right, env(safe-area-inset-right, 0px))';
122
+ return vars;
123
+ }
124
+ /** Default NGXSMK adapter — emits `--ngxsmk-*` variables. */
125
+ export const cssVarsAdapter = {
126
+ name: 'ngxsmk',
127
+ vars: () => ({}), // Not used directly — buildThemeCss handles this
128
+ };
129
+ // ─── Helpers ──────────────────────────────────────────────
130
+ function hexToRgbStr(hex) {
131
+ const clean = hex.replace('#', '');
132
+ const r = parseInt(clean.substring(0, 2), 16) || 0;
133
+ const g = parseInt(clean.substring(2, 4), 16) || 0;
134
+ const b = parseInt(clean.substring(4, 6), 16) || 0;
135
+ return `${r}, ${g}, ${b}`;
136
+ }
137
+ function getContrastHex(hex) {
138
+ const clean = hex.replace('#', '');
139
+ const r = parseInt(clean.substring(0, 2), 16) || 0;
140
+ const g = parseInt(clean.substring(2, 4), 16) || 0;
141
+ const b = parseInt(clean.substring(4, 6), 16) || 0;
142
+ // Standard WCAG relative luminance approximation
143
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
144
+ return yiq >= 150 ? '#000000' : '#FFFFFF';
145
+ }
146
+ function shiftLightnessHex(hex, amount) {
147
+ const clean = hex.replace('#', '');
148
+ let r = parseInt(clean.substring(0, 2), 16) || 0;
149
+ let g = parseInt(clean.substring(2, 4), 16) || 0;
150
+ let b = parseInt(clean.substring(4, 6), 16) || 0;
151
+ if (amount > 0) {
152
+ r = Math.min(255, r + Math.round((255 - r) * (amount / 100)));
153
+ g = Math.min(255, g + Math.round((255 - g) * (amount / 100)));
154
+ b = Math.min(255, b + Math.round((255 - b) * (amount / 100)));
155
+ }
156
+ else {
157
+ const factor = 1 + amount / 100;
158
+ r = Math.max(0, Math.round(r * factor));
159
+ g = Math.max(0, Math.round(g * factor));
160
+ b = Math.max(0, Math.round(b * factor));
161
+ }
162
+ return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`.toUpperCase();
163
+ }
164
+ function interpolateSteppedColors(bgHex, textHex, vars) {
165
+ const cleanBg = bgHex.replace('#', '');
166
+ const cleanText = textHex.replace('#', '');
167
+ const bgR = parseInt(cleanBg.substring(0, 2), 16) || 0;
168
+ const bgG = parseInt(cleanBg.substring(2, 4), 16) || 0;
169
+ const bgB = parseInt(cleanBg.substring(4, 6), 16) || 0;
170
+ const textR = parseInt(cleanText.substring(0, 2), 16) || 0;
171
+ const textG = parseInt(cleanText.substring(2, 4), 16) || 0;
172
+ const textB = parseInt(cleanText.substring(4, 6), 16) || 0;
173
+ const steps = [
174
+ 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950,
175
+ ];
176
+ for (const step of steps) {
177
+ const weight = step / 1000;
178
+ const r = Math.round(bgR * (1 - weight) + textR * weight);
179
+ const g = Math.round(bgG * (1 - weight) + textG * weight);
180
+ const b = Math.round(bgB * (1 - weight) + textB * weight);
181
+ const hex = `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`.toUpperCase();
182
+ vars[`--ion-color-step-${step}`] = hex;
183
+ }
184
+ }
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9saWIvdG9rZW4tYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQWlCakQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXVCO0lBQ2xELElBQUksRUFBRSxPQUFPO0lBRWIsSUFBSSxDQUFDLEtBQW9CLEVBQUUsT0FBOEI7UUFDdkQsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0I7UUFDM0IsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGVBQWUsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQTRCO0lBQ3BGLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUMsZUFBZSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUN4QyxJQUFJLENBQUMsZUFBZSxNQUFNLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxJQUFJLENBQUMsZUFBZSxNQUFNLFdBQVcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUNyRCxJQUFJLENBQUMsZUFBZSxNQUFNLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENB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Q2YsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNoQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakksQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQy9CLEtBQWEsRUFDYixPQUFlLEVBQ2YsSUFBNEI7SUFFNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFM0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0QsTUFBTSxLQUFLLEdBQUc7UUFDWixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHO0tBQzdGLENBQUM7SUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7UUFDM0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDMUQsTUFBTSxHQUFHLEdBQ1AsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFILElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDekMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvbHZlZFRoZW1lIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBkZXJpdmVTY2FsZSwgcm90YXRlSHVlIH0gZnJvbSAnLi9jb2xvcic7XG5cbi8qKlxuICogQSB0b2tlbiBvdXRwdXQgYWRhcHRlciB0cmFuc2Zvcm1zIGEgYFJlc29sdmVkVGhlbWVgIGludG8gcGxhdGZvcm0tc3BlY2lmaWNcbiAqIENTUyBjdXN0b20gcHJvcGVydGllcy4gVGhlIGRlZmF1bHQgYGNzc1ZhcnNBZGFwdGVyYCBlbWl0cyBgLS1uZ3hzbWstKmBcbiAqIHZhcmlhYmxlczsgdGhlIGBpb25pY1ZhcnNBZGFwdGVyYCBlbWl0cyBgLS1pb24tKmAgdmFyaWFibGVzIHRoYXQgSW9uaWNcbiAqIGNvbXBvbmVudHMgY29uc3VtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2tlbk91dHB1dEFkYXB0ZXIge1xuICAvKiogVW5pcXVlIG5hbWUgZm9yIHRoaXMgYWRhcHRlciAoZS5nLiAnbmd4c21rJywgJ2lvbmljJykuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRyYW5zZm9ybSBhIHJlc29sdmVkIHRoZW1lIGludG8gcGxhdGZvcm0tc3BlY2lmaWMgQ1NTIHZhcmlhYmxlcy4gKi9cbiAgdmFycyh0aGVtZTogUmVzb2x2ZWRUaGVtZSwgb3B0aW9ucz86IHsgaXNEYXJrPzogYm9vbGVhbiB9KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRyYW5zZm9ybSBhIHJlc29sdmVkIHRoZW1lIGludG8gZGFyay1tb2RlIHBsYXRmb3JtIENTUyB2YXJpYWJsZXMuICovXG4gIGRhcmtWYXJzPyh0aGVtZTogUmVzb2x2ZWRUaGVtZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogTWFwcyBOR1hTTUsgc2VtYW50aWMgY29sb3Igcm9sZXMgdG8gSW9uaWMgNyAmIDggY29sb3IgdmFyaWFibGUgc3BlY2lmaWNhdGlvbnMuXG4gKlxuICogRW1pdHMgZnVsbCBjb2xvciBzdWl0ZXMgKGJhc2UsIHJnYiwgY29udHJhc3QsIGNvbnRyYXN0LXJnYiwgc2hhZGUsIHRpbnQpLFxuICogMTktc3RlcCBjb250cmFzdCBsYWRkZXIgKC0taW9uLWNvbG9yLXN0ZXAtNTAuLjk1MCksIHNhZmUgYXJlYSBtYXBwaW5ncywgYW5kXG4gKiBzdXJmYWNlIHZhcmlhYmxlcyBmb3Igc2VhbWxlc3MgSW9uaWMgZnJhbWV3b3JrIGludGVyb3BlcmFiaWxpdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBpb25pY1ZhcnNBZGFwdGVyOiBUb2tlbk91dHB1dEFkYXB0ZXIgPSB7XG4gIG5hbWU6ICdpb25pYycsXG5cbiAgdmFycyh0aGVtZTogUmVzb2x2ZWRUaGVtZSwgb3B0aW9ucz86IHsgaXNEYXJrPzogYm9vbGVhbiB9KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgaWYgKG9wdGlvbnM/LmlzRGFyaykge1xuICAgICAgcmV0dXJuIHRoaXMuZGFya1ZhcnMgPyB0aGlzLmRhcmtWYXJzKHRoZW1lKSA6IGJ1aWxkTGlnaHRWYXJzKHRoZW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkTGlnaHRWYXJzKHRoZW1lKTtcbiAgfSxcblxuICBkYXJrVmFycyh0aGVtZTogUmVzb2x2ZWRUaGVtZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBidWlsZERhcmtWYXJzKHRoZW1lKTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGJ1aWxkQ29sb3JTdWl0ZShwcmVmaXg6IHN0cmluZywgYmFzZUhleDogc3RyaW5nLCB2YXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gIGNvbnN0IGNvbnRyYXN0SGV4ID0gZ2V0Q29udHJhc3RIZXgoYmFzZUhleCk7XG4gIHZhcnNbYC0taW9uLWNvbG9yLSR7cHJlZml4fWBdID0gYmFzZUhleDtcbiAgdmFyc1tgLS1pb24tY29sb3ItJHtwcmVmaXh9LXJnYmBdID0gaGV4VG9SZ2JTdHIoYmFzZUhleCk7XG4gIHZhcnNbYC0taW9uLWNvbG9yLSR7cHJlZml4fS1jb250cmFzdGBdID0gY29udHJhc3RIZXg7XG4gIHZhcnNbYC0taW9uLWNvbG9yLSR7cHJlZml4fS1jb250cmFzdC1yZ2JgXSA9IGhleFRvUmdiU3RyKGNvbnRyYXN0SGV4KTtcbiAgdmFyc1tgLS1pb24tY29sb3ItJHtwcmVmaXh9LXNoYWRlYF0gPSBzaGlmdExpZ2h0bmVzc0hleChiYXNlSGV4LCAtMTIpO1xuICB2YXJzW2AtLWlvbi1jb2xvci0ke3ByZWZpeH0tdGludGBdID0gc2hpZnRMaWdodG5lc3NIZXgoYmFzZUhleCwgMTApO1xufVxuXG5mdW5jdGlvbiBidWlsZExpZ2h0VmFycyh0aGVtZTogUmVzb2x2ZWRUaGVtZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCB2YXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgLy8gUHJpbWFyeSAmIFNlY29uZGFyeVxuICBidWlsZENvbG9yU3VpdGUoJ3ByaW1hcnknLCB0aGVtZS5icmFuZEJhc2UsIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ3NlY29uZGFyeScsIHRoZW1lLnNlY29uZGFyeUJhc2UsIHZhcnMpO1xuXG4gIC8vIFRlcnRpYXJ5IChkZXJpdmVkIGZyb20gYnJhbmQgaHVlICsgNjQpXG4gIGNvbnN0IHRlcnRpYXJ5ID0gZGVyaXZlU2NhbGUocm90YXRlSHVlKHRoZW1lLmJyYW5kQmFzZSwgNjQpKTtcbiAgYnVpbGRDb2xvclN1aXRlKCd0ZXJ0aWFyeScsIHRlcnRpYXJ5WzUwMF0sIHZhcnMpO1xuXG4gIC8vIFN0YXR1cyAmIEZlZWRiYWNrIGNvbG9yc1xuICBjb25zdCBzdWNjZXNzSGV4ID0gdGhlbWUuc2VtYW50aWNbJ3N1Y2Nlc3MnXSA/PyAnIzBEODYyNic7XG4gIGNvbnN0IHdhcm5pbmdIZXggPSB0aGVtZS5zZW1hbnRpY1snd2FybmluZyddID8/ICcjRTlBRjA4JztcbiAgY29uc3QgZGFuZ2VySGV4ID0gdGhlbWUuc2VtYW50aWNbJ2Vycm9yJ10gPz8gJyNFMzE5M0InO1xuICBjb25zdCBpbmZvSGV4ID0gdGhlbWUuc2VtYW50aWNbJ2luZm8nXSA/PyAnIzI1NjNFQic7XG5cbiAgYnVpbGRDb2xvclN1aXRlKCdzdWNjZXNzJywgc3VjY2Vzc0hleCwgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnd2FybmluZycsIHdhcm5pbmdIZXgsIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ2RhbmdlcicsIGRhbmdlckhleCwgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnaW5mbycsIGluZm9IZXgsIHZhcnMpO1xuXG4gIC8vIE1lZGl1bSAvIExpZ2h0IC8gRGFyayBiYXNlbGluZSBzY2FsZXNcbiAgYnVpbGRDb2xvclN1aXRlKCdsaWdodCcsIHRoZW1lLm5ldXRyYWxbMTAwXSA/PyAnI0YxRjRGNycsIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ21lZGl1bScsIHRoZW1lLm5ldXRyYWxbNTAwXSA/PyAnIzc3ODU5MycsIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ2RhcmsnLCB0aGVtZS5uZXV0cmFsWzkwMF0gPz8gJyMxODE4MUEnLCB2YXJzKTtcblxuICAvLyBCYWNrZ3JvdW5kIC8gU3VyZmFjZXNcbiAgY29uc3QgYmdIZXggPSB0aGVtZS5uZXV0cmFsWzUwXSA/PyAnI0ZGRkZGRic7XG4gIGNvbnN0IHRleHRIZXggPSAnIzBBMTMxNyc7XG4gIHZhcnNbJy0taW9uLWJhY2tncm91bmQtY29sb3InXSA9IGJnSGV4O1xuICB2YXJzWyctLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLXJnYiddID0gaGV4VG9SZ2JTdHIoYmdIZXgpO1xuICB2YXJzWyctLWlvbi10ZXh0LWNvbG9yJ10gPSB0ZXh0SGV4O1xuICB2YXJzWyctLWlvbi10ZXh0LWNvbG9yLXJnYiddID0gaGV4VG9SZ2JTdHIodGV4dEhleCk7XG5cbiAgdmFyc1snLS1pb24tY2FyZC1iYWNrZ3JvdW5kJ10gPSAnI0ZGRkZGRic7XG4gIHZhcnNbJy0taW9uLWl0ZW0tYmFja2dyb3VuZCddID0gJyNGRkZGRkYnO1xuICB2YXJzWyctLWlvbi1pdGVtLWNvbG9yJ10gPSB0ZXh0SGV4O1xuICB2YXJzWyctLWlvbi10b29sYmFyLWJhY2tncm91bmQnXSA9IGJnSGV4O1xuICB2YXJzWyctLWlvbi10b29sYmFyLWNvbG9yJ10gPSB0ZXh0SGV4O1xuICB2YXJzWyctLWlvbi10YWItYmFyLWJhY2tncm91bmQnXSA9ICcjRkZGRkZGJztcbiAgdmFyc1snLS1pb24tYm9yZGVyLWNvbG9yJ10gPSB0aGVtZS5uZXV0cmFsWzIwMF0gPz8gJyNDQ0QzREInO1xuXG4gIC8vIFR5cG9ncmFwaHkgJiBSYWRpdXNcbiAgdmFyc1snLS1pb24tZm9udC1mYW1pbHknXSA9IHRoZW1lLmZvbnRGYW1pbHkuc2FucztcbiAgdmFyc1snLS1pb24tYm9yZGVyLXJhZGl1cyddID0gdGhlbWUucmFkaXVzW3RoZW1lLnJhZGl1c0Jhc2VdO1xuXG4gIC8vIFN0ZXBwZWQgY29sb3JzIGZvciBsaWdodCBtb2RlIChpbnRlcnBvbGF0ZWQgYmV0d2VlbiBiZyBhbmQgdGV4dClcbiAgaW50ZXJwb2xhdGVTdGVwcGVkQ29sb3JzKGJnSGV4LCB0ZXh0SGV4LCB2YXJzKTtcblxuICAvLyBTYWZlIGFyZWEgaW5zZXRzXG4gIHZhcnNbJy0taW9uLXNhZmUtYXJlYS10b3AnXSA9ICd2YXIoLS1uZ3hzbWstc2FmZS1hcmVhLXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpJztcbiAgdmFyc1snLS1pb24tc2FmZS1hcmVhLWJvdHRvbSddID1cbiAgICAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1ib3R0b20sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKSc7XG4gIHZhcnNbJy0taW9uLXNhZmUtYXJlYS1sZWZ0J10gPSAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1sZWZ0LCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQsIDBweCkpJztcbiAgdmFyc1snLS1pb24tc2FmZS1hcmVhLXJpZ2h0J10gPSAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1yaWdodCwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KSknO1xuXG4gIHJldHVybiB2YXJzO1xufVxuXG5mdW5jdGlvbiBidWlsZERhcmtWYXJzKHRoZW1lOiBSZXNvbHZlZFRoZW1lKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvLyBQcmltYXJ5ICYgU2Vjb25kYXJ5IGRhcmsgYWRqdXN0bWVudHNcbiAgY29uc3QgcHJpbWFyeURhcmsgPSB0aGVtZS5icmFuZFs0MDBdID8/IHRoZW1lLmJyYW5kQmFzZTtcbiAgY29uc3Qgc2Vjb25kYXJ5RGFyayA9IHRoZW1lLnNlY29uZGFyeVs0MDBdID8/IHRoZW1lLnNlY29uZGFyeUJhc2U7XG5cbiAgYnVpbGRDb2xvclN1aXRlKCdwcmltYXJ5JywgcHJpbWFyeURhcmssIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ3NlY29uZGFyeScsIHNlY29uZGFyeURhcmssIHZhcnMpO1xuXG4gIC8vIFRlcnRpYXJ5XG4gIGNvbnN0IHRlcnRpYXJ5ID0gZGVyaXZlU2NhbGUocm90YXRlSHVlKHRoZW1lLmJyYW5kQmFzZSwgNjQpKTtcbiAgYnVpbGRDb2xvclN1aXRlKCd0ZXJ0aWFyeScsIHRlcnRpYXJ5WzQwMF0gPz8gdGVydGlhcnlbNTAwXSwgdmFycyk7XG5cbiAgLy8gU3RhdHVzICYgRmVlZGJhY2tcbiAgYnVpbGRDb2xvclN1aXRlKCdzdWNjZXNzJywgc2hpZnRMaWdodG5lc3NIZXgodGhlbWUuc2VtYW50aWNbJ3N1Y2Nlc3MnXSA/PyAnIzBEODYyNicsIDEwKSwgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnd2FybmluZycsIHNoaWZ0TGlnaHRuZXNzSGV4KHRoZW1lLnNlbWFudGljWyd3YXJuaW5nJ10gPz8gJyNFOUFGMDgnLCA4KSwgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnZGFuZ2VyJywgc2hpZnRMaWdodG5lc3NIZXgodGhlbWUuc2VtYW50aWNbJ2Vycm9yJ10gPz8gJyNFMzE5M0InLCAxMCksIHZhcnMpO1xuICBidWlsZENvbG9yU3VpdGUoJ2luZm8nLCBzaGlmdExpZ2h0bmVzc0hleCh0aGVtZS5zZW1hbnRpY1snaW5mbyddID8/ICcjMjU2M0VCJywgMTApLCB2YXJzKTtcblxuICBidWlsZENvbG9yU3VpdGUoJ2xpZ2h0JywgdGhlbWUubmV1dHJhbFs4MDBdID8/ICcjMUYxRjIyJywgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnbWVkaXVtJywgdGhlbWUubmV1dHJhbFs0MDBdID8/ICcjNzc4NTkzJywgdmFycyk7XG4gIGJ1aWxkQ29sb3JTdWl0ZSgnZGFyaycsIHRoZW1lLm5ldXRyYWxbMTAwXSA/PyAnI0YxRjRGNycsIHZhcnMpO1xuXG4gIC8vIERhcmsgYmFja2dyb3VuZHMgJiBzdXJmYWNlc1xuICBjb25zdCBkYXJrQmdIZXggPSAnIzExMTExMic7XG4gIGNvbnN0IGRhcmtUZXh0SGV4ID0gJyNERkUyRTUnO1xuICBjb25zdCBkYXJrU3VyZmFjZSA9ICcjMUYxRjIyJztcblxuICB2YXJzWyctLWlvbi1iYWNrZ3JvdW5kLWNvbG9yJ10gPSBkYXJrQmdIZXg7XG4gIHZhcnNbJy0taW9uLWJhY2tncm91bmQtY29sb3ItcmdiJ10gPSBoZXhUb1JnYlN0cihkYXJrQmdIZXgpO1xuICB2YXJzWyctLWlvbi10ZXh0LWNvbG9yJ10gPSBkYXJrVGV4dEhleDtcbiAgdmFyc1snLS1pb24tdGV4dC1jb2xvci1yZ2InXSA9IGhleFRvUmdiU3RyKGRhcmtUZXh0SGV4KTtcblxuICB2YXJzWyctLWlvbi1jYXJkLWJhY2tncm91bmQnXSA9IGRhcmtTdXJmYWNlO1xuICB2YXJzWyctLWlvbi1pdGVtLWJhY2tncm91bmQnXSA9IGRhcmtTdXJmYWNlO1xuICB2YXJzWyctLWlvbi1pdGVtLWNvbG9yJ10gPSBkYXJrVGV4dEhleDtcbiAgdmFyc1snLS1pb24tdG9vbGJhci1iYWNrZ3JvdW5kJ10gPSAnIzE4MTgxQSc7XG4gIHZhcnNbJy0taW9uLXRvb2xiYXItY29sb3InXSA9IGRhcmtUZXh0SGV4O1xuICB2YXJzWyctLWlvbi10YWItYmFyLWJhY2tncm91bmQnXSA9ICcjMTgxODFBJztcbiAgdmFyc1snLS1pb24tYm9yZGVyLWNvbG9yJ10gPSAncmdiYSgyNDIsIDI0NCwgMjQ2LCAwLjEpJztcblxuICAvLyBUeXBvZ3JhcGh5ICYgUmFkaXVzXG4gIHZhcnNbJy0taW9uLWZvbnQtZmFtaWx5J10gPSB0aGVtZS5mb250RmFtaWx5LnNhbnM7XG4gIHZhcnNbJy0taW9uLWJvcmRlci1yYWRpdXMnXSA9IHRoZW1lLnJhZGl1c1t0aGVtZS5yYWRpdXNCYXNlXTtcblxuICAvLyBTdGVwcGVkIGNvbG9ycyBmb3IgZGFyayBtb2RlXG4gIGludGVycG9sYXRlU3RlcHBlZENvbG9ycyhkYXJrQmdIZXgsIGRhcmtUZXh0SGV4LCB2YXJzKTtcblxuICAvLyBTYWZlIGFyZWEgaW5zZXRzXG4gIHZhcnNbJy0taW9uLXNhZmUtYXJlYS10b3AnXSA9ICd2YXIoLS1uZ3hzbWstc2FmZS1hcmVhLXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpJztcbiAgdmFyc1snLS1pb24tc2FmZS1hcmVhLWJvdHRvbSddID1cbiAgICAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1ib3R0b20sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKSc7XG4gIHZhcnNbJy0taW9uLXNhZmUtYXJlYS1sZWZ0J10gPSAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1sZWZ0LCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQsIDBweCkpJztcbiAgdmFyc1snLS1pb24tc2FmZS1hcmVhLXJpZ2h0J10gPSAndmFyKC0tbmd4c21rLXNhZmUtYXJlYS1yaWdodCwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KSknO1xuXG4gIHJldHVybiB2YXJzO1xufVxuXG4vKiogRGVmYXVsdCBOR1hTTUsgYWRhcHRlciDigJQgZW1pdHMgYC0tbmd4c21rLSpgIHZhcmlhYmxlcy4gKi9cbmV4cG9ydCBjb25zdCBjc3NWYXJzQWRhcHRlcjogVG9rZW5PdXRwdXRBZGFwdGVyID0ge1xuICBuYW1lOiAnbmd4c21rJyxcbiAgdmFyczogKCkgPT4gKHt9KSwgLy8gTm90IHVzZWQgZGlyZWN0bHkg4oCUIGJ1aWxkVGhlbWVDc3MgaGFuZGxlcyB0aGlzXG59O1xuXG4vLyDilIDilIDilIAgSGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gaGV4VG9SZ2JTdHIoaGV4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjbGVhbiA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuICBjb25zdCByID0gcGFyc2VJbnQoY2xlYW4uc3Vic3RyaW5nKDAsIDIpLCAxNikgfHwgMDtcbiAgY29uc3QgZyA9IHBhcnNlSW50KGNsZWFuLnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gIGNvbnN0IGIgPSBwYXJzZUludChjbGVhbi5zdWJzdHJpbmcoNCwgNiksIDE2KSB8fCAwO1xuICByZXR1cm4gYCR7cn0sICR7Z30sICR7Yn1gO1xufVxuXG5mdW5jdGlvbiBnZXRDb250cmFzdEhleChoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGNsZWFuID0gaGV4LnJlcGxhY2UoJyMnLCAnJyk7XG4gIGNvbnN0IHIgPSBwYXJzZUludChjbGVhbi5zdWJzdHJpbmcoMCwgMiksIDE2KSB8fCAwO1xuICBjb25zdCBnID0gcGFyc2VJbnQoY2xlYW4uc3Vic3RyaW5nKDIsIDQpLCAxNikgfHwgMDtcbiAgY29uc3QgYiA9IHBhcnNlSW50KGNsZWFuLnN1YnN0cmluZyg0LCA2KSwgMTYpIHx8IDA7XG4gIC8vIFN0YW5kYXJkIFdDQUcgcmVsYXRpdmUgbHVtaW5hbmNlIGFwcHJveGltYXRpb25cbiAgY29uc3QgeWlxID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xuICByZXR1cm4geWlxID49IDE1MCA/ICcjMDAwMDAwJyA6ICcjRkZGRkZGJztcbn1cblxuZnVuY3Rpb24gc2hpZnRMaWdodG5lc3NIZXgoaGV4OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgY2xlYW4gPSBoZXgucmVwbGFjZSgnIycsICcnKTtcbiAgbGV0IHIgPSBwYXJzZUludChjbGVhbi5zdWJzdHJpbmcoMCwgMiksIDE2KSB8fCAwO1xuICBsZXQgZyA9IHBhcnNlSW50KGNsZWFuLnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gIGxldCBiID0gcGFyc2VJbnQoY2xlYW4uc3Vic3RyaW5nKDQsIDYpLCAxNikgfHwgMDtcblxuICBpZiAoYW1vdW50ID4gMCkge1xuICAgIHIgPSBNYXRoLm1pbigyNTUsIHIgKyBNYXRoLnJvdW5kKCgyNTUgLSByKSAqIChhbW91bnQgLyAxMDApKSk7XG4gICAgZyA9IE1hdGgubWluKDI1NSwgZyArIE1hdGgucm91bmQoKDI1NSAtIGcpICogKGFtb3VudCAvIDEwMCkpKTtcbiAgICBiID0gTWF0aC5taW4oMjU1LCBiICsgTWF0aC5yb3VuZCgoMjU1IC0gYikgKiAoYW1vdW50IC8gMTAwKSkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGZhY3RvciA9IDEgKyBhbW91bnQgLyAxMDA7XG4gICAgciA9IE1hdGgubWF4KDAsIE1hdGgucm91bmQociAqIGZhY3RvcikpO1xuICAgIGcgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGcgKiBmYWN0b3IpKTtcbiAgICBiID0gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChiICogZmFjdG9yKSk7XG4gIH1cblxuICByZXR1cm4gYCMke3IudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyl9JHtnLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpfSR7Yi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKX1gLnRvVXBwZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIGludGVycG9sYXRlU3RlcHBlZENvbG9ycyhcbiAgYmdIZXg6IHN0cmluZyxcbiAgdGV4dEhleDogc3RyaW5nLFxuICB2YXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogdm9pZCB7XG4gIGNvbnN0IGNsZWFuQmcgPSBiZ0hleC5yZXBsYWNlKCcjJywgJycpO1xuICBjb25zdCBjbGVhblRleHQgPSB0ZXh0SGV4LnJlcGxhY2UoJyMnLCAnJyk7XG5cbiAgY29uc3QgYmdSID0gcGFyc2VJbnQoY2xlYW5CZy5zdWJzdHJpbmcoMCwgMiksIDE2KSB8fCAwO1xuICBjb25zdCBiZ0cgPSBwYXJzZUludChjbGVhbkJnLnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gIGNvbnN0IGJnQiA9IHBhcnNlSW50KGNsZWFuQmcuc3Vic3RyaW5nKDQsIDYpLCAxNikgfHwgMDtcblxuICBjb25zdCB0ZXh0UiA9IHBhcnNlSW50KGNsZWFuVGV4dC5zdWJzdHJpbmcoMCwgMiksIDE2KSB8fCAwO1xuICBjb25zdCB0ZXh0RyA9IHBhcnNlSW50KGNsZWFuVGV4dC5zdWJzdHJpbmcoMiwgNCksIDE2KSB8fCAwO1xuICBjb25zdCB0ZXh0QiA9IHBhcnNlSW50KGNsZWFuVGV4dC5zdWJzdHJpbmcoNCwgNiksIDE2KSB8fCAwO1xuXG4gIGNvbnN0IHN0ZXBzID0gW1xuICAgIDUwLCAxMDAsIDE1MCwgMjAwLCAyNTAsIDMwMCwgMzUwLCA0MDAsIDQ1MCwgNTAwLCA1NTAsIDYwMCwgNjUwLCA3MDAsIDc1MCwgODAwLCA4NTAsIDkwMCwgOTUwLFxuICBdO1xuXG4gIGZvciAoY29uc3Qgc3RlcCBvZiBzdGVwcykge1xuICAgIGNvbnN0IHdlaWdodCA9IHN0ZXAgLyAxMDAwO1xuICAgIGNvbnN0IHIgPSBNYXRoLnJvdW5kKGJnUiAqICgxIC0gd2VpZ2h0KSArIHRleHRSICogd2VpZ2h0KTtcbiAgICBjb25zdCBnID0gTWF0aC5yb3VuZChiZ0cgKiAoMSAtIHdlaWdodCkgKyB0ZXh0RyAqIHdlaWdodCk7XG4gICAgY29uc3QgYiA9IE1hdGgucm91bmQoYmdCICogKDEgLSB3ZWlnaHQpICsgdGV4dEIgKiB3ZWlnaHQpO1xuICAgIGNvbnN0IGhleCA9XG4gICAgICBgIyR7ci50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKX0ke2cudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyl9JHtiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpfWAudG9VcHBlckNhc2UoKTtcbiAgICB2YXJzW2AtLWlvbi1jb2xvci1zdGVwLSR7c3RlcH1gXSA9IGhleDtcbiAgfVxufVxuIl19
@@ -24,7 +24,7 @@ export const DEFAULT_SEMANTIC = {
24
24
  };
25
25
  export const DEFAULT_FONT_FAMILY = {
26
26
  sans: "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
27
- mono: "'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace",
27
+ mono: "'Geist Mono', 'Geist Mono Fallback', monospace",
28
28
  };
29
29
  export const DEFAULT_TYPOGRAPHY = {
30
30
  display: {
@@ -89,6 +89,20 @@ export const TRACKING = {
89
89
  normal: '0',
90
90
  wide: '0.08em',
91
91
  };
92
+ /** Font-weight tokens — standalone scale for direct use outside typography presets. */
93
+ export const FONT_WEIGHT = {
94
+ regular: '400',
95
+ medium: '500',
96
+ semibold: '600',
97
+ bold: '700',
98
+ };
99
+ /** Line-height tokens — unitless multipliers for flexible leading control. */
100
+ export const LEADING = {
101
+ none: '1',
102
+ tight: '1.25',
103
+ normal: '1.5',
104
+ relaxed: '1.625',
105
+ };
92
106
  export const SPACING = {
93
107
  '0': '0px',
94
108
  '0-5': '0.125rem',
@@ -165,4 +179,13 @@ export const EASING = {
165
179
  'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
166
180
  emphasized: 'cubic-bezier(0.2, 0, 0, 1)',
167
181
  };
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBZTtJQUN6QyxFQUFFLEVBQUUsU0FBUztJQUNiLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFtQjtJQUM5QyxPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsU0FBUztJQUNoQixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWlCO0lBQy9DLElBQUksRUFBRSwyREFBMkQ7SUFDakUsSUFBSSxFQUFFLDJEQUEyRDtDQUNsRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQW9CO0lBQ2pELE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQy9ELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ25FLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0tBQ2pFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDNUQsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDakUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7S0FDN0Q7SUFDRCxLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUNqRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUNqRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtLQUM3RDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2xFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0tBQzlEO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFL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SSxFQUFFLE9BQU87SUFDYixNQUFNLEVBQUUsT0FBTztJQUNmLElBQUksRUFBRSxPQUFPO0lBQ2IsTUFBTSxFQUFFLE9BQU87Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBMkI7SUFDNUMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsRUFBRSxFQUFFLDRCQUE0QjtJQUNoQyxHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDLFFBQVEsRUFBRSw4QkFBOEI7SUFDeEMsVUFBVSxFQUFFLDRCQUE0QjtDQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JTY2FsZSwgRm9udEZhbWlsaWVzLCBTZW1hbnRpY0NvbG9ycywgVHlwb2dyYXBoeVNjYWxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29vbCBibHVlLWdyZXkgbmV1dHJhbCBzY2FsZS4gTGlnaHQgc3RlcHMgY2FycnkgYSBzdWJ0bGUgYmx1ZSB0aW50OyB0aGVcbiAqIGRhcmtlc3Qgc3RlcHMgZmxhdHRlbiB0b3dhcmQgYSBuZWFyLW5ldXRyYWwgY2hhcmNvYWwgc28gZGFyay1tb2RlXG4gKiBzdXJmYWNlcyByZWFkIGxpa2UgYSBzb2Z0LCBkZXNhdHVyYXRlZCBuYXZ5IHJhdGhlciB0aGFuIGEgc2F0dXJhdGVkIG9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTkVVVFJBTDogQ29sb3JTY2FsZSA9IHtcbiAgNTA6ICcjRjFGNEY3JyxcbiAgMTAwOiAnI0U0RTlFRScsXG4gIDIwMDogJyNDQ0QzREInLFxuICAzMDA6ICcjQTRCMEJDJyxcbiAgNDAwOiAnIzc3ODU5MycsXG4gIDUwMDogJyM0RTYwNkYnLFxuICA2MDA6ICcjM0E0NjUwJyxcbiAgNzAwOiAnIzJBMzMzQicsXG4gIDgwMDogJyMxRjFGMjInLFxuICA5MDA6ICcjMTgxODFBJyxcbiAgOTUwOiAnIzExMTExMicsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRU1BTlRJQzogU2VtYW50aWNDb2xvcnMgPSB7XG4gIHN1Y2Nlc3M6ICcjMEQ4NjI2JyxcbiAgd2FybmluZzogJyNFOUFGMDgnLFxuICBlcnJvcjogJyNFMzE5M0InLFxuICBpbmZvOiAnIzI1NjNFQicsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT05UX0ZBTUlMWTogRm9udEZhbWlsaWVzID0ge1xuICBzYW5zOiBcIidJbnRlcicsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZlwiLFxuICBtb25vOiBcIidKZXRCcmFpbnMgTW9ubycsICdGaXJhIENvZGUnLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZVwiLFxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFlQT0dSQVBIWTogVHlwb2dyYXBoeVNjYWxlID0ge1xuICBkaXNwbGF5OiB7XG4gICAgbGFyZ2U6IHsgc2l6ZTogJzMuNTYyNXJlbScsIGxpbmVIZWlnaHQ6ICc0cmVtJywgd2VpZ2h0OiAnNzAwJyB9LFxuICAgIG1lZGl1bTogeyBzaXplOiAnMi44MTI1cmVtJywgbGluZUhlaWdodDogJzMuMjVyZW0nLCB3ZWlnaHQ6ICc3MDAnIH0sXG4gICAgc21hbGw6IHsgc2l6ZTogJzIuMjVyZW0nLCBsaW5lSGVpZ2h0OiAnMi43NXJlbScsIHdlaWdodDogJzcwMCcgfSxcbiAgfSxcbiAgaGVhZGxpbmU6IHtcbiAgICBsYXJnZTogeyBzaXplOiAnMnJlbScsIGxpbmVIZWlnaHQ6ICcyLjVyZW0nLCB3ZWlnaHQ6ICc2MDAnIH0sXG4gICAgbWVkaXVtOiB7IHNpemU6ICcxLjc1cmVtJywgbGluZUhlaWdodDogJzIuMjVyZW0nLCB3ZWlnaHQ6ICc2MDAnIH0sXG4gICAgc21hbGw6IHsgc2l6ZTogJzEuNXJlbScsIGxpbmVIZWlnaHQ6ICcycmVtJywgd2VpZ2h0OiAnNjAwJyB9LFxuICB9LFxuICB0aXRsZToge1xuICAgIGxhcmdlOiB7IHNpemU6ICcxLjM3NXJlbScsIGxpbmVIZWlnaHQ6ICcxLjc1cmVtJywgd2VpZ2h0OiAnNjAwJyB9LFxuICAgIG1lZGl1bTogeyBzaXplOiAnMS4xMjVyZW0nLCBsaW5lSGVpZ2h0OiAnMS41cmVtJywgd2VpZ2h0OiAnNjAwJyB9LFxuICAgIHNtYWxsOiB7IHNpemU6ICcxcmVtJywgbGluZUhlaWdodDogJzEuNXJlbScsIHdlaWdodDogJzYwMCcgfSxcbiAgfSxcbiAgYm9keToge1xuICAgIGxhcmdlOiB7IHNpemU6ICcxcmVtJywgbGluZUhlaWdodDogJzEuNXJlbScsIHdlaWdodDogJzQwMCcgfSxcbiAgICBtZWRpdW06IHsgc2l6ZTogJzAuODc1cmVtJywgbGluZUhlaWdodDogJzEuMjVyZW0nLCB3ZWlnaHQ6ICc0MDAnIH0sXG4gICAgc21hbGw6IHsgc2l6ZTogJzAuNzVyZW0nLCBsaW5lSGVpZ2h0OiAnMXJlbScsIHdlaWdodDogJzQwMCcgfSxcbiAgfSxcbiAgbGFiZWw6IHtcbiAgICBsYXJnZTogeyBzaXplOiAnMC44NzVyZW0nLCBsaW5lSGVpZ2h0OiAnMS4yNXJlbScsIHdlaWdodDogJzUwMCcgfSxcbiAgICBtZWRpdW06IHsgc2l6ZTogJzAuNzVyZW0nLCBsaW5lSGVpZ2h0OiAnMXJlbScsIHdlaWdodDogJzUwMCcgfSxcbiAgICBzbWFsbDogeyBzaXplOiAnMC42ODc1cmVtJywgbGluZUhlaWdodDogJzFyZW0nLCB3ZWlnaHQ6ICc1MDAnIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIFN0YW5kYXJkIGhlaWdodCBmb3Igc2luZ2xlLWxpbmUgdGV4dCBjb250cm9scyAoaW5wdXQsIHNlbGVjdCwgbnVtYmVyLWlucHV0LFxuICogY29tYm9ib3gsIGlucHV0LWdyb3VwLCBwb3dlci1zZWFyY2gsIG11bHRpLXNlbGVjdCkuIEFsbCBjb250cm9scyBpbiB0aGVcbiAqIGZhbWlseSB1c2UgdGhpcyBzbyB0aGV5IHJlYWQgYXMgb25lIGNvbnNpc3RlbnQgc2l6ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRST0xfSEVJR0hUID0gJzIuNXJlbSc7XG5cbi8qKlxuICogQ29udHJvbC1oZWlnaHQgbGFkZGVyLiBgbWRgIG1pcnJvcnMgQ09OVFJPTF9IRUlHSFQgKHRoZSBmYW1pbHkgZGVmYXVsdCk7XG4gKiBgc21gL2BsZ2AgZ2l2ZSBkZW5zZSBhbmQgY29tZm9ydGFibGUgdmFyaWFudHMgdGhlIHNhbWUgcmh5dGhtLlxuICovXG5leHBvcnQgY29uc3QgQ09OVFJPTF9IRUlHSFRTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBzbTogJzJyZW0nLFxuICBtZDogQ09OVFJPTF9IRUlHSFQsXG4gIGxnOiAnM3JlbScsXG59O1xuXG4vKipcbiAqIE9wYWNpdHkgcm9sZXMuIENvbXBvbmVudHMgbXVzdCB1c2UgdGhlc2UgaW5zdGVhZCBvZiBhZC1ob2MgbGl0ZXJhbHMgc29cbiAqIGRpc2FibGVkL211dGVkIGNvbnRlbnQgcmVhZHMgaWRlbnRpY2FsbHkgYWNyb3NzIHRoZSB3aG9sZSBraXQuXG4gKi9cbmV4cG9ydCBjb25zdCBPUEFDSVRZOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkaXNhYmxlZDogJzAuNScsXG4gIG11dGVkOiAnMC43JyxcbiAgZmFpbnQ6ICcwLjQnLFxufTtcblxuLyoqIEljb24gc2l6aW5nIGxhZGRlciDigJQgYWxpZ25zIGdseXBoIGJveGVzIHdpdGggdGhlIHRleHQgcm9sZXMgdGhleSBzaXQgbmV4dCB0by4gKi9cbmV4cG9ydCBjb25zdCBJQ09OX1NJWkU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHNtOiAnMXJlbScsXG4gIG1kOiAnMS4yNXJlbScsXG4gIGxnOiAnMS41cmVtJyxcbn07XG5cbi8qKiBMZXR0ZXItc3BhY2luZyByb2xlczogdGlnaHQgZm9yIGRpc3BsYXkvaGVhZGxpbmUsIHdpZGUgZm9yIG92ZXJsaW5lL2xhYmVscy4gKi9cbmV4cG9ydCBjb25zdCBUUkFDS0lORzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgdGlnaHQ6ICctMC4wMmVtJyxcbiAgbm9ybWFsOiAnMCcsXG4gIHdpZGU6ICcwLjA4ZW0nLFxufTtcblxuZXhwb3J0IGNvbnN0IFNQQUNJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICcwJzogJzBweCcsXG4gICcwLTUnOiAnMC4xMjVyZW0nLFxuICAnMSc6ICcwLjI1cmVtJyxcbiAgJzEtNSc6ICcwLjM3NXJlbScsXG4gICcyJzogJzAuNXJlbScsXG4gICczJzogJzAuNzVyZW0nLFxuICAnNCc6ICcxcmVtJyxcbiAgJzUnOiAnMS4yNXJlbScsXG4gICc2JzogJzEuNXJlbScsXG4gICc4JzogJzJyZW0nLFxuICAnMTAnOiAnMi41cmVtJyxcbiAgJzEyJzogJzNyZW0nLFxuICAnMTYnOiAnNHJlbScsXG4gICcyMCc6ICc1cmVtJyxcbiAgJzI0JzogJzZyZW0nLFxuICAnMzInOiAnOHJlbScsXG59O1xuXG4vKipcbiAqIFJhZGl1cyBzY2FsZTogaW5uZXIgNHB4LCBlbGVtZW50IDhweCAoYnV0dG9ucy9pbnB1dHMsIHRoZSBiYXNlKSxcbiAqIGNvbnRhaW5lciAxMnB4IChjYXJkcyksIHRoZW4gcHJvZ3Jlc3NpdmVseSBsYXJnZXIgdGhyb3VnaCAyOHB4IFwicGFnZVwiXG4gKiByb3VuZGluZy4gRGVsaWJlcmF0ZWx5IGdlbmVyb3VzIHNvIHN1cmZhY2VzIHJlYWQgc29mdCBhbmQgcm91bmRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFJBRElVUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgbm9uZTogJzBweCcsXG4gIHNtOiAnMC4yNXJlbScsIC8vIDRweCAg4oCUIGlubmVyIChuZXN0ZWQgY2hpcHMsIGNoZWNrYm94ZXMpXG4gIG1kOiAnMC41cmVtJywgLy8gOHB4ICDigJQgZWxlbWVudCAoYnV0dG9ucywgaW5wdXRzKSDigJQgZGVmYXVsdCBiYXNlXG4gIGxnOiAnMC43NXJlbScsIC8vIDEycHgg4oCUIGNvbnRhaW5lciAoY2FyZHMsIHBvcG92ZXJzKVxuICB4bDogJzFyZW0nLCAvLyAxNnB4XG4gICcyeGwnOiAnMS4yNXJlbScsIC8vIDIwcHhcbiAgJzN4bCc6ICcxLjc1cmVtJywgLy8gMjhweCDigJQgcGFnZSAvIGhlcm8gc3VyZmFjZXNcbiAgZnVsbDogJzk5OTlweCcsXG59O1xuXG4vKipcbiAqIFNvZnQsIGRpZmZ1c2UsIGxheWVyZWQgc2hhZG93czogYSAxcHggaGFpcmxpbmUgXCJjb250YWN0XCIgbGluZSBrZWVwcyBlZGdlc1xuICogY3Jpc3Agb24gd2hpdGUsIGEgdGlnaHQga2V5IHNoYWRvdyBnaXZlcyBkZWZpbml0aW9uLCBhbmQgYSB3aWRlIGxvdy1hbHBoYVxuICogYW1iaWVudCBibHVyIHN1cHBsaWVzIHRoZSBzb2Z0IGRlcHRoLiBPdmVybGF5IENTUyByZXNvbHZlcyB0aGVzZSB0b1xuICogc2xpZ2h0bHkgc3Ryb25nZXIgdmFsdWVzIGluIGRhcmsgbW9kZSB2aWEgdGhlIGVsZXZhdGlvbiB0b2tlbnMgb24gZWFjaFxuICogc3VyZmFjZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNIQURPVzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc206ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wMyksIDAgMXB4IDFweCByZ2IoMCAwIDAgLyAwLjA3KSwgMCAycHggOHB4IHJnYigwIDAgMCAvIDAuMDcpJyxcbiAgbWQ6ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wMyksIDAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA5KSwgMCA0cHggMTZweCByZ2IoMCAwIDAgLyAwLjA5KScsXG4gIGxnOiAnMCAwIDAgMXB4IHJnYigwIDAgMCAvIDAuMDQpLCAwIDJweCA0cHggcmdiKDAgMCAwIC8gMC4wOSksIDAgMTBweCAyOHB4IHJnYigwIDAgMCAvIDAuMTEpJyxcbiAgeGw6ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wNCksIDAgNHB4IDhweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDE2cHggNDBweCByZ2IoMCAwIDAgLyAwLjE1KScsXG4gICcyeGwnOiAnMCAwIDAgMXB4IHJnYigwIDAgMCAvIDAuMDUpLCAwIDhweCAxNnB4IHJnYigwIDAgMCAvIDAuMTMpLCAwIDI4cHggNTZweCByZ2IoMCAwIDAgLyAwLjIpJyxcbn07XG5cbi8qKlxuICogU3RhY2tpbmcgbGFkZGVyIGZvciBvdmVybGF5IGNvbXBvbmVudHMuIEFuY2hvcmVkIHBvcHVwcyBzaXQgbG93ZXN0O1xuICogdG9vbHRpcHMgYWx3YXlzIHdpbi4gQ29tcG9uZW50cyBtdXN0IHVzZSB0aGVzZSBpbnN0ZWFkIG9mIGFkLWhvYyB2YWx1ZXNcbiAqIHNvIG92ZXJsYXlzIG5ldmVyIGZpZ2h0IGVhY2ggb3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBaX0lOREVYOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkcm9wZG93bjogJzEwMDAnLFxuICBzdGlja3k6ICcxMTAwJyxcbiAgYmFubmVyOiAnMTIwMCcsXG4gIG92ZXJsYXk6ICcxMzAwJyxcbiAgbW9kYWw6ICcxNDAwJyxcbiAgcG9wb3ZlcjogJzE1MDAnLFxuICB0b2FzdDogJzE2MDAnLFxuICB0b29sdGlwOiAnMTcwMCcsXG59O1xuXG5leHBvcnQgY29uc3QgRFVSQVRJT046IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGluc3RhbnQ6ICcwbXMnLFxuICBmYXN0OiAnMTAwbXMnLFxuICBub3JtYWw6ICcyMDBtcycsXG4gIHNsb3c6ICczMDBtcycsXG4gIHNsb3dlcjogJzUwMG1zJyxcbn07XG5cbmV4cG9ydCBjb25zdCBFQVNJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGxpbmVhcjogJ2xpbmVhcicsXG4gIGluOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSknLFxuICBvdXQ6ICdjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXG4gICdpbi1vdXQnOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gIGVtcGhhc2l6ZWQ6ICdjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKScsXG59O1xuIl19
182
+ /** Safe-area inset defaults (fallback to CSS env() variables for iOS/Android/Ionic). */
183
+ export const SAFE_AREA = {
184
+ top: 'env(safe-area-inset-top, 0px)',
185
+ bottom: 'env(safe-area-inset-bottom, 0px)',
186
+ left: 'env(safe-area-inset-left, 0px)',
187
+ right: 'env(safe-area-inset-right, 0px)',
188
+ };
189
+ /** Minimum touch target size for mobile accessibility (Apple HIG & Android Material). */
190
+ export const TOUCH_TARGET_MIN = '44px';
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBZTtJQUN6QyxFQUFFLEVBQUUsU0FBUztJQUNiLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFtQjtJQUM5QyxPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsU0FBUztJQUNoQixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWlCO0lBQy9DLElBQUksRUFBRSwyREFBMkQ7SUFDakUsSUFBSSxFQUFFLGdEQUFnRDtDQUN2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQW9CO0lBQ2pELE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQy9ELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ25FLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0tBQ2pFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDNUQsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDakUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7S0FDN0Q7SUFDRCxLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUNqRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUNqRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtLQUM3RDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2xFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0tBQzlEO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFL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OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUEyQjtJQUM3QyxRQUFRLEVBQUUsTUFBTTtJQUNoQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFLE1BQU07SUFDZixLQUFLLEVBQUUsTUFBTTtJQUNiLE9BQU8sRUFBRSxNQUFNO0lBQ2YsS0FBSyxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUUsTUFBTTtDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUEyQjtJQUM5QyxPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsTUFBTSxFQUFFLE9BQU87SUFDZixJQUFJLEVBQUUsT0FBTztJQUNiLE1BQU0sRUFBRSxPQUFPO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQTJCO0lBQzVDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEVBQUUsRUFBRSw0QkFBNEI7SUFDaEMsR0FBRyxFQUFFLDRCQUE0QjtJQUNqQyxRQUFRLEVBQUUsOEJBQThCO0lBQ3hDLFVBQVUsRUFBRSw0QkFBNEI7Q0FDekMsQ0FBQztBQUVGLHdGQUF3RjtBQUN4RixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkIsR0FBRyxFQUFFLCtCQUErQjtJQUNwQyxNQUFNLEVBQUUsa0NBQWtDO0lBQzFDLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsS0FBSyxFQUFFLGlDQUFpQztDQUN6QyxDQUFDO0FBRUYseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yU2NhbGUsIEZvbnRGYW1pbGllcywgU2VtYW50aWNDb2xvcnMsIFR5cG9ncmFwaHlTY2FsZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENvb2wgYmx1ZS1ncmV5IG5ldXRyYWwgc2NhbGUuIExpZ2h0IHN0ZXBzIGNhcnJ5IGEgc3VidGxlIGJsdWUgdGludDsgdGhlXG4gKiBkYXJrZXN0IHN0ZXBzIGZsYXR0ZW4gdG93YXJkIGEgbmVhci1uZXV0cmFsIGNoYXJjb2FsIHNvIGRhcmstbW9kZVxuICogc3VyZmFjZXMgcmVhZCBsaWtlIGEgc29mdCwgZGVzYXR1cmF0ZWQgbmF2eSByYXRoZXIgdGhhbiBhIHNhdHVyYXRlZCBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX05FVVRSQUw6IENvbG9yU2NhbGUgPSB7XG4gIDUwOiAnI0YxRjRGNycsXG4gIDEwMDogJyNFNEU5RUUnLFxuICAyMDA6ICcjQ0NEM0RCJyxcbiAgMzAwOiAnI0E0QjBCQycsXG4gIDQwMDogJyM3Nzg1OTMnLFxuICA1MDA6ICcjNEU2MDZGJyxcbiAgNjAwOiAnIzNBNDY1MCcsXG4gIDcwMDogJyMyQTMzM0InLFxuICA4MDA6ICcjMUYxRjIyJyxcbiAgOTAwOiAnIzE4MTgxQScsXG4gIDk1MDogJyMxMTExMTInLFxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VNQU5USUM6IFNlbWFudGljQ29sb3JzID0ge1xuICBzdWNjZXNzOiAnIzBEODYyNicsXG4gIHdhcm5pbmc6ICcjRTlBRjA4JyxcbiAgZXJyb3I6ICcjRTMxOTNCJyxcbiAgaW5mbzogJyMyNTYzRUInLFxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9OVF9GQU1JTFk6IEZvbnRGYW1pbGllcyA9IHtcbiAgc2FuczogXCInSW50ZXInLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICdTZWdvZSBVSScsIHNhbnMtc2VyaWZcIixcbiAgbW9ubzogXCInR2Vpc3QgTW9ubycsICdHZWlzdCBNb25vIEZhbGxiYWNrJywgbW9ub3NwYWNlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UWVBPR1JBUEhZOiBUeXBvZ3JhcGh5U2NhbGUgPSB7XG4gIGRpc3BsYXk6IHtcbiAgICBsYXJnZTogeyBzaXplOiAnMy41NjI1cmVtJywgbGluZUhlaWdodDogJzRyZW0nLCB3ZWlnaHQ6ICc3MDAnIH0sXG4gICAgbWVkaXVtOiB7IHNpemU6ICcyLjgxMjVyZW0nLCBsaW5lSGVpZ2h0OiAnMy4yNXJlbScsIHdlaWdodDogJzcwMCcgfSxcbiAgICBzbWFsbDogeyBzaXplOiAnMi4yNXJlbScsIGxpbmVIZWlnaHQ6ICcyLjc1cmVtJywgd2VpZ2h0OiAnNzAwJyB9LFxuICB9LFxuICBoZWFkbGluZToge1xuICAgIGxhcmdlOiB7IHNpemU6ICcycmVtJywgbGluZUhlaWdodDogJzIuNXJlbScsIHdlaWdodDogJzYwMCcgfSxcbiAgICBtZWRpdW06IHsgc2l6ZTogJzEuNzVyZW0nLCBsaW5lSGVpZ2h0OiAnMi4yNXJlbScsIHdlaWdodDogJzYwMCcgfSxcbiAgICBzbWFsbDogeyBzaXplOiAnMS41cmVtJywgbGluZUhlaWdodDogJzJyZW0nLCB3ZWlnaHQ6ICc2MDAnIH0sXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgbGFyZ2U6IHsgc2l6ZTogJzEuMzc1cmVtJywgbGluZUhlaWdodDogJzEuNzVyZW0nLCB3ZWlnaHQ6ICc2MDAnIH0sXG4gICAgbWVkaXVtOiB7IHNpemU6ICcxLjEyNXJlbScsIGxpbmVIZWlnaHQ6ICcxLjVyZW0nLCB3ZWlnaHQ6ICc2MDAnIH0sXG4gICAgc21hbGw6IHsgc2l6ZTogJzFyZW0nLCBsaW5lSGVpZ2h0OiAnMS41cmVtJywgd2VpZ2h0OiAnNjAwJyB9LFxuICB9LFxuICBib2R5OiB7XG4gICAgbGFyZ2U6IHsgc2l6ZTogJzFyZW0nLCBsaW5lSGVpZ2h0OiAnMS41cmVtJywgd2VpZ2h0OiAnNDAwJyB9LFxuICAgIG1lZGl1bTogeyBzaXplOiAnMC44NzVyZW0nLCBsaW5lSGVpZ2h0OiAnMS4yNXJlbScsIHdlaWdodDogJzQwMCcgfSxcbiAgICBzbWFsbDogeyBzaXplOiAnMC43NXJlbScsIGxpbmVIZWlnaHQ6ICcxcmVtJywgd2VpZ2h0OiAnNDAwJyB9LFxuICB9LFxuICBsYWJlbDoge1xuICAgIGxhcmdlOiB7IHNpemU6ICcwLjg3NXJlbScsIGxpbmVIZWlnaHQ6ICcxLjI1cmVtJywgd2VpZ2h0OiAnNTAwJyB9LFxuICAgIG1lZGl1bTogeyBzaXplOiAnMC43NXJlbScsIGxpbmVIZWlnaHQ6ICcxcmVtJywgd2VpZ2h0OiAnNTAwJyB9LFxuICAgIHNtYWxsOiB7IHNpemU6ICcwLjY4NzVyZW0nLCBsaW5lSGVpZ2h0OiAnMXJlbScsIHdlaWdodDogJzUwMCcgfSxcbiAgfSxcbn07XG5cbi8qKlxuICogU3RhbmRhcmQgaGVpZ2h0IGZvciBzaW5nbGUtbGluZSB0ZXh0IGNvbnRyb2xzIChpbnB1dCwgc2VsZWN0LCBudW1iZXItaW5wdXQsXG4gKiBjb21ib2JveCwgaW5wdXQtZ3JvdXAsIHBvd2VyLXNlYXJjaCwgbXVsdGktc2VsZWN0KS4gQWxsIGNvbnRyb2xzIGluIHRoZVxuICogZmFtaWx5IHVzZSB0aGlzIHNvIHRoZXkgcmVhZCBhcyBvbmUgY29uc2lzdGVudCBzaXplLlxuICovXG5leHBvcnQgY29uc3QgQ09OVFJPTF9IRUlHSFQgPSAnMi41cmVtJztcblxuLyoqXG4gKiBDb250cm9sLWhlaWdodCBsYWRkZXIuIGBtZGAgbWlycm9ycyBDT05UUk9MX0hFSUdIVCAodGhlIGZhbWlseSBkZWZhdWx0KTtcbiAqIGBzbWAvYGxnYCBnaXZlIGRlbnNlIGFuZCBjb21mb3J0YWJsZSB2YXJpYW50cyB0aGUgc2FtZSByaHl0aG0uXG4gKi9cbmV4cG9ydCBjb25zdCBDT05UUk9MX0hFSUdIVFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHNtOiAnMnJlbScsXG4gIG1kOiBDT05UUk9MX0hFSUdIVCxcbiAgbGc6ICczcmVtJyxcbn07XG5cbi8qKlxuICogT3BhY2l0eSByb2xlcy4gQ29tcG9uZW50cyBtdXN0IHVzZSB0aGVzZSBpbnN0ZWFkIG9mIGFkLWhvYyBsaXRlcmFscyBzb1xuICogZGlzYWJsZWQvbXV0ZWQgY29udGVudCByZWFkcyBpZGVudGljYWxseSBhY3Jvc3MgdGhlIHdob2xlIGtpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9QQUNJVFk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRpc2FibGVkOiAnMC41JyxcbiAgbXV0ZWQ6ICcwLjcnLFxuICBmYWludDogJzAuNCcsXG59O1xuXG4vKiogSWNvbiBzaXppbmcgbGFkZGVyIOKAlCBhbGlnbnMgZ2x5cGggYm94ZXMgd2l0aCB0aGUgdGV4dCByb2xlcyB0aGV5IHNpdCBuZXh0IHRvLiAqL1xuZXhwb3J0IGNvbnN0IElDT05fU0laRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc206ICcxcmVtJyxcbiAgbWQ6ICcxLjI1cmVtJyxcbiAgbGc6ICcxLjVyZW0nLFxufTtcblxuLyoqIExldHRlci1zcGFjaW5nIHJvbGVzOiB0aWdodCBmb3IgZGlzcGxheS9oZWFkbGluZSwgd2lkZSBmb3Igb3ZlcmxpbmUvbGFiZWxzLiAqL1xuZXhwb3J0IGNvbnN0IFRSQUNLSU5HOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICB0aWdodDogJy0wLjAyZW0nLFxuICBub3JtYWw6ICcwJyxcbiAgd2lkZTogJzAuMDhlbScsXG59O1xuXG4vKiogRm9udC13ZWlnaHQgdG9rZW5zIOKAlCBzdGFuZGFsb25lIHNjYWxlIGZvciBkaXJlY3QgdXNlIG91dHNpZGUgdHlwb2dyYXBoeSBwcmVzZXRzLiAqL1xuZXhwb3J0IGNvbnN0IEZPTlRfV0VJR0hUOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICByZWd1bGFyOiAnNDAwJyxcbiAgbWVkaXVtOiAnNTAwJyxcbiAgc2VtaWJvbGQ6ICc2MDAnLFxuICBib2xkOiAnNzAwJyxcbn07XG5cbi8qKiBMaW5lLWhlaWdodCB0b2tlbnMg4oCUIHVuaXRsZXNzIG11bHRpcGxpZXJzIGZvciBmbGV4aWJsZSBsZWFkaW5nIGNvbnRyb2wuICovXG5leHBvcnQgY29uc3QgTEVBRElORzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgbm9uZTogJzEnLFxuICB0aWdodDogJzEuMjUnLFxuICBub3JtYWw6ICcxLjUnLFxuICByZWxheGVkOiAnMS42MjUnLFxufTtcblxuZXhwb3J0IGNvbnN0IFNQQUNJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICcwJzogJzBweCcsXG4gICcwLTUnOiAnMC4xMjVyZW0nLFxuICAnMSc6ICcwLjI1cmVtJyxcbiAgJzEtNSc6ICcwLjM3NXJlbScsXG4gICcyJzogJzAuNXJlbScsXG4gICczJzogJzAuNzVyZW0nLFxuICAnNCc6ICcxcmVtJyxcbiAgJzUnOiAnMS4yNXJlbScsXG4gICc2JzogJzEuNXJlbScsXG4gICc4JzogJzJyZW0nLFxuICAnMTAnOiAnMi41cmVtJyxcbiAgJzEyJzogJzNyZW0nLFxuICAnMTYnOiAnNHJlbScsXG4gICcyMCc6ICc1cmVtJyxcbiAgJzI0JzogJzZyZW0nLFxuICAnMzInOiAnOHJlbScsXG59O1xuXG4vKipcbiAqIFJhZGl1cyBzY2FsZTogaW5uZXIgNHB4LCBlbGVtZW50IDhweCAoYnV0dG9ucy9pbnB1dHMsIHRoZSBiYXNlKSxcbiAqIGNvbnRhaW5lciAxMnB4IChjYXJkcyksIHRoZW4gcHJvZ3Jlc3NpdmVseSBsYXJnZXIgdGhyb3VnaCAyOHB4IFwicGFnZVwiXG4gKiByb3VuZGluZy4gRGVsaWJlcmF0ZWx5IGdlbmVyb3VzIHNvIHN1cmZhY2VzIHJlYWQgc29mdCBhbmQgcm91bmRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFJBRElVUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgbm9uZTogJzBweCcsXG4gIHNtOiAnMC4yNXJlbScsIC8vIDRweCAg4oCUIGlubmVyIChuZXN0ZWQgY2hpcHMsIGNoZWNrYm94ZXMpXG4gIG1kOiAnMC41cmVtJywgLy8gOHB4ICDigJQgZWxlbWVudCAoYnV0dG9ucywgaW5wdXRzKSDigJQgZGVmYXVsdCBiYXNlXG4gIGxnOiAnMC43NXJlbScsIC8vIDEycHgg4oCUIGNvbnRhaW5lciAoY2FyZHMsIHBvcG92ZXJzKVxuICB4bDogJzFyZW0nLCAvLyAxNnB4XG4gICcyeGwnOiAnMS4yNXJlbScsIC8vIDIwcHhcbiAgJzN4bCc6ICcxLjc1cmVtJywgLy8gMjhweCDigJQgcGFnZSAvIGhlcm8gc3VyZmFjZXNcbiAgZnVsbDogJzk5OTlweCcsXG59O1xuXG4vKipcbiAqIFNvZnQsIGRpZmZ1c2UsIGxheWVyZWQgc2hhZG93czogYSAxcHggaGFpcmxpbmUgXCJjb250YWN0XCIgbGluZSBrZWVwcyBlZGdlc1xuICogY3Jpc3Agb24gd2hpdGUsIGEgdGlnaHQga2V5IHNoYWRvdyBnaXZlcyBkZWZpbml0aW9uLCBhbmQgYSB3aWRlIGxvdy1hbHBoYVxuICogYW1iaWVudCBibHVyIHN1cHBsaWVzIHRoZSBzb2Z0IGRlcHRoLiBPdmVybGF5IENTUyByZXNvbHZlcyB0aGVzZSB0b1xuICogc2xpZ2h0bHkgc3Ryb25nZXIgdmFsdWVzIGluIGRhcmsgbW9kZSB2aWEgdGhlIGVsZXZhdGlvbiB0b2tlbnMgb24gZWFjaFxuICogc3VyZmFjZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNIQURPVzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc206ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wMyksIDAgMXB4IDFweCByZ2IoMCAwIDAgLyAwLjA3KSwgMCAycHggOHB4IHJnYigwIDAgMCAvIDAuMDcpJyxcbiAgbWQ6ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wMyksIDAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA5KSwgMCA0cHggMTZweCByZ2IoMCAwIDAgLyAwLjA5KScsXG4gIGxnOiAnMCAwIDAgMXB4IHJnYigwIDAgMCAvIDAuMDQpLCAwIDJweCA0cHggcmdiKDAgMCAwIC8gMC4wOSksIDAgMTBweCAyOHB4IHJnYigwIDAgMCAvIDAuMTEpJyxcbiAgeGw6ICcwIDAgMCAxcHggcmdiKDAgMCAwIC8gMC4wNCksIDAgNHB4IDhweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDE2cHggNDBweCByZ2IoMCAwIDAgLyAwLjE1KScsXG4gICcyeGwnOiAnMCAwIDAgMXB4IHJnYigwIDAgMCAvIDAuMDUpLCAwIDhweCAxNnB4IHJnYigwIDAgMCAvIDAuMTMpLCAwIDI4cHggNTZweCByZ2IoMCAwIDAgLyAwLjIpJyxcbn07XG5cbi8qKlxuICogU3RhY2tpbmcgbGFkZGVyIGZvciBvdmVybGF5IGNvbXBvbmVudHMuIEFuY2hvcmVkIHBvcHVwcyBzaXQgbG93ZXN0O1xuICogdG9vbHRpcHMgYWx3YXlzIHdpbi4gQ29tcG9uZW50cyBtdXN0IHVzZSB0aGVzZSBpbnN0ZWFkIG9mIGFkLWhvYyB2YWx1ZXNcbiAqIHNvIG92ZXJsYXlzIG5ldmVyIGZpZ2h0IGVhY2ggb3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBaX0lOREVYOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkcm9wZG93bjogJzEwMDAnLFxuICBzdGlja3k6ICcxMTAwJyxcbiAgYmFubmVyOiAnMTIwMCcsXG4gIG92ZXJsYXk6ICcxMzAwJyxcbiAgbW9kYWw6ICcxNDAwJyxcbiAgcG9wb3ZlcjogJzE1MDAnLFxuICB0b2FzdDogJzE2MDAnLFxuICB0b29sdGlwOiAnMTcwMCcsXG59O1xuXG5leHBvcnQgY29uc3QgRFVSQVRJT046IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGluc3RhbnQ6ICcwbXMnLFxuICBmYXN0OiAnMTAwbXMnLFxuICBub3JtYWw6ICcyMDBtcycsXG4gIHNsb3c6ICczMDBtcycsXG4gIHNsb3dlcjogJzUwMG1zJyxcbn07XG5cbmV4cG9ydCBjb25zdCBFQVNJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGxpbmVhcjogJ2xpbmVhcicsXG4gIGluOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSknLFxuICBvdXQ6ICdjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXG4gICdpbi1vdXQnOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gIGVtcGhhc2l6ZWQ6ICdjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKScsXG59O1xuXG4vKiogU2FmZS1hcmVhIGluc2V0IGRlZmF1bHRzIChmYWxsYmFjayB0byBDU1MgZW52KCkgdmFyaWFibGVzIGZvciBpT1MvQW5kcm9pZC9Jb25pYykuICovXG5leHBvcnQgY29uc3QgU0FGRV9BUkVBID0ge1xuICB0b3A6ICdlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KScsXG4gIGJvdHRvbTogJ2VudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpJyxcbiAgbGVmdDogJ2VudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KScsXG4gIHJpZ2h0OiAnZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KScsXG59O1xuXG4vKiogTWluaW11bSB0b3VjaCB0YXJnZXQgc2l6ZSBmb3IgbW9iaWxlIGFjY2Vzc2liaWxpdHkgKEFwcGxlIEhJRyAmIEFuZHJvaWQgTWF0ZXJpYWwpLiAqL1xuZXhwb3J0IGNvbnN0IFRPVUNIX1RBUkdFVF9NSU4gPSAnNDRweCc7XG4iXX0=
@@ -8,4 +8,7 @@ export * from './lib/define-config';
8
8
  export * from './lib/css';
9
9
  export * from './lib/presets';
10
10
  export * from './lib/theme.service';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAbmd4c21rL3RoZW1lXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmluZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3NzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByZXNldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWUuc2VydmljZSc7XG4iXX0=
11
+ export * from './lib/theme-injector.service';
12
+ export * from './lib/token-adapter';
13
+ export * from './lib/ionic-provider';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAbmd4c21rL3RoZW1lXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmluZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3NzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByZXNldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS1pbmplY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2VuLWFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW9uaWMtcHJvdmlkZXInO1xuIl19