valtech-components 2.0.976 → 2.0.978

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +6 -7
  2. package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +68 -1
  3. package/esm2022/lib/components/organisms/preferences-view/preferences-view.i18n.mjs +11 -1
  4. package/esm2022/lib/components/organisms/preferences-view/types.mjs +1 -1
  5. package/esm2022/lib/services/font-size/font-size.service.mjs +53 -0
  6. package/esm2022/lib/services/preferences/preferences.service.mjs +31 -5
  7. package/esm2022/lib/services/preferences/preferences.types.mjs +1 -1
  8. package/esm2022/lib/shared/constants/storage.mjs +2 -1
  9. package/esm2022/lib/version.mjs +2 -2
  10. package/esm2022/public-api.mjs +2 -1
  11. package/fesm2022/valtech-components.mjs +160 -10
  12. package/fesm2022/valtech-components.mjs.map +1 -1
  13. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  14. package/lib/components/atoms/text/text.component.d.ts +1 -1
  15. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
  16. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  17. package/lib/components/organisms/article/article.component.d.ts +5 -5
  18. package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
  19. package/lib/components/organisms/preferences-view/preferences-view.component.d.ts +5 -1
  20. package/lib/components/organisms/preferences-view/types.d.ts +5 -1
  21. package/lib/services/font-size/font-size.service.d.ts +16 -0
  22. package/lib/services/preferences/preferences.service.d.ts +8 -3
  23. package/lib/services/preferences/preferences.types.d.ts +4 -0
  24. package/lib/shared/constants/storage.d.ts +1 -0
  25. package/lib/version.d.ts +1 -1
  26. package/package.json +1 -1
  27. package/public-api.d.ts +1 -0
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
54
54
  * Current version of valtech-components.
55
55
  * This is automatically updated during the publish process.
56
56
  */
57
- const VERSION = '2.0.976';
57
+ const VERSION = '2.0.978';
58
58
 
59
59
  // Control de estado de refresco (singleton a nivel de módulo)
60
60
  let isRefreshing = false;
@@ -16689,6 +16689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
16689
16689
 
16690
16690
  const LANG = 'LANG';
16691
16691
  const THEME = 'THEME';
16692
+ const FONT_SIZE = 'FONT_SIZE';
16692
16693
 
