@cerca/design-system 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -357
- package/fesm2022/cerca-design-system.mjs +2604 -588
- package/fesm2022/cerca-design-system.mjs.map +1 -1
- package/package.json +4 -5
- package/types/cerca-design-system.d.ts +1250 -239
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerca-design-system.mjs","sources":["../../../design-system/src/lib/atoms/button/button.component.ts","../../../design-system/src/lib/atoms/button/button.component.html","../../../design-system/src/lib/atoms/input/input.component.ts","../../../design-system/src/lib/atoms/input/input.component.html","../../../design-system/src/lib/atoms/select/select.component.ts","../../../design-system/src/lib/atoms/select/select.component.html","../../../design-system/src/lib/atoms/badges/badge.component.ts","../../../design-system/src/lib/atoms/badges/badge.component.html","../../../design-system/src/lib/atoms/labels/label.component.ts","../../../design-system/src/lib/atoms/labels/label.component.html","../../../design-system/src/lib/atoms/icons/icon.component.ts","../../../design-system/src/lib/atoms/icons/icon.component.html","../../../design-system/src/lib/molecules/card/card.component.ts","../../../design-system/src/lib/molecules/card/card.component.html","../../../design-system/src/lib/molecules/form-field/form-field.component.ts","../../../design-system/src/lib/molecules/form-field/form-field.component.html","../../../design-system/src/lib/molecules/search-bar/search-bar.component.ts","../../../design-system/src/lib/molecules/search-bar/search-bar.component.html","../../../design-system/src/lib/organisms/header/header.component.ts","../../../design-system/src/lib/organisms/header/header.component.html","../../../design-system/src/lib/organisms/sidebar/sidebar.component.ts","../../../design-system/src/lib/organisms/sidebar/sidebar.component.html","../../../design-system/src/lib/organisms/data-table/data-table.component.ts","../../../design-system/src/lib/organisms/data-table/data-table.component.html","../../../design-system/src/lib/organisms/modal/modal.component.ts","../../../design-system/src/lib/organisms/modal/modal.component.html","../../../design-system/src/lib/organisms/login/login.component.ts","../../../design-system/src/lib/organisms/login/login.component.html","../../../design-system/src/lib/layout/container/container.component.ts","../../../design-system/src/lib/layout/container/container.component.html","../../../design-system/src/lib/layout/stack/stack.component.ts","../../../design-system/src/lib/layout/stack/stack.component.html","../../../design-system/src/lib/layout/grid/grid.component.ts","../../../design-system/src/lib/layout/grid/grid.component.html","../../../design-system/src/lib/layout/inline/inline.component.ts","../../../design-system/src/lib/templates/admin-layout/admin-layout.component.ts","../../../design-system/src/lib/templates/admin-layout/admin-layout.component.html","../../../design-system/src/lib/templates/auth-layout/auth-layout.component.ts","../../../design-system/src/lib/templates/auth-layout/auth-layout.component.html","../../../design-system/src/lib/templates/dashboard-template/dashboard-template.component.ts","../../../design-system/src/lib/templates/dashboard-template/dashboard-template.component.html","../../../design-system/src/lib/templates/list-page-template/list-page-template.component.ts","../../../design-system/src/lib/templates/list-page-template/list-page-template.component.html","../../../design-system/src/lib/templates/form-page-template/form-page-template.component.ts","../../../design-system/src/lib/templates/form-page-template/form-page-template.component.html","../../../design-system/src/lib/public-api.ts","../../../design-system/src/lib/design-system.component.ts","../../../design-system/src/public-api.ts","../../../design-system/src/cerca-design-system.ts"],"sourcesContent":["import { Component, input, computed, Input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\ntype ButtonType = 'primary' | 'default' | 'dashed' | 'text' | 'link';\r\n\r\n@Component({\r\n selector: 'cc-button',\r\n standalone: true,\r\n imports: [CommonModule, NzButtonModule, NzIconModule],\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class CcButtonComponent {\r\n variant = input<'primary' | 'secondary' | 'ghost' | 'outline'>('primary');\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n loading = input<boolean>(false);\r\n icon = input<string | undefined>(undefined);\r\n size = input<'large' | 'default' | 'small'>('default');\r\n\r\n nzType = computed<ButtonType>(() => {\r\n const variantMap: Record<string, ButtonType> = {\r\n 'primary': 'primary',\r\n 'secondary': 'default',\r\n 'ghost': 'text',\r\n 'outline': 'dashed'\r\n };\r\n return variantMap[this.variant()] || 'default';\r\n });\r\n}\r\n","<button nz-button [nzType]=\"nzType()\" [nzLoading]=\"loading()\" [nzSize]=\"size()\" [disabled]=\"disabled\" [type]=\"type()\"\r\n class=\"cerca-btn\">\r\n @if (icon(); as iconName) {\r\n <span nz-icon [nzType]=\"$any(iconName)\"></span>\r\n }\r\n <ng-content></ng-content>\r\n</button>","import { Component, input, forwardRef, signal, computed, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\n@Component({\r\n selector: 'cc-input',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NzInputModule,\r\n NzIconModule\r\n ],\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CcInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CcInputComponent implements ControlValueAccessor {\r\n type = input<string>('text');\r\n placeholder = input<string>('');\r\n label = input<string>('');\r\n error = input<boolean>(false);\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n size = input<'large' | 'default' | 'small'>('default');\r\n prefix = input<string | undefined>(undefined);\r\n suffix = input<string | undefined>(undefined);\r\n\r\n value: string = '';\r\n passwordVisible = signal<boolean>(false);\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n inputType = computed(() => {\r\n if (this.type() === 'password') {\r\n return this.passwordVisible() ? 'text' : 'password';\r\n }\r\n return this.type();\r\n });\r\n\r\n onInputChange(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n this.value = target.value;\r\n this.onChange(this.value);\r\n this.onTouched();\r\n }\r\n\r\n togglePasswordVisibility(): void {\r\n if (this.type() === 'password') {\r\n this.passwordVisible.update(visible => !visible);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n}\r\n","@if (label()) {\r\n<label class=\"input-label\">{{ label() }}</label>\r\n}\r\n\r\n<nz-input-group [class.has-error]=\"$any(error())\" [nzPrefix]=\"prefixTemplate\" [nzSuffix]=\"suffixTemplate\">\r\n <input nz-input [type]=\"inputType()\" [placeholder]=\"$any(placeholder())\" [disabled]=\"disabled\" [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\" (blur)=\"onTouched()\" [nzSize]=\"$any(size())\" />\r\n</nz-input-group>\r\n\r\n<ng-template #prefixTemplate>\r\n @if (prefix()) {\r\n <span nz-icon [nzType]=\"$any(prefix())\"></span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #suffixTemplate>\r\n @if (type() === 'password') {\r\n <span nz-icon [nzType]=\"passwordVisible() ? 'eye-invisible' : 'eye'\" (click)=\"togglePasswordVisibility()\"\r\n class=\"password-toggle\"></span>\r\n }\r\n @if (type() !== 'password' && suffix()) {\r\n <span nz-icon [nzType]=\"$any(suffix())\"></span>\r\n }\r\n</ng-template>","import { Component, input, signal, forwardRef, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\nimport { NzSelectComponent, NzOptionComponent } from 'ng-zorro-antd/select';\r\n\r\nexport interface SelectOption {\r\n label: string;\r\n value: any;\r\n}\r\n\r\n@Component({\r\n selector: 'cc-select',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, NzSelectComponent, NzOptionComponent],\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CcSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CcSelectComponent implements ControlValueAccessor {\r\n options = input<SelectOption[]>([]);\r\n placeholder = input<string>('Seleccionar opción');\r\n label = input<string>('');\r\n size = input<'large' | 'default' | 'small'>('default');\r\n allowClear = input<boolean>(true);\r\n showSearch = input<boolean>(false);\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n value: any;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n onValueChange(value: any): void {\r\n this.value = value;\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"cc-select-wrapper\">\r\n <nz-select class=\"cerca-select\" [nzSize]=\"$any(size())\" [nzPlaceHolder]=\"$any(placeholder())\"\r\n [nzDisabled]=\"disabled\" [nzAllowClear]=\"$any(allowClear())\" [nzShowSearch]=\"$any(showSearch())\"\r\n [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n <nz-option *ngFor=\"let option of options()\" [nzValue]=\"option.value\" [nzLabel]=\"option.label\">\r\n </nz-option>\r\n </nz-select>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport type BadgeVariant = 'success' | 'warning' | 'error' | 'info' | 'neutral';\r\nexport type BadgeType = 'filled' | 'subtle' | 'outline';\r\n\r\n@Component({\r\n selector: 'cc-badge',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss']\r\n})\r\nexport class CcBadgeComponent {\r\n @Input() variant: BadgeVariant = 'neutral';\r\n @Input() type: BadgeType = 'subtle';\r\n}\r\n","<span class=\"cc-badge\" [ngClass]=\"[variant, type]\">\r\n <ng-content></ng-content>\r\n</span>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-label',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class CcLabelComponent {\r\n @Input() text: string = '';\r\n @Input() for: string = '';\r\n @Input() required: boolean = false;\r\n @Input() error: boolean = false;\r\n}\r\n","<label [attr.for]=\"for\" class=\"cc-label\" [class.has-error]=\"error\">\r\n {{ text }}\r\n <span *ngIf=\"required\" class=\"required-indicator\" aria-hidden=\"true\">*</span>\r\n</label>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-icon',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.scss']\r\n})\r\nexport class CcIconComponent {\r\n @Input() name: string = '';\r\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n @Input() color: string = 'currentColor';\r\n\r\n get iconClass(): string {\r\n return `icon-${this.size}`;\r\n }\r\n}\r\n","<i class=\"cc-icon\" [ngClass]=\"iconClass\" [style.color]=\"color\" aria-hidden=\"true\">\r\n {{ name }}\r\n</i>","import { Component, input, signal, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NzCardModule } from 'ng-zorro-antd/card';\r\n\r\n@Component({\r\n selector: 'cc-card',\r\n standalone: true,\r\n imports: [CommonModule, NzCardModule],\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CcCardComponent {\r\n title = input<string>('');\r\n extra = input<string | undefined>(undefined);\r\n loading = input<boolean>(false);\r\n bordered = input<boolean>(true);\r\n padding = input<string | number>('24px');\r\n}\r\n","<nz-card [nzTitle]=\"$any(title())\" [nzExtra]=\"extra()\" [nzLoading]=\"$any(loading())\" [nzBordered]=\"$any(bordered())\">\r\n <ng-content></ng-content>\r\n</nz-card>","import { Component, Input, ContentChild, AfterContentInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcLabelComponent } from '../../atoms/labels/label.component';\r\n\r\n@Component({\r\n selector: 'cc-form-field',\r\n standalone: true,\r\n imports: [CommonModule, CcLabelComponent],\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.scss']\r\n})\r\nexport class CcFormFieldComponent {\r\n @Input() label: string = '';\r\n @Input() hint: string = '';\r\n @Input() errorMessage: string | null = null;\r\n @Input() required: boolean = false;\r\n @Input() error: boolean = false;\r\n @Input() for: string = '';\r\n\r\n get hasError(): boolean {\r\n return !!this.errorMessage;\r\n }\r\n}\r\n","<div class=\"cc-form-field\" [class.has-error]=\"hasError\">\r\n <cc-label *ngIf=\"label\" [text]=\"label\" [for]=\"for\" [required]=\"required\" [error]=\"hasError\">\r\n </cc-label>\r\n\r\n <div class=\"cc-form-field-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"cc-form-field-info\" *ngIf=\"hint || errorMessage\">\r\n <span class=\"cc-form-field-error\" *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n <span class=\"cc-form-field-hint\" *ngIf=\"hint && !errorMessage\">{{ hint }}</span>\r\n </div>\r\n</div>","import { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CcIconComponent } from '../../atoms/icons/icon.component';\r\nimport { CcInputComponent } from '../../atoms/input/input.component';\r\n\r\n@Component({\r\n selector: 'cc-search-bar',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CcIconComponent],\r\n templateUrl: './search-bar.component.html',\r\n styleUrls: ['./search-bar.component.scss']\r\n})\r\nexport class CcSearchBarComponent implements OnInit, OnDestroy {\r\n @Input() placeholder: string = 'Buscar...';\r\n @Input() debounce: number = 300;\r\n @Input() loading: boolean = false;\r\n @Input() variant: 'standalone' | 'header' = 'standalone';\r\n\r\n @Output() search = new EventEmitter<string>();\r\n\r\n searchQuery: string = '';\r\n private searchSubject = new Subject<string>();\r\n private subscription: Subscription = new Subscription();\r\n\r\n ngOnInit() {\r\n this.subscription = this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounce),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(query => {\r\n this.search.emit(query);\r\n });\r\n }\r\n\r\n onQueryChange() {\r\n this.searchSubject.next(this.searchQuery);\r\n }\r\n\r\n clear() {\r\n this.searchQuery = '';\r\n this.onQueryChange();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"cc-search-bar\" [ngClass]=\"variant\">\r\n <div class=\"cc-search-icon-wrapper\">\r\n <cc-icon name=\"search\" size=\"sm\" *ngIf=\"!loading\"></cc-icon>\r\n <div class=\"cc-search-loader\" *ngIf=\"loading\"></div>\r\n </div>\r\n\r\n <input type=\"text\" class=\"cc-search-input\" [placeholder]=\"placeholder\" [(ngModel)]=\"searchQuery\"\r\n (ngModelChange)=\"onQueryChange()\">\r\n\r\n <button class=\"cc-search-clear\" *ngIf=\"searchQuery && !loading\" (click)=\"clear()\" type=\"button\">\r\n <cc-icon name=\"close\" size=\"xs\"></cc-icon>\r\n </button>\r\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcIconComponent } from '../../atoms/icons/icon.component';\r\nimport { CcBadgeComponent } from '../../atoms/badges/badge.component';\r\nimport { CcButtonComponent } from '../../atoms/button/button.component';\r\n\r\nexport interface HeaderUser {\r\n name: string;\r\n role: string;\r\n avatarUrl?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cc-header',\r\n standalone: true,\r\n imports: [CommonModule, CcIconComponent, CcBadgeComponent],\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class CcHeaderComponent {\r\n @Input() user?: HeaderUser;\r\n @Input() notificationsCount: number = 0;\r\n @Input() showMenuButton: boolean = true;\r\n @Input() hasLogoContent: boolean = true; // Added missing property\r\n\r\n @Output() toggleSidebar = new EventEmitter<void>();\r\n @Output() userClick = new EventEmitter<void>();\r\n @Output() notificationClick = new EventEmitter<void>();\r\n @Output() userAction = new EventEmitter<string>();\r\n\r\n onUserClick() {\r\n this.userClick.emit();\r\n this.userAction.emit('profile');\r\n }\r\n\r\n get initials(): string {\r\n if (!this.user?.name) return '?';\r\n return this.user.name\r\n .split(' ')\r\n .map(n => n[0])\r\n .join('')\r\n .toUpperCase()\r\n .slice(0, 2);\r\n }\r\n}\r\n","<header class=\"cc-header\">\r\n <div class=\"cc-header-left\">\r\n <button *ngIf=\"showMenuButton\" class=\"cc-header-menu-btn\" (click)=\"toggleSidebar.emit()\" type=\"button\">\r\n <cc-icon name=\"menu\" size=\"md\"></cc-icon>\r\n </button>\r\n\r\n <div class=\"cc-header-logo\">\r\n <ng-content select=\"[logo]\"></ng-content>\r\n <span class=\"cc-header-logo-fallback\" *ngIf=\"!hasLogoContent\">\r\n CERCA\r\n </span>\r\n </div>\r\n\r\n <div class=\"cc-header-breadcrumb\">\r\n <ng-content select=\"[breadcrumb]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"cc-header-right\">\r\n <button class=\"cc-header-action-btn\" (click)=\"notificationClick.emit()\">\r\n <cc-icon name=\"notifications\" size=\"md\"></cc-icon>\r\n <cc-badge *ngIf=\"notificationsCount > 0\" variant=\"error\" type=\"filled\" class=\"cc-header-badge\">\r\n {{ notificationsCount > 99 ? '99+' : notificationsCount }}\r\n </cc-badge>\r\n </button>\r\n\r\n <div class=\"cc-header-divider\"></div>\r\n\r\n <div class=\"cc-header-user\" (click)=\"onUserClick()\" *ngIf=\"user\">\r\n <div class=\"cc-header-user-info\">\r\n <span class=\"cc-header-user-name\">{{ user.name }}</span>\r\n <span class=\"cc-header-user-role\">{{ user.role }}</span>\r\n </div>\r\n\r\n <div class=\"cc-header-avatar\">\r\n <img *ngIf=\"user.avatarUrl\" [src]=\"user.avatarUrl\" [alt]=\"user.name\">\r\n <span *ngIf=\"!user.avatarUrl\">{{ initials }}</span>\r\n </div>\r\n\r\n <cc-icon name=\"expand_more\" size=\"sm\" class=\"cc-header-user-arrow\"></cc-icon>\r\n </div>\r\n </div>\r\n</header>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { CcIconComponent } from '../../atoms/icons/icon.component';\r\n\r\nexport interface NavItem {\r\n label: string;\r\n icon: string;\r\n route: string;\r\n badge?: string | number;\r\n exact?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cc-sidebar',\r\n standalone: true,\r\n imports: [CommonModule, RouterLink, RouterLinkActive, CcIconComponent],\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class CcSidebarComponent {\r\n @Input() menuItems: NavItem[] = [];\r\n @Input() collapsed: boolean = false;\r\n @Input() activeRoute: string = '';\r\n\r\n @Output() navigate = new EventEmitter<NavItem>();\r\n @Output() toggleCollapse = new EventEmitter<void>();\r\n\r\n onItemClick(item: NavItem) {\r\n this.navigate.emit(item);\r\n }\r\n}\r\n","<aside class=\"cc-sidebar\" [class.collapsed]=\"collapsed\">\r\n <div class=\"cc-sidebar-header\">\r\n <div class=\"cc-sidebar-logo\">\r\n <ng-content select=\"[logo]\"></ng-content>\r\n </div>\r\n <button class=\"cc-sidebar-toggle\" (click)=\"toggleCollapse.emit()\" type=\"button\">\r\n <cc-icon [name]=\"collapsed ? 'chevron_right' : 'chevron_left'\" size=\"sm\"></cc-icon>\r\n </button>\r\n </div>\r\n\r\n <nav class=\"cc-sidebar-nav\">\r\n <div class=\"cc-sidebar-group\" *ngFor=\"let item of menuItems\">\r\n <a class=\"cc-sidebar-item\" [routerLink]=\"item.route\" routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"{ exact: item.exact || false }\" [title]=\"collapsed ? item.label : ''\"\r\n (click)=\"onItemClick(item)\">\r\n\r\n <cc-icon [name]=\"item.icon\" size=\"md\" class=\"cc-sidebar-item-icon\"></cc-icon>\r\n <span class=\"cc-sidebar-item-label\" *ngIf=\"!collapsed\">{{ item.label }}</span>\r\n\r\n <span class=\"cc-sidebar-item-badge\" *ngIf=\"item.badge && !collapsed\">\r\n {{ item.badge }}\r\n </span>\r\n </a>\r\n </div>\r\n </nav>\r\n\r\n <div class=\"cc-sidebar-footer\">\r\n <ng-content select=\"[footer]\"></ng-content>\r\n </div>\r\n</aside>","import { Component, Input, Output, EventEmitter, ContentChild, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport interface TableColumn {\r\n key: string;\r\n label: string;\r\n type?: 'text' | 'number' | 'date' | 'badge' | 'custom';\r\n sortable?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cc-data-table',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss']\r\n})\r\nexport class CcDataTableComponent {\r\n @Input() data: any[] = [];\r\n @Input() columns: TableColumn[] = [];\r\n @Input() loading: boolean = false;\r\n @Input() showSearch: boolean = true;\r\n @Input() searchPlaceholder: string = 'Buscar en la tabla...';\r\n\r\n @Output() rowClick = new EventEmitter<any>();\r\n @Output() search = new EventEmitter<string>();\r\n @Output() actionClick = new EventEmitter<{ action: string, row: any }>();\r\n\r\n @ContentChild('customCell') customCellTemplate?: TemplateRef<any>;\r\n @ContentChild('rowActions') rowActionsTemplate?: TemplateRef<any>; // Fixed missing ContentChild\r\n\r\n get skeletonRows() {\r\n return Array(5).fill(0);\r\n }\r\n}\r\n","<div class=\"cc-data-table-container\">\r\n <div class=\"cc-data-table-wrapper\">\r\n <table class=\"cc-data-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{ col.label }}\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let row of data\">\r\n <td *ngFor=\"let col of columns\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\">\r\n No se encontraron resultados\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>","import { Component, Input, Output, EventEmitter, HostListener, ContentChild, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcIconComponent } from '../../atoms/icons/icon.component';\r\nimport { CcButtonComponent } from '../../atoms/button/button.component';\r\n\r\n@Component({\r\n selector: 'cc-modal',\r\n standalone: true,\r\n imports: [CommonModule, CcIconComponent],\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\nexport class CcModalComponent {\r\n @Input() isOpen: boolean = false;\r\n @Input() title: string = '';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() closeOnOverlay: boolean = true;\r\n @Input() showFooter: boolean = true;\r\n\r\n @Output() close = new EventEmitter<void>();\r\n\r\n onOverlayClick(event: MouseEvent) {\r\n if (this.closeOnOverlay && (event.target as HTMLElement).classList.contains('cc-modal-overlay')) {\r\n this.close.emit();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n onEscape() {\r\n if (this.isOpen) {\r\n this.close.emit();\r\n }\r\n }\r\n}\r\n","<div class=\"cc-modal-overlay\" *ngIf=\"isOpen\" (click)=\"onOverlayClick($event)\">\r\n\r\n <div class=\"cc-modal\" [ngClass]=\"'size-' + size\" role=\"dialog\" aria-modal=\"true\">\r\n\r\n <header class=\"cc-modal-header\">\r\n <h3 class=\"cc-modal-title\">{{ title }}</h3>\r\n <button class=\"cc-modal-close\" (click)=\"close.emit()\" type=\"button\">\r\n <cc-icon name=\"close\" size=\"md\"></cc-icon>\r\n </button>\r\n </header>\r\n\r\n <div class=\"cc-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <footer class=\"cc-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[footer]\"></ng-content>\r\n </footer>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output, inject, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\r\nimport { CcInputComponent } from '../../atoms/input/input.component';\r\nimport { CcButtonComponent } from '../../atoms/button/button.component';\r\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\r\nimport { NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent } from 'ng-zorro-antd/form';\r\n\r\n@Component({\r\n selector: 'cc-login',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n CcInputComponent,\r\n CcButtonComponent,\r\n NzAlertModule,\r\n NzIconModule,\r\n NzCheckboxModule,\r\n NzFormDirective,\r\n NzFormControlComponent,\r\n NzFormLabelComponent,\r\n NzFormItemComponent\r\n ],\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class CcLoginComponent {\r\n private fb = inject(FormBuilder);\r\n\r\n @Input() title: string = 'Bienvenido';\r\n @Input() titleAccent: string | undefined;\r\n @Input() subtitle: string = 'Inicia sesión para continuar';\r\n @Input() logoUrl: string | undefined;\r\n @Input() icon: string | undefined;\r\n @Input() loading: boolean = false;\r\n @Input() errorMessage: string | null = null;\r\n @Input() supportEmail: string = 'soporte@cerca.com.co';\r\n\r\n // Optional: URL to navigate for password recovery\r\n // Optional: URL to navigate for password recovery\r\n @Input() recoverPasswordUrl: string | undefined;\r\n @Input() forgotPasswordLabel: string = '¿Olvidaste tu clave?';\r\n\r\n @Output() loginSubmit = new EventEmitter<{ email: string; password: string; remember: boolean }>();\r\n @Output() forgotPasswordClick = new EventEmitter<void>();\r\n\r\n loginForm = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n password: ['', [Validators.required]],\r\n remember: [true]\r\n });\r\n\r\n submitForm(): void {\r\n if (this.loginForm.valid) {\r\n const { email, password, remember } = this.loginForm.getRawValue();\r\n this.loginSubmit.emit({ email: email!, password: password!, remember: remember! });\r\n } else {\r\n Object.values(this.loginForm.controls).forEach(control => {\r\n if (control.invalid) {\r\n control.markAsDirty();\r\n control.updateValueAndValidity({ onlySelf: true });\r\n }\r\n });\r\n }\r\n }\r\n\r\n fieldInvalid(field: string): boolean {\r\n const control = this.loginForm.get(field);\r\n return (control && control.invalid && (control.dirty || control.touched)) || false;\r\n }\r\n\r\n onForgotPassword(): void {\r\n this.forgotPasswordClick.emit();\r\n }\r\n}\r\n","<div class=\"login-container\">\r\n <div class=\"login-card\">\r\n <div class=\"login-header\">\r\n @if (logoUrl) {\r\n <img [src]=\"logoUrl\" alt=\"Logo\" class=\"logo\" />\r\n } @else if (icon) {\r\n <div class=\"logo-box\">\r\n <span nz-icon [nzType]=\"icon\" nzTheme=\"fill\"></span>\r\n </div>\r\n }\r\n <h2 class=\"title\">\r\n {{ title }}\r\n @if (titleAccent) {\r\n <span class=\"accent\">{{ titleAccent }}</span>\r\n }\r\n </h2>\r\n <p class=\"subtitle text-uppercase\">{{ subtitle }}</p>\r\n </div>\r\n\r\n @if (errorMessage) {\r\n <nz-alert nzType=\"error\" [nzMessage]=\"errorMessage\" nzShowIcon class=\"error-alert\"></nz-alert>\r\n }\r\n\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submitForm()\" class=\"login-form\">\r\n <div class=\"form-group\">\r\n <cc-input formControlName=\"email\" placeholder=\"correo@ejemplo.com\" label=\"Correo Electrónico\"\r\n type=\"email\" prefix=\"mail\" [error]=\"fieldInvalid('email')\">\r\n </cc-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <cc-input formControlName=\"password\" placeholder=\"********\" label=\"Contraseña\" type=\"password\"\r\n prefix=\"lock\" [error]=\"fieldInvalid('password')\">\r\n </cc-input>\r\n </div>\r\n\r\n <div class=\"form-actions-row\">\r\n <label nz-checkbox formControlName=\"remember\">Recordarme</label>\r\n @if (recoverPasswordUrl) {\r\n <a [href]=\"recoverPasswordUrl\" class=\"forgot-password\">{{ forgotPasswordLabel }}</a>\r\n } @else {\r\n <a class=\"forgot-password\" (click)=\"forgotPasswordClick.emit()\">{{ forgotPasswordLabel }}</a>\r\n }\r\n </div>\r\n\r\n <cc-button [loading]=\"loading\" variant=\"primary\" type=\"submit\" class=\"submit-button\"\r\n [disabled]=\"loginForm.invalid || loading\">\r\n Iniciar Sesión\r\n </cc-button>\r\n </form>\r\n\r\n <div class=\"login-footer\">\r\n <p>¿Necesitas ayuda? Contacta a <a [href]=\"'mailto:' + supportEmail\">{{ supportEmail }}</a></p>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-container',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './container.component.html',\r\n styleUrls: ['./container.component.scss']\r\n})\r\nexport class CcContainerComponent {\r\n @Input() fluid: boolean = false;\r\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'xl';\r\n}\r\n","<div class=\"cc-container\" [class.cc-container-fluid]=\"fluid\" [ngClass]=\"'size-' + size\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, input, HostBinding, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-stack',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './stack.component.html',\r\n styleUrls: ['./stack.component.scss']\r\n})\r\nexport class CcStackComponent {\r\n gap = input<number | string>(4);\r\n align = input<'start' | 'center' | 'end' | 'stretch'>('stretch');\r\n justify = input<'start' | 'center' | 'end' | 'between'>('start');\r\n\r\n @HostBinding('style.gap')\r\n get gapStyle(): string {\r\n const g = this.gap();\r\n return typeof g === 'number' ? `var(--space-${g})` : g;\r\n }\r\n\r\n @HostBinding('style.align-items')\r\n get alignStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', stretch: 'stretch' };\r\n return map[this.align()];\r\n }\r\n\r\n @HostBinding('style.justify-content')\r\n get justifyStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', between: 'space-between' };\r\n const j = this.justify();\r\n if (j === 'between') return 'space-between';\r\n return (map as any)[j] || 'flex-start';\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Component, Input, HostBinding } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-grid',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.scss']\r\n})\r\nexport class CcGridComponent {\r\n @Input() cols: number = 1;\r\n @Input() colsMd?: number;\r\n @Input() colsLg?: number;\r\n @Input() gap: number = 4;\r\n\r\n @HostBinding('class')\r\n get classes(): string {\r\n return [\r\n `cc-grid-cols-${this.cols}`,\r\n this.colsMd ? `cc-grid-cols-md-${this.colsMd}` : '',\r\n this.colsLg ? `cc-grid-cols-lg-${this.colsLg}` : '',\r\n `cc-grid-gap-${this.gap}`\r\n ].filter(Boolean).join(' ');\r\n }\r\n}\r\n","<div class=\"cc-grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, input, HostBinding, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-inline',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: '<ng-content></ng-content>',\r\n styles: [`\r\n :host {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: var(--inline-wrap, nowrap);\r\n align-items: var(--inline-align, center);\r\n justify-content: var(--inline-justify, flex-start);\r\n gap: var(--inline-gap, var(--space-4));\r\n }\r\n `]\r\n})\r\nexport class CcInlineComponent {\r\n gap = input<number | string>(4);\r\n align = input<'start' | 'center' | 'end' | 'baseline'>('center');\r\n justify = input<'start' | 'center' | 'end' | 'between' | 'around'>('start');\r\n wrap = input<boolean>(false);\r\n\r\n @HostBinding('style.--inline-gap')\r\n get gapStyle(): string {\r\n const g = this.gap();\r\n return typeof g === 'number' ? `var(--space-${g})` : g;\r\n }\r\n\r\n @HostBinding('style.--inline-align')\r\n get alignStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', baseline: 'baseline' };\r\n return map[this.align()];\r\n }\r\n\r\n @HostBinding('style.--inline-justify')\r\n get justifyStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', between: 'space-between', around: 'space-around' };\r\n return map[this.justify()];\r\n }\r\n\r\n @HostBinding('style.--inline-wrap')\r\n get wrapStyle(): string {\r\n return this.wrap() ? 'wrap' : 'nowrap';\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcHeaderComponent, HeaderUser } from '../../organisms/header/header.component';\r\nimport { CcSidebarComponent } from '../../organisms/sidebar/sidebar.component';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cc-admin-layout',\r\n standalone: true,\r\n imports: [CommonModule, CcHeaderComponent, CcSidebarComponent, RouterOutlet],\r\n templateUrl: './admin-layout.component.html',\r\n styleUrls: ['./admin-layout.component.scss']\r\n})\r\nexport class CcAdminLayoutComponent {\r\n @Input() user?: HeaderUser;\r\n @Input() menuItems: any[] = [];\r\n @Input() notificationsCount: number = 0;\r\n\r\n isSidebarCollapsed = false;\r\n isMobileMenuOpen = false;\r\n\r\n toggleSidebar() {\r\n this.isSidebarCollapsed = !this.isSidebarCollapsed;\r\n }\r\n\r\n toggleMobileMenu() {\r\n this.isMobileMenuOpen = !this.isMobileMenuOpen;\r\n }\r\n\r\n onNavItemClick(item: any) {\r\n if (this.isMobileMenuOpen) {\r\n this.isMobileMenuOpen = false;\r\n }\r\n }\r\n\r\n onUserAction(action: string) {\r\n console.log('User action:', action);\r\n }\r\n}\r\n","<div class=\"cc-admin-layout\" [class.sidebar-collapsed]=\"isSidebarCollapsed\">\r\n\r\n <cc-sidebar class=\"cc-admin-sidebar\" [class.mobile-open]=\"isMobileMenuOpen\" [menuItems]=\"menuItems\"\r\n [collapsed]=\"isSidebarCollapsed\" (toggleCollapse)=\"toggleSidebar()\" (navigate)=\"onNavItemClick($event)\">\r\n </cc-sidebar>\r\n\r\n <div class=\"cc-admin-main\">\r\n <cc-header [user]=\"user\" [notificationsCount]=\"notificationsCount\" (toggleSidebar)=\"toggleMobileMenu()\"\r\n (userAction)=\"onUserAction($event)\">\r\n </cc-header>\r\n\r\n <main class=\"cc-admin-content\">\r\n <div class=\"cc-admin-content-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n </main>\r\n </div>\r\n\r\n <!-- Overlay para móvil -->\r\n <div class=\"cc-admin-overlay\" *ngIf=\"isMobileMenuOpen\" (click)=\"isMobileMenuOpen = false\"></div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cc-auth-layout',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './auth-layout.component.html',\r\n styleUrls: ['./auth-layout.component.scss']\r\n})\r\nexport class CcAuthLayoutComponent {\r\n @Input() backgroundType: 'gradient' | 'image' | 'simple' = 'gradient';\r\n}\r\n","<div class=\"cc-auth-layout\" [ngClass]=\"'bg-' + backgroundType\">\r\n <div class=\"cc-auth-container\">\r\n <div class=\"cc-auth-card\">\r\n <div class=\"cc-auth-logo\">\r\n <!-- Espacio para logo -->\r\n <div class=\"cc-auth-logo-placeholder\">CERCA</div>\r\n </div>\r\n\r\n <div class=\"cc-auth-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcGridComponent } from '../../layout/grid/grid.component';\r\nimport { CcStackComponent } from '../../layout/stack/stack.component';\r\n\r\n@Component({\r\n selector: 'cc-dashboard-template',\r\n standalone: true,\r\n imports: [CommonModule, CcGridComponent, CcStackComponent],\r\n templateUrl: './dashboard-template.component.html',\r\n styleUrls: ['./dashboard-template.component.scss']\r\n})\r\nexport class CcDashboardTemplateComponent {\r\n @Input() title: string = 'Escritorio';\r\n @Input() subtitle?: string;\r\n}\r\n","<div class=\"cc-dashboard-template\">\r\n <header class=\"cc-dashboard-header\">\r\n <cc-stack [gap]=\"1\">\r\n <h1 class=\"cc-dashboard-title\">{{ title }}</h1>\r\n <p class=\"cc-dashboard-subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</p>\r\n </cc-stack>\r\n <div class=\"cc-dashboard-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n <cc-grid [cols]=\"1\" [colsMd]=\"2\" [colsLg]=\"4\" [gap]=\"6\" class=\"cc-dashboard-metrics\">\r\n <ng-content select=\"[metrics]\"></ng-content>\r\n </cc-grid>\r\n\r\n <cc-grid [cols]=\"1\" [colsLg]=\"3\" [gap]=\"6\" class=\"cc-dashboard-main\">\r\n <div class=\"cc-dashboard-primary-content\">\r\n <ng-content select=\"[main-content]\"></ng-content>\r\n </div>\r\n <aside class=\"cc-dashboard-secondary-content\">\r\n <ng-content select=\"[sidebar-content]\"></ng-content>\r\n </aside>\r\n </cc-grid>\r\n</div>","import { Component, Input, ContentChild, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcStackComponent } from '../../layout/stack/stack.component';\r\nimport { CcInlineComponent } from '../../layout/inline/inline.component';\r\n\r\n@Component({\r\n selector: 'cc-list-page-template',\r\n standalone: true,\r\n imports: [CommonModule, CcStackComponent],\r\n templateUrl: './list-page-template.component.html',\r\n styleUrls: ['./list-page-template.component.scss']\r\n})\r\nexport class CcListPageTemplateComponent {\r\n @Input() title: string = '';\r\n @Input() description?: string;\r\n @Input() hasFilters: boolean = true; // Added missing property\r\n\r\n @ContentChild('filters') filtersTemplate?: TemplateRef<any>;\r\n}\r\n","<div class=\"cc-list-page\">\r\n <header class=\"cc-page-header\">\r\n <cc-stack [gap]=\"1\">\r\n <h1 class=\"cc-page-title\">{{ title }}</h1>\r\n <p class=\"cc-page-description\" *ngIf=\"description\">{{ description }}</p>\r\n </cc-stack>\r\n <div class=\"cc-page-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n <section class=\"cc-page-filters\" *ngIf=\"hasFilters\">\r\n <ng-content select=\"[filters]\"></ng-content>\r\n </section>\r\n\r\n <main class=\"cc-page-main\">\r\n <ng-content select=\"[table]\"></ng-content>\r\n </main>\r\n\r\n <footer class=\"cc-page-footer\">\r\n <ng-content select=\"[pagination]\"></ng-content>\r\n </footer>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CcStackComponent } from '../../layout/stack/stack.component';\r\n\r\n@Component({\r\n selector: 'cc-form-page-template',\r\n standalone: true,\r\n imports: [CommonModule, CcStackComponent],\r\n templateUrl: './form-page-template.component.html',\r\n styleUrls: ['./form-page-template.component.scss']\r\n})\r\nexport class CcFormPageTemplateComponent {\r\n @Input() title: string = '';\r\n @Input() backUrl?: string;\r\n @Input() loading: boolean = false;\r\n}\r\n","<div class=\"cc-form-page\">\r\n <header class=\"cc-form-page-header\">\r\n <cc-stack [gap]=\"1\">\r\n <div class=\"cc-form-page-nav\">\r\n <ng-content select=\"[back-button]\"></ng-content>\r\n </div>\r\n <h1 class=\"cc-form-page-title\">{{ title }}</h1>\r\n </cc-stack>\r\n <div class=\"cc-form-page-actions-header\">\r\n <ng-content select=\"[header-actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n <main class=\"cc-form-page-main\">\r\n <div class=\"cc-form-page-card\">\r\n <ng-content select=\"[form-content]\"></ng-content>\r\n </div>\r\n </main>\r\n\r\n <footer class=\"cc-form-page-footer\">\r\n <ng-content select=\"[form-actions]\"></ng-content>\r\n </footer>\r\n\r\n <div class=\"cc-form-page-loading-overlay\" *ngIf=\"loading\">\r\n <div class=\"cc-form-page-spinner\"></div>\r\n </div>\r\n</div>","// Atoms\r\nexport * from './atoms/button/button.component';\r\nexport * from './atoms/input/input.component';\r\nexport * from './atoms/select/select.component';\r\nexport * from './atoms/badges/badge.component';\r\nexport * from './atoms/labels/label.component';\r\nexport * from './atoms/icons/icon.component';\r\n\r\n// Molecules\r\nexport * from './molecules/card/card.component';\r\nexport * from './molecules/form-field/form-field.component';\r\nexport * from './molecules/search-bar/search-bar.component';\r\n\r\n// Organisms\r\nexport * from './organisms/header/header.component';\r\nexport * from './organisms/sidebar/sidebar.component';\r\nexport * from './organisms/data-table/data-table.component';\r\nexport * from './organisms/modal/modal.component';\r\nexport * from './organisms/login/login.component';\r\n\r\n// Layout Primitives\r\nexport * from './layout/container/container.component';\r\nexport * from './layout/stack/stack.component';\r\nexport * from './layout/grid/grid.component';\r\nexport * from './layout/inline/inline.component';\r\n\r\n// Templates\r\nexport * from './templates/admin-layout/admin-layout.component';\r\nexport * from './templates/auth-layout/auth-layout.component';\r\nexport * from './templates/dashboard-template/dashboard-template.component';\r\nexport * from './templates/list-page-template/list-page-template.component';\r\nexport * from './templates/form-page-template/form-page-template.component';\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cc-design-system',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n ¡Design System de Cerca funcionando!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class DesignSystemComponent {\r\n constructor() { }\r\n}","/*\r\n * Public API Surface of @cerca/design-system\r\n */\r\n\r\nexport * from './lib/public-api';\r\nexport * from './lib/design-system.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i3","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cerca-design-system.mjs","sources":["../../../libs/design-system/src/lib/design-system.ts","../../../libs/design-system/src/lib/core/registries/field-renderer.registry.ts","../../../libs/design-system/src/lib/core/registries/validator.registry.ts","../../../libs/design-system/src/lib/atoms/icons/icon.component.ts","../../../libs/design-system/src/lib/atoms/icons/icon.component.html","../../../libs/design-system/src/lib/organisms/modal/modal.component.ts","../../../libs/design-system/src/lib/organisms/modal/modal.component.html","../../../libs/design-system/src/lib/engines/form/form-engine.service.ts","../../../libs/design-system/src/lib/atoms/input/input.component.ts","../../../libs/design-system/src/lib/atoms/input/input.component.html","../../../libs/design-system/src/lib/atoms/select/select.component.ts","../../../libs/design-system/src/lib/atoms/select/select.component.html","../../../libs/design-system/src/lib/atoms/switch/switch.component.ts","../../../libs/design-system/src/lib/atoms/switch/switch.component.html","../../../libs/design-system/src/lib/engines/form/dynamic-field.component.ts","../../../libs/design-system/src/lib/engines/form/dynamic-layout.component.ts","../../../libs/design-system/src/lib/atoms/loading/loading.component.ts","../../../libs/design-system/src/lib/atoms/loading/loading.component.html","../../../libs/design-system/src/lib/atoms/button/button.component.ts","../../../libs/design-system/src/lib/atoms/button/button.component.html","../../../libs/design-system/src/lib/templates/form-section/form-section.component.ts","../../../libs/design-system/src/lib/engines/form/form-renderer/form-renderer.component.ts","../../../libs/design-system/src/lib/engines/form/form-engine.component.ts","../../../libs/design-system/src/lib/core/services/modal.ts","../../../libs/design-system/src/lib/engines/table/table-engine.component.ts","../../../libs/design-system/src/lib/atoms/badges/badge.component.ts","../../../libs/design-system/src/lib/atoms/badges/badge.component.html","../../../libs/design-system/src/lib/atoms/labels/label.component.ts","../../../libs/design-system/src/lib/atoms/labels/label.component.html","../../../libs/design-system/src/lib/molecules/admin-section-card/admin-section-card.component.ts","../../../libs/design-system/src/lib/molecules/admin-section-card/admin-section-card.component.html","../../../libs/design-system/src/lib/molecules/admin-section-card/admin-section-card.resources.ts","../../../libs/design-system/src/lib/molecules/card/card.component.ts","../../../libs/design-system/src/lib/molecules/card/card.component.html","../../../libs/design-system/src/lib/molecules/card/card.resources.ts","../../../libs/design-system/src/lib/molecules/modal-trigger/modal-trigger.ts","../../../libs/design-system/src/lib/molecules/modal-trigger/modal-trigger.html","../../../libs/design-system/src/lib/molecules/description-header/description-header.component.ts","../../../libs/design-system/src/lib/molecules/description-header/description-header.component.html","../../../libs/design-system/src/lib/molecules/description-header/description-header.resources.ts","../../../libs/design-system/src/lib/molecules/form-field/form-field.component.ts","../../../libs/design-system/src/lib/molecules/form-field/form-field.component.html","../../../libs/design-system/src/lib/molecules/form-field/form-field.resources.ts","../../../libs/design-system/src/lib/molecules/modal-trigger/modal-trigger.resources.ts","../../../libs/design-system/src/lib/molecules/search-bar/search-bar.component.ts","../../../libs/design-system/src/lib/molecules/search-bar/search-bar.component.html","../../../libs/design-system/src/lib/molecules/search-bar/search-bar.resources.ts","../../../libs/design-system/src/lib/molecules/stat-card/stat-card.resources.ts","../../../libs/design-system/src/lib/molecules/stat-card/stat-card.component.ts","../../../libs/design-system/src/lib/molecules/stat-card/stat-card.component.html","../../../libs/design-system/src/lib/organisms/data-table/data-table.component.ts","../../../libs/design-system/src/lib/organisms/data-table/data-table.component.html","../../../libs/design-system/src/lib/organisms/data-table/data-table.resources.ts","../../../libs/design-system/src/lib/organisms/header/header.component.ts","../../../libs/design-system/src/lib/organisms/header/header.component.html","../../../libs/design-system/src/lib/organisms/header/header.resources.ts","../../../libs/design-system/src/lib/organisms/login/login.component.ts","../../../libs/design-system/src/lib/organisms/login/login.component.html","../../../libs/design-system/src/lib/organisms/login/login.component.resources.ts","../../../libs/design-system/src/lib/organisms/modal/modal.resources.ts","../../../libs/design-system/src/lib/organisms/sidebar/sidebar.component.ts","../../../libs/design-system/src/lib/organisms/sidebar/sidebar.component.html","../../../libs/design-system/src/lib/organisms/sidebar/sidebar.resources.ts","../../../libs/design-system/src/lib/organisms/table/table.component.ts","../../../libs/design-system/src/lib/organisms/table/table.component.html","../../../libs/design-system/src/lib/organisms/table/table.resources.ts","../../../libs/design-system/src/lib/organisms/doc-viewer/doc-viewer.component.ts","../../../libs/design-system/src/lib/organisms/doc-viewer/doc-viewer.component.html","../../../libs/design-system/src/lib/organisms/doc-viewer/doc-viewer.resources.ts","../../../libs/design-system/src/lib/templates/admin-layout/admin-layout.component.ts","../../../libs/design-system/src/lib/templates/admin-layout/admin-layout.component.html","../../../libs/design-system/src/lib/templates/admin-layout/admin-layout.resources.ts","../../../libs/design-system/src/lib/templates/auth-layout/auth-layout.component.ts","../../../libs/design-system/src/lib/templates/auth-layout/auth-layout.component.html","../../../libs/design-system/src/lib/templates/auth-layout/auth-layout.resources.ts","../../../libs/design-system/src/lib/layout/grid/grid.component.ts","../../../libs/design-system/src/lib/layout/grid/grid.component.html","../../../libs/design-system/src/lib/layout/stack/stack.component.ts","../../../libs/design-system/src/lib/layout/stack/stack.component.html","../../../libs/design-system/src/lib/templates/dashboard-template/dashboard-template.component.ts","../../../libs/design-system/src/lib/templates/dashboard-template/dashboard-template.component.html","../../../libs/design-system/src/lib/templates/dashboard-template/dashboard-template.resources.ts","../../../libs/design-system/src/lib/templates/documentation-wrapper/documentation-wrapper.component.ts","../../../libs/design-system/src/lib/templates/documentation-wrapper/documentation-wrapper.resources.ts","../../../libs/design-system/src/lib/templates/form-layout/form-layout.component.ts","../../../libs/design-system/src/lib/templates/form-layout/form-layout.resources.ts","../../../libs/design-system/src/lib/templates/form-page-template/form-page-template.component.ts","../../../libs/design-system/src/lib/templates/form-page-template/form-page-template.component.html","../../../libs/design-system/src/lib/templates/form-page-template/form-page-template.resources.ts","../../../libs/design-system/src/lib/templates/form-section/form-section.resources.ts","../../../libs/design-system/src/lib/templates/list-page-template/list-page-template.component.ts","../../../libs/design-system/src/lib/templates/list-page-template/list-page-template.component.html","../../../libs/design-system/src/lib/templates/list-page-template/list-page-template.resources.ts","../../../libs/design-system/src/public-api.ts","../../../libs/design-system/src/cerca-design-system.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ad-design-system',\r\n imports: [],\r\n template: `\r\n <p>\r\n design-system works!\r\n </p>\r\n `,\r\n styles: ``,\r\n})\r\nexport class DesignSystem {\r\n\r\n}\r\n","\r\nimport { Injectable, Type } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FieldRendererRegistry {\r\n private renderers = new Map<string, Type<any>>();\r\n\r\n register(key: string, component: Type<any>): void {\r\n if (this.renderers.has(key)) {\r\n console.warn(`Renderer for key '${key}' is already registered. Overwriting.`);\r\n }\r\n this.renderers.set(key, component);\r\n }\r\n\r\n get(key: string): Type<any> | undefined {\r\n return this.renderers.get(key);\r\n }\r\n\r\n has(key: string): boolean {\r\n return this.renderers.has(key);\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { ValidatorFn, Validators } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidatorRegistry {\r\n private validators = new Map<string, (args?: any) => ValidatorFn>();\r\n\r\n constructor() {\r\n this.registerDefaults();\r\n }\r\n\r\n private registerDefaults() {\r\n this.register('required', () => Validators.required);\r\n this.register('email', () => Validators.email);\r\n this.register('min', (min: number) => Validators.min(min));\r\n this.register('max', (max: number) => Validators.max(max));\r\n this.register('minLength', (len: number) => Validators.minLength(len));\r\n this.register('maxLength', (len: number) => Validators.maxLength(len));\r\n this.register('pattern', (pattern: string | RegExp) => Validators.pattern(pattern));\r\n }\r\n\r\n register(key: string, factory: (args?: any) => ValidatorFn): void {\r\n this.validators.set(key, factory);\r\n }\r\n\r\n get(key: string, args?: any): ValidatorFn | null {\r\n const factory = this.validators.get(key);\r\n if (!factory) {\r\n console.warn(`Validator '${key}' not found.`);\r\n return null;\r\n }\r\n return factory(args);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-icon',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.scss']\r\n})\r\nexport class AdIconComponent {\r\n @Input() name: string = '';\r\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n @Input() color: string = 'currentColor';\r\n\r\n get sizeClass(): string {\r\n switch (this.size) {\r\n case 'xs': return 'w-3 h-3 text-xs';\r\n case 'sm': return 'w-4 h-4 text-base';\r\n case 'md': return 'w-5 h-5 text-xl';\r\n case 'lg': return 'w-6 h-6 text-2xl';\r\n case 'xl': return 'w-8 h-8 text-3xl';\r\n default: return 'w-5 h-5 text-xl';\r\n }\r\n }\r\n}\r\n","@if (name === 'user') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\" />\r\n</svg>\r\n} @else if (name === 'lock') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" />\r\n</svg>\r\n} @else if (name === 'eye') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\" />\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\" />\r\n</svg>\r\n} @else if (name === 'plus') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" />\r\n</svg>\r\n} @else if (name === 'download') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\" />\r\n</svg>\r\n} @else if (name === 'eye-invisible') {\r\n<svg [class]=\"sizeClass\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\" />\r\n</svg>\r\n} @else {\r\n<!-- Fallback -->\r\n<span class=\"material-icons-outlined ad-icon\" [ngClass]=\"sizeClass\">{{ name }}</span>\r\n}","import { Component, input, output, HostListener, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { ModalResource } from './modal.resources';\r\n\r\n@Component({\r\n selector: 'ad-modal',\r\n standalone: true,\r\n imports: [CommonModule, AdIconComponent],\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\nexport class AdModalComponent {\r\n resource = input.required<ModalResource>();\r\n\r\n isOpen = computed(() => this.resource().isOpen ?? false);\r\n title = computed(() => this.resource().title ?? '');\r\n accentedTitle = computed(() => this.resource().accentedTitle);\r\n size = computed(() => this.resource().size ?? 'md');\r\n closeOnOverlay = computed(() => this.resource().closeOnOverlay ?? true);\r\n showFooter = computed(() => this.resource().showFooter ?? true);\r\n\r\n close = output<void>();\r\n\r\n onOverlayClick(event: MouseEvent) {\r\n if (this.closeOnOverlay() && (event.target as HTMLElement).classList.contains('ad-modal-overlay')) {\r\n this.close.emit();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n onEscape() {\r\n if (this.isOpen()) {\r\n this.close.emit();\r\n }\r\n }\r\n}\r\n","@if (isOpen()){\r\n<div class=\"ad-modal-overlay\" (click)=\"onOverlayClick($event)\">\r\n\r\n <div class=\"ad-modal\" [ngClass]=\"'size-' + size()\" role=\"dialog\" aria-modal=\"true\">\r\n\r\n <header class=\"ad-modal-header\">\r\n <h3 class=\"ad-modal-title\">\r\n {{ title() }}\r\n @if (accentedTitle()) {\r\n <span class=\"accent-text\">{{ accentedTitle() }}</span>\r\n }\r\n </h3>\r\n <button class=\"ad-modal-close\" (click)=\"close.emit()\" type=\"button\">\r\n <ad-icon name=\"close\" size=\"md\"></ad-icon>\r\n </button>\r\n </header>\r\n\r\n <div class=\"ad-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n @if (showFooter()){\r\n <footer class=\"ad-modal-footer\">\r\n <ng-content select=\"[footer]\"></ng-content>\r\n </footer>\r\n }\r\n </div>\r\n</div>\r\n}","\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { FormSchema, FieldSchema, LayoutSchema } from '../../core/models/form-schema.model';\r\nimport { ValidatorRegistry } from '../../core/registries/validator.registry';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormEngineService {\r\n private fb = inject(FormBuilder);\r\n private validatorRegistry = inject(ValidatorRegistry); // Assuming this exists or mocking behavior\r\n\r\n createFormGroup(schema: FormSchema, model: any = {}): FormGroup {\r\n const group: any = {};\r\n\r\n // Support Legacy Sections\r\n if (schema.sections) {\r\n schema.sections.forEach(section => {\r\n this.processFields(section.fields, group, model);\r\n });\r\n }\r\n\r\n // Support New Recursive Fields\r\n if (schema.fields) {\r\n this.processRecursiveFields(schema.fields, group, model);\r\n }\r\n\r\n return this.fb.group(group);\r\n }\r\n\r\n private processFields(fields: FieldSchema[], group: any, model: any) {\r\n fields.forEach(field => {\r\n this.addFieldToGroup(field, group, model);\r\n });\r\n }\r\n\r\n private processRecursiveFields(nodes: (FieldSchema | LayoutSchema)[], group: any, model: any) {\r\n nodes.forEach(node => {\r\n if ('children' in node && node.children) {\r\n this.processRecursiveFields(node.children, group, model);\r\n } else {\r\n // It's a field\r\n this.addFieldToGroup(node as FieldSchema, group, model);\r\n }\r\n });\r\n }\r\n\r\n private addFieldToGroup(field: FieldSchema, group: any, model: any) {\r\n // Handle name/key alias\r\n const fieldName = field.name || field.key;\r\n if (!fieldName) return; // Skip if no name\r\n\r\n const validators = field.validators || [];\r\n\r\n // Handle required shortcut\r\n if (field.required || field.props?.['required']) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n const initialValue = model[fieldName] !== undefined ? model[fieldName] : (field.defaultValue !== undefined ? field.defaultValue : null);\r\n const state = { value: initialValue, disabled: field.disabled };\r\n\r\n group[fieldName] = [state, validators];\r\n }\r\n}\r\n","import { Component, input, forwardRef, signal, computed, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\nimport { AdIconComponent } from '../icons/icon.component';\r\n\r\n@Component({\r\n selector: 'ad-input',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AdIconComponent\r\n ],\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AdInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class AdInputComponent implements ControlValueAccessor {\r\n type = input<string>('text');\r\n placeholder = input<string>('');\r\n label = input<string>('');\r\n error = input<boolean>(false);\r\n rows = input<number>(3);\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n size = input<'large' | 'default' | 'small'>('small');\r\n prefix = input<string | undefined>(undefined);\r\n suffix = input<string | undefined>(undefined);\r\n\r\n value: string = '';\r\n passwordVisible = signal<boolean>(false);\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n inputType = computed(() => {\r\n if (this.type() === 'password') {\r\n return this.passwordVisible() ? 'text' : 'password';\r\n }\r\n return this.type();\r\n });\r\n\r\n onInputChange(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n this.value = target.value;\r\n this.onChange(this.value);\r\n this.onTouched();\r\n }\r\n\r\n togglePasswordVisibility(): void {\r\n if (this.type() === 'password') {\r\n this.passwordVisible.update(visible => !visible);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n}\r\n","@if (label()) {\r\n<label class=\"block text-sm font-medium leading-6 text-slate-900 mb-2\">{{ label() }}</label>\r\n}\r\n\r\n<div class=\"flex items-center w-full rounded-md border border-slate-300 bg-white px-3 py-1.5 shadow-sm transition-all focus-within:border-cerca-primary\"\r\n [class.bg-slate-50]=\"disabled\" [class.text-slate-500]=\"disabled\" [class.cursor-not-allowed]=\"disabled\"\r\n [class.border-cerca-alert]=\"error()\" [class.text-cerca-alert-text]=\"error()\"\r\n [class.focus-within:border-cerca-alert]=\"error()\">\r\n\r\n @if (prefix()) {\r\n <span class=\"mr-2 flex items-center\" [class.text-slate-500]=\"!error()\" [class.text-cerca-alert-text]=\"error()\">\r\n <ad-icon [name]=\"prefix()!\" size=\"sm\"></ad-icon>\r\n </span>\r\n }\r\n\r\n @if (type() === 'textarea') {\r\n <textarea [rows]=\"rows()\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\" [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\" (blur)=\"onTouched()\"\r\n class=\"block w-full border-0 p-0 text-slate-900 placeholder:text-slate-400 focus:ring-0 outline-none sm:text-sm sm:leading-6 bg-transparent disabled:cursor-not-allowed resize-none\"></textarea>\r\n } @else {\r\n <input [type]=\"inputType()\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\" [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\" (blur)=\"onTouched()\"\r\n class=\"block w-full border-0 p-0 text-slate-900 placeholder:text-slate-400 focus:ring-0 outline-none sm:text-sm sm:leading-6 bg-transparent disabled:cursor-not-allowed\" />\r\n }\r\n\r\n @if (type() === 'password') {\r\n <button type=\"button\" (click)=\"togglePasswordVisibility()\"\r\n class=\"ml-2 text-slate-500 hover:text-slate-700 focus:outline-none cursor-pointer\">\r\n <ad-icon [name]=\"passwordVisible() ? 'eye-invisible' : 'eye'\" size=\"sm\"></ad-icon>\r\n </button>\r\n }\r\n\r\n @if (type() !== 'password' && suffix()) {\r\n <span class=\"ml-2 text-slate-500 flex items-center\">\r\n <ad-icon [name]=\"suffix()!\" size=\"sm\"></ad-icon>\r\n </span>\r\n }\r\n</div>","import { Component, input, signal, forwardRef, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\nexport interface SelectOption {\r\n label: string;\r\n value: any;\r\n}\r\n@Component({\r\n selector: 'ad-select',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AdSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class AdSelectComponent implements ControlValueAccessor {\r\n options = input<SelectOption[]>([]);\r\n placeholder = input<string>('Seleccionar opción');\r\n label = input<string>('');\r\n size = input<'large' | 'default' | 'small'>('default');\r\n allowClear = input<boolean>(true);\r\n showSearch = input<boolean>(false);\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n value: any;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n onValueChange(value: any): void {\r\n this.value = value;\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"w-full\">\r\n @if (label()) {\r\n <label class=\"block text-sm font-medium leading-6 text-slate-900 mb-2\">{{ label() }}</label>\r\n }\r\n <div class=\"relative\">\r\n <select [disabled]=\"disabled\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\" (blur)=\"onTouched()\"\r\n class=\"block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-slate-900 shadow-sm ring-1 ring-inset ring-slate-300 focus:ring-2 focus:ring-inset focus:ring-sky-600 sm:text-sm sm:leading-6 bg-white disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed\">\r\n @if (placeholder()) {\r\n <option [ngValue]=\"null\" disabled selected>{{ placeholder() }}</option>\r\n }\r\n @if (allowClear()) {\r\n <option [ngValue]=\"null\">-- Seleccionar --</option>\r\n }\r\n @for (option of options(); track option.value) {\r\n <option [ngValue]=\"option.value\">{{ option.label }}</option>\r\n }\r\n </select>\r\n </div>\r\n</div>","import { Component, input, signal, forwardRef, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\nexport interface SwitchOption {\r\n label: string;\r\n value: boolean;\r\n}\r\n@Component({\r\n selector: 'ad-switch',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AdSwitchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class AdSwitchComponent implements ControlValueAccessor {\r\n options = input<SwitchOption[]>([\r\n { label: 'Inactivo', value: false },\r\n { label: 'Activo', value: true }\r\n ]);\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n value: boolean = false;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n /**\r\n * Get the current label based on the switch value\r\n */\r\n get currentLabel(): string {\r\n const option = this.options().find(opt => opt.value === this.value);\r\n return option?.label || '';\r\n }\r\n\r\n toggle(): void {\r\n if (this.disabled) return;\r\n this.onValueChange(!this.value);\r\n }\r\n\r\n onValueChange(value: boolean): void {\r\n this.value = value;\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this.value = value ?? false;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n}\r\n","<div class=\"ad-switch-container\">\r\n <div class=\"flex items-center gap-3\">\r\n <button type=\"button\"\r\n class=\"relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-sky-600 focus:ring-offset-2\"\r\n [class.bg-sky-600]=\"value\" [class.bg-slate-200]=\"!value\" [class.opacity-50]=\"disabled\"\r\n [class.cursor-not-allowed]=\"disabled\" (click)=\"toggle()\" [attr.aria-checked]=\"value\" role=\"switch\">\r\n\r\n <span class=\"sr-only\">{{ currentLabel }}</span>\r\n\r\n <span aria-hidden=\"true\"\r\n class=\"pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out\"\r\n [class.translate-x-5]=\"value\" [class.translate-x-0]=\"!value\">\r\n </span>\r\n </button>\r\n\r\n @if (currentLabel) {\r\n <span class=\"text-sm font-medium text-slate-700 dark:text-slate-200\" [class.opacity-50]=\"disabled\">{{\r\n currentLabel }}</span>\r\n }\r\n </div>\r\n</div>","import { Component, input, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldSchema } from '../../core/models/form-schema.model';\r\nimport { FieldRendererRegistry } from '../../core/registries/field-renderer.registry';\r\nimport { AdInputComponent } from '../../atoms/input/input.component';\r\nimport { AdSelectComponent } from '../../atoms/select/select.component';\r\nimport { AdSwitchComponent } from '../../atoms/switch/switch.component';\r\n\r\n@Component({\r\n selector: 'ad-dynamic-field',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, AdInputComponent, AdSelectComponent, AdSwitchComponent],\r\n template: `\r\n <div class=\"mb-4\" [formGroup]=\"form()\">\r\n <!-- Label -->\r\n @if (renderType !== 'checkbox' && renderType !== 'switch' && field().label) {\r\n <label [for]=\"controlName\" class=\"block text-sm font-medium leading-6 text-slate-900 dark:text-slate-200 mb-2\">\r\n {{ field().label }}\r\n @if (isRequired) { <span class=\"text-cerca-rose\">*</span> }\r\n </label>\r\n }\r\n\r\n <!-- Control -->\r\n <div class=\"relative\">\r\n @switch (renderType) {\r\n @case ('input') {\r\n <ad-input\r\n [formControlName]=\"controlName\"\r\n [placeholder]=\"placeholder\"\r\n [type]=\"field().props?.['type'] || 'text'\"\r\n [prefix]=\"field().props?.['prefix']\"\r\n [suffix]=\"field().props?.['suffix']\"\r\n [disabled]=\"field().disabled || false\">\r\n </ad-input>\r\n }\r\n @case ('text-input') {\r\n <ad-input\r\n [formControlName]=\"controlName\"\r\n [placeholder]=\"placeholder\"\r\n type=\"text\"\r\n [prefix]=\"field().props?.['prefix']\"\r\n [suffix]=\"field().props?.['suffix']\"\r\n [disabled]=\"field().disabled || false\">\r\n </ad-input>\r\n }\r\n @case ('number-input') {\r\n <ad-input\r\n [formControlName]=\"controlName\"\r\n [placeholder]=\"placeholder\"\r\n type=\"number\"\r\n [prefix]=\"field().props?.['prefix']\"\r\n [suffix]=\"field().props?.['suffix']\"\r\n [disabled]=\"field().disabled || false\">\r\n </ad-input>\r\n }\r\n @case ('textarea') {\r\n <ad-input\r\n [formControlName]=\"controlName\"\r\n type=\"textarea\"\r\n [placeholder]=\"placeholder\"\r\n [rows]=\"rows\"\r\n [disabled]=\"field().disabled || false\">\r\n </ad-input>\r\n }\r\n @case ('select') {\r\n <ad-select\r\n [formControlName]=\"controlName\"\r\n [options]=\"field().options || []\"\r\n [placeholder]=\"placeholder\">\r\n </ad-select>\r\n }\r\n @case ('select-input') {\r\n <ad-select\r\n [formControlName]=\"controlName\"\r\n [options]=\"field().options || []\"\r\n [placeholder]=\"placeholder\">\r\n </ad-select>\r\n }\r\n @case ('switch') {\r\n <ad-switch\r\n [formControlName]=\"controlName\"\r\n [options]=\"getSwitchOptions()\">\r\n </ad-switch>\r\n }\r\n @case ('custom') {\r\n @if (getRenderer(controlName); as component) {\r\n <ng-container *ngComponentOutlet=\"component\"></ng-container>\r\n } @else {\r\n <p class=\"text-sm text-red-500\">No renderer found for {{ controlName }}</p>\r\n }\r\n }\r\n @default {\r\n <p class=\"text-sm text-red-500\">Unsupported field type: {{ renderType }}</p>\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Errors -->\r\n @if (hasError()) {\r\n <p class=\"mt-2 text-sm text-cerca-rose\">\r\n @if (getError('required')) { Campo requerido }\r\n @if (getError('email')) { Email inválido }\r\n @if (getError('min')) { Valor mínimo no alcanzado }\r\n </p>\r\n }\r\n </div>\r\n `\r\n})\r\nexport class DynamicFieldComponent {\r\n field = input.required<FieldSchema>();\r\n form = input.required<FormGroup>();\r\n\r\n registry = inject(FieldRendererRegistry);\r\n\r\n get controlName(): string {\r\n return this.field().name || this.field().key || '';\r\n }\r\n\r\n get renderType(): string {\r\n return this.field().rendererKey || this.field().type || 'input';\r\n }\r\n\r\n get placeholder(): string {\r\n return this.field().placeholder || this.field().nzConfig?.nzProps?.placeholder || '';\r\n }\r\n\r\n get isRequired(): boolean {\r\n return this.field().required || !!this.field().validators?.some(v => v.name === 'required');\r\n }\r\n\r\n get rows(): number {\r\n return this.field().props?.['rows'] || this.field().nzConfig?.nzProps?.rows || 3;\r\n }\r\n\r\n getRenderer(key: string) {\r\n return this.registry.get(key);\r\n }\r\n\r\n getSwitchOptions() {\r\n const f = this.field();\r\n const checked = f.props?.['checkedChildren'] || 'Activo';\r\n const unchecked = f.props?.['unCheckedChildren'] || 'Inactivo';\r\n return [{ label: unchecked, value: false }, { label: checked, value: true }];\r\n }\r\n\r\n hasError() {\r\n const control = this.form().get(this.controlName);\r\n return control?.invalid && (control?.dirty || control?.touched);\r\n }\r\n\r\n getError(code: string) {\r\n const control = this.form().get(this.controlName);\r\n return control?.errors?.[code];\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldSchema } from '../../core/models/form-schema.model';\r\nimport { DynamicFieldComponent } from './dynamic-field.component';\r\n\r\n@Component({\r\n selector: 'ad-dynamic-layout',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n DynamicFieldComponent\r\n ],\r\n template: `\r\n <div [class]=\"field().gridClass || 'col-span-12'\">\r\n <ad-dynamic-field [field]=\"field()\" [form]=\"form()\"></ad-dynamic-field>\r\n </div>\r\n `\r\n})\r\nexport class DynamicLayoutComponent {\r\n field = input.required<FieldSchema>();\r\n form = input.required<FormGroup>();\r\n}\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-loading',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './loading.component.html'\r\n})\r\nexport class AdLoadingComponent {\r\n size = input<'sm' | 'md' | 'lg'>('md');\r\n color = input<string>('text-sky-600');\r\n\r\n computedClasses = computed(() => {\r\n let sizeClass = 'h-5 w-5';\r\n switch (this.size()) {\r\n case 'sm': sizeClass = 'h-4 w-4'; break;\r\n case 'lg': sizeClass = 'h-8 w-8'; break;\r\n }\r\n return `animate-spin ${sizeClass} ${this.color()}`;\r\n });\r\n}\r\n","<svg [class]=\"computedClasses()\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\r\n </path>\r\n</svg>","import { Component, input, computed, Input, signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdIconComponent } from '../icons/icon.component';\r\nimport { AdLoadingComponent } from '../loading/loading.component';\r\n\r\ntype ButtonType = 'primary' | 'default' | 'dashed' | 'text' | 'link';\r\n\r\n@Component({\r\n selector: 'ad-button',\r\n standalone: true,\r\n imports: [CommonModule, AdIconComponent, AdLoadingComponent],\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class AdButtonComponent {\r\n variant = input<'primary' | 'secondary' | 'ghost' | 'outline' | 'danger'>('primary');\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n\r\n _disabled = signal<boolean>(false);\r\n @Input() set disabled(value: boolean) { this._disabled.set(value); }\r\n get disabled() { return this._disabled(); }\r\n\r\n loading = input<boolean>(false);\r\n icon = input<string | undefined>(undefined);\r\n size = input<'large' | 'default' | 'small'>('default');\r\n block = input<boolean>(false);\r\n\r\n computedClasses = computed(() => {\r\n const baseClasses = 'ad-btn inline-flex items-center justify-center gap-2 rounded-lg font-medium transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed';\r\n const displayClass = this.block() ? 'w-full flex' : 'inline-flex';\r\n\r\n const sizeClasses = {\r\n 'small': 'px-3 py-1.5 text-xs',\r\n 'default': 'px-4 py-2 text-sm',\r\n 'large': 'px-6 py-3 text-base'\r\n };\r\n\r\n const variantClasses = {\r\n 'primary': 'bg-cerca-primary text-white hover:bg-cerca-primary-hover active:bg-cerca-primary-active focus-visible:ring-cerca-primary shadow-sm',\r\n 'secondary': 'bg-white text-cerca-secondary border border-slate-300 hover:bg-slate-50 focus-visible:ring-slate-500 shadow-sm',\r\n 'ghost': 'text-cerca-secondary hover:bg-slate-100 focus-visible:ring-slate-500',\r\n 'outline': 'border-2 border-cerca-primary text-cerca-primary hover:bg-cerca-primary-light focus-visible:ring-cerca-primary',\r\n 'danger': 'bg-cerca-alert text-white hover:bg-red-600 focus-visible:ring-cerca-alert shadow-sm'\r\n };\r\n\r\n return `${baseClasses.replace('inline-flex', '')} ${displayClass} ${sizeClasses[this.size()]} ${variantClasses[this.variant()] || variantClasses['primary']}`;\r\n });\r\n}\r\n","<button [class]=\"computedClasses()\" [disabled]=\"disabled\" [type]=\"type()\">\r\n @if (loading()) {\r\n <ad-loading size=\"sm\" color=\"text-current\"></ad-loading>\r\n }\r\n @if (icon() && !loading()) {\r\n <ad-icon [name]=\"icon()!\" [size]=\"size() === 'small' ? 'sm' : size() === 'large' ? 'lg' : 'md'\"></ad-icon>\r\n }\r\n <ng-content></ng-content>\r\n</button>","import { Component, input, ViewEncapsulation, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormSectionResource } from './form-section.resources';\r\n\r\n@Component({\r\n selector: 'ad-form-section',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: `\r\n <div class=\"bg-white rounded-lg shadow-sm border border-stone-200 dark:border-cerca-primary dark:bg-cerca-navy h-full flex flex-col transition-colors duration-300\">\r\n \r\n @if (title()) {\r\n <div class=\"px-6 py-4 border-b border-stone-100 dark:border-cerca-primary-hover\">\r\n <h3 class=\"text-lg font-semibold text-stone-800 dark:text-white\">{{ title() }}</h3>\r\n </div>\r\n }\r\n\r\n <div class=\"p-6 flex-1 space-y-4\">\r\n @if (loading()) {\r\n <div class=\"animate-pulse space-y-4\">\r\n <div class=\"h-4 bg-stone-200 dark:bg-stone-700 rounded w-3/4\"></div>\r\n <div class=\"h-10 bg-stone-100 dark:bg-stone-800 rounded\"></div>\r\n <div class=\"h-4 bg-stone-200 dark:bg-stone-700 rounded w-1/2\"></div>\r\n <div class=\"h-24 bg-stone-100 dark:bg-stone-800 rounded\"></div>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n '[class]': 'hostClasses()'\r\n }\r\n})\r\nexport class AdFormSectionComponent {\r\n resource = input.required<FormSectionResource>();\r\n title = computed(() => this.resource().title);\r\n cols = computed(() => this.resource().cols ?? 12);\r\n loading = computed(() => this.resource().loading ?? false);\r\n\r\n // Map for safe Tailwind class detection\r\n readonly colSpanMap: Record<number, string> = {\r\n 1: 'md:col-span-1',\r\n 2: 'md:col-span-2',\r\n 3: 'md:col-span-3',\r\n 4: 'md:col-span-4',\r\n 5: 'md:col-span-5',\r\n 6: 'md:col-span-6',\r\n 7: 'md:col-span-7',\r\n 8: 'md:col-span-8',\r\n 9: 'md:col-span-9',\r\n 10: 'md:col-span-10',\r\n 11: 'md:col-span-11',\r\n 12: 'md:col-span-12'\r\n };\r\n\r\n hostClasses = computed(() => {\r\n const colClass = this.colSpanMap[this.cols()] || 'md:col-span-12';\r\n return `block ${colClass}`;\r\n });\r\n}\r\n","import { Component, input, inject, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldSchema, LayoutSchema } from '../../../core/models/form-schema.model';\r\nimport { DynamicLayoutComponent } from '../dynamic-layout.component';\r\nimport { AdFormSectionComponent } from '../../../templates/form-section/form-section.component';\r\n\r\n@Component({\r\n selector: 'ad-form-renderer',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n DynamicLayoutComponent, // Renders individual fields (leaf nodes)\r\n AdFormSectionComponent, // Renders 'card'\r\n forwardRef(() => AdFormRendererComponent)\r\n ],\r\n template: `\r\n @for (node of nodes(); track $any(node).key || $any(node).name || $index) {\r\n \r\n @if (isLayout(node)) {\r\n <!-- Recursive Layout Rendering -->\r\n @switch (node.layoutType) {\r\n \r\n @case ('row') {\r\n <div class=\"grid grid-cols-1 md:grid-cols-12 gap-6 items-start w-full md:col-span-12\">\r\n <ad-form-renderer [nodes]=\"node.children || []\" [form]=\"form()\"></ad-form-renderer>\r\n </div>\r\n }\r\n\r\n @case ('col') {\r\n <!-- 'col' wraps content in a div with grid classes. -->\r\n <div [class]=\"getGridClass(node.layoutProps)\">\r\n <ad-form-renderer [nodes]=\"node.children || []\" [form]=\"form()\"></ad-form-renderer>\r\n </div>\r\n }\r\n\r\n @case ('card') {\r\n <!-- For card, we might want to also use the grid class on the wrapper? \r\n AdFormSection uses 'cols' input to generate wrapper class.\r\n We should probably update AdFormSection to accept full class string or improve mapping.\r\n But AdFormSection just uses cols Input -> md:col-span-X.\r\n Let's keep legacy behavior for card if simple span, or enhance AdFormSection later.\r\n Actually, card usually sits inside a 'col'. If card is direct child of row, it needs width.\r\n Usage in schema: \r\n row -> children: [ { layoutType: 'col', children: [ { layoutType: 'card' } ] } ]\r\n So card is inside col (which has width). Card itself usually takes full width of parent.\r\n Wait, AdFormSection has [cols] input. Default 12.\r\n If card is inside a col (which is e.g. span 8), then card should be span 12 (100% of parent).\r\n The schema in demo has card INSIDE col.\r\n So card shouldn't need sizing props if it's 100%.\r\n But if card is direct child of row?\r\n Safest is to let card be 12 (100% of container). \r\n If User put card directly in row, they might expect it to size.\r\n But let's assume standard pattern: Row -> Col -> Card.\r\n -->\r\n <ad-form-section [resource]=\"{ title: node.layoutProps?.title, cols: 12 }\">\r\n <ad-form-renderer [nodes]=\"node.children || []\" [form]=\"form()\"></ad-form-renderer>\r\n </ad-form-section>\r\n }\r\n \r\n @case ('stack') {\r\n <div class=\"flex flex-col\" [style.gap.px]=\"node.layoutProps?.gap || 0\">\r\n <ad-form-renderer [nodes]=\"node.children || []\" [form]=\"form()\"></ad-form-renderer>\r\n </div>\r\n }\r\n\r\n @default {\r\n <!-- Fallback for unknown layout: render children directly -->\r\n <!-- Explicitly cast to unknown then LayoutSchema to access children safely in default block -->\r\n <ad-form-renderer [nodes]=\"asLayout(node).children || []\" [form]=\"form()\"></ad-form-renderer>\r\n }\r\n }\r\n } @else {\r\n <!-- Leaf Node: Field -->\r\n <!-- Fields use getGridClass to support layoutProps: { span: X } directly on the field -->\r\n <div [class]=\"getGridClass(node.layoutProps)\">\r\n <ad-dynamic-layout [field]=\"asField(node)\" [form]=\"form()\"></ad-dynamic-layout>\r\n </div>\r\n }\r\n }\r\n `,\r\n host: {\r\n style: 'display: contents'\r\n }\r\n})\r\nexport class AdFormRendererComponent {\r\n // Maps for safe Tailwind class detection (JIT compatible)\r\n readonly mdColSpanMap: Record<number, string> = {\r\n 1: 'md:col-span-1',\r\n 2: 'md:col-span-2',\r\n 3: 'md:col-span-3',\r\n 4: 'md:col-span-4',\r\n 5: 'md:col-span-5',\r\n 6: 'md:col-span-6',\r\n 7: 'md:col-span-7',\r\n 8: 'md:col-span-8',\r\n 9: 'md:col-span-9',\r\n 10: 'md:col-span-10',\r\n 11: 'md:col-span-11',\r\n 12: 'md:col-span-12'\r\n };\r\n\r\n readonly lgColSpanMap: Record<number, string> = {\r\n 1: 'lg:col-span-1',\r\n 2: 'lg:col-span-2',\r\n 3: 'lg:col-span-3',\r\n 4: 'lg:col-span-4',\r\n 5: 'lg:col-span-5',\r\n 6: 'lg:col-span-6',\r\n 7: 'lg:col-span-7',\r\n 8: 'lg:col-span-8',\r\n 9: 'lg:col-span-9',\r\n 10: 'lg:col-span-10',\r\n 11: 'lg:col-span-11',\r\n 12: 'lg:col-span-12'\r\n };\r\n\r\n readonly xlColSpanMap: Record<number, string> = {\r\n 1: 'xl:col-span-1',\r\n 2: 'xl:col-span-2',\r\n 3: 'xl:col-span-3',\r\n 4: 'xl:col-span-4',\r\n 5: 'xl:col-span-5',\r\n 6: 'xl:col-span-6',\r\n 7: 'xl:col-span-7',\r\n 8: 'xl:col-span-8',\r\n 9: 'xl:col-span-9',\r\n 10: 'xl:col-span-10',\r\n 11: 'xl:col-span-11',\r\n 12: 'xl:col-span-12'\r\n };\r\n\r\n getGridClass(props: any): string {\r\n const classes: string[] = [];\r\n\r\n // Base Span (Mobile/Default) mapped to MD because our grid starts at MD\r\n if (props?.span) {\r\n classes.push(this.mdColSpanMap[props.span] || 'md:col-span-12');\r\n } else {\r\n classes.push('md:col-span-12'); // Default full width\r\n }\r\n\r\n // LG Override\r\n if (props?.lg) {\r\n classes.push(this.lgColSpanMap[props.lg]);\r\n }\r\n\r\n // XL Override\r\n if (props?.xl) {\r\n classes.push(this.xlColSpanMap[props.xl]);\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n nodes = input.required<(FieldSchema | LayoutSchema)[]>();\r\n form = input.required<FormGroup>();\r\n\r\n isLayout(node: FieldSchema | LayoutSchema): node is LayoutSchema {\r\n return 'layoutType' in node && !!(node as any).children;\r\n }\r\n\r\n asField(node: FieldSchema | LayoutSchema): FieldSchema {\r\n return node as FieldSchema;\r\n }\r\n\r\n asLayout(node: FieldSchema | LayoutSchema): LayoutSchema {\r\n return node as LayoutSchema;\r\n }\r\n\r\n trackByFn(index: number, item: any) {\r\n return item.key || item.name || index;\r\n }\r\n}\r\n","import { Component, input, output, inject, OnInit, effect, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { FormSchema, FieldSchema, SectionSchema } from '../../core/models/form-schema.model';\r\nimport { FormEngineService } from './form-engine.service';\r\nimport { DynamicLayoutComponent } from './dynamic-layout.component';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { AdFormRendererComponent } from './form-renderer/form-renderer.component';\r\n\r\n@Component({\r\n selector: 'ad-form-engine',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, DynamicLayoutComponent, AdButtonComponent, AdFormRendererComponent],\r\n template: `\r\n @if (form()) {\r\n <form [formGroup]=\"form()\" class=\"space-y-6\" (ngSubmit)=\"submit()\">\r\n \r\n <!-- NEW: Recursive Schema Rendering -->\r\n @if (schema().fields) {\r\n <div class=\"grid grid-cols-1 md:grid-cols-12 gap-6 w-full\">\r\n <ad-form-renderer [nodes]=\"schema().fields!\" [form]=\"form()\"></ad-form-renderer>\r\n </div>\r\n }\r\n\r\n <!-- LEGACY: Sections Rendering (Fallback) -->\r\n @if (!schema().fields && schema().sections) {\r\n @for (section of schema().sections; track $index) {\r\n <div [class]=\"section.gridClass || 'grid grid-cols-12 gap-6'\">\r\n @if (section.title) {\r\n <div class=\"col-span-12\">\r\n <h3 class=\"text-lg font-medium leading-6 text-slate-900\">{{ section.title }}</h3>\r\n @if (section.description) {\r\n <p class=\"mt-1 text-sm text-slate-500\">{{ section.description }}</p>\r\n }\r\n </div>\r\n }\r\n \r\n @for (field of section.fields; track field.key) {\r\n <ad-dynamic-layout [field]=\"field\" [form]=\"form()\"></ad-dynamic-layout>\r\n }\r\n </div>\r\n }\r\n }\r\n\r\n <!-- Actions -->\r\n <div class=\"flex justify-end gap-x-4\">\r\n @if (showCancel()) {\r\n <ad-button variant=\"secondary\" type=\"button\" (click)=\"onCancel()\">{{ schema().cancelLabel || 'Cancelar' }}</ad-button>\r\n }\r\n @if (showSubmit()) {\r\n <ad-button variant=\"primary\" type=\"submit\">{{ schema().submitLabel || 'Guardar' }}</ad-button>\r\n }\r\n </div>\r\n </form>\r\n }\r\n `\r\n})\r\nexport class FormEngineComponent implements OnInit {\r\n // Inputs (Signals)\r\n schema = input.required<FormSchema>();\r\n model = input<any>({});\r\n showCancel = input<boolean>(false);\r\n showSubmit = input<boolean>(true);\r\n\r\n // Outputs\r\n formSubmit = output<any>();\r\n formCancel = output<void>();\r\n\r\n // Dependencies\r\n private engineService = inject(FormEngineService);\r\n\r\n // State\r\n form = computed(() => {\r\n const schema = this.schema();\r\n const model = this.model();\r\n // Note: model availability in computed might be tricky if model updates later.\r\n // But createFormGroup usually runs once. \r\n // Better: create form once, then patch.\r\n if (!schema) return new FormGroup({});\r\n return this.engineService.createFormGroup(schema, model);\r\n });\r\n\r\n constructor() {\r\n // Effect to patch value when model changes AFTER form creation\r\n effect(() => {\r\n const currentModel = this.model();\r\n const currentForm = this.form();\r\n if (currentForm && currentModel && Object.keys(currentModel).length > 0) {\r\n currentForm.patchValue(currentModel);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n submit() {\r\n const f = this.form();\r\n if (f.valid) {\r\n this.formSubmit.emit(f.value);\r\n } else {\r\n Object.values(f.controls).forEach(control => {\r\n if (control.invalid) {\r\n control.markAsDirty();\r\n control.updateValueAndValidity({ onlySelf: true });\r\n }\r\n });\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.formCancel.emit();\r\n }\r\n}\r\n","import {\r\n Injectable,\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EnvironmentInjector,\r\n Component,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { ScreenResource } from '../models/screen-resource.model';\r\nimport { AdModalComponent } from '../../organisms/modal/modal.component';\r\nimport { FormEngineComponent } from '../../engines/form/form-engine.component';\r\n\r\n@Component({\r\n selector: 'ad-modal-wrapper',\r\n standalone: true,\r\n imports: [CommonModule, AdModalComponent, FormEngineComponent],\r\n template: `\r\n <ad-modal \r\n [resource]=\"modalResource()\"\r\n (close)=\"onClose()\">\r\n \r\n @if (resource.type === 'form' && resource.formConfig) {\r\n <ad-form-engine \r\n [schema]=\"resource.formConfig\" \r\n [model]=\"data\"\r\n [showCancel]=\"true\"\r\n (formSubmit)=\"onSubmit($event)\"\r\n (formCancel)=\"onClose()\">\r\n </ad-form-engine>\r\n } @else {\r\n <div class=\"p-6 text-center text-slate-500\">\r\n Renderer para el tipo \"{{ resource.type }}\" no implementado en el modal.\r\n </div>\r\n }\r\n </ad-modal>\r\n `\r\n})\r\nexport class AdModalWrapperComponent {\r\n resource!: ScreenResource;\r\n data: any = {};\r\n\r\n isOpen = signal(true);\r\n\r\n modalResource = computed(() => ({\r\n isOpen: this.isOpen(),\r\n title: this.resource?.title,\r\n size: 'md' as const,\r\n showFooter: false\r\n }));\r\n private resultSubject = new Subject<any>();\r\n result$ = this.resultSubject.asObservable();\r\n\r\n onClose() {\r\n this.isOpen.set(false);\r\n this.resultSubject.next(null);\r\n this.resultSubject.complete();\r\n }\r\n\r\n onSubmit(result: any) {\r\n this.isOpen.set(false);\r\n this.resultSubject.next(result);\r\n this.resultSubject.complete();\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdModalService {\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private injector: EnvironmentInjector\r\n ) { }\r\n\r\n open(resource: ScreenResource, data?: any): Observable<any> {\r\n const componentRef: ComponentRef<AdModalWrapperComponent> = createComponent(AdModalWrapperComponent, {\r\n environmentInjector: this.injector\r\n });\r\n\r\n // Set inputs\r\n componentRef.instance.resource = resource;\r\n if (data) componentRef.instance.data = data;\r\n\r\n // Attach to ApplicationRef so change detection works\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n // Append to DOM\r\n const domElement = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElement);\r\n\r\n // Cleanup on complete\r\n componentRef.instance.result$.subscribe({\r\n complete: () => {\r\n // Small delay to allow Angular modal to animate its close state\r\n setTimeout(() => {\r\n this.appRef.detachView(componentRef.hostView);\r\n componentRef.destroy();\r\n }, 300);\r\n }\r\n });\r\n\r\n return componentRef.instance.result$;\r\n }\r\n}\r\n","import { Component, input, output, computed, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableSchema, TableColumn, TableAction } from '../../core/models/table-schema.model';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\n\r\n@Component({\r\n selector: 'ad-table-engine',\r\n standalone: true,\r\n imports: [CommonModule, AdButtonComponent, AdIconComponent],\r\n template: `\r\n <div class=\"flow-root\">\r\n <div class=\"-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8\">\r\n <div class=\"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8\">\r\n <div class=\"relative\">\r\n @if (loading()) {\r\n <div class=\"absolute inset-0 bg-white/50 z-10 flex items-center justify-center\">\r\n <svg class=\"animate-spin h-8 w-8 text-sky-600\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n \r\n <table class=\"min-w-full divide-y divide-slate-300\">\r\n <thead>\r\n <tr>\r\n <!-- Checkbox Column if selectable (Future) -->\r\n \r\n @for (column of displayColumns(); track column.key) {\r\n <th scope=\"col\" \r\n class=\"py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-slate-900 sm:pl-0\"\r\n [style.width]=\"column.width || 'auto'\">\r\n {{ column.label }}\r\n </th>\r\n }\r\n @if (hasActions()) {\r\n <th scope=\"col\" class=\"relative py-3.5 pl-3 pr-4 sm:pr-0\">\r\n <span class=\"sr-only\">Acciones</span>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody class=\"divide-y divide-slate-200 bg-white\">\r\n @for (item of data(); track item) {\r\n <tr>\r\n @for (column of displayColumns(); track column.key) {\r\n <td class=\"whitespace-nowrap py-4 pl-4 pr-3 text-sm text-slate-500 sm:pl-0\">\r\n <!-- Simple rendering for now. Registry support can be added here -->\r\n {{ item[column.key] }}\r\n </td>\r\n }\r\n @if (hasActions()) {\r\n <td class=\"whitespace-nowrap py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-0\">\r\n <div class=\"flex justify-end gap-2\">\r\n @for (act of getActions(); track act.action) {\r\n <ad-button \r\n [variant]=\"mapVariant(act.color)\" \r\n size=\"small\"\r\n (click)=\"onActionClick(act.action, item)\">\r\n @if (act.icon) {\r\n <ad-icon [name]=\"act.icon\" class=\"mr-1\"></ad-icon>\r\n }\r\n {{ act.label }}\r\n </ad-button>\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n @if (data().length === 0 && !loading()) {\r\n <tr>\r\n <td [attr.colspan]=\"displayColumns().length + (hasActions() ? 1 : 0)\" class=\"py-8 text-center text-sm text-slate-500\">\r\n No hay datos disponibles\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Pagination -->\r\n <div class=\"flex items-center justify-between border-t border-slate-200 bg-white px-4 py-3 sm:px-6 mt-4\">\r\n <!-- Simplified Pagination for brevity, can be expanded -->\r\n <div class=\"flex flex-1 justify-between sm:hidden\">\r\n <ad-button variant=\"secondary\" [disabled]=\"pageIndex() === 1\" (click)=\"onPageChange(pageIndex() - 1)\">Anterior</ad-button>\r\n <ad-button variant=\"secondary\" [disabled]=\"pageIndex() * pageSize() >= total()\" (click)=\"onPageChange(pageIndex() + 1)\">Siguiente</ad-button>\r\n </div>\r\n <div class=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\r\n <div>\r\n <p class=\"text-sm text-slate-700\">\r\n Mostrando <span class=\"font-medium\">{{ (pageIndex() - 1) * pageSize() + 1 }}</span> a <span class=\"font-medium\">{{ Math.min(pageIndex() * pageSize(), total()) }}</span> de <span class=\"font-medium\">{{ total() }}</span> resultados\r\n </p>\r\n </div>\r\n <div>\r\n <nav class=\"isolate inline-flex -space-x-px rounded-md shadow-sm\" aria-label=\"Pagination\">\r\n <ad-button variant=\"secondary\" class=\"rounded-l-md\" [disabled]=\"pageIndex() === 1\" (click)=\"onPageChange(pageIndex() - 1)\">Ant</ad-button>\r\n <ad-button variant=\"secondary\" class=\"rounded-r-md\" [disabled]=\"pageIndex() * pageSize() >= total()\" (click)=\"onPageChange(pageIndex() + 1)\">Sig</ad-button>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n})\r\nexport class TableEngineComponent {\r\n // Signals\r\n schema = input.required<TableSchema>(); // Optional if using columns directly, but Schema approach implies passing the whole schema object usually.\r\n // Actually, keeping flexible to support both direct cols or schema.\r\n // Let's support independent inputs for now to match old API but strict typed.\r\n\r\n // Re-defining inputs to match Core Schema\r\n columns = input<TableColumn[]>([]);\r\n data = input<any[]>([]);\r\n loading = input<boolean>(false);\r\n total = input<number>(0);\r\n pageSize = input<number>(10);\r\n pageIndex = input<number>(1);\r\n actions = input<TableAction[]>([]); // Parameterized actions\r\n\r\n queryParamsChange = output<any>();\r\n action = output<{ action: string, data: any }>();\r\n\r\n protected Math = Math;\r\n\r\n displayColumns = computed(() => {\r\n // Filter visible if property exists, or default true\r\n // CoreTableColumn doesn't have is_v displayColumns = computed(() => {\r\n // Use schema columns if available, otherwise fallback to columns input\r\n return this.schema().columns || this.columns();\r\n });\r\n\r\n hasActions = computed(() => {\r\n const schemaActions = this.schema().actions || [];\r\n const inputActions = this.actions();\r\n return schemaActions.length > 0 || inputActions.length > 0;\r\n });\r\n\r\n // Helper to get combined actions\r\n getActions = computed(() => {\r\n const schemaActions = this.schema().actions || [];\r\n const inputActions = this.actions();\r\n return [...schemaActions, ...inputActions];\r\n });\r\n\r\n mapVariant(color?: string): 'primary' | 'secondary' | 'ghost' | 'danger' {\r\n if (color === 'primary') return 'primary';\r\n if (color === 'secondary') return 'secondary';\r\n if (color === 'danger') return 'danger';\r\n return 'ghost';\r\n }\r\n\r\n onPageChange(newPageIndex: number) {\r\n if (newPageIndex < 1 || (newPageIndex - 1) * this.pageSize() >= this.total()) return;\r\n\r\n this.queryParamsChange.emit({\r\n pageIndex: newPageIndex,\r\n pageSize: this.pageSize(),\r\n sort: [],\r\n filter: []\r\n });\r\n }\r\n\r\n onActionClick(action: string, data: any) {\r\n this.action.emit({ action, data });\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport type BadgeVariant = 'success' | 'warning' | 'error' | 'info' | 'neutral';\r\nexport type BadgeType = 'filled' | 'subtle' | 'outline';\r\n\r\n@Component({\r\n selector: 'ad-badge',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss']\r\n})\r\nexport class AdBadgeComponent {\r\n @Input() variant: BadgeVariant = 'neutral';\r\n @Input() type: BadgeType = 'subtle';\r\n}\r\n","<span class=\"ad-badge\" [ngClass]=\"[variant, type]\">\r\n <ng-content></ng-content>\r\n</span>","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-label',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class AdLabelComponent {\r\n @Input() text: string = '';\r\n @Input() for: string = '';\r\n @Input() required: boolean = false;\r\n @Input() error: boolean = false;\r\n}\r\n","<label [attr.for]=\"for\" class=\"ad-label\" [class.has-error]=\"error\">\r\n {{ text }}\r\n <span *ngIf=\"required\" class=\"required-indicator\" aria-hidden=\"true\">*</span>\r\n</label>","import { Component, ChangeDetectionStrategy, input, output, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { AdminSectionCardResource } from './admin-section-card.resources';\r\n\r\n@Component({\r\n selector: 'ad-admin-section-card',\r\n standalone: true,\r\n imports: [CommonModule, AdButtonComponent],\r\n templateUrl: './admin-section-card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdminSectionCardComponent {\r\n // Input Resource\r\n resource = input.required<AdminSectionCardResource>();\r\n\r\n title = computed(() => this.resource().title);\r\n accentedTitle = computed(() => this.resource().accentedTitle);\r\n cardAction = computed(() => this.resource().action);\r\n loading = computed(() => this.resource().loading ?? false);\r\n\r\n // Outputs\r\n action = output<void>();\r\n\r\n onAction() {\r\n if (!this.loading()) {\r\n this.action.emit();\r\n // Also call the callback if it exists\r\n this.cardAction()?.['onClick']?.();\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"bg-white dark:bg-cerca-primary-active rounded-xl shadow-sm border border-slate-200 dark:border-cerca-primary hover:shadow-md transition-shadow duration-300 overflow-hidden\">\r\n <!-- Header -->\r\n <div\r\n class=\"px-6 py-4 border-b border-slate-100 dark:border-cerca-primary flex justify-between items-center bg-slate-50/50 dark:bg-cerca-primary/50\">\r\n <!-- Title Section -->\r\n <div class=\"flex items-center gap-2\">\r\n <h2 class=\"text-lg font-medium text-cerca-secondary dark:text-slate-300\">\r\n {{ title() }} <span class=\"accent-text font-bold\">{{ accentedTitle() }}</span>\r\n </h2>\r\n </div>\r\n\r\n <!-- Actions -->\r\n @if (cardAction()?.label) {\r\n <ad-button (click)=\"onAction()\" [disabled]=\"loading()\" [loading]=\"loading()\" [icon]=\"cardAction()?.icon\">\r\n {{ cardAction()?.label }}\r\n </ad-button>\r\n }\r\n </div>\r\n\r\n <!-- Content Slot -->\r\n <div class=\"p-6 bg-slate-50 dark:bg-cerca-primary/20 text-cerca-secondary dark:text-slate-300\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const AdminSectionCardActionSchema = z.object({\r\n label: z.string(),\r\n icon: z.string().optional(),\r\n onClick: z.custom<() => void>().optional(),\r\n});\r\n\r\nexport const AdminSectionCardResourceSchema = z.object({\r\n title: z.string(),\r\n accentedTitle: z.string(),\r\n action: AdminSectionCardActionSchema.optional(),\r\n loading: z.boolean().default(false).optional(),\r\n});\r\n\r\nexport type AdminSectionCardAction = z.infer<typeof AdminSectionCardActionSchema>;\r\nexport type AdminSectionCardResource = z.infer<typeof AdminSectionCardResourceSchema>;\r\n","import { Component, input, output, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { AdLoadingComponent } from '../../atoms/loading/loading.component';\r\nimport { CardResource } from './card.resources';\r\n\r\n@Component({\r\n selector: 'ad-card',\r\n standalone: true,\r\n imports: [CommonModule, AdButtonComponent, AdLoadingComponent],\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class AdCardComponent {\r\n resource = input.required<CardResource>();\r\n\r\n title = computed(() => this.resource().title);\r\n accentedTitle = computed(() => this.resource().accentedTitle);\r\n actionLabel = computed(() => this.resource().actionLabel);\r\n actionIcon = computed(() => this.resource().actionIcon || 'plus');\r\n loading = computed(() => this.resource().loading || false);\r\n bordered = computed(() => this.resource().bordered ?? true);\r\n\r\n // Convert padding to string if it's a number (e.g., 24 -> '24px')\r\n paddingStyle = computed(() => {\r\n const p = this.resource().padding;\r\n if (typeof p === 'number') return `${p}px`;\r\n return p || '24px';\r\n });\r\n\r\n action = output<void>();\r\n}\r\n","<div class=\"bg-white overflow-hidden rounded-lg transition-all duration-200\" [class.shadow-md]=\"bordered()\"\r\n [class.border]=\"bordered()\" [class.border-slate-200]=\"bordered()\" [class.shadow-none]=\"!bordered()\">\r\n\r\n @if (title() || actionLabel()) {\r\n <div class=\"px-4 py-3 sm:px-6 relative flex justify-between items-center min-h-[48px]\">\r\n <!-- Title -->\r\n <h3 class=\"text-lg font-bold text-slate-900 flex items-center\">\r\n {{ title() }}\r\n @if (accentedTitle()) {\r\n <span class=\"accent-text\">\r\n {{ accentedTitle() }}\r\n </span>\r\n }\r\n </h3>\r\n\r\n <!-- Action -->\r\n @if (actionLabel()) {\r\n <ad-button variant=\"primary\" [icon]=\"actionIcon()\" (click)=\"action.emit()\">\r\n {{ actionLabel() }}\r\n </ad-button>\r\n }\r\n\r\n <!-- Gradient bottom border for header -->\r\n <div class=\"absolute bottom-0 left-0 w-full h-[1px] bg-gradient-to-r from-sky-600 to-sky-400\"></div>\r\n </div>\r\n }\r\n\r\n <div class=\"px-4 py-5 sm:p-6\" [class.opacity-50]=\"loading()\">\r\n @if (loading()) {\r\n <div class=\"flex justify-center py-10\">\r\n <ad-loading size=\"lg\"></ad-loading>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const CardResourceSchema = z.object({\r\n title: z.string(),\r\n accentedTitle: z.string().optional(),\r\n actionLabel: z.string().optional(),\r\n actionIcon: z.string().default('plus').optional(),\r\n loading: z.boolean().default(false).optional(),\r\n bordered: z.boolean().default(true).optional(),\r\n padding: z.union([z.string(), z.number()]).default('24px').optional(),\r\n});\r\n\r\nexport type CardResource = z.infer<typeof CardResourceSchema>;\r\n","import { Component, ChangeDetectionStrategy, input, output, inject, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScreenResource } from '../../core/models/screen-resource.model';\r\nimport { AdModalService } from '../../core/services/modal';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { ModalTriggerResource } from './modal-trigger.resources';\r\n\r\n@Component({\r\n selector: 'ad-modal-trigger',\r\n standalone: true,\r\n imports: [CommonModule, AdButtonComponent],\r\n templateUrl: './modal-trigger.html',\r\n styleUrl: './modal-trigger.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdModalTriggerComponent {\r\n // Inputs (Signals) based on US-DEV-007\r\n resource = input.required<ModalTriggerResource>();\r\n\r\n screenResource = computed(() => this.resource().resource);\r\n data = computed(() => this.resource().data);\r\n triggerLabel = computed(() => this.resource().triggerLabel);\r\n triggerIcon = computed(() => this.resource().triggerIcon);\r\n loading = computed(() => this.resource().loading || false);\r\n variant = computed(() => this.resource().variant || 'primary');\r\n disabled = computed(() => this.resource().disabled || false);\r\n\r\n // Outputs\r\n confirm = output<any>();\r\n cancel = output<void>();\r\n\r\n private modalService = inject(AdModalService);\r\n\r\n openModal() {\r\n this.modalService.open(this.screenResource(), this.data()).subscribe(result => {\r\n if (result) {\r\n this.confirm.emit(result);\r\n } else {\r\n this.cancel.emit();\r\n }\r\n });\r\n }\r\n}\r\n","<!-- Botón Disparador -->\r\n<ad-button (click)=\"openModal()\" [variant]=\"variant()\" [disabled]=\"disabled()\" [loading]=\"loading()\"\r\n [icon]=\"triggerIcon()\" [size]=\"'default'\">\r\n {{ triggerLabel() }}\r\n</ad-button>","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\nimport { DescriptionHeaderResource, DescriptionHeaderButton } from './description-header.resources';\r\nimport { AdModalTriggerComponent } from '../modal-trigger/modal-trigger';\r\nimport { ModalTriggerResource } from '../modal-trigger/modal-trigger.resources';\r\n/**\r\n * Componente Molecular Description Header\r\n * \r\n * Molécula que compone múltiples átomos (títulos, botones, iconos) para\r\n * crear un header descriptivo reutilizable con títulos acentuados,\r\n * subtítulos y botones de acción dinámicos.\r\n * \r\n * @example\r\n * ```html\r\n * <ad-description-header [resource]=\"headerResource\"></ad-description-header>\r\n * ```\r\n */\r\n@Component({\r\n selector: 'ad-description-header',\r\n standalone: true,\r\n imports: [CommonModule, AdButtonComponent, AdModalTriggerComponent],\r\n templateUrl: './description-header.component.html',\r\n styleUrls: ['./description-header.component.scss']\r\n})\r\nexport class AdDescriptionHeaderComponent {\r\n /** Recurso de configuración del header */\r\n resource = input.required<DescriptionHeaderResource>();\r\n\r\n title = computed(() => this.resource().title);\r\n accentedTitle = computed(() => this.resource().accentedTitle);\r\n subtitle = computed(() => this.resource().subtitle);\r\n buttons = computed(() => this.resource().buttons);\r\n showDivider = computed(() => this.resource().showDivider);\r\n\r\n getModalTriggerResource(button: DescriptionHeaderButton): ModalTriggerResource {\r\n return {\r\n resource: button.modalResource,\r\n data: button.modalData,\r\n triggerLabel: button.label,\r\n triggerIcon: button.icon,\r\n variant: button.variant,\r\n disabled: button.disabled\r\n };\r\n }\r\n\r\n /**\r\n * Maneja el clic en un botón\r\n * @param onClick Callback del botón\r\n */\r\n handleButtonClick(onClick: (() => void) | undefined): void {\r\n if (onClick) {\r\n onClick();\r\n }\r\n }\r\n\r\n /**\r\n * Maneja la confirmación de un modal\r\n * @param onConfirm Callback de confirmación\r\n * @param result Resultado del modal\r\n */\r\n handleModalConfirm(onConfirm: ((result: any) => void) | undefined, result: any): void {\r\n if (onConfirm) {\r\n onConfirm(result);\r\n }\r\n }\r\n\r\n /**\r\n * Maneja la cancelación de un modal\r\n * @param onCancel Callback de cancelación\r\n */\r\n handleModalCancel(onCancel: (() => void) | undefined): void {\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n }\r\n}\r\n","<div class=\"premium-header-card\">\r\n <div class=\"header-main\">\r\n <div class=\"title-group\">\r\n <h1 class=\"premium-title\">\r\n {{ title() }}\r\n @if (accentedTitle()) {\r\n <span class=\"accent-text\">\r\n {{ accentedTitle() }}\r\n </span>\r\n }\r\n </h1>\r\n @if (subtitle()) {\r\n <p class=\"premium-subtitle\">\r\n {{ subtitle() }}\r\n </p>\r\n }\r\n </div>\r\n @if (buttons() && buttons()!.length > 0) {\r\n <div class=\"header-actions\">\r\n @for (button of buttons(); track $index) {\r\n @if (button.isModalTrigger && button.modalResource) {\r\n <ad-modal-trigger [resource]=\"getModalTriggerResource(button)\"\r\n (confirm)=\"handleModalConfirm(button.onModalConfirm, $event)\"\r\n (cancel)=\"handleModalCancel(button.onModalCancel)\">\r\n </ad-modal-trigger>\r\n } @else {\r\n <ad-button [variant]=\"button.variant || 'primary'\" [type]=\"button.type || 'button'\"\r\n [disabled]=\"button.disabled || false\" (click)=\"handleButtonClick(button.onClick)\" [icon]=\"button.icon\">\r\n {{ button.label }}\r\n </ad-button>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- Divider is no longer needed with the card style -->\r\n@if (showDivider() && false) {\r\n<div class=\"ad-description-header__divider\"></div>\r\n}","import { z } from 'zod';\r\nimport { ScreenResource } from '../../core/models/screen-resource.model';\r\n\r\nexport const DescriptionHeaderButtonSchema = z.object({\r\n label: z.string(),\r\n variant: z.enum(['primary', 'secondary', 'ghost', 'outline', 'danger']).optional(),\r\n type: z.enum(['button', 'submit', 'reset']).optional(),\r\n icon: z.string().optional(),\r\n onClick: z.custom<() => void>().optional(),\r\n disabled: z.boolean().optional(),\r\n isModalTrigger: z.boolean().optional(),\r\n modalResource: z.custom<ScreenResource>().optional(),\r\n modalData: z.any().optional(),\r\n onModalConfirm: z.custom<(result: any) => void>().optional(),\r\n onModalCancel: z.custom<() => void>().optional(),\r\n});\r\n\r\nexport const DescriptionHeaderResourceSchema = z.object({\r\n title: z.string(),\r\n accentedTitle: z.string().optional(),\r\n subtitle: z.string().optional(),\r\n buttons: z.array(DescriptionHeaderButtonSchema).optional(),\r\n showDivider: z.boolean().optional(),\r\n});\r\n\r\nexport type DescriptionHeaderButton = z.infer<typeof DescriptionHeaderButtonSchema>;\r\nexport type DescriptionHeaderResource = z.infer<typeof DescriptionHeaderResourceSchema>;\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdLabelComponent } from '../../atoms/labels/label.component';\r\nimport { FormFieldResource } from './form-field.resources';\r\n\r\n@Component({\r\n selector: 'ad-form-field',\r\n standalone: true,\r\n imports: [CommonModule, AdLabelComponent],\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.scss']\r\n})\r\nexport class AdFormFieldComponent {\r\n resource = input.required<FormFieldResource>();\r\n\r\n label = computed(() => this.resource().label || '');\r\n hint = computed(() => this.resource().hint || '');\r\n errorMessage = computed(() => this.resource().errorMessage || null);\r\n required = computed(() => this.resource().required || false);\r\n error = computed(() => this.resource().error || false);\r\n forAttr = computed(() => this.resource().for || '');\r\n\r\n hasError = computed(() => !!this.errorMessage());\r\n}\r\n","<div class=\"ad-form-field\" [class.has-error]=\"hasError()\">\r\n @if (label()) {\r\n <ad-label [text]=\"label()\" [for]=\"forAttr()\" [required]=\"required()\" [error]=\"hasError()\">\r\n </ad-label>\r\n }\r\n\r\n <div class=\"ad-form-field-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (hint() || errorMessage()) {\r\n <div class=\"ad-form-field-info\">\r\n @if (errorMessage()) {\r\n <span class=\"ad-form-field-error\">{{ errorMessage() }}</span>\r\n }\r\n @if (hint() && !errorMessage()) {\r\n <span class=\"ad-form-field-hint\">{{ hint() }}</span>\r\n }\r\n </div>\r\n }\r\n</div>","import { z } from 'zod';\r\n\r\nexport const FormFieldResourceSchema = z.object({\r\n label: z.string().optional(),\r\n hint: z.string().optional(),\r\n errorMessage: z.string().nullable().optional(),\r\n required: z.boolean().default(false).optional(),\r\n error: z.boolean().default(false).optional(),\r\n for: z.string().optional()\r\n});\r\n\r\nexport type FormFieldResource = z.infer<typeof FormFieldResourceSchema>;\r\n","import { z } from 'zod';\r\n\r\nexport const ModalTriggerResourceSchema = z.object({\r\n resource: z.any(), // Assuming ScreenResource for now\r\n data: z.any().optional(),\r\n triggerLabel: z.string(),\r\n triggerIcon: z.string().optional(),\r\n loading: z.boolean().default(false).optional(),\r\n variant: z.enum(['primary', 'secondary', 'ghost', 'outline', 'danger']).default('primary').optional(),\r\n disabled: z.boolean().default(false).optional()\r\n});\r\n\r\nexport type ModalTriggerResource = z.infer<typeof ModalTriggerResourceSchema>;\r\n","import { Component, input, output, OnInit, OnDestroy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\nimport { SearchBarResource } from './search-bar.resources';\r\nimport { computed } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ad-search-bar',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, AdIconComponent],\r\n templateUrl: './search-bar.component.html',\r\n styleUrls: ['./search-bar.component.scss']\r\n})\r\nexport class AdSearchBarComponent implements OnInit, OnDestroy {\r\n resource = input.required<SearchBarResource>();\r\n\r\n placeholder = computed(() => this.resource().placeholder || 'Buscar...');\r\n debounce = computed(() => this.resource().debounce ?? 300);\r\n loading = computed(() => this.resource().loading || false);\r\n variant = computed(() => this.resource().variant || 'standalone');\r\n\r\n search = output<string>();\r\n\r\n searchQuery: string = '';\r\n private searchSubject = new Subject<string>();\r\n private subscription: Subscription = new Subscription();\r\n\r\n ngOnInit() {\r\n this.subscription = this.searchSubject\r\n .pipe(\r\n debounceTime(this.debounce()),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(query => {\r\n this.search.emit(query);\r\n });\r\n }\r\n\r\n onQueryChange() {\r\n this.searchSubject.next(this.searchQuery);\r\n }\r\n\r\n clear() {\r\n this.searchQuery = '';\r\n this.onQueryChange();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"ad-search-bar\" [ngClass]=\"variant()\">\r\n <div class=\"ad-search-icon-wrapper\">\r\n @if (!loading()) {\r\n <ad-icon name=\"search\" size=\"sm\"></ad-icon>\r\n }\r\n @if (loading()) {\r\n <div class=\"ad-search-loader\"></div>\r\n }\r\n </div>\r\n\r\n <input type=\"text\" class=\"ad-search-input\" [placeholder]=\"placeholder()\" [(ngModel)]=\"searchQuery\"\r\n (ngModelChange)=\"onQueryChange()\">\r\n\r\n @if (searchQuery && !loading()) {\r\n <button class=\"ad-search-clear\" (click)=\"clear()\" type=\"button\">\r\n <ad-icon name=\"close\" size=\"xs\"></ad-icon>\r\n </button>\r\n }\r\n</div>","import { z } from 'zod';\r\n\r\nexport const SearchBarResourceSchema = z.object({\r\n placeholder: z.string().default('Buscar...').optional(),\r\n debounce: z.number().default(300).optional(),\r\n loading: z.boolean().default(false).optional(),\r\n variant: z.enum(['standalone', 'header']).default('standalone').optional(),\r\n});\r\n\r\nexport type SearchBarResource = z.infer<typeof SearchBarResourceSchema>;\r\n","import { z } from 'zod';\r\n\r\nexport const StatCardColorSchema = z.enum(['blue', 'green', 'red', 'yellow', 'purple', 'orange']);\r\n\r\nexport const StatCardResourceSchema = z.object({\r\n title: z.string(),\r\n value: z.union([z.string(), z.number()]),\r\n icon: z.string().optional(),\r\n color: StatCardColorSchema.optional(),\r\n loading: z.boolean().default(false).optional(),\r\n});\r\n\r\nexport type StatCardColor = z.infer<typeof StatCardColorSchema>;\r\nexport type StatCardResource = z.infer<typeof StatCardResourceSchema>;\r\n\r\nexport const STAT_CARD_COLOR_MAP: Record<StatCardColor, { bg: string; label: string }> = {\r\n blue: { bg: 'bg-blue-50', label: 'text-blue-500' },\r\n green: { bg: 'bg-green-50', label: 'text-green-500' },\r\n red: { bg: 'bg-red-50', label: 'text-red-500' },\r\n yellow: { bg: 'bg-yellow-50', label: 'text-yellow-600' },\r\n purple: { bg: 'bg-purple-50', label: 'text-purple-500' },\r\n orange: { bg: 'bg-orange-50', label: 'text-orange-500' },\r\n};\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\nimport { STAT_CARD_COLOR_MAP, StatCardResource } from './stat-card.resources';\r\n\r\n@Component({\r\n selector: 'ad-stat-card',\r\n standalone: true,\r\n imports: [NgClass, AdIconComponent],\r\n templateUrl: './stat-card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdStatCardComponent {\r\n resource = input.required<StatCardResource>();\r\n\r\n title = computed(() => this.resource().title);\r\n value = computed(() => this.resource().value);\r\n icon = computed(() => this.resource().icon);\r\n\r\n readonly colorClass = computed(() => {\r\n const color = this.resource().color ?? 'blue';\r\n return STAT_CARD_COLOR_MAP[color].bg;\r\n });\r\n\r\n readonly labelColorClass = computed(() => {\r\n const color = this.resource().color ?? 'blue';\r\n return STAT_CARD_COLOR_MAP[color].label;\r\n });\r\n\r\n readonly isLoading = computed(() => this.resource().loading ?? false);\r\n}\r\n","<div class=\"bg-white rounded-2xl shadow-sm border border-slate-100 p-4 min-w-[160px]\">\r\n <div class=\"rounded-xl p-4 flex flex-col gap-3\" [ngClass]=\"colorClass()\">\r\n\r\n <!-- Título -->\r\n <span class=\"text-[11px] font-semibold tracking-widest uppercase\" [ngClass]=\"labelColorClass()\">\r\n {{ title() }}\r\n </span>\r\n\r\n <!-- Icono + Valor (alineados a la derecha) -->\r\n @if (isLoading()) {\r\n <div class=\"h-9 w-20 rounded-lg animate-pulse opacity-30\" [ngClass]=\"labelColorClass()\"></div>\r\n } @else {\r\n <div class=\"flex items-center justify-between gap-2\">\r\n @if (icon()) {\r\n <ad-icon [name]=\"icon()!\" size=\"md\" [ngClass]=\"labelColorClass()\"></ad-icon>\r\n }\r\n <span class=\"text-3xl font-bold text-slate-800 leading-none ml-auto\">\r\n {{ value() }}\r\n </span>\r\n </div>\r\n }\r\n\r\n </div>\r\n</div>","import { Component, input, output, ContentChild, TemplateRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DataTableResource } from './data-table.resources';\r\nimport { computed } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ad-data-table',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss']\r\n})\r\nexport class AdDataTableComponent {\r\n resource = input.required<DataTableResource>();\r\n\r\n data = computed(() => this.resource().data || []);\r\n columns = computed(() => this.resource().columns || []);\r\n loading = computed(() => this.resource().loading || false);\r\n showSearch = computed(() => this.resource().showSearch ?? true);\r\n searchPlaceholder = computed(() => this.resource().searchPlaceholder || 'Buscar en la tabla...');\r\n\r\n rowClick = output<any>();\r\n search = output<string>();\r\n actionClick = output<{ action: string, row: any }>();\r\n\r\n @ContentChild('customCell') customCellTemplate?: TemplateRef<any>;\r\n @ContentChild('rowActions') rowActionsTemplate?: TemplateRef<any>; // Fixed missing ContentChild\r\n\r\n get skeletonRows() {\r\n return Array(5).fill(0);\r\n }\r\n}\r\n","<div class=\"ad-data-table-container\">\r\n <div class=\"ad-data-table-wrapper\">\r\n <table class=\"ad-data-table\">\r\n <thead>\r\n <tr>\r\n @for (col of columns(); track col.key) {\r\n <th>\r\n {{ col.label }}\r\n </th>\r\n }\r\n </thead>\r\n\r\n <tbody>\r\n @for (row of data(); track $index) {\r\n <tr>\r\n @for (col of columns(); track col.key) {\r\n <td>\r\n {{ row[col.key] }}\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"columns().length\">\r\n No se encontraron resultados\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const DataTableColumnSchema = z.object({\r\n key: z.string(),\r\n label: z.string(),\r\n type: z.enum(['text', 'number', 'date', 'badge', 'custom']).optional(),\r\n sortable: z.boolean().optional(),\r\n});\r\n\r\nexport type DataTableColumn = z.infer<typeof DataTableColumnSchema>;\r\n\r\nexport const DataTableResourceSchema = z.object({\r\n data: z.array(z.any()).default([]),\r\n columns: z.array(DataTableColumnSchema).default([]),\r\n loading: z.boolean().default(false).optional(),\r\n showSearch: z.boolean().default(true).optional(),\r\n searchPlaceholder: z.string().default('Buscar en la tabla...').optional(),\r\n});\r\n\r\nexport type DataTableResource = z.infer<typeof DataTableResourceSchema>;\r\n","import { Component, input, output, signal, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HeaderResource } from './header.resources';\r\n\r\n@Component({\r\n selector: 'ad-header',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './header.component.html',\r\n})\r\nexport class AdHeaderComponent {\r\n // Inputs\r\n resource = input.required<HeaderResource>();\r\n\r\n user = computed(() => this.resource().user);\r\n notificationsCount = computed(() => this.resource().notificationsCount ?? 0);\r\n\r\n // Outputs\r\n toggleSidebar = output<void>();\r\n toggleMobileMenu = output<void>();\r\n logout = output<void>();\r\n navigateProfile = output<void>();\r\n toggleTheme = output<boolean>();\r\n\r\n // State\r\n isUserMenuOpen = signal(false);\r\n isDarkMode = signal(false);\r\n\r\n onToggleSidebar() {\r\n this.toggleSidebar.emit();\r\n }\r\n\r\n onToggleMobileMenu() {\r\n this.toggleMobileMenu.emit();\r\n }\r\n\r\n toggleUserMenu() {\r\n this.isUserMenuOpen.update(v => !v);\r\n }\r\n\r\n closeUserMenu() {\r\n this.isUserMenuOpen.set(false);\r\n }\r\n\r\n onLogoutClick() {\r\n this.logout.emit();\r\n this.closeUserMenu();\r\n }\r\n\r\n onProfileClick() {\r\n this.navigateProfile.emit();\r\n this.closeUserMenu();\r\n }\r\n\r\n onToggleThemeClick() {\r\n this.isDarkMode.update(v => !v);\r\n const isDark = this.isDarkMode();\r\n\r\n if (isDark) {\r\n document.documentElement.classList.add('dark');\r\n } else {\r\n document.documentElement.classList.remove('dark');\r\n }\r\n\r\n this.toggleTheme.emit(isDark);\r\n this.closeUserMenu();\r\n }\r\n}\r\n","<header class=\"sticky top-0 z-20 flex items-center justify-between px-6 h-16 \r\n bg-white/80 backdrop-blur-xl border-b border-white/20\r\n shadow-[0_4px_30px_rgba(0,0,0,0.05)] transition-all duration-300\">\r\n <div class=\"flex items-center gap-4 flex-1\">\r\n <!-- Mobile Menu -->\r\n <button (click)=\"onToggleMobileMenu()\"\r\n class=\"md:hidden p-2 text-slate-600 hover:bg-slate-100 rounded-xl transition-all active:scale-95 shadow-sm bg-white border border-slate-100\">\r\n <span class=\"material-icons-outlined\">menu</span>\r\n </button>\r\n\r\n <!-- Desktop Toggle -->\r\n <button (click)=\"onToggleSidebar()\"\r\n class=\"hidden md:flex p-2 text-slate-600 hover:bg-slate-100 rounded-xl transition-all active:scale-95 shadow-sm bg-white border border-slate-100\">\r\n <span class=\"material-icons-outlined\">menu_open</span>\r\n </button>\r\n\r\n <!-- Search Bar -->\r\n <div\r\n class=\"relative flex items-center transition-all duration-300 w-48 md:w-64 focus-within:w-full focus-within:max-w-md\">\r\n <span\r\n class=\"material-icons-outlined absolute left-3 transition-colors text-slate-400 group-focus-within:text-blue-500\">search</span>\r\n <input type=\"text\" placeholder=\"Buscar en Cerca...\"\r\n class=\"w-full bg-slate-50 border border-slate-200 rounded-xl py-2 pl-10 pr-4 text-sm focus:outline-none focus:ring-4 focus:ring-blue-500/10 focus:bg-white transition-all shadow-inner placeholder:text-slate-400 text-slate-600\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Header Right -->\r\n <div class=\"flex items-center gap-3\">\r\n <!-- Notifications -->\r\n <button\r\n class=\"relative p-2.5 text-slate-500 hover:bg-slate-100 rounded-xl transition-all bg-white border border-slate-100 shadow-sm group\">\r\n <span class=\"material-icons-outlined group-hover:text-blue-500 transition-colors\">notifications</span>\r\n @if (notificationsCount() > 0) {\r\n <span class=\"absolute top-2 right-2 w-2.5 h-2.5 bg-red-500 rounded-full border-2 border-white\"></span>\r\n }\r\n </button>\r\n\r\n <div class=\"h-8 w-[1px] bg-slate-200 mx-1\"></div>\r\n\r\n <!-- User Profile -->\r\n <div class=\"flex items-center gap-3 pl-1 group cursor-pointer\" (click)=\"toggleUserMenu()\">\r\n <div class=\"text-right hidden sm:block\">\r\n <p class=\"text-sm font-bold text-slate-700 leading-none group-hover:text-blue-600 transition-colors\">\r\n {{ user().name }}</p>\r\n <p class=\"text-[10px] text-slate-400 font-bold mt-1 tracking-tighter uppercase\">{{ user().role\r\n }}</p>\r\n </div>\r\n <!-- Gradient Avatar -->\r\n <div\r\n class=\"h-10 w-10 rounded-xl bg-gradient-to-tr from-blue-600 to-blue-400 flex items-center justify-center text-white shadow-lg shadow-blue-200 transition-transform group-hover:scale-105\">\r\n @if (user().avatarUrl) {\r\n <img [src]=\"user().avatarUrl\" alt=\"Avatar\"\r\n class=\"h-full w-full rounded-xl object-cover opacity-90 hover:opacity-100\">\r\n } @else {\r\n <span class=\"material-icons-outlined text-sm\">person</span>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Dropdown Menu (Existing logic) -->\r\n @if (isUserMenuOpen()) {\r\n <div class=\"fixed inset-0 z-40\" (click)=\"closeUserMenu()\"></div>\r\n <div\r\n class=\"absolute top-16 right-6 w-48 bg-white dark:bg-cerca-navy rounded-xl shadow-xl py-1 border border-slate-100 ring-1 ring-black ring-opacity-5 animate-fade-in-down z-50\">\r\n <button (click)=\"onProfileClick()\"\r\n class=\"w-full text-left px-4 py-2 text-sm text-slate-700 hover:bg-slate-50 hover:text-blue-600 transition-colors flex items-center font-medium\">\r\n <span class=\"material-icons-outlined text-lg mr-2\">person</span> Perfil\r\n </button>\r\n <button (click)=\"onToggleThemeClick()\"\r\n class=\"w-full text-left px-4 py-2 text-sm text-slate-700 hover:bg-slate-50 hover:text-blue-600 transition-colors flex items-center font-medium\">\r\n <span class=\"material-icons-outlined text-lg mr-2\">{{ isDarkMode() ? 'light_mode' : 'dark_mode'\r\n }}</span> {{ isDarkMode() ? 'Modo Claro' : 'Modo Oscuro' }}\r\n </button>\r\n <div class=\"border-t border-slate-100 my-1\"></div>\r\n <button (click)=\"onLogoutClick()\"\r\n class=\"w-full text-left px-4 py-2 text-sm text-rose-600 hover:bg-rose-50 transition-colors flex items-center font-medium\">\r\n <span class=\"material-icons-outlined text-lg mr-2\">logout</span> Cerrar Sesión\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</header>","import { z } from 'zod';\r\n\r\nexport const UserSchema = z.object({\r\n name: z.string(),\r\n role: z.string(),\r\n avatarUrl: z.string().optional(),\r\n});\r\n\r\nexport type User = z.infer<typeof UserSchema>;\r\n\r\nexport const HeaderResourceSchema = z.object({\r\n user: UserSchema,\r\n notificationsCount: z.number().default(0).optional(),\r\n});\r\n\r\nexport type HeaderResource = z.infer<typeof HeaderResourceSchema>;\r\n","import { Component, input, output, inject, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\r\nimport { AdInputComponent } from '../../atoms/input/input.component';\r\nimport { AdButtonComponent } from '../../atoms/button/button.component';\r\nimport { LoginResource } from './login.component.resources';\r\n\r\n@Component({\r\n selector: 'ad-login',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AdInputComponent,\r\n AdButtonComponent\r\n ],\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class AdLoginComponent {\r\n private fb = inject(FormBuilder);\r\n\r\n resource = input.required<LoginResource>();\r\n\r\n title = computed(() => this.resource().title ?? 'Bienvenido');\r\n titleAccent = computed(() => this.resource().titleAccent);\r\n subtitle = computed(() => this.resource().subtitle ?? 'Inicia sesión para continuar');\r\n logo = computed(() => this.resource().logo);\r\n icon = computed(() => this.resource().icon);\r\n loading = computed(() => this.resource().loading ?? false);\r\n errorMessage = computed(() => this.resource().errorMessage ?? null);\r\n supportEmail = computed(() => this.resource().supportEmail ?? 'soporte@cerca.com.co');\r\n recoverPasswordUrl = computed(() => this.resource().recoverPasswordUrl);\r\n forgotPasswordLabel = computed(() => this.resource().forgotPasswordLabel ?? '¿Olvidaste tu clave?');\r\n\r\n loginSubmit = output<{ email: string; password: string; remember: boolean }>();\r\n forgotPasswordClick = output<void>();\r\n\r\n loginForm = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n password: ['', [Validators.required]],\r\n remember: [true]\r\n });\r\n\r\n submitForm(): void {\r\n if (this.loginForm.valid) {\r\n const { email, password, remember } = this.loginForm.getRawValue();\r\n this.loginSubmit.emit({ email: email!, password: password!, remember: remember! });\r\n } else {\r\n Object.values(this.loginForm.controls).forEach(control => {\r\n if (control.invalid) {\r\n control.markAsDirty();\r\n control.updateValueAndValidity({ onlySelf: true });\r\n }\r\n });\r\n }\r\n }\r\n\r\n fieldInvalid(field: string): boolean {\r\n const control = this.loginForm.get(field);\r\n return (control && control.invalid && (control.dirty || control.touched)) || false;\r\n }\r\n\r\n}\r\n","<div class=\"w-full max-w-md space-y-8 bg-white p-8 rounded-xl shadow-lg border border-slate-100\">\r\n <div class=\"text-center\">\r\n @if (logo()) {\r\n <img [src]=\"logo()\" alt=\"Logo\" class=\"mx-auto h-12 w-auto\" />\r\n } @else if (icon()) {\r\n <div class=\"mx-auto h-12 w-12 flex items-center justify-center rounded-full bg-sky-100 text-sky-600\">\r\n <!-- Fallback icon or remove nz-icon -->\r\n <span class=\"text-2xl font-bold\">C</span>\r\n </div>\r\n }\r\n <h2 class=\"mt-6 text-3xl font-extrabold text-cerca-navy\">\r\n {{ title() }}\r\n @if (titleAccent()) {\r\n <span class=\"accent-text\">{{ titleAccent() }}</span>\r\n }\r\n </h2>\r\n <p class=\"mt-2 text-sm text-slate-600 uppercase tracking-wide\">{{ subtitle() }}</p>\r\n </div>\r\n\r\n @if (errorMessage()) {\r\n <div class=\"bg-red-50 border-l-4 border-red-500 p-4 mb-4 rounded-md\">\r\n <div class=\"flex\">\r\n <div class=\"ml-3\">\r\n <p class=\"text-sm text-red-700\">{{ errorMessage() }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <form [formGroup]=\"loginForm\" class=\"mt-8 space-y-6\" (ngSubmit)=\"submitForm()\">\r\n <div class=\"space-y-4\">\r\n <div class=\"form-group\">\r\n <ad-input formControlName=\"email\" placeholder=\"correo@ejemplo.com\" label=\"Correo Electrónico\"\r\n type=\"email\" prefix=\"user\" [error]=\"fieldInvalid('email')\">\r\n </ad-input>\r\n @if (fieldInvalid('email')) {\r\n <p class=\"mt-1 text-sm text-red-600\">\r\n @if (loginForm.get('email')?.hasError('required')) { El campo es requerido }\r\n @else { Ingrese un correo válido }\r\n </p>\r\n }\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <ad-input formControlName=\"password\" placeholder=\"********\" label=\"Contraseña\" type=\"password\"\r\n prefix=\"lock\" [error]=\"fieldInvalid('password')\">\r\n </ad-input>\r\n @if (fieldInvalid('password')) {\r\n <p class=\"mt-1 text-sm text-red-600\">\r\n La contraseña es requerida\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-between\">\r\n <div class=\"flex items-center\">\r\n <input id=\"remember-me\" formControlName=\"remember\" type=\"checkbox\"\r\n class=\"h-4 w-4 rounded border-slate-300 text-sky-600 focus:ring-sky-600\">\r\n <label for=\"remember-me\" class=\"ml-2 block text-sm text-slate-900\">Recordarme</label>\r\n </div>\r\n\r\n @if (recoverPasswordUrl()) {\r\n <a [href]=\"recoverPasswordUrl()\" class=\"text-sm font-medium text-sky-600 hover:text-sky-500\">\r\n {{ forgotPasswordLabel() }}\r\n </a>\r\n } @else {\r\n <a class=\"text-sm font-medium text-sky-600 hover:text-sky-500 cursor-pointer\"\r\n (click)=\"forgotPasswordClick.emit()\">\r\n {{ forgotPasswordLabel() }}\r\n </a>\r\n }\r\n </div>\r\n\r\n <div>\r\n <div>\r\n <ad-button [loading]=\"loading()\" variant=\"primary\" type=\"submit\" [block]=\"true\"\r\n class=\"w-full justify-center\" [disabled]=\"loginForm.invalid || loading()\">\r\n Iniciar Sesión\r\n </ad-button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <div class=\"mt-6 text-center text-xs text-slate-400\">\r\n <p>¿Necesitas ayuda? Contacta a <a [href]=\"'mailto:' + supportEmail()\"\r\n class=\"hover:text-sky-600 transition-colors\">{{ supportEmail() }}</a></p>\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const LoginResourceSchema = z.object({\r\n title: z.string().default('Bienvenido').optional(),\r\n titleAccent: z.string().optional(),\r\n subtitle: z.string().default('Inicia sesión para continuar').optional(),\r\n logo: z.string().optional(),\r\n icon: z.string().optional(),\r\n loading: z.boolean().default(false).optional(),\r\n errorMessage: z.string().nullable().optional(),\r\n supportEmail: z.string().default('soporte@cerca.com.co').optional(),\r\n recoverPasswordUrl: z.string().optional(),\r\n forgotPasswordLabel: z.string().default('¿Olvidaste tu clave?').optional(),\r\n});\r\n\r\nexport type LoginResource = z.infer<typeof LoginResourceSchema>;\r\n","import { z } from 'zod';\r\n\r\nexport const ModalResourceSchema = z.object({\r\n isOpen: z.boolean().default(false).optional(),\r\n title: z.string().default('').optional(),\r\n accentedTitle: z.string().optional(),\r\n size: z.enum(['sm', 'md', 'lg']).default('md').optional(),\r\n closeOnOverlay: z.boolean().default(true).optional(),\r\n showFooter: z.boolean().default(true).optional()\r\n});\r\n\r\nexport type ModalResource = z.infer<typeof ModalResourceSchema>;\r\n","import { Component, ChangeDetectionStrategy, input, output, signal, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterLink, RouterLinkActive, Router } from '@angular/router';\r\nimport { AdIconComponent } from '../../atoms/icons/icon.component';\r\nimport { NavItem, SidebarResource } from './sidebar.resources';\r\n\r\n@Component({\r\n selector: 'ad-sidebar',\r\n standalone: true,\r\n imports: [CommonModule, RouterLink, RouterLinkActive, AdIconComponent], // Add AdIconComponent if available, otherwise just use logic\r\n templateUrl: './sidebar.component.html',\r\n styles: [`\r\n @keyframes slideDown {\r\n from { opacity: 0; transform: translateY(-5px); }\r\n to { opacity: 1; transform: translateY(0); }\r\n }\r\n .animate-slide-down {\r\n animation: slideDown 0.2s ease-out forwards;\r\n }\r\n `],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdSidebarComponent {\r\n // Inputs as Signals\r\n resource = input.required<SidebarResource>();\r\n\r\n menuItems = computed(() => this.resource().menuItems);\r\n collapsed = computed(() => this.resource().collapsed ?? false);\r\n\r\n // Outputs\r\n toggleCollapse = output<void>();\r\n navigate = output<NavItem>();\r\n\r\n // State\r\n expandedItems = signal<Set<string>>(new Set());\r\n\r\n constructor(private router: Router) { }\r\n\r\n onItemClick(item: NavItem) {\r\n if (item.children && item.children.length > 0) {\r\n this.toggleSubmenu(item);\r\n } else if (item.route) {\r\n this.navigate.emit(item);\r\n }\r\n }\r\n\r\n toggleSubmenu(item: NavItem) {\r\n if (this.collapsed()) {\r\n this.toggleCollapse.emit(); // Expand sidebar if clicking a submenu parent while collapsed\r\n // layout logic usually handles this, but good to emit\r\n }\r\n\r\n this.expandedItems.update(current => {\r\n const newSet = new Set(current);\r\n if (newSet.has(item.label)) {\r\n newSet.delete(item.label);\r\n } else {\r\n newSet.add(item.label);\r\n }\r\n return newSet;\r\n });\r\n }\r\n\r\n isExpanded(item: NavItem): boolean {\r\n return this.expandedItems().has(item.label);\r\n }\r\n\r\n hasActiveChild(item: NavItem): boolean {\r\n if (!item.children) return false;\r\n return item.children.some((child: NavItem) => {\r\n if (child.route) {\r\n return this.router.isActive(child.route, {\r\n paths: 'subset',\r\n queryParams: 'ignored',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored'\r\n });\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n onToggle() {\r\n this.toggleCollapse.emit();\r\n }\r\n}\r\n","<aside\r\n class=\"flex flex-col bg-[#002B5B] text-white transition-all duration-300 ease-in-out h-full z-30 shadow-[10px_0_40px_-15px_rgba(0,0,0,0.3)] border-r border-white/5\"\r\n [class.w-72]=\"!collapsed()\" [class.w-20]=\"collapsed()\">\r\n\r\n <!-- Logo Area -->\r\n <div\r\n class=\"p-4 flex items-center justify-center border-b border-white/5 h-20 transition-all duration-300 flex-shrink-0\">\r\n @if (collapsed()) {\r\n <!-- Isotipo (C) -->\r\n <div\r\n class=\"w-10 h-10 bg-blue-500 rounded-lg flex items-center justify-center font-bold text-lg shadow-lg animate-in fade-in zoom-in-75\">\r\n C\r\n </div>\r\n } @else {\r\n <!-- Logo Completo -->\r\n <div class=\"flex items-center gap-2 animate-in fade-in slide-in-from-left-4 duration-500\">\r\n <span class=\"text-xl font-bold tracking-tight text-blue-400\">Cerca</span>\r\n <span\r\n class=\"text-[9px] font-bold bg-white/10 px-1.5 py-0.5 rounded tracking-widest text-slate-300 border border-white/10\">ADMIN</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Menu de Navegación -->\r\n <div\r\n class=\"flex-1 overflow-y-auto py-6 px-3 space-y-2 scrollbar-thin scrollbar-thumb-slate-700 scrollbar-track-transparent [&::-webkit-scrollbar]:hidden [-ms-overflow-style:'none'] [scrollbar-width:'none']\">\r\n @for (item of menuItems(); track item.label) {\r\n <!-- Group Header -->\r\n @if (item.isHeader && !collapsed()) {\r\n <h2 class=\"text-[10px] font-bold text-slate-400 tracking-[0.2em] px-4 mb-3 mt-6 uppercase opacity-70\">\r\n {{ item.label }}\r\n </h2>\r\n }\r\n\r\n @if (!item.isHeader) {\r\n <!-- Item Wrapper -->\r\n <div class=\"relative group px-1\">\r\n <!-- Standard Item or Parent -->\r\n @if (!item.children || item.children.length === 0) {\r\n <a [routerLink]=\"item.route\"\r\n [routerLinkActive]=\"['bg-[#0081C9]', 'text-white', 'shadow-[0_10px_20px_-5px_rgba(0,129,201,0.4)]']\"\r\n [routerLinkActiveOptions]=\"{ exact: item.exact || false }\" (click)=\"onItemClick(item)\"\r\n class=\"w-full flex items-center px-4 py-3 rounded-xl transition-all duration-300 group cursor-pointer text-slate-300 hover:bg-white/5 hover:text-white\"\r\n [class.justify-center]=\"collapsed()\" [class.justify-between]=\"!collapsed()\" #rla=\"routerLinkActive\">\r\n\r\n <div class=\"flex items-center gap-3\">\r\n <span class=\"transition-colors\" [class.text-white]=\"rla.isActive\"\r\n [class.text-slate-400]=\"!rla.isActive\" [class.group-hover:text-blue-300]=\"!rla.isActive\">\r\n <ad-icon [name]=\"item.icon!\" size=\"md\"></ad-icon>\r\n </span>\r\n @if (!collapsed()) {\r\n <span class=\"font-medium text-sm whitespace-nowrap\">{{ item.label }}</span>\r\n }\r\n </div>\r\n\r\n @if (item.badge && !collapsed()) {\r\n <span\r\n class=\"bg-[#4CC9FE] text-[#002B5B] text-[10px] font-bold h-5 w-5 flex items-center justify-center rounded-md shadow-sm\">\r\n {{ item.badge }}\r\n </span>\r\n }\r\n </a>\r\n } @else {\r\n <!-- Parent Item with Submenu -->\r\n <div (click)=\"toggleSubmenu(item)\"\r\n class=\"w-full flex items-center px-4 py-3 rounded-xl transition-all duration-300 cursor-pointer hover:bg-white/5 hover:text-white\"\r\n [class.bg-white/5]=\"isExpanded(item)\" [class.text-white]=\"isExpanded(item) && !hasActiveChild(item)\"\r\n [class.text-[#4CC9FE]]=\"hasActiveChild(item)\"\r\n [class.text-slate-300]=\"!isExpanded(item) && !hasActiveChild(item)\" [class.justify-center]=\"collapsed()\"\r\n [class.justify-between]=\"!collapsed()\">\r\n\r\n <div class=\"flex items-center gap-3\">\r\n <span class=\"transition-colors\" [class.text-white]=\"isExpanded(item) && !hasActiveChild(item)\"\r\n [class.text-[#4CC9FE]]=\"hasActiveChild(item)\"\r\n [class.text-slate-400]=\"!isExpanded(item) && !hasActiveChild(item)\"\r\n [class.group-hover:text-blue-300]=\"!isExpanded(item) && !hasActiveChild(item)\">\r\n <ad-icon [name]=\"item.icon!\" size=\"md\"></ad-icon>\r\n </span>\r\n @if (!collapsed()) {\r\n <span class=\"font-medium text-sm whitespace-nowrap\">{{ item.label }}</span>\r\n }\r\n </div>\r\n\r\n @if (!collapsed()) {\r\n <span class=\"transition-transform duration-300\" [class.rotate-180]=\"isExpanded(item)\">\r\n <span class=\"material-icons-outlined text-sm\">expand_more</span>\r\n </span>\r\n }\r\n </div>\r\n\r\n <!-- Submenu -->\r\n @if (isExpanded(item) && !collapsed()) {\r\n <ul class=\"mt-1 ml-9 border-l border-white/10 space-y-1 animate-slide-down\">\r\n @for (subItem of item.children; track subItem.route) {\r\n <li>\r\n <a [routerLink]=\"subItem.route\" [routerLinkActive]=\"['text-white', 'font-medium']\"\r\n [routerLinkActiveOptions]=\"{ exact: subItem.exact || false }\" (click)=\"onItemClick(subItem)\"\r\n class=\"w-full block text-left px-4 py-2 text-xs text-slate-400 hover:text-white transition-colors rounded-lg\">\r\n {{ subItem.label }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n }\r\n\r\n <!-- Tooltip for collapsed state -->\r\n @if (collapsed()) {\r\n <div\r\n class=\"fixed left-20 ml-2 px-3 py-1.5 bg-slate-900 text-white text-xs rounded-md opacity-0 group-hover:opacity-100 pointer-events-none transition-all translate-x-[-10px] group-hover:translate-x-0 whitespace-nowrap z-50 shadow-2xl\">\r\n {{ item.label }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"p-4 border-t border-white/5 bg-black/10 transition-all duration-300\">\r\n <div class=\"flex items-center h-10 rounded-lg bg-white/5 border border-white/5 transition-all duration-300\"\r\n [class.justify-center]=\"collapsed()\" [class.px-4]=\"!collapsed()\">\r\n <span class=\"text-[10px] font-medium text-slate-400 tracking-widest uppercase whitespace-nowrap\">\r\n {{ collapsed() ? 'v2' : 'v2.0.0 Design' }}\r\n </span>\r\n </div>\r\n </div>\r\n</aside>","import { z } from 'zod';\r\n\r\nexport const NavItemSchema: z.ZodType<any> = z.lazy(() => z.object({\r\n label: z.string(),\r\n icon: z.string().optional(),\r\n route: z.string().optional(),\r\n badge: z.union([z.string(), z.number()]).optional(),\r\n badgeColor: z.string().optional(),\r\n exact: z.boolean().optional(),\r\n children: z.array(NavItemSchema).optional(),\r\n isHeader: z.boolean().optional(),\r\n}));\r\n\r\nexport type NavItem = z.infer<typeof NavItemSchema>;\r\n\r\nexport const SidebarResourceSchema = z.object({\r\n menuItems: z.array(NavItemSchema),\r\n collapsed: z.boolean().default(false).optional(),\r\n});\r\n\r\nexport type SidebarResource = z.infer<typeof SidebarResourceSchema>;\r\n","import {\r\n Component,\r\n computed,\r\n input,\r\n output,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n signal,\r\n effect,\r\n inject\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableResource, AdTableColumn } from './table.resources';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { debounceTime, distinctUntilChanged, Subject, takeUntil } from 'rxjs';\r\nimport { AdLoadingComponent } from '../../atoms/loading/loading.component';\r\nimport { DatePipe, CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-table',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, AdLoadingComponent],\r\n providers: [DatePipe, CurrencyPipe, DecimalPipe, PercentPipe],\r\n templateUrl: './table.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AdTableComponent implements OnInit, OnDestroy {\r\n resource = input.required<TableResource>();\r\n\r\n data = computed(() => this.resource().data);\r\n columns = computed(() => this.resource().columns);\r\n total = computed(() => this.resource().total);\r\n loading = computed(() => this.resource().loading ?? false);\r\n pageIndex = computed(() => this.resource().pageIndex ?? 1);\r\n pageSize = computed(() => this.resource().pageSize ?? 10);\r\n searchPlaceholder = computed(() => this.resource().searchPlaceholder ?? 'Buscar...');\r\n\r\n pageChange = output<number>();\r\n search = output<string>();\r\n\r\n searchInput = new FormControl('');\r\n private destroy$ = new Subject<void>();\r\n\r\n private datePipe = inject(DatePipe);\r\n private currencyPipe = inject(CurrencyPipe);\r\n private decimalPipe = inject(DecimalPipe);\r\n private percentPipe = inject(PercentPipe);\r\n\r\n totalPages = computed(() => Math.ceil(this.total() / this.pageSize()));\r\n isFirstPage = computed(() => this.pageIndex() === 1);\r\n isLastPage = computed(() => this.pageIndex() >= this.totalPages());\r\n\r\n ngOnInit(): void {\r\n this.searchInput.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n takeUntil(this.destroy$)\r\n )\r\n .subscribe((value) => {\r\n this.search.emit(value || '');\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n onPageChange(newPage: number): void {\r\n if (newPage >= 1 && newPage <= this.totalPages()) {\r\n this.pageChange.emit(newPage);\r\n }\r\n }\r\n\r\n getAlignClass(align?: 'left' | 'center' | 'right'): string {\r\n switch (align) {\r\n case 'center': return 'text-center';\r\n case 'right': return 'text-right';\r\n default: return 'text-left';\r\n }\r\n }\r\n\r\n getCellValue(row: any, col: AdTableColumn): any {\r\n const value = row[col.key];\r\n\r\n // 1. Prioritize function execution if context is available\r\n if (col.function_to_exec && this.resource().context) {\r\n const context = this.resource().context;\r\n if (typeof context[col.function_to_exec] === 'function') {\r\n return context[col.function_to_exec](row, col);\r\n }\r\n }\r\n\r\n // 2. Apply pipe if specified\r\n if (col.pipe_to_apply && value !== null && value !== undefined) {\r\n return this.applyPipe(value, col.pipe_to_apply);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private applyPipe(value: any, pipeConfig: string): any {\r\n const [pipeName, ...args] = pipeConfig.split(':');\r\n\r\n switch (pipeName.toLowerCase()) {\r\n case 'date':\r\n return this.datePipe.transform(value, args[0] || 'mediumDate');\r\n case 'currency':\r\n return this.currencyPipe.transform(value, args[0] || 'USD', args[1] || 'symbol', args[2]);\r\n case 'number':\r\n case 'decimal':\r\n return this.decimalPipe.transform(value, args[0]);\r\n case 'percent':\r\n return this.percentPipe.transform(value, args[0]);\r\n default:\r\n return value;\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col h-full w-full bg-white rounded-xl shadow-sm border border-stone-200 overflow-hidden\">\r\n <!-- Header: Search & Actions -->\r\n <div class=\"flex items-center justify-between p-4 border-b border-stone-100 bg-stone-50/50 backdrop-blur-sm\">\r\n <div class=\"relative w-full max-w-sm group\">\r\n <div class=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\r\n <svg class=\"h-4 w-4 text-stone-400 group-focus-within:text-sky-500 transition-colors\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <input [formControl]=\"searchInput\" type=\"text\"\r\n class=\"block w-full pl-10 pr-3 py-2 border border-stone-300 rounded-lg leading-5 bg-white placeholder-stone-400 focus:outline-none focus:placeholder-stone-300 focus:border-sky-500 focus:ring-1 focus:ring-sky-500 sm:text-sm transition-shadow duration-200\"\r\n [placeholder]=\"searchPlaceholder()\" />\r\n </div>\r\n <div class=\"ml-4 flex items-center\">\r\n <span\r\n class=\"text-xs font-medium text-stone-500 bg-stone-100 px-2 py-1 rounded-full border border-stone-200\">\r\n Total: <span class=\"text-stone-800 font-bold\">{{ total() }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <!-- Table Container -->\r\n <div class=\"flex-1 overflow-auto relative\">\r\n <!-- Loading Overlay -->\r\n @if (loading()) {\r\n <div class=\"absolute inset-0 z-10 bg-white/60 backdrop-blur-[1px] flex justify-center items-center\">\r\n <div class=\"flex items-center gap-2 px-4 py-2 bg-white rounded-lg shadow-lg border border-stone-100\">\r\n <ad-loading size=\"md\"></ad-loading>\r\n <span class=\"text-sm font-medium text-stone-600\">Cargando datos...</span>\r\n </div>\r\n </div>\r\n }\r\n\r\n <table class=\"min-w-full divide-y divide-stone-200\">\r\n <thead class=\"bg-stone-50 sticky top-0 z-0 is-header\">\r\n <tr>\r\n @for (col of columns(); track col.key) {\r\n <th scope=\"col\"\r\n class=\"px-6 py-3 text-xs font-semibold text-stone-500 uppercase tracking-wider whitespace-nowrap\"\r\n [style.width]=\"col.width\" [class]=\"getAlignClass(col.align)\">\r\n {{ col.label }}\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody class=\"bg-white divide-y divide-stone-100\">\r\n @if (data().length === 0 && !loading()) {\r\n <tr>\r\n <td [attr.colspan]=\"columns().length\" class=\"px-6 py-12 text-center\">\r\n <div class=\"flex flex-col items-center justify-center text-stone-400\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\r\n stroke=\"currentColor\" class=\"w-12 h-12 mb-3 opacity-50\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n d=\"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\" />\r\n </svg>\r\n <p class=\"text-base font-medium text-stone-900\">Sin datos disponibles</p>\r\n <p class=\"text-sm\">No se encontraron registros para mostrar.</p>\r\n </div>\r\n </td>\r\n </tr>\r\n } @else {\r\n @for (row of data(); track row) {\r\n <tr class=\"hover:bg-sky-50/50 transition-colors duration-150 group\">\r\n @for (col of columns(); track col.key) {\r\n <td class=\"px-6 py-4 whitespace-nowrap text-sm text-stone-700 border-b border-transparent group-hover:border-sky-100\"\r\n [class]=\"getAlignClass(col.align)\">\r\n {{ getCellValue(row, col) }}\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Footer: Pagination -->\r\n <div class=\"bg-white px-4 py-3 flex items-center justify-between border-t border-stone-200 sm:px-6\">\r\n <div class=\"flex-1 flex justify-between sm:hidden\">\r\n <button [disabled]=\"isFirstPage()\" (click)=\"onPageChange(pageIndex() - 1)\"\r\n class=\"relative inline-flex items-center px-4 py-2 border border-stone-300 text-sm font-medium rounded-md text-stone-700 bg-white hover:bg-stone-50 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\">\r\n Anterior\r\n </button>\r\n <button [disabled]=\"isLastPage()\" (click)=\"onPageChange(pageIndex() + 1)\"\r\n class=\"ml-3 relative inline-flex items-center px-4 py-2 border border-stone-300 text-sm font-medium rounded-md text-stone-700 bg-white hover:bg-stone-50 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\">\r\n Siguiente\r\n </button>\r\n </div>\r\n <div class=\"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between\">\r\n <div>\r\n <p class=\"text-sm text-stone-500\">\r\n Mostrando página <span class=\"font-medium text-stone-900\">{{ pageIndex() }}</span> de <span\r\n class=\"font-medium text-stone-900\">{{ totalPages() }}</span>\r\n </p>\r\n </div>\r\n <div>\r\n <nav class=\"relative z-0 inline-flex rounded-md shadow-sm -space-x-px\" aria-label=\"Pagination\">\r\n <button [disabled]=\"isFirstPage()\" (click)=\"onPageChange(pageIndex() - 1)\"\r\n class=\"relative inline-flex items-center px-2 py-2 rounded-l-md border border-stone-300 bg-white text-sm font-medium text-stone-500 hover:bg-stone-50 disabled:opacity-50 disabled:cursor-not-allowed focus:z-10 focus:outline-none focus:ring-1 focus:ring-sky-500 focus:border-sky-500 transition-colors\">\r\n <span class=\"sr-only\">Anterior</span>\r\n <!-- Heroicon: chevron-left -->\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button [disabled]=\"isLastPage()\" (click)=\"onPageChange(pageIndex() + 1)\"\r\n class=\"relative inline-flex items-center px-2 py-2 rounded-r-md border border-stone-300 bg-white text-sm font-medium text-stone-500 hover:bg-stone-50 disabled:opacity-50 disabled:cursor-not-allowed focus:z-10 focus:outline-none focus:ring-1 focus:ring-sky-500 focus:border-sky-500 transition-colors\">\r\n <span class=\"sr-only\">Siguiente</span>\r\n <!-- Heroicon: chevron-right -->\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const AdTableColumnSchema = z.object({\r\n key: z.string(),\r\n label: z.string(),\r\n width: z.string().optional(),\r\n align: z.enum(['left', 'center', 'right']).optional(),\r\n pipe_to_apply: z.string().optional(),\r\n function_to_exec: z.string().optional(),\r\n});\r\n\r\nexport type AdTableColumn = z.infer<typeof AdTableColumnSchema>;\r\n\r\nexport const TableResourceSchema = z.object({\r\n data: z.array(z.any()),\r\n columns: z.array(AdTableColumnSchema),\r\n total: z.number(),\r\n loading: z.boolean().default(false).optional(),\r\n pageIndex: z.number().default(1).optional(),\r\n pageSize: z.number().default(10).optional(),\r\n searchPlaceholder: z.string().default('Buscar...').optional(),\r\n context: z.any().optional(),\r\n});\r\n\r\nexport type TableResource = z.infer<typeof TableResourceSchema>;\r\n","import {\r\n Component,\r\n input,\r\n output,\r\n signal,\r\n computed,\r\n ViewContainerRef,\r\n ViewChild,\r\n EnvironmentInjector,\r\n createComponent,\r\n effect,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DocViewerResource, ComponentVariant, DocTab } from './doc-viewer.resources';\r\n\r\n@Component({\r\n selector: 'ad-doc-viewer',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './doc-viewer.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AdDocViewerComponent implements AfterViewInit {\r\n // Inputs\r\n resource = input.required<DocViewerResource>();\r\n showCode = input<boolean>(true);\r\n showApi = input<boolean>(true);\r\n\r\n id = computed(() => this.resource().id);\r\n name = computed(() => this.resource().name);\r\n category = computed(() => this.resource().category);\r\n description = computed(() => this.resource().description);\r\n selector = computed(() => this.resource().selector);\r\n codeSnippet = computed(() => this.resource().codeSnippet);\r\n api = computed(() => this.resource().api);\r\n variants = computed(() => this.resource().variants);\r\n\r\n // Outputs\r\n tabChange = output<DocTab>();\r\n\r\n // Estado interno\r\n activeTab = signal<DocTab>('preview');\r\n activeVariant = signal<string>('');\r\n copied = signal<boolean>(false);\r\n viewReady = signal<boolean>(false);\r\n\r\n // Tabs disponibles\r\n readonly tabs = computed(() => [\r\n { id: 'preview' as DocTab, label: 'Preview' },\r\n ...(this.showApi() ? [{ id: 'api' as DocTab, label: 'API' }] : []),\r\n ...(this.showCode() ? [{ id: 'code' as DocTab, label: 'Código' }] : []),\r\n ]);\r\n\r\n @ViewChild('previewHost', { read: ViewContainerRef })\r\n previewHost!: ViewContainerRef;\r\n\r\n constructor(private readonly injector: EnvironmentInjector) {\r\n effect(() => {\r\n const res = this.resource();\r\n const tab = this.activeTab();\r\n // viewReady se activará en ngAfterViewInit\r\n if (this.viewReady() && tab === 'preview') {\r\n this.renderPreview(res);\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewReady.set(true);\r\n if (this.activeTab() === 'preview') {\r\n this.renderPreview(this.resource());\r\n }\r\n }\r\n\r\n setTab(tab: DocTab): void {\r\n this.activeTab.set(tab);\r\n this.tabChange.emit(tab);\r\n if (tab === 'preview') {\r\n // Pequeño delay para que el ViewChild esté disponible tras el @if\r\n setTimeout(() => this.renderPreview(this.resource()), 0);\r\n }\r\n }\r\n\r\n setVariant(variant: ComponentVariant): void {\r\n this.activeVariant.set(variant.label);\r\n this.renderPreview(this.resource(), variant.resource);\r\n }\r\n\r\n copyCode(): void {\r\n navigator.clipboard.writeText(this.resource().codeSnippet).then(() => {\r\n this.copied.set(true);\r\n setTimeout(() => this.copied.set(false), 2000);\r\n });\r\n }\r\n\r\n private renderPreview(\r\n res: DocViewerResource,\r\n overrideResource?: Record<string, unknown>\r\n ): void {\r\n if (!this.previewHost) return;\r\n this.previewHost.clear();\r\n try {\r\n const ref = createComponent(res.component as Parameters<typeof createComponent>[0], {\r\n environmentInjector: this.injector,\r\n elementInjector: this.previewHost.injector,\r\n });\r\n const inputs = overrideResource ?? res.previewResource ?? {};\r\n Object.entries(inputs).forEach(([key, val]) => {\r\n try { ref.setInput(key, val); } catch { /* input no encontrado, se ignora */ }\r\n });\r\n this.previewHost.insert(ref.hostView);\r\n } catch (e) {\r\n console.warn('[ad-doc-viewer] No se pudo renderizar el preview:', e);\r\n }\r\n }\r\n}\r\n","<section class=\"flex flex-col gap-6 p-6 bg-white rounded-2xl border border-stone-200 shadow-sm\">\r\n\r\n <!-- Header del componente -->\r\n <div class=\"flex items-start justify-between\">\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"flex items-center gap-2 flex-wrap\">\r\n <span\r\n class=\"text-xs font-semibold px-2 py-0.5 rounded-full bg-sky-100 text-sky-700 uppercase tracking-wide\">\r\n {{ category() }}\r\n </span>\r\n <code class=\"text-xs px-2 py-0.5 rounded-md bg-stone-100 text-stone-600 font-mono\">\r\n {{ selector() }}\r\n </code>\r\n </div>\r\n <h2 class=\"text-xl font-bold text-stone-900 mt-1\">{{ name() }}</h2>\r\n <p class=\"text-sm text-stone-500 max-w-xl\">{{ description() }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Tabs de navegación -->\r\n <div class=\"flex gap-1 border-b border-stone-200\">\r\n @for (tab of tabs(); track tab.id) {\r\n <button\r\n class=\"px-4 py-2 text-sm font-medium transition-colors rounded-t-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-sky-500\"\r\n [class]=\"activeTab() === tab.id\r\n ? 'text-sky-600 border-b-2 border-sky-600 -mb-px bg-sky-50'\r\n : 'text-stone-500 hover:text-stone-700 hover:bg-stone-50'\" (click)=\"setTab(tab.id)\"\r\n [attr.aria-selected]=\"activeTab() === tab.id\" role=\"tab\">\r\n {{ tab.label }}\r\n </button>\r\n }\r\n </div>\r\n\r\n <!-- Panel: Preview -->\r\n @if (activeTab() === 'preview') {\r\n <div class=\"flex flex-col gap-4\">\r\n <!-- Canvas con fondo ajedrezado -->\r\n <div class=\"flex items-center justify-center min-h-40 rounded-xl border border-dashed border-stone-300\r\n p-8 overflow-auto\"\r\n style=\"background-image: linear-gradient(45deg, #f5f5f4 25%, transparent 25%, transparent 75%, #f5f5f4 75%, #f5f5f4), linear-gradient(45deg, #f5f5f4 25%, transparent 25%, transparent 75%, #f5f5f4 75%, #f5f5f4); background-size: 16px 16px; background-position: 0 0, 8px 8px;\">\r\n <ng-container #previewHost></ng-container>\r\n </div>\r\n\r\n <!-- Variantes -->\r\n @if (variants()?.length) {\r\n <div class=\"flex flex-wrap gap-2\">\r\n <span\r\n class=\"text-xs font-semibold text-stone-400 uppercase tracking-wider self-center mr-1\">Variante:</span>\r\n @for (variant of variants()!; track variant.label) {\r\n <button\r\n class=\"px-3 py-1.5 text-xs font-medium rounded-lg border transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-sky-500\"\r\n [class]=\"activeVariant() === variant.label\r\n ? 'bg-sky-600 border-sky-600 text-white shadow-sm'\r\n : 'border-stone-300 text-stone-600 hover:border-sky-400 hover:text-sky-600 bg-white'\"\r\n (click)=\"setVariant(variant)\">\r\n {{ variant.label }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Panel: API -->\r\n @if (activeTab() === 'api' && showApi()) {\r\n <div class=\"flex flex-col gap-6\">\r\n\r\n <!-- Inputs -->\r\n @if (api().inputs.length) {\r\n <div class=\"flex flex-col gap-2\">\r\n <h3 class=\"text-xs font-semibold text-stone-500 uppercase tracking-widest\">Inputs</h3>\r\n <div class=\"overflow-hidden rounded-xl border border-stone-200\">\r\n <table class=\"w-full text-sm\">\r\n <thead class=\"bg-stone-50 text-stone-500 text-left\">\r\n <tr>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Nombre</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Tipo</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Requerido</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Default</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Descripción</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (inp of api().inputs; track inp.name) {\r\n <tr class=\"border-t border-stone-100 hover:bg-stone-50 transition-colors\">\r\n <td class=\"px-4 py-3\">\r\n <code class=\"text-sky-600 font-mono text-xs\">{{ inp.name }}</code>\r\n </td>\r\n <td class=\"px-4 py-3\">\r\n <code class=\"text-emerald-600 font-mono text-xs\">{{ inp.type }}</code>\r\n </td>\r\n <td class=\"px-4 py-3\">\r\n @if (inp.required) {\r\n <span\r\n class=\"text-xs px-1.5 py-0.5 rounded-full bg-rose-100 text-rose-600 font-medium\">Sí</span>\r\n } @else {\r\n <span class=\"text-xs px-1.5 py-0.5 rounded-full bg-stone-100 text-stone-500\">No</span>\r\n }\r\n </td>\r\n <td class=\"px-4 py-3 text-stone-400 font-mono text-xs\">{{ inp.defaultValue || '—' }}</td>\r\n <td class=\"px-4 py-3 text-stone-600 text-xs\">{{ inp.description }}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- Outputs -->\r\n @if (api().outputs.length) {\r\n <div class=\"flex flex-col gap-2\">\r\n <h3 class=\"text-xs font-semibold text-stone-500 uppercase tracking-widest\">Outputs</h3>\r\n <div class=\"overflow-hidden rounded-xl border border-stone-200\">\r\n <table class=\"w-full text-sm\">\r\n <thead class=\"bg-stone-50 text-stone-500 text-left\">\r\n <tr>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Nombre</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Tipo de Evento</th>\r\n <th class=\"px-4 py-2.5 font-medium text-xs\">Descripción</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (out of api().outputs; track out.name) {\r\n <tr class=\"border-t border-stone-100 hover:bg-stone-50 transition-colors\">\r\n <td class=\"px-4 py-3\">\r\n <code class=\"text-amber-600 font-mono text-xs\">({{ out.name }})</code>\r\n </td>\r\n <td class=\"px-4 py-3\">\r\n <code class=\"text-emerald-600 font-mono text-xs\">{{ out.eventType }}</code>\r\n </td>\r\n <td class=\"px-4 py-3 text-stone-600 text-xs\">{{ out.description }}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!api().inputs.length && !api().outputs.length) {\r\n <p class=\"text-sm text-stone-400 italic\">No hay API documentada para este componente.</p>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <!-- Panel: Código -->\r\n @if (activeTab() === 'code' && showCode()) {\r\n <div class=\"relative rounded-xl overflow-hidden border border-stone-200\">\r\n <!-- Toolbar del bloque de código -->\r\n <div class=\"flex items-center justify-between px-4 py-2.5 bg-stone-800\">\r\n <span class=\"text-xs text-stone-400 font-mono uppercase tracking-wider\">HTML</span>\r\n <button\r\n class=\"text-xs flex items-center gap-1.5 transition-colors px-2 py-1 rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-sky-500\"\r\n [class]=\"copied() ? 'text-emerald-400 font-medium' : 'text-stone-400 hover:text-white'\"\r\n (click)=\"copyCode()\">\r\n @if (copied()) {\r\n <span>✓ Copiado</span>\r\n } @else {\r\n <span>Copiar</span>\r\n }\r\n </button>\r\n </div>\r\n <!-- Bloque de código -->\r\n <pre\r\n class=\"bg-stone-900 p-5 overflow-x-auto text-sm font-mono text-stone-200 leading-relaxed whitespace-pre m-0\">{{ codeSnippet() }}</pre>\r\n </div>\r\n }\r\n\r\n</section>","import { Type } from '@angular/core';\r\nimport { z } from 'zod';\r\n\r\nexport const ComponentApiInputSchema = z.object({\r\n name: z.string(),\r\n type: z.string(),\r\n required: z.boolean(),\r\n defaultValue: z.string(),\r\n description: z.string(),\r\n});\r\n\r\nexport const ComponentApiOutputSchema = z.object({\r\n name: z.string(),\r\n eventType: z.string(),\r\n description: z.string(),\r\n});\r\n\r\nexport const ComponentVariantSchema = z.object({\r\n label: z.string(),\r\n resource: z.record(z.string(), z.unknown()),\r\n});\r\n\r\nexport const DocViewerResourceSchema = z.object({\r\n /** Metadatos de identificación */\r\n id: z.string(),\r\n name: z.string(),\r\n category: z.enum(['atom', 'molecule', 'organism', 'template']),\r\n description: z.string(),\r\n\r\n /** Selector Angular del componente */\r\n selector: z.string(),\r\n\r\n /** Referencia al componente Angular para preview dinámico */\r\n component: z.custom<Type<unknown>>(),\r\n\r\n /** Ejemplo de código de integración (string) */\r\n codeSnippet: z.string(),\r\n\r\n /** API del componente */\r\n api: z.object({\r\n inputs: z.array(ComponentApiInputSchema),\r\n outputs: z.array(ComponentApiOutputSchema),\r\n }),\r\n\r\n /** Recurso de ejemplo pre-configurado para el preview (inputs individuales) */\r\n previewResource: z.record(z.string(), z.unknown()).optional(),\r\n\r\n /** Variantes (states) a mostrar en el preview */\r\n variants: z.array(ComponentVariantSchema).optional(),\r\n});\r\n\r\nexport type ComponentApiInput = z.infer<typeof ComponentApiInputSchema>;\r\nexport type ComponentApiOutput = z.infer<typeof ComponentApiOutputSchema>;\r\nexport type ComponentVariant = z.infer<typeof ComponentVariantSchema>;\r\nexport type DocViewerResource = z.infer<typeof DocViewerResourceSchema>;\r\n\r\nexport type DocTab = 'preview' | 'api' | 'code';\r\n","import { Component, input, output, signal, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { AdSidebarComponent } from '../../organisms/sidebar/sidebar.component';\r\nimport { AdCardComponent } from '../../../public-api';\r\nimport { AdHeaderComponent } from '../../organisms/header/header.component';\r\nimport { SidebarResource } from '../../organisms/sidebar/sidebar.resources';\r\nimport { AdminLayoutResource } from './admin-layout.resources';\r\n\r\n@Component({\r\n selector: 'ad-admin-layout',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n AdSidebarComponent,\r\n AdCardComponent,\r\n AdHeaderComponent\r\n ],\r\n templateUrl: './admin-layout.component.html',\r\n styleUrls: ['./admin-layout.component.scss']\r\n})\r\nexport class AdAdminLayoutComponent {\r\n // Inputs as Signals\r\n resource = input.required<AdminLayoutResource>();\r\n\r\n user = computed(() => this.resource().user);\r\n menuItems = computed(() => this.resource().menuItems);\r\n notificationsCount = computed(() => this.resource().notificationsCount ?? 0);\r\n\r\n // Derived Resources\r\n headerResource = computed(() => ({\r\n user: this.user(),\r\n notificationsCount: this.notificationsCount()\r\n }));\r\n\r\n sidebarResource = computed<SidebarResource>(() => ({\r\n menuItems: this.menuItems(),\r\n collapsed: this.isSidebarCollapsed()\r\n }));\r\n\r\n // Outputs\r\n logout = output<void>();\r\n navigateProfile = output<void>();\r\n toggleTheme = output<boolean>();\r\n\r\n // State Signals\r\n isMobileMenuOpen = signal(false);\r\n isSidebarCollapsed = signal(false);\r\n\r\n toggleMobileMenu() {\r\n this.isMobileMenuOpen.update(v => !v);\r\n }\r\n\r\n closeMobileMenu() {\r\n this.isMobileMenuOpen.set(false);\r\n }\r\n\r\n toggleSidebar() {\r\n this.isSidebarCollapsed.update(v => !v);\r\n }\r\n}\r\n","<div class=\"flex h-screen bg-[#F4F7FE] font-sans overflow-hidden transition-colors duration-300\">\r\n <!-- Sidebar -->\r\n <ad-sidebar class=\"hidden md:flex h-full z-30\" [resource]=\"sidebarResource()\" (toggleCollapse)=\"toggleSidebar()\">\r\n </ad-sidebar>\r\n\r\n <!-- Main Content Wrapper -->\r\n <div class=\"flex-1 flex flex-col relative overflow-hidden\">\r\n\r\n <!-- HEADER JOINING SIDEBAR AND CONTENT -->\r\n <ad-header [resource]=\"headerResource()\" (toggleSidebar)=\"toggleSidebar()\"\r\n (toggleMobileMenu)=\"toggleMobileMenu()\" (logout)=\"logout.emit()\" (navigateProfile)=\"navigateProfile.emit()\"\r\n (toggleTheme)=\"toggleTheme.emit($event)\">\r\n </ad-header>\r\n\r\n <!-- DASHBOARD CONTENT AREA / WRAPPER -->\r\n <main class=\"flex-1 overflow-y-auto p-6 md:p-10 bg-gradient-to-b from-white/50 to-transparent scroll-smooth\">\r\n <!-- The routed content will be projected here. \r\n The user's snippet had specific dashboard stats here.\r\n We provide the container, and the Router Outlet content (e.g. DashboardComponent) \r\n should implement the Grid/Cards.\r\n However, to match the \"Card on Canvas\" look for general pages, we can wrap the router outlet.\r\n -->\r\n <div class=\"max-w-7xl mx-auto h-full animate-fade-in-up\">\r\n <ad-card [resource]=\"{ title: '' }\">\r\n <ng-content></ng-content>\r\n </ad-card>\r\n </div>\r\n </main>\r\n\r\n <!-- Mobile Sidebar Overlay -->\r\n @if (isMobileMenuOpen()) {\r\n <div class=\"relative z-50 md:hidden\" role=\"dialog\" aria-modal=\"true\">\r\n <div class=\"fixed inset-0 bg-slate-900/80 transition-opacity backdrop-blur-sm\" (click)=\"closeMobileMenu()\">\r\n </div>\r\n <div class=\"fixed inset-0 flex\">\r\n <div\r\n class=\"relative flex w-full max-w-xs flex-1 flex-col bg-[#002B5B] pb-4 pt-5 transition-transform shadow-2xl\">\r\n <div class=\"flex items-center justify-between px-4 pb-4 border-b border-white/10\">\r\n <div class=\"flex items-center text-white\">\r\n <span class=\"text-xl font-bold tracking-tight\">Cerca</span>\r\n <span\r\n class=\"ml-2 text-[10px] font-bold bg-white/10 px-1.5 py-0.5 rounded tracking-widest text-slate-300 border border-white/10\">ADMIN</span>\r\n </div>\r\n <button (click)=\"closeMobileMenu()\" class=\"text-slate-400 hover:text-white\">\r\n <span class=\"material-icons-outlined\">close</span>\r\n </button>\r\n </div>\r\n <nav class=\"flex-1 overflow-y-auto px-4 py-6 space-y-2\">\r\n @for (item of menuItems(); track item.route) {\r\n <a [routerLink]=\"item.route\" (click)=\"closeMobileMenu()\"\r\n [routerLinkActive]=\"['bg-[#0081C9]', 'text-white', 'shadow-lg']\"\r\n [routerLinkActiveOptions]=\"{ exact: item.exact || false }\"\r\n class=\"group flex items-center px-4 py-3 text-sm font-medium text-slate-300 rounded-xl hover:bg-white/5 hover:text-white transition-all duration-200\">\r\n <span class=\"material-icons-outlined text-[20px] mr-3 transition-colors\"\r\n [class.text-white]=\"false\" [class.group-hover:text-blue-300]=\"true\">\r\n {{ item.icon }}\r\n </span>\r\n {{ item.label }}\r\n </a>\r\n }\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>","import { z } from 'zod';\r\nimport { UserSchema } from '../../organisms/header/header.resources';\r\nimport { NavItemSchema } from '../../organisms/sidebar/sidebar.resources';\r\n\r\nexport const AdminLayoutResourceSchema = z.object({\r\n user: UserSchema,\r\n menuItems: z.array(NavItemSchema),\r\n notificationsCount: z.number().default(0).optional(),\r\n});\r\n\r\nexport type AdminLayoutResource = z.infer<typeof AdminLayoutResourceSchema>;\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthLayoutResource } from './auth-layout.resources';\r\n\r\n@Component({\r\n selector: 'ad-auth-layout',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './auth-layout.component.html',\r\n styleUrls: ['./auth-layout.component.scss']\r\n})\r\nexport class AdAuthLayoutComponent {\r\n resource = input.required<AuthLayoutResource>();\r\n backgroundType = computed(() => this.resource().backgroundType ?? 'gradient');\r\n}\r\n","<div class=\"ad-auth-layout\" [ngClass]=\"'bg-' + backgroundType()\">\r\n <div class=\"ad-auth-container\">\r\n <div class=\"ad-auth-card\">\r\n <div class=\"ad-auth-logo\">\r\n <!-- Espacio para logo -->\r\n <div class=\"ad-auth-logo-placeholder\">CERCA</div>\r\n </div>\r\n\r\n <div class=\"ad-auth-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const AuthLayoutResourceSchema = z.object({\r\n backgroundType: z.enum(['gradient', 'image', 'simple']).default('gradient').optional(),\r\n});\r\n\r\nexport type AuthLayoutResource = z.infer<typeof AuthLayoutResourceSchema>;\r\n","import { Component, Input, HostBinding } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-grid',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.scss']\r\n})\r\nexport class AdGridComponent {\r\n @Input() cols: number = 1;\r\n @Input() colsMd?: number;\r\n @Input() colsLg?: number;\r\n @Input() gap: number = 4;\r\n\r\n @HostBinding('class')\r\n get classes(): string {\r\n return [\r\n `ad-grid-cols-${this.cols}`,\r\n this.colsMd ? `ad-grid-cols-md-${this.colsMd}` : '',\r\n this.colsLg ? `ad-grid-cols-lg-${this.colsLg}` : '',\r\n `ad-grid-gap-${this.gap}`\r\n ].filter(Boolean).join(' ');\r\n }\r\n}\r\n","<div class=\"ad-grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, input, HostBinding, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ad-stack',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './stack.component.html',\r\n styleUrls: ['./stack.component.scss']\r\n})\r\nexport class AdStackComponent {\r\n gap = input<number | string>(4);\r\n align = input<'start' | 'center' | 'end' | 'stretch'>('stretch');\r\n justify = input<'start' | 'center' | 'end' | 'between'>('start');\r\n\r\n @HostBinding('style.gap')\r\n get gapStyle(): string {\r\n const g = this.gap();\r\n return typeof g === 'number' ? `var(--space-${g})` : g;\r\n }\r\n\r\n @HostBinding('style.align-items')\r\n get alignStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', stretch: 'stretch' };\r\n return map[this.align()];\r\n }\r\n\r\n @HostBinding('style.justify-content')\r\n get justifyStyle(): string {\r\n const map = { start: 'flex-start', center: 'center', end: 'flex-end', between: 'space-between' };\r\n const j = this.justify();\r\n if (j === 'between') return 'space-between';\r\n return (map as any)[j] || 'flex-start';\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdGridComponent } from '../../layout/grid/grid.component';\r\nimport { AdStackComponent } from '../../layout/stack/stack.component';\r\nimport { DashboardTemplateResource } from './dashboard-template.resources';\r\n\r\n@Component({\r\n selector: 'ad-dashboard-template',\r\n standalone: true,\r\n imports: [CommonModule, AdGridComponent, AdStackComponent],\r\n templateUrl: './dashboard-template.component.html',\r\n styleUrls: ['./dashboard-template.component.scss']\r\n})\r\nexport class AdDashboardTemplateComponent {\r\n resource = input.required<DashboardTemplateResource>();\r\n title = computed(() => this.resource().title ?? 'Escritorio');\r\n subtitle = computed(() => this.resource().subtitle);\r\n}\r\n","<div class=\"ad-dashboard-template\">\r\n <header class=\"ad-dashboard-header\">\r\n <ad-stack [gap]=\"1\">\r\n <h1 class=\"ad-dashboard-title\">{{ title() }}</h1>\r\n @if (subtitle()) {\r\n <p class=\"ad-dashboard-subtitle\">{{ subtitle() }}</p>\r\n }\r\n </ad-stack>\r\n <div class=\"ad-dashboard-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n <ad-grid [cols]=\"1\" [colsMd]=\"2\" [colsLg]=\"4\" [gap]=\"6\" class=\"ad-dashboard-metrics\">\r\n <ng-content select=\"[metrics]\"></ng-content>\r\n </ad-grid>\r\n\r\n <ad-grid [cols]=\"1\" [colsLg]=\"3\" [gap]=\"6\" class=\"ad-dashboard-main\">\r\n <div class=\"ad-dashboard-primary-content\">\r\n <ng-content select=\"[main-content]\"></ng-content>\r\n </div>\r\n <aside class=\"ad-dashboard-secondary-content\">\r\n <ng-content select=\"[sidebar-content]\"></ng-content>\r\n </aside>\r\n </ad-grid>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const DashboardTemplateResourceSchema = z.object({\r\n title: z.string().default('Escritorio').optional(),\r\n subtitle: z.string().optional(),\r\n});\r\n\r\nexport type DashboardTemplateResource = z.infer<typeof DashboardTemplateResourceSchema>;\r\n","import { Component, input, signal, ViewEncapsulation, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DocumentationWrapperResource } from './documentation-wrapper.resources';\r\n\r\n@Component({\r\n selector: 'ad-documentation-wrapper',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: `\r\n <div class=\"space-y-6\">\r\n <!-- Header -->\r\n <div class=\"flex items-center justify-between border-b-2 border-stone-100 dark:border-cerca-primary-hover pb-2\">\r\n <h2 class=\"text-2xl font-bold text-stone-800 dark:text-white\">{{ title() }}</h2>\r\n @if (status() === 'new') {\r\n <span class=\"bg-emerald-100 text-emerald-800 text-xs font-medium px-2.5 py-0.5 rounded dark:bg-emerald-900 dark:text-emerald-300\">New</span>\r\n } @else if (status() === 'updated') {\r\n <span class=\"bg-sky-100 text-sky-800 text-xs font-medium px-2.5 py-0.5 rounded dark:bg-sky-900 dark:text-sky-300\">Updated</span>\r\n }\r\n </div>\r\n\r\n <!-- Description -->\r\n <div class=\"p-4 bg-yellow-50 border-l-4 border-yellow-400 text-stone-700 dark:bg-yellow-900/10 dark:text-yellow-100 dark:border-yellow-600\">\r\n <p>{{ description() }}</p>\r\n </div>\r\n\r\n <!-- Tabs -->\r\n <div class=\"border-b border-stone-200 dark:border-cerca-primary\">\r\n <nav class=\"-mb-px flex space-x-8\" aria-label=\"Tabs\">\r\n <button \r\n (click)=\"activeTab.set('preview')\"\r\n [class.border-sky-500]=\"activeTab() === 'preview'\"\r\n [class.text-sky-600]=\"activeTab() === 'preview'\"\r\n [class.dark:text-sky-400]=\"activeTab() === 'preview'\"\r\n [class.border-transparent]=\"activeTab() !== 'preview'\"\r\n [class.text-stone-500]=\"activeTab() !== 'preview'\"\r\n [class.hover:text-stone-700]=\"activeTab() !== 'preview'\"\r\n [class.hover:border-stone-300]=\"activeTab() !== 'preview'\"\r\n class=\"whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm transition-colors duration-200\">\r\n Preview\r\n </button>\r\n\r\n @if (code()) {\r\n <button \r\n (click)=\"activeTab.set('code')\"\r\n [class.border-sky-500]=\"activeTab() === 'code'\"\r\n [class.text-sky-600]=\"activeTab() === 'code'\"\r\n [class.dark:text-sky-400]=\"activeTab() === 'code'\"\r\n [class.border-transparent]=\"activeTab() !== 'code'\"\r\n [class.text-stone-500]=\"activeTab() !== 'code'\"\r\n [class.hover:text-stone-700]=\"activeTab() !== 'code'\"\r\n [class.hover:border-stone-300]=\"activeTab() !== 'code'\"\r\n class=\"whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm transition-colors duration-200\">\r\n Code\r\n </button>\r\n }\r\n\r\n @if (componentResource()) {\r\n <button \r\n (click)=\"activeTab.set('resource')\"\r\n [class.border-sky-500]=\"activeTab() === 'resource'\"\r\n [class.text-sky-600]=\"activeTab() === 'resource'\"\r\n [class.dark:text-sky-400]=\"activeTab() === 'resource'\"\r\n [class.border-transparent]=\"activeTab() !== 'resource'\"\r\n [class.text-stone-500]=\"activeTab() !== 'resource'\"\r\n [class.hover:text-stone-700]=\"activeTab() !== 'resource'\"\r\n [class.hover:border-stone-300]=\"activeTab() !== 'resource'\"\r\n class=\"whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm transition-colors duration-200\">\r\n Resource\r\n </button>\r\n }\r\n </nav>\r\n </div>\r\n\r\n <!-- Tab Content -->\r\n <div class=\"mt-4\">\r\n @switch (activeTab()) {\r\n @case ('preview') {\r\n <div class=\"p-6 bg-stone-50 rounded-lg border border-stone-200 dark:bg-cerca-primary-active dark:border-cerca-primary\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n @case ('code') {\r\n <div class=\"relative group\">\r\n <div class=\"absolute right-2 top-2 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button (click)=\"copyToClipboard(code()!)\" class=\"p-1 rounded bg-stone-700 text-white hover:bg-stone-600 text-xs\">Copy</button>\r\n </div>\r\n <pre class=\"p-4 bg-stone-900 text-stone-50 rounded-lg overflow-x-auto text-sm font-mono leading-relaxed\"><code>{{ code() }}</code></pre>\r\n </div>\r\n }\r\n @case ('resource') {\r\n <div class=\"relative group\">\r\n <div class=\"absolute right-2 top-2 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button (click)=\"copyToClipboard(componentResource()!)\" class=\"p-1 rounded bg-stone-700 text-white hover:bg-stone-600 text-xs\">Copy</button>\r\n </div>\r\n <pre class=\"p-4 bg-stone-900 text-stone-50 rounded-lg overflow-x-auto text-sm font-mono leading-relaxed\"><code>{{ componentResource() }}</code></pre>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AdDocumentationWrapperComponent {\r\n wrapperResource = input.required<DocumentationWrapperResource>({ alias: 'resource' });\r\n\r\n title = computed(() => this.wrapperResource().title);\r\n description = computed(() => this.wrapperResource().description);\r\n code = computed(() => this.wrapperResource().code);\r\n componentResource = computed(() => this.wrapperResource().componentResource);\r\n status = computed(() => this.wrapperResource().status ?? 'stable');\r\n\r\n activeTab = signal<'preview' | 'code' | 'resource'>('preview');\r\n\r\n copyToClipboard(text: string) {\r\n navigator.clipboard.writeText(text);\r\n // Could add toast notification here\r\n }\r\n}\r\n","import { z } from 'zod';\r\n\r\nexport const DocStatusSchema = z.enum(['new', 'updated', 'stable']);\r\nexport type DocStatus = z.infer<typeof DocStatusSchema>;\r\n\r\nexport const DocumentationWrapperResourceSchema = z.object({\r\n title: z.string(),\r\n description: z.string(),\r\n code: z.string().optional(),\r\n componentResource: z.string().optional(),\r\n status: z.enum(['new', 'updated', 'stable']).default('stable').optional(),\r\n});\r\n\r\nexport type DocumentationWrapperResource = z.infer<typeof DocumentationWrapperResourceSchema>;\r\n","import { Component, input, ViewEncapsulation, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormLayoutResource } from './form-layout.resources';\r\n\r\n@Component({\r\n selector: 'ad-form-layout',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: `\r\n <form class=\"grid grid-cols-1 md:grid-cols-12 gap-6 items-start\">\r\n <ng-content></ng-content>\r\n\r\n <!-- Footer Actions -->\r\n <div class=\"md:col-span-12 mt-6 flex justify-end gap-3 border-t border-stone-200 dark:border-cerca-primary pt-6\">\r\n <ng-content select=\"[footer-actions]\"></ng-content>\r\n </div>\r\n </form>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AdFormLayoutComponent {\r\n resource = input.required<FormLayoutResource>();\r\n gap = computed(() => this.resource().gap ?? 'md');\r\n}\r\n","import { z } from 'zod';\r\n\r\nexport const FormLayoutResourceSchema = z.object({\r\n gap: z.enum(['sm', 'md', 'lg']).default('md').optional(),\r\n});\r\n\r\nexport type FormLayoutResource = z.infer<typeof FormLayoutResourceSchema>;\r\n","import { Component, input, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdStackComponent } from '../../layout/stack/stack.component';\r\nimport { FormPageTemplateResource } from './form-page-template.resources';\r\n\r\n@Component({\r\n selector: 'ad-form-page-template',\r\n standalone: true,\r\n imports: [CommonModule, AdStackComponent],\r\n templateUrl: './form-page-template.component.html',\r\n styleUrls: ['./form-page-template.component.scss']\r\n})\r\nexport class AdFormPageTemplateComponent {\r\n resource = input.required<FormPageTemplateResource>();\r\n title = computed(() => this.resource().title ?? '');\r\n backUrl = computed(() => this.resource().backUrl);\r\n loading = computed(() => this.resource().loading ?? false);\r\n}\r\n","<div class=\"ad-form-page\">\r\n <header class=\"ad-form-page-header\">\r\n <ad-stack [gap]=\"1\">\r\n <div class=\"ad-form-page-nav\">\r\n <ng-content select=\"[back-button]\"></ng-content>\r\n </div>\r\n <h1 class=\"ad-form-page-title\">{{ title() }}</h1>\r\n </ad-stack>\r\n <div class=\"ad-form-page-actions-header\">\r\n <ng-content select=\"[header-actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n <main class=\"ad-form-page-main\">\r\n <div class=\"ad-form-page-card\">\r\n <ng-content select=\"[form-content]\"></ng-content>\r\n </div>\r\n </main>\r\n\r\n <footer class=\"ad-form-page-footer\">\r\n <ng-content select=\"[form-actions]\"></ng-content>\r\n </footer>\r\n\r\n @if (loading()) {\r\n <div class=\"ad-form-page-loading-overlay\">\r\n <div class=\"ad-form-page-spinner\"></div>\r\n </div>\r\n }\r\n</div>","import { z } from 'zod';\r\n\r\nexport const FormPageTemplateResourceSchema = z.object({\r\n title: z.string().default(''),\r\n backUrl: z.string().optional(),\r\n loading: z.boolean().default(false).optional(),\r\n});\r\n\r\nexport type FormPageTemplateResource = z.infer<typeof FormPageTemplateResourceSchema>;\r\n","import { z } from 'zod';\r\n\r\nexport const FormSectionResourceSchema = z.object({\r\n title: z.string().optional(),\r\n cols: z.number().default(12).optional(),\r\n loading: z.boolean().default(false).optional(),\r\n});\r\n\r\nexport type FormSectionResource = z.infer<typeof FormSectionResourceSchema>;\r\n","import { Component, input, ContentChild, TemplateRef, computed } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdStackComponent } from '../../layout/stack/stack.component';\r\nimport { ListPageTemplateResource } from './list-page-template.resources';\r\n\r\n@Component({\r\n selector: 'ad-list-page-template',\r\n standalone: true,\r\n imports: [CommonModule, AdStackComponent],\r\n templateUrl: './list-page-template.component.html',\r\n styleUrls: ['./list-page-template.component.scss']\r\n})\r\nexport class AdListPageTemplateComponent {\r\n resource = input.required<ListPageTemplateResource>();\r\n title = computed(() => this.resource().title ?? '');\r\n description = computed(() => this.resource().description);\r\n hasFilters = computed(() => this.resource().hasFilters ?? true);\r\n\r\n @ContentChild('filters') filtersTemplate?: TemplateRef<any>;\r\n}\r\n","<div class=\"ad-list-page\">\r\n <header class=\"ad-page-header\">\r\n <ad-stack [gap]=\"1\">\r\n <h1 class=\"ad-page-title\">{{ title() }}</h1>\r\n @if (description()) {\r\n <p class=\"ad-page-description\">{{ description() }}</p>\r\n }\r\n </ad-stack>\r\n <div class=\"ad-page-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n </header>\r\n\r\n @if (hasFilters()) {\r\n <section class=\"ad-page-filters\">\r\n <ng-content select=\"[filters]\"></ng-content>\r\n </section>\r\n }\r\n\r\n <main class=\"ad-page-main\">\r\n <ng-content select=\"[table]\"></ng-content>\r\n </main>\r\n\r\n <footer class=\"ad-page-footer\">\r\n <ng-content select=\"[pagination]\"></ng-content>\r\n </footer>\r\n</div>","import { z } from 'zod';\r\n\r\nexport const ListPageTemplateResourceSchema = z.object({\r\n title: z.string().default(''),\r\n description: z.string().optional(),\r\n hasFilters: z.boolean().default(true).optional(),\r\n});\r\n\r\nexport type ListPageTemplateResource = z.infer<typeof ListPageTemplateResourceSchema>;\r\n","/*\r\n * Public API Surface of design-system\r\n */\r\n\r\nexport * from './lib/design-system';\r\nexport * from './lib/core';\r\nexport * from './lib/engines/form/form-engine.component';\r\nexport * from './lib/engines/form/form-engine.service';\r\nexport * from './lib/engines/table/table-engine.component';\r\n\r\n// Atoms\r\nexport * from './lib/atoms/button/button.component';\r\nexport * from './lib/atoms/input/input.component';\r\nexport * from './lib/atoms/select/select.component';\r\nexport * from './lib/atoms/badges/badge.component';\r\nexport * from './lib/atoms/icons/icon.component';\r\nexport * from './lib/atoms/labels/label.component';\r\nexport * from './lib/atoms/loading/loading.component';\r\nexport * from './lib/atoms/switch/switch.component';\r\n\r\n// Molecules\r\nexport * from './lib/molecules/admin-section-card/admin-section-card.component';\r\nexport * from './lib/molecules/admin-section-card/admin-section-card.resources';\r\nexport * from './lib/molecules/card/card.component';\r\nexport * from './lib/molecules/card/card.resources';\r\nexport * from './lib/molecules/description-header/description-header.component';\r\nexport * from './lib/molecules/description-header/description-header.resources';\r\nexport * from './lib/molecules/form-field/form-field.component';\r\nexport * from './lib/molecules/form-field/form-field.resources';\r\nexport * from './lib/molecules/modal-trigger/modal-trigger';\r\nexport * from './lib/molecules/modal-trigger/modal-trigger.resources';\r\nexport * from './lib/molecules/search-bar/search-bar.component';\r\nexport * from './lib/molecules/search-bar/search-bar.resources';\r\nexport * from './lib/molecules/stat-card/stat-card.component';\r\nexport * from './lib/molecules/stat-card/stat-card.resources';\r\n\r\n// Organisms\r\nexport * from './lib/organisms/data-table/data-table.component';\r\nexport * from './lib/organisms/data-table/data-table.resources';\r\nexport * from './lib/organisms/header/header.component';\r\nexport * from './lib/organisms/header/header.resources';\r\nexport * from './lib/organisms/login/login.component';\r\nexport * from './lib/organisms/login/login.component.resources';\r\nexport * from './lib/organisms/modal/modal.component';\r\nexport * from './lib/organisms/modal/modal.resources';\r\nexport * from './lib/organisms/sidebar/sidebar.component';\r\nexport * from './lib/organisms/sidebar/sidebar.resources';\r\nexport * from './lib/organisms/table/table.component';\r\nexport * from './lib/organisms/table/table.resources';\r\nexport * from './lib/organisms/doc-viewer/doc-viewer.component';\r\nexport * from './lib/organisms/doc-viewer/doc-viewer.resources';\r\n\r\n// Templates\r\nexport * from './lib/templates/admin-layout/admin-layout.component';\r\nexport * from './lib/templates/admin-layout/admin-layout.resources';\r\nexport * from './lib/templates/auth-layout/auth-layout.component';\r\nexport * from './lib/templates/auth-layout/auth-layout.resources';\r\nexport * from './lib/templates/dashboard-template/dashboard-template.component';\r\nexport * from './lib/templates/dashboard-template/dashboard-template.resources';\r\nexport * from './lib/templates/documentation-wrapper/documentation-wrapper.component';\r\nexport * from './lib/templates/documentation-wrapper/documentation-wrapper.resources';\r\nexport * from './lib/templates/form-layout/form-layout.component';\r\nexport * from './lib/templates/form-layout/form-layout.resources';\r\nexport * from './lib/templates/form-page-template/form-page-template.component';\r\nexport * from './lib/templates/form-page-template/form-page-template.resources';\r\nexport * from './lib/templates/form-section/form-section.component';\r\nexport * from './lib/templates/form-section/form-section.resources';\r\nexport * from './lib/templates/list-page-template/list-page-template.component';\r\nexport * from './lib/templates/list-page-template/list-page-template.resources';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","debounceTime","distinctUntilChanged"],"mappings":"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"}
|