valtech-components 2.0.610 → 2.0.611

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,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { signal, Injectable, makeEnvironmentProviders, APP_INITIALIZER, inject, EventEmitter, Component, Input, Output, HostListener, Pipe, input, computed, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef, ElementRef, ContentChild, Inject, PLATFORM_ID, ErrorHandler, DestroyRef, InjectionToken, runInInjectionContext, effect, Optional, TemplateRef, ViewContainerRef, isSignal, Directive, ViewEncapsulation } from '@angular/core';
3
3
  import * as i2$1 from '@ionic/angular/standalone';
4
- import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonTextarea, IonDatetime, IonDatetimeButton, IonInput, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonRadioGroup, IonRadio, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonChip, IonNote, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonMenuButton, IonFooter, IonListHeader, IonInfiniteScroll, IonInfiniteScrollContent, IonGrid, MenuController, IonMenu, IonMenuToggle, AlertController } from '@ionic/angular/standalone';
4
+ import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonTextarea, IonDatetime, IonDatetimeButton, IonInput, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonRadioGroup, IonRadio, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonChip, IonNote, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonMenuButton, IonFooter, IonListHeader, IonInfiniteScroll, IonInfiniteScrollContent, IonGrid, MenuController, IonMenu, IonMenuToggle, AlertController, IonSplitPane } from '@ionic/angular/standalone';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule, NgStyle, NgFor, NgClass, isPlatformBrowser } from '@angular/common';
7
7
  import { addIcons } from 'ionicons';
8
8
  import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, refreshOutline, documentTextOutline, lockClosedOutline, informationCircleOutline, logoNpm, removeOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, settings, home, search, person, helpCircle, informationCircle, documentText, notifications, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, shuffleOutline, logoWhatsapp, paperPlaneOutline, mailOutline, trophyOutline, ticketOutline, giftOutline, personOutline, ellipsisVertical, closeCircle, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, documentOutline, bugOutline, bulbOutline, closeCircleOutline, menuOutline, searchOutline } from 'ionicons/icons';
9
9
  import * as i1$1 from '@angular/router';
10
- import { RouterLink, Router, NavigationEnd, RouterOutlet } from '@angular/router';
10
+ import { RouterLink, Router, NavigationEnd, RouterOutlet, RouterModule } from '@angular/router';
11
11
  import { Browser } from '@capacitor/browser';
12
12
  import * as i1$2 from '@angular/platform-browser';
13
13
  import QRCodeStyling from 'qr-code-styling';
@@ -38032,6 +38032,329 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
38032
38032
  type: Input
38033
38033
  }] } });
38034
38034
 