16693
16694
  /**
16694
16695
  * Utility service for interacting with browser localStorage in a type-safe way.
@@ -24380,8 +24381,7 @@ class ShareButtonsComponent {
24380
24381
  await navigator.share(data);
24381
24382
  }
24382
24383
  async copyToClipboard() {
24383
- const textToCopy = this.props.shareData.url ||
24384
- `${this.props.shareData.text || ''} ${this.props.shareData.url || ''}`.trim();
24384
+ const textToCopy = this.props.shareData.url || `${this.props.shareData.text || ''} ${this.props.shareData.url || ''}`.trim();
24385
24385
  await navigator.clipboard.writeText(textToCopy);
24386
24386
  if (this.props.showCopyToast !== false) {
24387
24387
  const message = this.getCopySuccessMessage();
@@ -24422,8 +24422,8 @@ class ShareButtonsComponent {
24422
24422
  [class]="'platform-' + button.platform"
24423
24423
  [fill]="getButtonFill()"
24424
24424
  [disabled]="button.disabled"
24425
- [style.--background]="getButtonColor(button)"
24426
- [style.--background-hover]="getButtonColor(button)"
24425
+ [style.--background]="props.variant === 'outline' ? 'transparent' : getButtonColor(button)"
24426
+ [style.--background-hover]="props.variant === 'outline' ? 'transparent' : getButtonColor(button)"
24427
24427
  [style.--border-color]="getButtonColor(button)"
24428
24428
  [style.--color]="props.variant === 'outline' ? getButtonColor(button) : null"
24429
24429
  (click)="share(button.platform)"
@@ -24463,8 +24463,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24463
24463
  [class]="'platform-' + button.platform"
24464
24464
  [fill]="getButtonFill()"
24465
24465
  [disabled]="button.disabled"
24466
- [style.--background]="getButtonColor(button)"
24467
- [style.--background-hover]="getButtonColor(button)"
24466
+ [style.--background]="props.variant === 'outline' ? 'transparent' : getButtonColor(button)"
24467
+ [style.--background-hover]="props.variant === 'outline' ? 'transparent' : getButtonColor(button)"
24468
24468
  [style.--border-color]="getButtonColor(button)"
24469
24469
  [style.--color]="props.variant === 'outline' ? getButtonColor(button) : null"
24470
24470
  (click)="share(button.platform)"
@@ -42301,6 +42301,54 @@ function provideValtechProfileRoutes(opts) {
42301
42301
  ];
42302
42302
  }
42303
42303
 
42304
+ var FontSizeOption;
42305
+ (function (FontSizeOption) {
42306
+ FontSizeOption["SMALL"] = "small";
42307
+ FontSizeOption["MEDIUM"] = "medium";
42308
+ FontSizeOption["LARGE"] = "large";
42309
+ })(FontSizeOption || (FontSizeOption = {}));
42310
+ const SIZE_PX = {
42311
+ [FontSizeOption.SMALL]: '14px',
42312
+ [FontSizeOption.MEDIUM]: '16px',
42313
+ [FontSizeOption.LARGE]: '19px',
42314
+ };
42315
+ class FontSizeService {
42316
+ constructor(platformId) {
42317
+ this._size = signal(FontSizeOption.MEDIUM);
42318
+ this.size = this._size.asReadonly();
42319
+ this.isBrowser = isPlatformBrowser(platformId);
42320
+ if (!this.isBrowser)
42321
+ return;
42322
+ const stored = LocalStorageService.get(FONT_SIZE);
42323
+ const initial = stored && SIZE_PX[stored] ? stored : FontSizeOption.MEDIUM;
42324
+ this._size.set(initial);
42325
+ this.applySize(initial);
42326
+ }
42327
+ setSize(size) {
42328
+ if (!SIZE_PX[size])
42329
+ return;
42330
+ this._size.set(size);
42331
+ if (this.isBrowser) {
42332
+ LocalStorageService.set(FONT_SIZE, size);
42333
+ }
42334
+ this.applySize(size);
42335
+ }
42336
+ applySize(size) {
42337
+ if (!this.isBrowser)
42338
+ return;
42339
+ document.documentElement.style.fontSize = SIZE_PX[size];
42340
+ }
42341
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
42342
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, providedIn: 'root' }); }
42343
+ }
42344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, decorators: [{
42345
+ type: Injectable,
42346
+ args: [{ providedIn: 'root' }]
42347
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
42348
+ type: Inject,
42349
+ args: [PLATFORM_ID]
42350
+ }] }] });
42351
+
42304
42352
  /**
42305
42353
  * PreferencesService — preferencias del user en el doc canónico Firestore
42306
42354
  * `/apps/{appId}/users/{uid}/preferences/main`.
@@ -42316,15 +42364,17 @@ function provideValtechProfileRoutes(opts) {
42316
42364
  * Auto-bind al user actual via `AuthService.user()`. Sin user (logout) → unbind.
42317
42365
  */