38035
+ addIcons({
38036
+ chevronDownOutline,
38037
+ chevronForwardOutline,
38038
+ closeOutline,
38039
+ });
38040
+ /**
38041
+ * val-docs-shell
38042
+ *
38043
+ * A complete documentation shell with sidebar navigation, search, and content area.
38044
+ * Use this component as the root layout for documentation pages.
38045
+ *
38046
+ * @example
38047
+ * ```html
38048
+ * <val-docs-shell [props]="shellConfig">
38049
+ * <router-outlet></router-outlet>
38050
+ * </val-docs-shell>
38051
+ * ```
38052
+ */
38053
+ class DocsShellComponent {
38054
+ constructor() {
38055
+ this.menuCtrl = inject(MenuController);
38056
+ this.docsNav = inject(DocsNavigationService);
38057
+ this.props = {
38058
+ logo: { alt: 'Logo' },
38059
+ sections: [],
38060
+ };
38061
+ this.navigate = new EventEmitter();
38062
+ // Internal state for expanded sections
38063
+ this._sectionsState = signal([]);
38064
+ this.sectionsState = computed(() => {
38065
+ // Initialize from props if empty
38066
+ if (this._sectionsState().length === 0 && this.props.sections.length > 0) {
38067
+ return this.props.sections.map(s => ({
38068
+ ...s,
38069
+ expanded: s.expanded ?? true,
38070
+ }));
38071
+ }
38072
+ return this._sectionsState().length > 0 ? this._sectionsState() : this.props.sections;
38073
+ });
38074
+ this.searchProps = computed(() => ({
38075
+ placeholder: this.props.search?.placeholder || 'Search...',
38076
+ showShortcut: this.props.search?.showShortcut ?? true,
38077
+ sections: this.buildSearchSections(),
38078
+ }));
38079
+ }
38080
+ ngOnChanges() {
38081
+ // Update sections state when props change
38082
+ if (this.props.sections.length > 0) {
38083
+ this._sectionsState.set(this.props.sections.map(s => ({
38084
+ ...s,
38085
+ expanded: s.expanded ?? true,
38086
+ })));
38087
+ }
38088
+ }
38089
+ toggleSection(section) {
38090
+ this._sectionsState.update(sections => sections.map(s => s.key === section.key ? { ...s, expanded: !s.expanded } : s));
38091
+ }
38092
+ async closeMenu() {
38093
+ await this.menuCtrl.close('docs-menu');
38094
+ this.docsNav.scrollToTop();
38095
+ }
38096
+ onNavigate(route) {
38097
+ this.navigate.emit(route);
38098
+ this.docsNav.navigateAndScroll(route);
38099
+ this.menuCtrl.close('docs-menu');
38100
+ }
38101
+ buildSearchSections() {
38102
+ return this.props.sections.map(section => ({
38103
+ title: section.title,
38104
+ items: section.children.map(child => ({
38105
+ label: child.label,
38106
+ route: child.route,
38107
+ description: `${section.title} > ${child.label}`,
38108
+ })),
38109
+ }));
38110
+ }
38111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsShellComponent, isStandalone: true, selector: "val-docs-shell", inputs: { props: "props" }, outputs: { navigate: "navigate" }, usesOnChanges: true, ngImport: i0, template: `
38113
+ <ion-split-pane contentId="docs-content" when="lg">
38114
+ <ion-menu contentId="docs-content" type="overlay" menuId="docs-menu">
38115
+ <ion-header class="ion-no-border">
38116
+ <ion-toolbar>
38117
+ <div class="sidebar-header">
38118
+ <a [routerLink]="props.logo.route || ['/']" class="logo-link" [attr.aria-label]="props.logo.alt">
38119
+ @if (props.logo.cssVariable) {
38120
+ <span
38121
+ class="sidebar-logo sidebar-logo--css-var"
38122
+ role="img"
38123
+ [attr.aria-label]="props.logo.alt"
38124
+ [style.--logo-var]="'var(' + props.logo.cssVariable + ')'"
38125
+ [style.width]="props.logo.width || '10rem'"
38126
+ [style.height]="props.logo.height || '3rem'"
38127
+ ></span>
38128
+ } @else if (props.logo.src) {
38129
+ <img
38130
+ [src]="props.logo.src"
38131
+ [alt]="props.logo.alt"
38132
+ class="sidebar-logo sidebar-logo--img"
38133
+ [style.width]="props.logo.width || '10rem'"
38134
+ [style.height]="props.logo.height || '3rem'"
38135
+ />
38136
+ }
38137
+ </a>
38138
+ <button
38139
+ type="button"
38140
+ class="sidebar-close"
38141
+ (click)="closeMenu()"
38142
+ aria-label="Close menu"
38143
+ >
38144
+ <ion-icon name="close-outline"></ion-icon>
38145
+ </button>
38146
+ </div>
38147
+ </ion-toolbar>
38148
+ </ion-header>
38149
+
38150
+ <ion-content>
38151
+ <!-- Search -->
38152
+ @if (props.search) {
38153
+ <div class="search-wrapper">
38154
+ <val-docs-search
38155
+ [props]="searchProps()"
38156
+ (navigate)="onNavigate($event)"
38157
+ ></val-docs-search>
38158
+ </div>
38159
+ }
38160
+
38161
+ <nav class="sidebar-nav">
38162
+ @for (section of sectionsState(); track section.key) {
38163
+ <div class="nav-section">
38164
+ <button
38165
+ type="button"
38166
+ class="nav-section__header"
38167
+ (click)="toggleSection(section)"
38168
+ >
38169
+ @if (section.icon) {
38170
+ <ion-icon [name]="section.icon"></ion-icon>
38171
+ }
38172
+ <span>{{ section.title }}</span>
38173
+ <ion-icon
38174
+ [name]="section.expanded ? 'chevron-down-outline' : 'chevron-forward-outline'"
38175
+ class="nav-chevron"
38176
+ ></ion-icon>
38177
+ </button>
38178
+
38179
+ @if (section.expanded) {
38180
+ <ul class="nav-links">
38181
+ @for (link of section.children; track link.label) {
38182
+ <li>
38183
+ <a
38184
+ [routerLink]="link.route"
38185
+ routerLinkActive="active"
38186
+ (click)="closeMenu()"
38187
+ >
38188
+ {{ link.label }}
38189
+ @if (link.badge) {
38190
+ <span
38191
+ class="nav-badge"
38192
+ [class.nav-badge--success]="link.badgeColor === 'success'"
38193
+ >{{ link.badge }}</span>
38194
+ }
38195
+ </a>
38196
+ </li>
38197
+ }
38198
+ </ul>
38199
+ }
38200
+ </div>
38201
+ }
38202
+ </nav>
38203
+ </ion-content>
38204
+ </ion-menu>
38205
+
38206
+ <div class="ion-page" id="docs-content">
38207
+ <ion-header class="ion-no-border mobile-header">
38208
+ <ion-toolbar>
38209
+ <ion-buttons slot="start">
38210
+ <ion-menu-button menu="docs-menu" color="dark"></ion-menu-button>
38211
+ </ion-buttons>
38212
+ </ion-toolbar>
38213
+ </ion-header>
38214
+
38215
+ <main class="docs-main-scroll">
38216
+ <ng-content></ng-content>
38217
+ @if (props.footer) {
38218
+ <val-company-footer [props]="props.footer"></val-company-footer>
38219
+ }
38220
+ </main>
38221
+ </div>
38222
+ </ion-split-pane>
38223
+ `, isInline: true, styles: [":host{display:block;height:100%}ion-split-pane{height:100%;--side-width: var(--docs-sidebar-width, 260px);--side-min-width: var(--docs-sidebar-width, 260px);--side-max-width: var(--docs-sidebar-width, 260px)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}.logo-link{display:flex;align-items:center;gap:.75rem;text-decoration:none;transition:opacity .2s ease}.logo-link:hover{opacity:.8}.sidebar-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:left center}.sidebar-logo--img{display:block;object-fit:contain}.sidebar-close{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--ion-text-color, #333);transition:background .2s ease}.sidebar-close:hover{background:#0000000d}.sidebar-close ion-icon{font-size:1.5rem}@media (min-width: 992px){.sidebar-close{display:none}}.search-wrapper{padding:.75rem 1rem;border-bottom:1px solid var(--ion-border-color, #e0e0e0)}.sidebar-nav{padding:.5rem 0}.nav-section__header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666;cursor:pointer}.nav-section__header:hover{color:var(--ion-text-color)}.nav-section__header span{flex:1;text-align:left}.nav-chevron{font-size:.875rem}.nav-links{list-style:none;margin:0;padding:0}.nav-links a{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem .5rem 2.5rem;font-size:.875rem;color:#555;text-decoration:none;border-left:2px solid transparent}.nav-links a:hover{color:var(--ion-text-color);background:#00000008}.nav-links a.active{color:var(--ion-text-color);font-weight:500;background:#0000000d;border-left-color:var(--ion-color-primary)}.nav-badge{font-size:.625rem;font-weight:500;text-transform:uppercase;padding:.125rem .375rem;border-radius:4px;background:#0000000a;color:#888}.nav-badge--success{background:#e8f5e9;color:#2e7d32}.docs-main-scroll{flex:1;overflow-y:auto;background:var(--ion-background-color)}ion-menu{--width: 100%;--max-width: 100%;--background: var(--ion-background-color);border-right:1px solid var(--ion-border-color, #e0e0e0)}@media (min-width: 992px){ion-menu{--width: var(--docs-sidebar-width, 260px);--max-width: var(--docs-sidebar-width, 260px)}.mobile-header{display:none}}#docs-content{display:flex;flex-direction:column}:host-context(.dark) .nav-badge,:host-context([color-scheme=\"dark\"]) .nav-badge{background:#ffffff0f;color:#999}:host-context(.dark) .nav-badge--success,:host-context([color-scheme=\"dark\"]) .nav-badge--success{background:#2e7d3233;color:#81c784}:host-context(.dark) .sidebar-close:hover,:host-context([color-scheme=\"dark\"]) .sidebar-close:hover{background:#ffffff1a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: IonSplitPane, selector: "ion-split-pane", inputs: ["contentId", "disabled", "when"] }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: DocsSearchComponent, selector: "val-docs-search", inputs: ["props"], outputs: ["navigate", "search"] }, { kind: "component", type: CompanyFooterComponent, selector: "val-company-footer", inputs: ["props"] }] }); }
38224
+ }
38225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsShellComponent, decorators: [{
38226
+ type: Component,
38227
+ args: [{ selector: 'val-docs-shell', standalone: true, imports: [
38228
+ CommonModule,
38229
+ RouterModule,
38230
+ IonSplitPane,
38231
+ IonMenu,
38232
+ IonHeader,
38233
+ IonToolbar,
38234
+ IonContent,
38235
+ IonIcon,
38236
+ IonMenuButton,
38237
+ IonButtons,
38238
+ DocsSearchComponent,
38239
+ CompanyFooterComponent,
38240
+ ], template: `
38241
+ <ion-split-pane contentId="docs-content" when="lg">
38242
+ <ion-menu contentId="docs-content" type="overlay" menuId="docs-menu">
38243
+ <ion-header class="ion-no-border">
38244
+ <ion-toolbar>
38245
+ <div class="sidebar-header">
38246
+ <a [routerLink]="props.logo.route || ['/']" class="logo-link" [attr.aria-label]="props.logo.alt">
38247
+ @if (props.logo.cssVariable) {
38248
+ <span
38249
+ class="sidebar-logo sidebar-logo--css-var"
38250
+ role="img"
38251
+ [attr.aria-label]="props.logo.alt"
38252
+ [style.--logo-var]="'var(' + props.logo.cssVariable + ')'"
38253
+ [style.width]="props.logo.width || '10rem'"
38254
+ [style.height]="props.logo.height || '3rem'"
38255
+ ></span>
38256
+ } @else if (props.logo.src) {
38257
+ <img
38258
+ [src]="props.logo.src"
38259
+ [alt]="props.logo.alt"
38260
+ class="sidebar-logo sidebar-logo--img"
38261
+ [style.width]="props.logo.width || '10rem'"
38262
+ [style.height]="props.logo.height || '3rem'"
38263
+ />
38264
+ }
38265
+ </a>
38266
+ <button
38267
+ type="button"
38268
+ class="sidebar-close"
38269
+ (click)="closeMenu()"
38270
+ aria-label="Close menu"
38271
+ >
38272
+ <ion-icon name="close-outline"></ion-icon>
38273
+ </button>
38274
+ </div>
38275
+ </ion-toolbar>
38276
+ </ion-header>
38277
+
38278
+ <ion-content>
38279
+ <!-- Search -->
38280
+ @if (props.search) {
38281
+ <div class="search-wrapper">
38282
+ <val-docs-search
38283
+ [props]="searchProps()"
38284
+ (navigate)="onNavigate($event)"
38285
+ ></val-docs-search>
38286
+ </div>
38287
+ }
38288
+
38289
+ <nav class="sidebar-nav">
38290
+ @for (section of sectionsState(); track section.key) {
38291
+ <div class="nav-section">
38292
+ <button
38293
+ type="button"
38294
+ class="nav-section__header"
38295
+ (click)="toggleSection(section)"
38296
+ >
38297
+ @if (section.icon) {
38298
+ <ion-icon [name]="section.icon"></ion-icon>
38299
+ }
38300
+ <span>{{ section.title }}</span>
38301
+ <ion-icon
38302
+ [name]="section.expanded ? 'chevron-down-outline' : 'chevron-forward-outline'"
38303
+ class="nav-chevron"
38304
+ ></ion-icon>
38305
+ </button>
38306
+
38307
+ @if (section.expanded) {
38308
+ <ul class="nav-links">
38309
+ @for (link of section.children; track link.label) {
38310
+ <li>
38311
+ <a
38312
+ [routerLink]="link.route"
38313
+ routerLinkActive="active"
38314
+ (click)="closeMenu()"
38315
+ >
38316
+ {{ link.label }}
38317
+ @if (link.badge) {
38318
+ <span
38319
+ class="nav-badge"
38320
+ [class.nav-badge--success]="link.badgeColor === 'success'"
38321
+ >{{ link.badge }}</span>
38322
+ }
38323
+ </a>
38324
+ </li>
38325
+ }
38326
+ </ul>
38327
+ }
38328
+ </div>
38329
+ }
38330
+ </nav>
38331
+ </ion-content>
38332
+ </ion-menu>
38333
+
38334
+ <div class="ion-page" id="docs-content">
38335
+ <ion-header class="ion-no-border mobile-header">
38336
+ <ion-toolbar>
38337
+ <ion-buttons slot="start">
38338
+ <ion-menu-button menu="docs-menu" color="dark"></ion-menu-button>
38339
+ </ion-buttons>
38340
+ </ion-toolbar>
38341
+ </ion-header>
38342
+
38343
+ <main class="docs-main-scroll">
38344
+ <ng-content></ng-content>
38345
+ @if (props.footer) {
38346
+ <val-company-footer [props]="props.footer"></val-company-footer>
38347
+ }
38348
+ </main>
38349
+ </div>
38350
+ </ion-split-pane>
38351
+ `, styles: [":host{display:block;height:100%}ion-split-pane{height:100%;--side-width: var(--docs-sidebar-width, 260px);--side-min-width: var(--docs-sidebar-width, 260px);--side-max-width: var(--docs-sidebar-width, 260px)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}.logo-link{display:flex;align-items:center;gap:.75rem;text-decoration:none;transition:opacity .2s ease}.logo-link:hover{opacity:.8}.sidebar-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:left center}.sidebar-logo--img{display:block;object-fit:contain}.sidebar-close{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--ion-text-color, #333);transition:background .2s ease}.sidebar-close:hover{background:#0000000d}.sidebar-close ion-icon{font-size:1.5rem}@media (min-width: 992px){.sidebar-close{display:none}}.search-wrapper{padding:.75rem 1rem;border-bottom:1px solid var(--ion-border-color, #e0e0e0)}.sidebar-nav{padding:.5rem 0}.nav-section__header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666;cursor:pointer}.nav-section__header:hover{color:var(--ion-text-color)}.nav-section__header span{flex:1;text-align:left}.nav-chevron{font-size:.875rem}.nav-links{list-style:none;margin:0;padding:0}.nav-links a{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem .5rem 2.5rem;font-size:.875rem;color:#555;text-decoration:none;border-left:2px solid transparent}.nav-links a:hover{color:var(--ion-text-color);background:#00000008}.nav-links a.active{color:var(--ion-text-color);font-weight:500;background:#0000000d;border-left-color:var(--ion-color-primary)}.nav-badge{font-size:.625rem;font-weight:500;text-transform:uppercase;padding:.125rem .375rem;border-radius:4px;background:#0000000a;color:#888}.nav-badge--success{background:#e8f5e9;color:#2e7d32}.docs-main-scroll{flex:1;overflow-y:auto;background:var(--ion-background-color)}ion-menu{--width: 100%;--max-width: 100%;--background: var(--ion-background-color);border-right:1px solid var(--ion-border-color, #e0e0e0)}@media (min-width: 992px){ion-menu{--width: var(--docs-sidebar-width, 260px);--max-width: var(--docs-sidebar-width, 260px)}.mobile-header{display:none}}#docs-content{display:flex;flex-direction:column}:host-context(.dark) .nav-badge,:host-context([color-scheme=\"dark\"]) .nav-badge{background:#ffffff0f;color:#999}:host-context(.dark) .nav-badge--success,:host-context([color-scheme=\"dark\"]) .nav-badge--success{background:#2e7d3233;color:#81c784}:host-context(.dark) .sidebar-close:hover,:host-context([color-scheme=\"dark\"]) .sidebar-close:hover{background:#ffffff1a}\n"] }]
38352
+ }], propDecorators: { props: [{
38353
+ type: Input
38354
+ }], navigate: [{
38355
+ type: Output
38356
+ }] } });
38357
+
38035
38358
  /*
38036
38359
  * Public API Surface of valtech-components
38037
38360
  */