42318
42366
  class PreferencesService {
42319
- constructor(config, firestore, auth, http, themeService, i18n) {
42367
+ constructor(config, firestore, auth, http, themeService, fontSizeService, i18n) {
42320
42368
  this.config = config;
42321
42369
  this.firestore = firestore;
42322
42370
  this.auth = auth;
42323
42371
  this.http = http;
42324
42372
  this.themeService = themeService;
42373
+ this.fontSizeService = fontSizeService;
42325
42374
  this.i18n = i18n;
42326
42375
  this._theme = signal('auto');
42327
42376
  this._language = signal('es');
42377
+ this._fontSize = signal('medium');
42328
42378
  // Default `false` (opt-in). El user debe activar explícitamente las notificaciones;
42329
42379
  // no asumimos consentimiento implícito. Backend debe coincidir.
42330
42380
  this._notificationsMaster = signal(false);
@@ -42332,6 +42382,7 @@ class PreferencesService {
42332
42382
  this._synced = signal(false);
42333
42383
  this.theme = this._theme.asReadonly();
42334
42384
  this.language = this._language.asReadonly();
42385
+ this.fontSize = this._fontSize.asReadonly();
42335
42386
  this.notificationsMaster = this._notificationsMaster.asReadonly();
42336
42387
  this.synced = this._synced.asReadonly();
42337
42388
  /**
@@ -42380,6 +42431,15 @@ class PreferencesService {
42380
42431
  this.i18n.setLanguage(l);
42381
42432
  }
42382
42433
  });
42434
+ // Side-effect: aplicar fontSize local cuando llega snapshot real.
42435
+ effect(() => {
42436
+ if (!this._synced())
42437
+ return;
42438
+ const fs = this._fontSize();
42439
+ if (this.fontSizeService) {
42440
+ this.fontSizeService.setSize(fs);
42441
+ }
42442
+ });
42383
42443
  }
42384
42444
  /** Actualiza preferencias via backend. Optimistic UI: aplica local, revierte si falla. */
42385
42445
  async update(partial) {
@@ -42387,12 +42447,15 @@ class PreferencesService {
42387
42447
  const prev = {
42388
42448
  theme: this._theme(),
42389
42449
  language: this._language(),
42450
+ fontSize: this._fontSize(),
42390
42451
  master: this._notificationsMaster(),
42391
42452
  };
42392
42453
  if (partial.theme)
42393
42454
  this._theme.set(partial.theme);
42394
42455
  if (partial.language)
42395
42456
  this._language.set(partial.language);
42457
+ if (partial.fontSize)
42458
+ this._fontSize.set(partial.fontSize);
42396
42459
  if (partial.notifications && typeof partial.notifications.master === 'boolean') {
42397
42460
  this._notificationsMaster.set(partial.notifications.master);
42398
42461
  }
@@ -42412,6 +42475,8 @@ class PreferencesService {
42412
42475
  this._theme.set(res.theme);
42413
42476
  if (res.language)
42414
42477
  this._language.set(res.language);
42478
+ if (res.fontSize)
42479
+ this._fontSize.set(res.fontSize);
42415
42480
  if (typeof res.notifications?.master === 'boolean') {
42416
42481
  this._notificationsMaster.set(res.notifications.master);
42417
42482
  }
@@ -42421,6 +42486,7 @@ class PreferencesService {
42421
42486
  // Revert optimistic.
42422
42487
  this._theme.set(prev.theme);
42423
42488
  this._language.set(prev.language);
42489
+ this._fontSize.set(prev.fontSize);
42424
42490
  this._notificationsMaster.set(prev.master);
42425
42491
  throw err;
42426
42492
  }
@@ -42434,6 +42500,9 @@ class PreferencesService {
42434
42500
  setLanguage(language) {
42435
42501
  return this.update({ language });
42436
42502
  }
42503
+ setFontSize(fontSize) {
42504
+ return this.update({ fontSize });
42505
+ }
42437
42506
  setNotificationsMaster(enabled) {
42438
42507
  return this.update({ notifications: { master: enabled } });
42439
42508
  }
@@ -42463,6 +42532,8 @@ class PreferencesService {
42463
42532
  this._theme.set(doc.theme);
42464
42533
  if (doc.language)
42465
42534
  this._language.set(doc.language);
42535
+ if (doc.fontSize)
42536
+ this._fontSize.set(doc.fontSize);
42466
42537
  if (doc.notifications && typeof doc.notifications.master === 'boolean') {
42467
42538
  this._notificationsMaster.set(doc.notifications.master);
42468
42539
  }
@@ -42475,7 +42546,7 @@ class PreferencesService {
42475
42546
  this.currentUserId = undefined;
42476
42547
  this._synced.set(false);
42477
42548
  }
42478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: FirestoreService }, { token: AuthService }, { token: i1$3.HttpClient }, { token: ThemeService, optional: true }, { token: I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
42549
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: FirestoreService }, { token: AuthService }, { token: i1$3.HttpClient }, { token: ThemeService, optional: true }, { token: FontSizeService, optional: true }, { token: I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
42479
42550
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, providedIn: 'root' }); }
42480
42551
  }
42481
42552
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, decorators: [{
@@ -42486,6 +42557,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
42486
42557
  args: [VALTECH_AUTH_CONFIG]
42487
42558
  }] }, { type: FirestoreService }, { type: AuthService }, { type: i1$3.HttpClient }, { type: ThemeService, decorators: [{
42488
42559
  type: Optional
42560
+ }] }, { type: FontSizeService, decorators: [{
42561
+ type: Optional
42489
42562
  }] }, { type: I18nService, decorators: [{
42490
42563
  type: Optional
42491
42564
  }] }] });
@@ -42511,6 +42584,11 @@ const PREFERENCES_VIEW_I18N = {
42511
42584
  themeAuto: 'Auto',
42512
42585
  languageTitle: 'Idioma',
42513
42586
  languageHint: 'Idioma de la interfaz y de los correos que recibes.',
42587
+ fontSizeTitle: 'Tamaño de texto',
42588
+ fontSizeHint: 'Ajusta el tamaño de la letra en toda la app.',
42589
+ fontSizeSmall: 'Pequeño',
42590
+ fontSizeMedium: 'Mediano',
42591
+ fontSizeLarge: 'Grande',
42514
42592
  saveError: 'No se pudo guardar la preferencia.',
42515
42593
  },
42516
42594
  en: {
@@ -42523,6 +42601,11 @@ const PREFERENCES_VIEW_I18N = {
42523
42601
  themeAuto: 'Auto',
42524
42602
  languageTitle: 'Language',
42525
42603
  languageHint: 'Language of the interface and of the emails you receive.',
42604
+ fontSizeTitle: 'Text size',
42605
+ fontSizeHint: 'Adjust the font size across the entire app.',
42606
+ fontSizeSmall: 'Small',
42607
+ fontSizeMedium: 'Medium',
42608
+ fontSizeLarge: 'Large',
42526
42609
  saveError: 'Could not save preference.',
42527
42610
  },
42528
42611
  };
@@ -42562,10 +42645,12 @@ class PreferencesViewComponent {
42562
42645
  return {
42563
42646
  showTheme: merged.showTheme ?? true,
42564
42647
  showLanguage: merged.showLanguage ?? true,
42648
+ showFontSize: merged.showFontSize ?? true,
42565
42649
  supportedLanguages: merged.supportedLanguages ?? DEFAULT_LANGUAGES,
42566
42650
  i18nNamespace: merged.i18nNamespace ?? DEFAULT_NAMESPACE,
42567
42651
  onThemeChanged: merged.onThemeChanged,
42568
42652
  onLanguageChanged: merged.onLanguageChanged,
42653
+ onFontSizeChanged: merged.onFontSizeChanged,
42569
42654
  };
42570
42655
  });
42571
42656
  this.saving = signal(false);
@@ -42575,6 +42660,8 @@ class PreferencesViewComponent {
42575
42660
  this.themeHint = computed(() => this.t('themeHint'));
42576
42661
  this.langTitle = computed(() => this.t('languageTitle'));
42577
42662
  this.langHint = computed(() => this.t('languageHint'));
42663
+ this.fontSizeTitle = computed(() => this.t('fontSizeTitle'));
42664
+ this.fontSizeHint = computed(() => this.t('fontSizeHint'));
42578
42665
  this.themeProps = computed(() => ({
42579
42666
  value: this.prefs.theme(),
42580
42667
  disabled: this.saving(),
@@ -42592,6 +42679,15 @@ class PreferencesViewComponent {
42592
42679
  expand: 'block',
42593
42680
  fill: 'outline',
42594
42681
  }));
42682
+ this.fontSizeProps = computed(() => ({
42683
+ value: this.prefs.fontSize(),
42684
+ disabled: this.saving(),
42685
+ options: [
42686
+ { value: 'small', label: this.t('fontSizeSmall') },
42687
+ { value: 'medium', label: this.t('fontSizeMedium') },
42688
+ { value: 'large', label: this.t('fontSizeLarge') },
42689
+ ],
42690
+ }));
42595
42691
  // Auto-registro i18n — respeta override del consumer. El namespace puede
42596
42692
  // venir de @Input.config o del route data; lo resolvemos acá.
42597
42693
  const ns = this.ns;
@@ -42606,6 +42702,12 @@ class PreferencesViewComponent {
42606
42702
  const theme = value;
42607
42703
  await this.dispatch(() => this.prefs.setTheme(theme), () => this.resolvedConfig().onThemeChanged?.(theme));
42608
42704
  }
42705
+ async onFontSizeChange(value) {
42706
+ const fontSize = value;
42707
+ if (this.saving() || value === this.prefs.fontSize())
42708
+ return;
42709
+ await this.dispatch(() => this.prefs.setFontSize(fontSize), () => this.resolvedConfig().onFontSizeChanged?.(fontSize));
42710
+ }
42609
42711
  async onLanguageChange(value) {
42610
42712
  const lang = value;
42611
42713
  if (!this.resolvedConfig().supportedLanguages.includes(lang))
@@ -42697,6 +42799,30 @@ class PreferencesViewComponent {
42697
42799
  </div>
42698
42800
  </section>
42699
42801
  }
42802
+
42803
+ @if (resolvedConfig().showFontSize) {
42804
+ <section class="settings-section">
42805
+ <val-title
42806
+ [props]="{
42807
+ size: 'medium',
42808
+ color: 'dark',
42809
+ bold: true,
42810
+ content: fontSizeTitle(),
42811
+ }"
42812
+ />
42813
+ <div class="section-body">
42814
+ <val-text
42815
+ [props]="{
42816
+ size: 'medium',
42817
+ color: 'dark',
42818
+ bold: false,
42819
+ content: fontSizeHint(),
42820
+ }"
42821
+ />
42822
+ <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
42823
+ </div>
42824
+ </section>
42825
+ }
42700
42826
  </div>
42701
42827
  `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SegmentControlComponent, selector: "val-segment-control", inputs: ["preset", "props"], outputs: ["segmentChange"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
42702
42828
  }
@@ -42770,6 +42896,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
42770
42896
  </div>
42771
42897
  </section>
42772
42898
  }
42899
+
42900
+ @if (resolvedConfig().showFontSize) {
42901
+ <section class="settings-section">
42902
+ <val-title
42903
+ [props]="{
42904
+ size: 'medium',
42905
+ color: 'dark',
42906
+ bold: true,
42907
+ content: fontSizeTitle(),
42908
+ }"
42909
+ />
42910
+ <div class="section-body">
42911
+ <val-text
42912
+ [props]="{
42913
+ size: 'medium',
42914
+ color: 'dark',
42915
+ bold: false,
42916
+ content: fontSizeHint(),
42917
+ }"
42918
+ />
42919
+ <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
42920
+ </div>
42921
+ </section>
42922
+ }
42773
42923
  </div>
42774
42924
  `, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"] }]
42775
42925
  }], ctorParameters: () => [], propDecorators: { config: [{
@@ -54070,5 +54220,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
54070
54220
  * Generated bundle index. Do not edit.
54071
54221
  */
54072
54222
 
54073
- export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildFooterLinks, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
54223
+ export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildFooterLinks, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
54074
54224
  //# sourceMappingURL=valtech-components.mjs.map