@@ -38040,5 +38363,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
38040
38363
  * Generated bundle index. Do not edit.
38041
38364
  */
38042
38365
 
38043
- export { AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AccordionComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, ArticleBuilder, ArticleComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, CheckInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContentLoaderComponent, ContentReactionComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CANCEL_BUTTON, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_EMPTY_STATE, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LEGEND_LABELS, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PAYMENT_STATUS_COLORS, DEFAULT_PAYMENT_STATUS_LABELS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_STATUS_COLORS, DEFAULT_STATUS_LABELS, DEFAULT_WINNER_LABELS, DataTableComponent, DateInputComponent, DateRangeInputComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsSidebarComponent, DocsTocComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FabComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlowCardComponent, GridSkeletonComponent, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LOGIN_DEFAULTS, LanguageSelectorComponent, LayeredCardComponent, LayoutComponent, LinkComponent, LinkProcessorService, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTION, MenuComponent, MessagingService, ModalService, MultiSelectSearchComponent, NavigationService, NoContentComponent, NotesBoxComponent, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAuthCallbackComponent, OAuthService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PLATFORM_CONFIGS, PageContentComponent, PageTemplateComponent, PageWrapperComponent, PaginationComponent, PaginationService, ParticipantCardComponent, PasswordInputComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RaffleStatusCardComponent, RangeInputComponent, RatingComponent, RecapCardComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SKELETON_PRESETS, 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, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketGridComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, VALTECH_ADS_CONFIG, VALTECH_AUTH_CONFIG, VALTECH_DEFAULT_CONTENT, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, WinnerDisplayComponent, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, buildPath, collections, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createTitleProps, extractPathParams, getCollectionPath, getDocumentId, goToTop, guestGuard, hasEmulators, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, permissionGuard, permissionGuardFromRoute, provideValtechAds, provideValtechAuth, provideValtechAuthInterceptor, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechPresets, provideValtechSkeleton, query, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard };
38366
+ export { AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AccordionComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, ArticleBuilder, ArticleComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, CheckInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContentLoaderComponent, ContentReactionComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CANCEL_BUTTON, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_EMPTY_STATE, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LEGEND_LABELS, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PAYMENT_STATUS_COLORS, DEFAULT_PAYMENT_STATUS_LABELS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_STATUS_COLORS, DEFAULT_STATUS_LABELS, DEFAULT_WINNER_LABELS, DataTableComponent, DateInputComponent, DateRangeInputComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FabComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlowCardComponent, GridSkeletonComponent, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LOGIN_DEFAULTS, LanguageSelectorComponent, LayeredCardComponent, LayoutComponent, LinkComponent, LinkProcessorService, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTION, MenuComponent, MessagingService, ModalService, MultiSelectSearchComponent, NavigationService, NoContentComponent, NotesBoxComponent, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAuthCallbackComponent, OAuthService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PLATFORM_CONFIGS, PageContentComponent, PageTemplateComponent, PageWrapperComponent, PaginationComponent, PaginationService, ParticipantCardComponent, PasswordInputComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RaffleStatusCardComponent, RangeInputComponent, RatingComponent, RecapCardComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SKELETON_PRESETS, 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, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketGridComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, VALTECH_ADS_CONFIG, VALTECH_AUTH_CONFIG, VALTECH_DEFAULT_CONTENT, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, WinnerDisplayComponent, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, buildPath, collections, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createTitleProps, extractPathParams, getCollectionPath, getDocumentId, goToTop, guestGuard, hasEmulators, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, permissionGuard, permissionGuardFromRoute, provideValtechAds, provideValtechAuth, provideValtechAuthInterceptor, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechPresets, provideValtechSkeleton, query, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard };
38044
38367
  //# sourceMappingURL=valtech-components.mjs.map