crdx-components 1.0.0 → 1.0.1
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/fesm2022/crdx-components.mjs +1624 -0
- package/fesm2022/crdx-components.mjs.map +1 -0
- package/package.json +19 -14
- package/types/crdx-components.d.ts +749 -0
- package/.github/workflows/publish.yml +0 -38
- package/bun.lock +0 -491
- package/crdx-components-1.0.0.tgz +0 -0
- package/crdx-components-tokenized-components-1.0.1.tgz +0 -0
- package/ng-package.json +0 -12
- package/npm +0 -0
- package/src/index.ts +0 -45
- package/src/lib/components/breadcrumb/breadcrumb.component.css +0 -206
- package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -15
- package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -47
- package/src/lib/components/button/button.css +0 -371
- package/src/lib/components/button/button.html +0 -187
- package/src/lib/components/button/button.ts +0 -103
- package/src/lib/components/card/card.css +0 -285
- package/src/lib/components/card/card.html +0 -69
- package/src/lib/components/card/card.ts +0 -93
- package/src/lib/components/checkbox/checkbox-showcase.component.css +0 -42
- package/src/lib/components/checkbox/checkbox-showcase.component.html +0 -36
- package/src/lib/components/checkbox/checkbox-showcase.component.ts +0 -13
- package/src/lib/components/checkbox/checkbox.css +0 -10
- package/src/lib/components/checkbox/checkbox.html +0 -13
- package/src/lib/components/checkbox/checkbox.ts +0 -64
- package/src/lib/components/circular-progress-stepper/circular-progress-stepper.css +0 -89
- package/src/lib/components/circular-progress-stepper/circular-progress-stepper.html +0 -23
- package/src/lib/components/circular-progress-stepper/circular-progress-stepper.ts +0 -40
- package/src/lib/components/dialogs/alert-modal/alert-modal.css +0 -118
- package/src/lib/components/dialogs/alert-modal/alert-modal.html +0 -29
- package/src/lib/components/dialogs/alert-modal/alert-modal.ts +0 -28
- package/src/lib/components/dialogs/confirm-modal/confirm-modal.css +0 -219
- package/src/lib/components/dialogs/confirm-modal/confirm-modal.html +0 -60
- package/src/lib/components/dialogs/confirm-modal/confirm-modal.store.ts +0 -139
- package/src/lib/components/dialogs/confirm-modal/confirm-modal.ts +0 -63
- package/src/lib/components/dialogs/container-custom/container-custom.css +0 -11
- package/src/lib/components/dialogs/container-custom/container-custom.html +0 -3
- package/src/lib/components/dialogs/container-custom/container-custom.ts +0 -37
- package/src/lib/components/dialogs/container-custom/custom-modal.state.ts +0 -57
- package/src/lib/components/dialogs/error-modal/error-modal.css +0 -53
- package/src/lib/components/dialogs/error-modal/error-modal.html +0 -17
- package/src/lib/components/dialogs/error-modal/error-modal.ts +0 -20
- package/src/lib/components/dialogs/side-modal/side-modal.css +0 -80
- package/src/lib/components/dialogs/side-modal/side-modal.html +0 -30
- package/src/lib/components/dialogs/side-modal/side-modal.state.ts +0 -78
- package/src/lib/components/dialogs/side-modal/side-modal.ts +0 -50
- package/src/lib/components/divider/divider.css +0 -24
- package/src/lib/components/divider/divider.html +0 -7
- package/src/lib/components/divider/divider.ts +0 -13
- package/src/lib/components/footer-actions/footer/footer-flow.store.ts +0 -30
- package/src/lib/components/footer-actions/footer/footer.html +0 -14
- package/src/lib/components/footer-actions/footer/footer.ts +0 -50
- package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.css +0 -44
- package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.html +0 -7
- package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.ts +0 -12
- package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.css +0 -31
- package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.html +0 -7
- package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.ts +0 -12
- package/src/lib/components/form-field/select-field.css +0 -178
- package/src/lib/components/form-field/select-field.html +0 -94
- package/src/lib/components/form-field/select-field.ts +0 -324
- package/src/lib/components/form-field/text-field.css +0 -41
- package/src/lib/components/form-field/text-field.html +0 -38
- package/src/lib/components/form-field/text-field.ts +0 -102
- package/src/lib/components/header/header.css +0 -142
- package/src/lib/components/header/header.html +0 -36
- package/src/lib/components/header/header.ts +0 -101
- package/src/lib/components/icon-button/icon-button.css +0 -445
- package/src/lib/components/icon-button/icon-button.html +0 -15
- package/src/lib/components/icon-button/icon-button.ts +0 -49
- package/src/lib/components/list-item/list-item.css +0 -122
- package/src/lib/components/list-item/list-item.html +0 -79
- package/src/lib/components/list-item/list-item.ts +0 -104
- package/src/lib/components/menu/menu.css +0 -39
- package/src/lib/components/menu/menu.html +0 -57
- package/src/lib/components/menu/menu.ts +0 -159
- package/src/lib/components/shared-table/shared-table-cell-template.directive.ts +0 -25
- package/src/lib/components/shared-table/shared-table.component.css +0 -223
- package/src/lib/components/shared-table/shared-table.component.html +0 -96
- package/src/lib/components/shared-table/shared-table.component.ts +0 -172
- package/src/lib/components/sidebar/sidebar.css +0 -234
- package/src/lib/components/sidebar/sidebar.html +0 -67
- package/src/lib/components/sidebar/sidebar.ts +0 -92
- package/src/lib/components/slide-toggle/slide-toggle.css +0 -0
- package/src/lib/components/slide-toggle/slide-toggle.html +0 -3
- package/src/lib/components/slide-toggle/slide-toggle.ts +0 -18
- package/src/lib/components/spinner/spinner.css +0 -9
- package/src/lib/components/spinner/spinner.html +0 -9
- package/src/lib/components/spinner/spinner.ts +0 -17
- package/src/lib/components/tooltip/tooltip.css +0 -32
- package/src/lib/components/tooltip/tooltip.html +0 -3
- package/src/lib/components/tooltip/tooltip.ts +0 -31
- package/src/lib/icons/register-icons.ts +0 -101
- package/src/lib/lib-ui/lib-ui.html +0 -1
- package/src/lib/lib-ui/lib-ui.scss +0 -0
- package/src/lib/lib-ui/lib-ui.ts +0 -9
- package/tsconfig.json +0 -30
- package/tsconfig.lib.json +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crdx-components.mjs","sources":["../../src/lib/lib-ui/lib-ui.ts","../../src/lib/lib-ui/lib-ui.html","../../src/lib/icons/register-icons.ts","../../src/lib/components/shared-table/shared-table-cell-template.directive.ts","../../src/lib/components/shared-table/shared-table.component.ts","../../src/lib/components/shared-table/shared-table.component.html","../../src/lib/components/breadcrumb/breadcrumb.component.ts","../../src/lib/components/breadcrumb/breadcrumb.component.html","../../src/lib/components/sidebar/sidebar.ts","../../src/lib/components/sidebar/sidebar.html","../../src/lib/components/header/header.ts","../../src/lib/components/header/header.html","../../src/lib/components/form-field/text-field.ts","../../src/lib/components/form-field/text-field.html","../../src/lib/components/checkbox/checkbox.ts","../../src/lib/components/checkbox/checkbox.html","../../src/lib/components/form-field/select-field.ts","../../src/lib/components/form-field/select-field.html","../../src/lib/components/list-item/list-item.ts","../../src/lib/components/list-item/list-item.html","../../src/lib/components/checkbox/checkbox-showcase.component.ts","../../src/lib/components/checkbox/checkbox-showcase.component.html","../../src/lib/components/menu/menu.ts","../../src/lib/components/menu/menu.html","../../src/lib/components/button/button.ts","../../src/lib/components/button/button.html","../../src/lib/components/icon-button/icon-button.ts","../../src/lib/components/icon-button/icon-button.html","../../src/lib/components/slide-toggle/slide-toggle.ts","../../src/lib/components/slide-toggle/slide-toggle.html","../../src/lib/components/circular-progress-stepper/circular-progress-stepper.ts","../../src/lib/components/circular-progress-stepper/circular-progress-stepper.html","../../src/lib/components/spinner/spinner.ts","../../src/lib/components/spinner/spinner.html","../../src/lib/components/divider/divider.ts","../../src/lib/components/divider/divider.html","../../src/lib/components/tooltip/tooltip.ts","../../src/lib/components/tooltip/tooltip.html","../../src/lib/components/card/card.ts","../../src/lib/components/card/card.html","../../src/lib/components/dialogs/confirm-modal/confirm-modal.ts","../../src/lib/components/dialogs/confirm-modal/confirm-modal.html","../../src/lib/components/dialogs/confirm-modal/confirm-modal.store.ts","../../src/lib/components/dialogs/side-modal/side-modal.ts","../../src/lib/components/dialogs/side-modal/side-modal.html","../../src/lib/components/dialogs/side-modal/side-modal.state.ts","../../src/lib/components/footer-actions/page-footer-actions/page-footer-actions.ts","../../src/lib/components/footer-actions/page-footer-actions/page-footer-actions.html","../../src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.ts","../../src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.html","../../src/lib/components/footer-actions/footer/footer-flow.store.ts","../../src/lib/components/footer-actions/footer/footer.ts","../../src/lib/components/footer-actions/footer/footer.html","../../src/index.ts","../../src/crdx-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-lib-ui',\n imports: [],\n templateUrl: './lib-ui.html',\n styleUrl: './lib-ui.scss',\n})\nexport class LibUi {}\n","<p>LibUi works!</p>\n","import { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\n\r\nconst DEFAULT_ICON_BASE_PATH = 'assets/icons';\r\n\r\nconst ICON_MENU_FILE = 'icon-menu.svg';\r\nconst LOGO_FILE = 'logo.svg';\r\nconst SMILEY_FILE = 'smiley.svg';\r\n\r\nconst ICON_FILE_MAP = Object.freeze({\r\n CollapseMenu: ICON_MENU_FILE,\r\n 'collapse-menu': ICON_MENU_FILE,\r\n 'icon-menu': ICON_MENU_FILE,\r\n\r\n logo: LOGO_FILE,\r\n 'credix-logo': LOGO_FILE,\r\n smiley: SMILEY_FILE,\r\n'error-circle': 'error-circle.svg',\r\n'info-error': 'info-error.svg',\r\n 'configuration-countable': 'configuration-countable.svg',\r\n edit: 'edit.svg',\r\n 'edit-table': 'edit-table.svg',\r\n hub: 'hub.svg',\r\n logout: 'logout.svg',\r\n notifications: 'notifications.svg',\r\n profile: 'profile.svg',\r\n 'profile-user-menu': 'profile-user-menu.svg',\r\n visibility: 'visibility-eye.svg',\r\n check: 'success-check_icon.svg',\r\n 'gif-icon-massive': 'gif-icon.svg',\r\n 'background-color-massive': 'background-color-massive.svg',\r\n 'content-edit-massive': 'trailing-icon.svg',\r\n 'edit-massive': 'edit-massive.svg',\r\n 'edit-massive-white': 'edit-white.svg',\r\n 'edit-gray': 'edit-gray.svg',\r\n 'check-update': 'check-update.svg',\r\n 'download-simple': 'download-simple.svg',\r\n 'download-file': 'download-file.svg',\r\n 'content-copy': 'content-copy.svg',\r\n 'add-create': 'add-create.svg',\r\n 'add-create-dark': 'add-create-dark.svg',\r\n 'add-create-dark-icon': 'add-create-dark-icon.svg',\r\n 'add-circle-filled': 'add_circle_filled.svg',\r\n 'add-circle-tonal': 'add_circle_tonal.svg',\r\n 'add-circle-outlined': 'add_circle_outline.svg',\r\n 'add-circle-elevated': 'add_circle_text.svg',\r\n 'add-circle-text': 'add_circle_text.svg',\r\n} satisfies Record<string, string>);\r\n\r\nfunction normalizeBasePath(basePath?: string): string {\r\n const targetPath = basePath ?? DEFAULT_ICON_BASE_PATH;\r\n\r\n if (/^(https?:)?\\/\\//.test(targetPath)) {\r\n return targetPath.replace(/\\/$/, '');\r\n }\r\n\r\n return targetPath.replace(/\\/$/, '');\r\n}\r\n\r\nexport type UiIconName = keyof typeof ICON_FILE_MAP;\r\n\r\nexport const UI_ICON_NAMES = Object.keys(ICON_FILE_MAP) as UiIconName[];\r\n\r\nexport interface RegisterUiIconOptions {\r\n basePath?: string;\r\n}\r\n\r\nexport function resolveUiIconResource(\r\n iconName: UiIconName,\r\n options?: RegisterUiIconOptions\r\n): string {\r\n const fileName = ICON_FILE_MAP[iconName];\r\n\r\n if (!fileName) {\r\n throw new Error(`Icon \"${iconName}\" is not registered in ICON_FILE_MAP.`);\r\n }\r\n\r\n return `${normalizeBasePath(options?.basePath)}/${fileName}`;\r\n}\r\n\r\nexport function registerUiIcons(\r\n registry: MatIconRegistry,\r\n sanitizer: DomSanitizer,\r\n icons: UiIconName[] = UI_ICON_NAMES,\r\n options?: RegisterUiIconOptions\r\n): void {\r\n const basePath = normalizeBasePath(options?.basePath);\r\n\r\n icons.forEach((iconName) => {\r\n const fileName = ICON_FILE_MAP[iconName];\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n const resourceUrl = `${basePath}/${fileName}`;\r\n registry.addSvgIcon(\r\n iconName,\r\n sanitizer.bypassSecurityTrustResourceUrl(resourceUrl)\r\n );\r\n });\r\n}\r\n","import { Directive, Input, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[cellTemplate], ng-template[libCellTemplate]',\r\n standalone: true,\r\n})\r\nexport class SharedTableCellTemplateDirective {\r\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\r\n private legacyKey = '';\r\n private modernKey = '';\r\n\r\n @Input()\r\n set cellTemplate(value: string | null | undefined) {\r\n this.legacyKey = value ?? '';\r\n }\r\n\r\n @Input()\r\n set libCellTemplate(value: string | null | undefined) {\r\n this.modernKey = value ?? '';\r\n }\r\n\r\n get key(): string {\r\n return this.modernKey || this.legacyKey;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n Component,\r\n ContentChildren,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n effect,\r\n input,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n inject,\r\n} from '@angular/core';\r\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\r\nimport { MatPaginator, MatPaginatorModule, PageEvent } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { SharedTableCellTemplateDirective } from './shared-table-cell-template.directive';\r\n\r\nexport interface TablePageEvent {\r\n pageIndex: number;\r\n pageSize: number;\r\n}\r\n\r\nexport interface SharedTableColumn<T extends Record<string, unknown> = Record<string, unknown>> {\r\n key: string;\r\n header: string;\r\n align?: 'start' | 'center' | 'end';\r\n width?: string;\r\n cell?: (row: T, index: number) => unknown;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-shared-table, shared-table',\r\n standalone: true,\r\n imports: [CommonModule, MatTableModule, MatPaginatorModule, MatProgressSpinnerModule],\r\n templateUrl: './shared-table.component.html',\r\n styleUrl: './shared-table.component.css'\r\n})\r\nexport class SharedTableComponent<T extends Record<string, unknown> = Record<string, unknown>>\r\n implements AfterContentInit, AfterViewInit, OnDestroy {\r\n readonly columns = input.required<ReadonlyArray<SharedTableColumn<T>>>();\r\n readonly data = input.required<ReadonlyArray<T>>();\r\n readonly caption = input<string | undefined>();\r\n readonly emptyState = input('Sin registros disponibles');\r\n readonly loading = input(false);\r\n readonly showPaginator = input(true);\r\n readonly pageSize = input(10);\r\n readonly pageSizeOptions = input<ReadonlyArray<number>>([5, 10, 20]);\r\n readonly enableRowClick = input(false);\r\n readonly totalElements = input<number | undefined>();\r\n @Output() rowClick = new EventEmitter<T>();\r\n @Output() pageChange = new EventEmitter<TablePageEvent>();\r\n @ContentChildren(SharedTableCellTemplateDirective, { descendants: true })\r\n cellTemplatesQuery!: QueryList<SharedTableCellTemplateDirective>;\r\n cellTemplates: Record<string, SharedTableCellTemplateDirective['template']> = {};\r\n private removeScrollSync: (() => void) | null = null;\r\n private _paginator?: MatPaginator;\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly dataSource = new MatTableDataSource<T>();\r\n displayedColumns: string[] = [];\r\n\r\n constructor() {\r\n effect(() => {\r\n const columns = this.columns();\r\n this.displayedColumns = columns.map((column) => String(column.key));\r\n });\r\n\r\n effect(() => {\r\n const rows = this.data();\r\n this.dataSource.data = rows.slice();\r\n });\r\n }\r\n\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator | undefined) {\r\n this._paginator = paginator;\r\n // En modo server-side (totalElements definido) NO conectamos al dataSource\r\n // para que Material no intente paginar los datos localmente\r\n if (this.totalElements() === undefined) {\r\n this.dataSource.paginator = paginator ?? null;\r\n }\r\n }\r\n\r\n @ViewChild('headerWrap') headerWrapRef?: ElementRef<HTMLDivElement>;\r\n @ViewChild('bodyWrap') bodyWrapRef?: ElementRef<HTMLDivElement>;\r\n\r\n ngAfterViewInit(): void {\r\n const header = this.headerWrapRef?.nativeElement;\r\n const body = this.bodyWrapRef?.nativeElement;\r\n if (header && body) {\r\n const onScroll = () => { header.scrollLeft = body.scrollLeft; };\r\n body.addEventListener('scroll', onScroll);\r\n this.removeScrollSync = () => body.removeEventListener('scroll', onScroll);\r\n }\r\n\r\n // Modo server-side: escuchar eventos del paginator y emitirlos hacia arriba\r\n if (this._paginator && this.totalElements() !== undefined) {\r\n this._paginator.page.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event: PageEvent) => {\r\n this.pageChange.emit({ pageIndex: event.pageIndex, pageSize: event.pageSize });\r\n });\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const rebuildTemplateMap = () => {\r\n const map: Record<string, SharedTableCellTemplateDirective['template']> = {};\r\n this.cellTemplatesQuery.forEach((entry) => {\r\n if (entry.key) {\r\n map[entry.key] = entry.template;\r\n }\r\n });\r\n this.cellTemplates = map;\r\n };\r\n\r\n rebuildTemplateMap();\r\n this.cellTemplatesQuery.changes\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => rebuildTemplateMap());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeScrollSync?.();\r\n this.removeScrollSync = null;\r\n }\r\n\r\n getCellValue(column: SharedTableColumn<T>, row: T, index: number): unknown {\r\n if (column.cell) {\r\n return column.cell(row, index);\r\n }\r\n\r\n const key = column.key as keyof T;\r\n const fallbackKey = column.key as keyof typeof row;\r\n return (row?.[key] ?? row?.[fallbackKey]) ?? '';\r\n }\r\n\r\n columnId(column: SharedTableColumn<T>): string {\r\n return String(column.key);\r\n }\r\n\r\n columnTrackBy = (_: number, column: SharedTableColumn<T>) => column.key;\r\n\r\n resolveTextAlign(column: SharedTableColumn<T>): 'start' | 'center' | 'end' {\r\n return column.align ?? 'start';\r\n }\r\n\r\n resolveWidth(column: SharedTableColumn<T>): string | null {\r\n return column.width ?? null;\r\n }\r\n\r\n shouldRenderPaginator(): boolean {\r\n return this.showPaginator();\r\n }\r\n\r\n onRowClick(event: MouseEvent, row: T): void {\r\n if (!this.enableRowClick()) return;\r\n\r\n const el = event.target as HTMLElement | null;\r\n // Evita abrir el side modal si el click fue sobre un elemento interactivo (acciones dentro de la fila)\r\n if (el?.closest('button, a, input, textarea, select, [role=\"button\"], mat-icon, mat-slide-toggle, mat-checkbox')) {\r\n return;\r\n }\r\n\r\n this.rowClick.emit(row);\r\n }\r\n}\r\n\r\nexport { SharedTableCellTemplateDirective } from './shared-table-cell-template.directive';\r\n","<figure class=\"shared-table\">\r\n <div\r\n class=\"shared-table__container mdc-data-table\"\r\n [class.shared-table__container--no-paginator]=\"!shouldRenderPaginator()\"\r\n >\r\n <!-- Header: scroll sincronizado con el cuerpo, sin barra visible -->\r\n <div class=\"shared-table__header-wrap\" #headerWrap>\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n class=\"shared-table__mat-table shared-table__mat-table--header\"\r\n >\r\n @for (column of columns(); track columnTrackBy($index, column)) {\r\n <ng-container [matColumnDef]=\"columnId(column)\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n [style.text-align]=\"resolveTextAlign(column)\"\r\n [style.width]=\"resolveWidth(column)\"\r\n >\r\n {{ column.header }}\r\n </th>\r\n </ng-container>\r\n }\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n </table>\r\n </div>\r\n <!-- Cuerpo: scroll horizontal aquí (barra debajo del header) -->\r\n <div\r\n class=\"shared-table__body-wrap\"\r\n [class.shared-table__body-wrap--loading]=\"loading()\"\r\n #bodyWrap\r\n >\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n class=\"shared-table__mat-table shared-table__mat-table--body\"\r\n >\r\n @for (column of columns(); track columnTrackBy($index, column)) {\r\n <ng-container [matColumnDef]=\"columnId(column)\">\r\n <td\r\n mat-cell\r\n *matCellDef=\"let row; let i = index\"\r\n [style.text-align]=\"resolveTextAlign(column)\"\r\n [style.width]=\"resolveWidth(column)\"\r\n >\r\n @if (cellTemplates[column.key]) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"cellTemplates[column.key]\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: row,\r\n index: i,\r\n column: column,\r\n }\"\r\n ></ng-container>\r\n } @else {\r\n {{ getCellValue(column, row, i) }}\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\r\n <tr mat-no-data-row>\r\n <td\r\n class=\"shared-table__empty\"\r\n [attr.colspan]=\"displayedColumns.length || 1\"\r\n >\r\n\r\n <span>loading: {{ loading() }}</span>\r\n @if (!loading()) {\r\n {{ emptyState() }}\r\n }\r\n </td>\r\n </tr>\r\n </table>\r\n @if (loading()) {\r\n <div class=\"shared-table__loading-overlay\">\r\n <mat-spinner\r\n class=\"shared-table__loading-spinner\"\r\n [diameter]=\"48\"\r\n [strokeWidth]=\"4\"\r\n ></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (shouldRenderPaginator()) {\r\n <mat-paginator\r\n class=\"shared-table__paginator\"\r\n [length]=\"totalElements() ?? data().length\"\r\n [pageSize]=\"pageSize()\"\r\n [pageSizeOptions]=\"pageSizeOptions()\"\r\n ></mat-paginator>\r\n }\r\n</figure>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n@Component({\r\n selector: 'lib-breadcrumb, shared-breadcrumb',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrl: './breadcrumb.component.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SharedBreadcrumbComponent implements OnInit {\r\n private readonly route = inject(ActivatedRoute, { optional: true });\r\n private readonly router = inject(Router, { optional: true });\r\n @Output() parentNavigate = new EventEmitter<string>();\r\n\r\n readonly parentLabel = signal<string>('');\r\n readonly parentUrl = signal<string>('');\r\n readonly currentLabel = signal<string>('');\r\n\r\n ngOnInit(): void {\r\n const currentRoute = this.route;\r\n if (!currentRoute) {\r\n return;\r\n }\r\n\r\n const parentRoute = currentRoute.parent;\r\n const parentData = parentRoute?.snapshot.data ?? {};\r\n const currentData = currentRoute.snapshot.data ?? {};\r\n\r\n const parentLabel = parentData['breadcrumb'] ?? currentData['parentBreadcrumb'] ?? '';\r\n const parentUrl = parentData['url'] ?? currentData['parentUrl'] ?? '/';\r\n const currentLabel = currentData['breadcrumb'] ?? '';\r\n\r\n this.parentLabel.set(parentLabel);\r\n this.parentUrl.set(parentUrl);\r\n this.currentLabel.set(currentLabel);\r\n }\r\n\r\n navigateToParent(): void {\r\n const target = this.parentUrl();\r\n if (target) {\r\n this.parentNavigate.emit(target);\r\n }\r\n }\r\n}\r\n\r\n","<nav class=\"shared-breadcrumb\" *ngIf=\"currentLabel() || parentLabel()\">\r\n @if (parentLabel()) {\r\n <button\r\n type=\"button\"\r\n class=\"shared-breadcrumb__parent\"\r\n (click)=\"navigateToParent()\"\r\n >\r\n <span class=\"shared-breadcrumb__parent-label\">{{ parentLabel() }}</span>\r\n </button>\r\n <span class=\"shared-breadcrumb__separator\">/</span>\r\n }\r\n <span class=\"shared-breadcrumb__current\">\r\n <span class=\"shared-breadcrumb__current-label\">{{ currentLabel() }}</span>\r\n </span>\r\n</nav>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output, computed, input } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport interface SidebarNavItem {\r\n id: string;\r\n label: string;\r\n icon: string;\r\n iconPath?: string;\r\n accessoryIcon?: string;\r\n accessoryIconPath?: string;\r\n ariaLabel?: string;\r\n disabled?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-sidebar',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './sidebar.html',\r\n styleUrl: './sidebar.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SidebarComponent {\r\n readonly items = input<readonly SidebarNavItem[]>([]);\r\n readonly selectedId = input<string | null>(null);\r\n readonly showLabels = input(true);\r\n readonly spritePath = input('assets/icons/sprite.svg');\r\n\r\n @Output() readonly itemSelected = new EventEmitter<SidebarNavItem>();\r\n\r\n protected readonly hasLabels = computed(() => this.showLabels() && this.items().some(({ label }) => !!label));\r\n\r\n protected onSelect(item: SidebarNavItem): void {\r\n if (item.disabled) {\r\n return;\r\n }\r\n\r\n this.itemSelected.emit(item);\r\n }\r\n\r\n protected isSelected(item: SidebarNavItem): boolean {\r\n return item.id === this.selectedId();\r\n }\r\n\r\n protected trackById(_index: number, item: SidebarNavItem): string {\r\n return item.id;\r\n }\r\n\r\n protected iconHref(icon: string): string {\r\n return `${this.spritePath()}#${icon}`;\r\n }\r\n\r\n protected accessoryHref(accessoryIcon: string): string {\r\n return `${this.spritePath()}#${accessoryIcon}`;\r\n }\r\n\r\n protected iconRef(item: SidebarNavItem): string | null {\r\n if (item.iconPath) {\r\n return item.iconPath;\r\n }\r\n\r\n if (item.icon) {\r\n return this.iconHref(item.icon);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected accessoryRef(item: SidebarNavItem): string | null {\r\n if (item.accessoryIconPath) {\r\n return item.accessoryIconPath;\r\n }\r\n\r\n if (item.accessoryIcon) {\r\n return this.accessoryHref(item.accessoryIcon);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected isSprite(ref: string | null | undefined): ref is string {\r\n return !!ref && ref.includes('#');\r\n }\r\n\r\n protected shouldShowLabel(item: SidebarNavItem): boolean {\r\n if (!item.label) {\r\n return false;\r\n }\r\n\r\n return this.showLabels();\r\n }\r\n}\r\n","<aside class=\"sidebar\" role=\"navigation\" aria-label=\"Navegación principal\" [class.sidebar--show-labels]=\"hasLabels()\">\r\n <div class=\"sidebar__header\">\r\n <ng-content select=\"[sidebar-header]\"></ng-content>\r\n </div>\r\n\r\n <nav class=\"sidebar__nav\" aria-label=\"Secciones\">\r\n <ul class=\"sidebar__list\">\r\n @for (item of items(); track trackById($index, item)) {\r\n <li\r\n class=\"sidebar__item\"\r\n [class.sidebar__item--selected]=\"isSelected(item)\"\r\n [class.sidebar__item--disabled]=\"item.disabled\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"sidebar__button\"\r\n [class.sidebar__button--expanded]=\"hasLabels()\"\r\n [class.sidebar__button--selected]=\"isSelected(item)\"\r\n [attr.aria-label]=\"item.ariaLabel ?? item.label\"\r\n [attr.aria-current]=\"isSelected(item) ? 'page' : null\"\r\n [attr.title]=\"shouldShowLabel(item) ? null : (item.ariaLabel || item.label)\"\r\n [disabled]=\"item.disabled\"\r\n (click)=\"onSelect(item)\"\r\n >\r\n <span class=\"sidebar__active\" [class.sidebar__active--expanded]=\"hasLabels()\">\r\n @if (iconRef(item); as iconSrc) {\r\n <span class=\"sidebar__icon\" aria-hidden=\"true\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"renderIcon\"\r\n [ngTemplateOutletContext]=\"{ $implicit: iconSrc, svgClass: 'sidebar__icon-svg', imgClass: 'sidebar__icon-img' }\"\r\n ></ng-container>\r\n </span>\r\n }\r\n\r\n @if (shouldShowLabel(item)) {\r\n <span class=\"sidebar__label\">{{ item.label }}</span>\r\n }\r\n\r\n @if (accessoryRef(item); as accessorySrc) {\r\n <span class=\"sidebar__accessory\" aria-hidden=\"true\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"renderIcon\"\r\n [ngTemplateOutletContext]=\"{ $implicit: accessorySrc, svgClass: 'sidebar__accessory-svg', imgClass: 'sidebar__accessory-img' }\"\r\n ></ng-container>\r\n </span>\r\n }\r\n </span>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n\r\n <div class=\"sidebar__footer\">\r\n <ng-content select=\"[sidebar-footer]\"></ng-content>\r\n </div>\r\n\r\n <ng-template #renderIcon let-src let-svgClass=\"svgClass\" let-imgClass=\"imgClass\">\r\n @if (isSprite(src)) {\r\n <svg [attr.class]=\"svgClass\">\r\n <use [attr.href]=\"src\"></use>\r\n </svg>\r\n } @else {\r\n <img [attr.class]=\"imgClass\" [src]=\"src\" alt=\"\" />\r\n }\r\n </ng-template>\r\n</aside>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output, computed, input } from '@angular/core';\r\nimport { resolveUiIconResource, UiIconName, UI_ICON_NAMES } from '../../icons/register-icons';\r\n\r\nexport interface HeaderAction {\r\n icon: string;\r\n ariaLabel: string;\r\n id?: string;\r\n iconPath?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-header',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './header.html',\r\n styleUrl: './header.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HeaderComponent {\r\n readonly showLeading = input(true);\r\n readonly leadingIcon = input('icon-menu');\r\n readonly leadingIconPath = input<string | null>(null);\r\n readonly leadingActionLabel = input('Abrir navegación');\r\n readonly brandLabel = input('Credix');\r\n readonly brandIcon = input('smiley');\r\n readonly brandIconPath = input<string | null>(null);\r\n readonly trailingActions = input<readonly HeaderAction[]>([\r\n { icon: 'search', ariaLabel: 'Abrir buscador' },\r\n ]);\r\n readonly iconBasePath = input('assets/icons');\r\n\r\n @Output() readonly leadingClick = new EventEmitter<void>();\r\n @Output() readonly actionClick = new EventEmitter<HeaderAction>();\r\n\r\n protected readonly iconAssetBasePath = computed(() =>\r\n this.normalizeAssetBasePath(this.iconBasePath())\r\n );\r\n\r\n protected readonly leadingIconUrl = computed(() =>\r\n this.resolveIconUrl(this.leadingIcon(), this.leadingIconPath())\r\n );\r\n\r\n protected readonly brandIconUrl = computed(() =>\r\n this.resolveIconUrl(this.brandIcon(), this.brandIconPath())\r\n );\r\n\r\n protected onLeadingClick(): void {\r\n this.leadingClick.emit();\r\n }\r\n\r\n protected onActionClick(action: HeaderAction): void {\r\n this.actionClick.emit(action);\r\n }\r\n\r\n protected trackByAction(_index: number, action: HeaderAction): string {\r\n return action.id ?? action.icon;\r\n }\r\n\r\n protected actionIconUrl(action: HeaderAction): string | null {\r\n return this.resolveIconUrl(action.icon, action.iconPath ?? null);\r\n }\r\n\r\n private resolveIconUrl(iconName: string | null | undefined, explicitPath: string | null): string | null {\r\n if (explicitPath) {\r\n if (explicitPath.includes('#')) {\r\n const spriteSymbol = explicitPath.split('#')[1];\r\n if (spriteSymbol) {\r\n const fallback = this.resolveIconUrl(spriteSymbol, null);\r\n if (fallback) {\r\n return fallback;\r\n }\r\n }\r\n }\r\n return explicitPath;\r\n }\r\n\r\n if (!iconName) {\r\n return null;\r\n }\r\n\r\n if (KNOWN_UI_ICON_NAMES.has(iconName as UiIconName)) {\r\n return resolveUiIconResource(iconName as UiIconName, {\r\n basePath: this.iconAssetBasePath(),\r\n });\r\n }\r\n\r\n return `${this.iconAssetBasePath()}/${iconName}.svg`;\r\n }\r\n\r\n private normalizeAssetBasePath(basePath: string | null | undefined): string {\r\n const targetPath = basePath ?? 'assets/icons';\r\n\r\n if (/^(https?:)?\\/\\//.test(targetPath)) {\r\n return targetPath.replace(/\\/$/, '');\r\n }\r\n\r\n return targetPath.replace(/\\/$/, '');\r\n }\r\n}\r\n\r\nconst KNOWN_UI_ICON_NAMES = new Set<UiIconName>(UI_ICON_NAMES);\r\n","<header class=\"app-bar\" role=\"banner\">\r\n <div class=\"app-bar__leading\">\r\n @if(showLeading()) {\r\n <button type=\"button\" class=\"app-bar__icon-button app-bar__icon-button--leading\" (click)=\"onLeadingClick()\"\r\n [attr.aria-label]=\"leadingActionLabel()\">\r\n @if (leadingIconUrl(); as leadingIconSrc) {\r\n <img class=\"app-bar__icon\" [src]=\"leadingIconSrc\" alt=\"\" aria-hidden=\"true\" />\r\n }\r\n </button>\r\n }\r\n </div>\r\n <div class=\"app-bar__brand\" role=\"img\" [attr.aria-label]=\"brandLabel()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"47\" height=\"25\" viewBox=\"0 0 47 25\" fill=\"none\">\r\n <path\r\n d=\"M34.0017 2.67521e-05C30.6579 -0.00672338 27.4427 1.26417 25.0377 3.54336C22.6327 5.82255 21.2268 8.93092 21.1179 12.2097C21.1179 12.3304 21.0564 12.5274 21.0564 12.6959C21.0564 14.8068 20.2017 16.8311 18.6803 18.3237C17.1589 19.8163 15.0955 20.6548 12.9439 20.6548C10.7923 20.6548 8.72889 19.8163 7.2075 18.3237C5.68612 16.8311 4.83141 14.8068 4.83141 12.6959C4.83073 12.0678 4.57609 11.4656 4.12335 11.0214C3.67061 10.5773 3.05676 10.3274 2.4165 10.3268C2.09598 10.3218 1.77774 10.3805 1.48091 10.4992C1.18407 10.6179 0.914746 10.7943 0.689116 11.0177C0.463486 11.2411 0.286201 11.5069 0.167908 11.7992C0.0496149 12.0915 -0.00724651 12.4042 0.000738184 12.7186C0.114789 15.972 1.49612 19.0588 3.86027 21.3431C6.22441 23.6274 9.39139 24.9353 12.709 24.9977C16.0266 25.06 19.2423 23.8719 21.6939 21.678C24.1454 19.4842 25.6462 16.4516 25.8871 13.2048C25.9417 13.0487 25.9626 12.8831 25.9486 12.7186C25.9486 10.6078 26.8033 8.58341 28.3247 7.09083C29.8461 5.59826 31.9095 4.75974 34.0611 4.75974C36.2127 4.75974 38.2761 5.59826 39.7975 7.09083C41.3189 8.58341 42.1736 10.6078 42.1736 12.7186C42.1562 13.0399 42.2056 13.3613 42.3189 13.6632C42.4322 13.9651 42.607 14.2412 42.8327 14.4747C43.0583 14.7082 43.3301 14.8941 43.6313 15.0212C43.9326 15.1482 44.2571 15.2138 44.5851 15.2138C44.913 15.2138 45.2375 15.1482 45.5388 15.0212C45.8401 14.8941 46.1119 14.7082 46.3375 14.4747C46.5632 14.2412 46.738 13.9651 46.8513 13.6632C46.9646 13.3613 47.014 13.0399 46.9966 12.7186C46.99 9.34216 45.6178 6.10632 43.1814 3.72165C40.7449 1.33699 37.4433 -0.00153433 34.0017 2.67521e-05Z\"\r\n fill=\"#E42313\" />\r\n <path\r\n d=\"M10.5943 6.75042C10.5937 7.32697 10.4188 7.89037 10.0918 8.36943C9.76482 8.84848 9.30041 9.22168 8.75728 9.44185C8.21414 9.66203 7.61667 9.71929 7.04037 9.60641C6.46407 9.49352 5.93482 9.21556 5.51951 8.80765C5.1042 8.39974 4.82148 7.88019 4.70708 7.31468C4.59268 6.74917 4.65174 6.16307 4.87678 5.63048C5.10183 5.09789 5.48277 4.64271 5.97145 4.32247C6.46013 4.00222 7.03461 3.8313 7.62228 3.8313C8.40773 3.84195 9.15792 4.15302 9.71305 4.69826C10.2682 5.24351 10.5844 5.97984 10.5943 6.75042Z\"\r\n fill=\"#E42313\" />\r\n <path\r\n d=\"M19.3841 6.75044C19.3841 7.52375 19.0709 8.26539 18.5136 8.8122C17.9562 9.35901 17.2003 9.66621 16.412 9.66621C15.6238 9.66621 14.8678 9.35901 14.3104 8.8122C13.7531 8.26539 13.44 7.52375 13.44 6.75044C13.4347 6.36594 13.5079 5.9843 13.6554 5.62802C13.8028 5.27174 14.0215 4.94802 14.2985 4.67596C14.5755 4.4039 14.9052 4.18901 15.2682 4.04394C15.6312 3.89888 16.0201 3.82658 16.412 3.83132C17.1975 3.84196 17.9476 4.15303 18.5028 4.69828C19.0579 5.24352 19.3741 5.97985 19.3841 6.75044Z\"\r\n fill=\"#E42313\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"app-bar__actions\">\r\n @for (action of trailingActions(); track trackByAction($index, action)) {\r\n <button type=\"button\" class=\"app-bar__icon-button app-bar__icon-button--trailing\" (click)=\"onActionClick(action)\"\r\n [attr.aria-label]=\"action.ariaLabel\">\r\n @if (actionIconUrl(action); as actionIconSrc) {\r\n <img class=\"app-bar__icon\" [src]=\"actionIconSrc\" alt=\"\" aria-hidden=\"true\" />\r\n }\r\n </button>\r\n }\r\n </div>\r\n</header>","import { ChangeDetectionStrategy, Component, computed, effect, input, output } from '@angular/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\ntype LibTextFieldAppearance = MatFormFieldAppearance | 'outlined' | 'filled';\r\n\r\n@Component({\r\n selector: 'lib-text-field',\r\n standalone: true,\r\n imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, MatIconModule],\r\n templateUrl: './text-field.html',\r\n styleUrl: './text-field.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibTextFieldComponent {\r\n private disabledAppliedByInput = false;\r\n\r\n readonly label = input.required<string>();\r\n readonly control = input.required<FormControl>();\r\n readonly appearance = input<LibTextFieldAppearance>('outline');\r\n /**\r\n * @deprecated Use `appearance`. Kept for compatibility.\r\n */\r\n readonly apperance = input<LibTextFieldAppearance | null>(null);\r\n readonly suffixIcon = input<string>('');\r\n readonly suffixTextIcon = input<string>('');\r\n readonly prefixIcon = input<string>('');\r\n readonly prefixIconSrc = input<string>('');\r\n /**\r\n * @deprecated Use `prefixIcon`. Kept for compatibility.\r\n */\r\n readonly preffixIcon = input<string | null>(null);\r\n readonly error = input<string | null>(null);\r\n readonly errorState = input<boolean | null>(null);\r\n readonly hint = input<string>('');\r\n readonly suffixEvent = output<void>();\r\n readonly showSuffix = input(false, { transform: coerceBooleanProperty });\r\n readonly suffixIconBand = input(false, { transform: coerceBooleanProperty });\r\n readonly placeholder = input<string>('');\r\n readonly autocomplete = input<string>('off');\r\n readonly fullWidth = input(false, { transform: coerceBooleanProperty });\r\n readonly width = input<string | null, string | number | null>(null, {\r\n transform: (value) => {\r\n if (value == null || value === '') {\r\n return null;\r\n }\r\n return typeof value === 'number' ? `${value}px` : String(value);\r\n },\r\n });\r\n readonly disabled = input(false, { transform: coerceBooleanProperty });\r\n readonly type = input<string>('text');\r\n readonly hideRequiredMarker = input(false, { transform: coerceBooleanProperty });\r\n\r\n readonly resolvedAppearance = computed<MatFormFieldAppearance>(() => {\r\n const raw = this.apperance() ?? this.appearance();\r\n if (raw === 'outlined') return 'outline';\r\n if (raw === 'filled') return 'fill';\r\n return raw;\r\n });\r\n readonly resolvedPrefixIcon = computed(() => this.preffixIcon() ?? this.prefixIcon());\r\n readonly widthStyle = computed(() => (this.fullWidth() ? '100%' : this.width()));\r\n readonly shouldShowSuffix = computed(\r\n () => this.showSuffix() || (this.suffixIconBand() && (!!this.suffixIcon() || !!this.suffixTextIcon()))\r\n );\r\n readonly shouldShowError = computed(() => {\r\n const forcedError = this.errorState();\r\n if (forcedError !== null) {\r\n return forcedError;\r\n }\r\n\r\n const control = this.control();\r\n return control.invalid && (control.dirty || control.touched);\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n const control = this.control();\r\n const shouldDisable = this.disabled();\r\n\r\n if (shouldDisable) {\r\n if (control.enabled) {\r\n control.disable({ emitEvent: false });\r\n }\r\n this.disabledAppliedByInput = true;\r\n return;\r\n }\r\n\r\n if (this.disabledAppliedByInput && control.disabled) {\r\n control.enable({ emitEvent: false });\r\n }\r\n\r\n this.disabledAppliedByInput = false;\r\n });\r\n }\r\n\r\n pressSuffixEvent(): void {\r\n this.suffixEvent.emit();\r\n }\r\n}\r\n","<mat-form-field [appearance]=\"resolvedAppearance()\" [style.width]=\"widthStyle() ?? null\" [hideRequiredMarker]=\"hideRequiredMarker()\">\r\n @if(prefixIconSrc()){\r\n <mat-icon\r\n matPrefix\r\n class=\"lib-text-field__prefix-image\"\r\n [svgIcon]=\"prefixIconSrc()\"\r\n (click)=\"pressSuffixEvent()\"\r\n >\r\n {{ prefixIconSrc() }}\r\n </mat-icon>\r\n } @else if(resolvedPrefixIcon()){\r\n <mat-icon matPrefix>\r\n {{ resolvedPrefixIcon() }}\r\n </mat-icon>\r\n }\r\n\r\n <mat-label>{{ label() }}</mat-label>\r\n <input matInput [type]=\"type()\" [formControl]=\"control()\" [placeholder]=\"placeholder()\" [attr.autocomplete]=\"autocomplete()\" />\r\n\r\n @if(shouldShowError() && error()) {\r\n <mat-error>{{ error() }}</mat-error>\r\n }\r\n\r\n @if(hint()) {\r\n <mat-hint>{{ hint() }}</mat-hint>\r\n }\r\n\r\n @if(shouldShowSuffix()) {\r\n <mat-icon\r\n matSuffix\r\n class=\"lib-text-field__icon lib-text-field__icon--suffix\"\r\n [svgIcon]=\"suffixIcon()\"\r\n (click)=\"pressSuffixEvent()\"\r\n >\r\n {{ suffixTextIcon() }}\r\n </mat-icon>\r\n }\r\n</mat-form-field>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n output,\r\n computed,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@Component({\r\n selector: 'lib-checkbox',\r\n standalone: true,\r\n imports: [MatCheckboxModule],\r\n templateUrl: './checkbox.html',\r\n styleUrl: './checkbox.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibCheckboxComponent {\r\n checked = input(false);\r\n indeterminate = input(false);\r\n disabled = input(false);\r\n error = input(false);\r\n /** Id para asociar label (accesibilidad). Si no se pasa, se genera uno interno. */\r\n labelId = input<string | null>(null);\r\n\r\n readonly checkedChange = output<boolean>();\r\n readonly indeterminateChange = output<boolean>();\r\n\r\n @HostBinding('attr.aria-disabled') get ariaDisabled(): boolean | null {\r\n return this.disabled() ? true : null;\r\n }\r\n\r\n protected readonly ariaChecked = computed(() => {\r\n if (this.indeterminate()) return 'mixed';\r\n return this.checked() ? 'true' : 'false';\r\n });\r\n\r\n protected onAction(event: Event): void {\r\n event.preventDefault();\r\n if (this.disabled()) return;\r\n if (this.indeterminate()) {\r\n this.indeterminateChange.emit(false);\r\n this.checkedChange.emit(true);\r\n } else {\r\n this.checkedChange.emit(!this.checked());\r\n }\r\n }\r\n\r\n protected onKeydown(event: KeyboardEvent): void {\r\n if (event.key === ' ' || event.key === 'Enter') {\r\n event.preventDefault();\r\n this.onAction(event);\r\n }\r\n }\r\n\r\n protected onMatCheckboxChange(event: MatCheckboxChange): void {\r\n this.checkedChange.emit(event.checked);\r\n if (event.checked && this.indeterminate()) {\r\n this.indeterminateChange.emit(false);\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"lib-checkbox__wrapper\"\r\n [class.lib-checkbox--disabled]=\"disabled()\"\r\n>\r\n <mat-checkbox\r\n [checked]=\"checked()\"\r\n [indeterminate]=\"indeterminate()\"\r\n [disabled]=\"disabled()\"\r\n (change)=\"onMatCheckboxChange($event)\"\r\n >\r\n <ng-content />\r\n </mat-checkbox>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n input,\r\n OnInit,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\r\nimport { MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule, MatSelectChange } from '@angular/material/select';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { LibCheckboxComponent } from '../checkbox/checkbox';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\n\r\nexport interface LibSelectOption<T = string> {\r\n value: T;\r\n label: string;\r\n}\r\n\r\ntype VirtualRow<T> =\r\n | { kind: 'selectAll' }\r\n | { kind: 'option'; option: LibSelectOption<T> };\r\n\r\nexport type LibSelectMode = 'single' | 'multiple';\r\n\r\n@Component({\r\n selector: 'lib-select-field',\r\n standalone: true,\r\n imports: [MatFormFieldModule, MatSelectModule, ScrollingModule, MatInputModule, MatIconModule, LibCheckboxComponent],\r\n templateUrl: './select-field.html',\r\n styleUrl: './select-field.css',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => LibSelectFieldComponent),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibSelectFieldComponent<T = string> implements ControlValueAccessor, OnInit {\r\n private static readonly PANEL_CONTENT_HEIGHT = 240;\r\n private static readonly FILTER_ROW_HEIGHT = 48;\r\n private static readonly OPTION_ROW_HEIGHT = 48;\r\n\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly injector = inject(Injector);\r\n private ngControl: NgControl | null = null;\r\n\r\n readonly label = input('');\r\n readonly appearance = input<'outline' | 'filled'>('outline');\r\n readonly placeholder = input('Elegir opción');\r\n readonly options = input<LibSelectOption<T>[]>([]);\r\n readonly mode = input<LibSelectMode>('single');\r\n readonly filterable = input(true, { transform: coerceBooleanProperty });\r\n readonly filterPlaceholder = input('Buscar...');\r\n readonly disabled = input(false, { transform: coerceBooleanProperty });\r\n readonly required = input(false, { transform: coerceBooleanProperty });\r\n readonly width = input<string | number | null>(null);\r\n readonly selectAllLabel = input('Seleccionar todos');\r\n readonly widthStyle = computed(() => {\r\n const v = this.width();\r\n return v == null || v === '' ? null : typeof v === 'number' ? `${v}px` : String(v);\r\n });\r\n readonly matAppearance = computed<MatFormFieldAppearance>(() =>\r\n this.appearance() === 'filled' ? 'fill' : 'outline'\r\n );\r\n\r\n readonly valueChange = output<T | T[]>();\r\n\r\n readonly panelOpen = signal(false);\r\n readonly filterTerm = signal('');\r\n readonly disabledByControl = signal(false);\r\n\r\n readonly isMultiple = computed(() => this.mode() === 'multiple');\r\n readonly virtualViewportMaxHeight = computed(() =>\r\n this.filterable()\r\n ? LibSelectFieldComponent.PANEL_CONTENT_HEIGHT - LibSelectFieldComponent.FILTER_ROW_HEIGHT\r\n : LibSelectFieldComponent.PANEL_CONTENT_HEIGHT\r\n );\r\n\r\n readonly filteredOptions = computed(() => {\r\n const opts = this.options();\r\n const term = this.filterTerm().trim().toLowerCase();\r\n if (!term) return opts;\r\n return opts.filter(\r\n (o) => o.label.toLowerCase().includes(term)\r\n );\r\n });\r\n\r\n readonly virtualRows = computed<VirtualRow<T>[]>(() => {\r\n const rows: VirtualRow<T>[] = this.filteredOptions().map((option) => ({\r\n kind: 'option',\r\n option,\r\n }));\r\n\r\n if (this.isMultiple()) {\r\n rows.unshift({ kind: 'selectAll' });\r\n }\r\n\r\n return rows;\r\n });\r\n\r\n readonly virtualViewportHeight = computed(() => {\r\n const rowsCount = this.virtualRows().length;\r\n const contentHeight = rowsCount * LibSelectFieldComponent.OPTION_ROW_HEIGHT;\r\n const maxHeight = this.virtualViewportMaxHeight();\r\n const minHeight = rowsCount > 0 ? LibSelectFieldComponent.OPTION_ROW_HEIGHT : 0;\r\n\r\n return Math.max(minHeight, Math.min(contentHeight, maxHeight));\r\n });\r\n\r\n readonly allSelected = computed(() => {\r\n if (!this.isMultiple()) {\r\n return false;\r\n }\r\n const opts = this.options();\r\n const current = this.value();\r\n if (!Array.isArray(current) || !opts.length) {\r\n return false;\r\n }\r\n const values = opts.map((o) => o.value);\r\n return values.every((v) => current.includes(v));\r\n });\r\n\r\n readonly selectedLabels = computed(() => {\r\n const current = this.value();\r\n if (!Array.isArray(current) || !current.length) {\r\n return [] as string[];\r\n }\r\n const selectedSet = new Set(current);\r\n return this.options()\r\n .filter((o) => selectedSet.has(o.value))\r\n .map((o) => o.label);\r\n });\r\n\r\n readonly multiTriggerLabel = computed(() => {\r\n const labels = this.selectedLabels();\r\n if (!labels.length) {\r\n return '';\r\n }\r\n if (labels.length === 1) {\r\n return labels[0];\r\n }\r\n return `${labels[0]} (+${labels.length - 1} items)`;\r\n });\r\n\r\n readonly selectAllIndeterminate = computed(() => {\r\n if (!this.isMultiple()) {\r\n return false;\r\n }\r\n const opts = this.options();\r\n const current = this.value();\r\n if (!Array.isArray(current) || !opts.length) {\r\n return false;\r\n }\r\n const selectedCount = opts.filter((o) => current.includes(o.value)).length;\r\n return selectedCount > 0 && selectedCount < opts.length;\r\n });\r\n\r\n private readonly value = signal<T | T[] | null>(null);\r\n private onChange: (v: T | T[] | null) => void = () => {\r\n /* assigned by registerOnChange */\r\n };\r\n private onTouched: () => void = () => {\r\n /* assigned by registerOnTouched */\r\n };\r\n\r\n ngOnInit(): void {\r\n this.ngControl = this.injector.get(NgControl, null);\r\n if (this.ngControl) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n if (this.ngControl?.valueChanges) {\r\n this.ngControl.valueChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.cdr.markForCheck());\r\n }\r\n }\r\n\r\n onPanelOpenChange(open: boolean): void {\r\n this.panelOpen.set(open);\r\n if (!open) this.filterTerm.set('');\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onFilterInput(event: Event): void {\r\n const el = event.target as HTMLInputElement;\r\n this.filterTerm.set(el?.value ?? '');\r\n }\r\n\r\n onFilterKeydown(event: KeyboardEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n onSelectionChange(change: MatSelectChange): void {\r\n if (this.isMultiple()) {\r\n const incoming = Array.isArray(change.value) ? (change.value as T[]) : [];\r\n const options = this.options().map((o) => o.value);\r\n const optionSet = new Set(options);\r\n const hasUnknownValues = incoming.some((v) => !optionSet.has(v));\r\n\r\n // Ignore synthetic values emitted by the auxiliary \"select all\" option.\r\n if (hasUnknownValues) {\r\n this.cdr.markForCheck();\r\n return;\r\n }\r\n\r\n const incomingSet = new Set(incoming);\r\n const normalized = options.filter((v) => incomingSet.has(v)) as T[];\r\n this.value.set(normalized);\r\n this.onChange(normalized);\r\n this.valueChange.emit(normalized);\r\n this.cdr.markForCheck();\r\n return;\r\n }\r\n\r\n this.value.set(change.value);\r\n this.onChange(change.value);\r\n this.valueChange.emit(change.value);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onToggleSelectAll(checked: boolean): void {\r\n if (!this.isMultiple()) {\r\n return;\r\n }\r\n const options = this.options();\r\n const currentValue = this.value();\r\n const current = Array.isArray(currentValue) ? [...currentValue] : [];\r\n if (checked) {\r\n const toAdd = options.map((o) => o.value);\r\n const set = new Set(current);\r\n for (const v of toAdd) {\r\n set.add(v);\r\n }\r\n this.value.set(Array.from(set) as T[]);\r\n } else {\r\n const toRemove = new Set(options.map((o) => o.value));\r\n this.value.set(current.filter((v) => !toRemove.has(v as T)) as T[]);\r\n }\r\n const updated = this.value();\r\n this.onChange(updated);\r\n this.valueChange.emit(updated as T | T[]);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onSelectAllCheckedChange(checked: boolean): void {\r\n this.onToggleSelectAll(checked);\r\n }\r\n\r\n onOptionCheckedChange(value: T, checked: boolean): void {\r\n if (!this.isMultiple()) {\r\n return;\r\n }\r\n const currentValue = this.value();\r\n const current = Array.isArray(currentValue) ? [...currentValue] : [];\r\n const set = new Set(current);\r\n if (checked) {\r\n set.add(value);\r\n } else {\r\n set.delete(value);\r\n }\r\n this.value.set(Array.from(set) as T[]);\r\n const updated = this.value();\r\n this.onChange(updated);\r\n this.valueChange.emit(updated as T | T[]);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n writeValue(value: T | T[] | null): void {\r\n this.value.set(value);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: (v: T | T[] | null) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledByControl.set(isDisabled);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n get displayValue(): T | T[] | null {\r\n return this.value();\r\n }\r\n\r\n toggledAllSelection(){\r\n if (this.allSelected()) {\r\n this.onToggleSelectAll(false);\r\n return;\r\n }\r\n this.onToggleSelectAll(true);\r\n }\r\n\r\n\r\n isSelected(value: T): boolean {\r\n const current = this.value();\r\n if (!Array.isArray(current)) {\r\n return false;\r\n }\r\n return current.includes(value);\r\n }\r\n\r\n trackByVirtualRow(_index: number, row: VirtualRow<T>): string {\r\n return row.kind === 'selectAll' ? '__select-all__' : String(row.option.value);\r\n }\r\n}\r\n","<mat-form-field\r\n class=\"lib-select-field__field\"\r\n [appearance]=\"matAppearance()\"\r\n [style.width]=\"widthStyle() ?? null\"\r\n>\r\n @if (label()) {\r\n <mat-label>{{ label() }}</mat-label>\r\n }\r\n <mat-select\r\n [value]=\"displayValue\"\r\n [multiple]=\"isMultiple()\"\r\n [disabled]=\"disabled() || disabledByControl()\"\r\n [required]=\"required()\"\r\n [placeholder]=\"placeholder()\"\r\n panelClass=\"lib-select-field-panel\"\r\n (openedChange)=\"onPanelOpenChange($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n >\r\n @if (isMultiple()) {\r\n <mat-select-trigger\r\n >{{ multiTriggerLabel() || placeholder() }}</mat-select-trigger\r\n >\r\n } @if (filterable()) {\r\n <div\r\n class=\"lib-select-field__filter-option\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n >\r\n <input\r\n #filterInput\r\n class=\"lib-select-field__filter-input\"\r\n type=\"text\"\r\n [placeholder]=\"filterPlaceholder()\"\r\n [value]=\"filterTerm()\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (click)=\"$event.stopPropagation()\"\r\n (input)=\"onFilterInput($event)\"\r\n (keydown)=\"onFilterKeydown($event)\"\r\n />\r\n </div>\r\n }\r\n <cdk-virtual-scroll-viewport\r\n class=\"lib-select-field__viewport app-scrollbar-figma\"\r\n [itemSize]=\"48\"\r\n minBufferPx=\"240\"\r\n maxBufferPx=\"240\"\r\n [style.height.px]=\"virtualViewportHeight()\"\r\n >\r\n <div\r\n *cdkVirtualFor=\"let row of virtualRows(); trackBy: trackByVirtualRow\"\r\n class=\"lib-select-field__virtual-row\"\r\n >\r\n @if (row.kind === 'selectAll') {\r\n <div\r\n class=\"lib-select-field__select-all-option\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (click)=\"toggledAllSelection(); $event.stopPropagation()\"\r\n (keydown.enter)=\"toggledAllSelection(); $event.preventDefault(); $event.stopPropagation()\"\r\n (keydown.space)=\"toggledAllSelection(); $event.preventDefault(); $event.stopPropagation()\"\r\n >\r\n <span class=\"lib-select-field__option-row\">\r\n <lib-checkbox\r\n [checked]=\"allSelected()\"\r\n [indeterminate]=\"selectAllIndeterminate()\"\r\n (click)=\"$event.stopPropagation()\"\r\n (checkedChange)=\"onSelectAllCheckedChange($event)\"\r\n />\r\n <span>{{ selectAllLabel() }}</span>\r\n </span>\r\n </div>\r\n } @else {\r\n <mat-option [value]=\"row.option.value\">\r\n @if (isMultiple()) {\r\n <span class=\"lib-select-field__option-row\">\r\n <lib-checkbox\r\n [checked]=\"isSelected(row.option.value)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (checkedChange)=\"onOptionCheckedChange(row.option.value, $event)\"\r\n />\r\n <span>{{ row.option.label }}</span>\r\n </span>\r\n } @else {\r\n {{ row.option.label }}\r\n }\r\n </mat-option>\r\n }\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-select>\r\n <mat-icon class=\"lib-select-field__arrow\" matSuffix>\r\n {{ panelOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\r\n </mat-icon>\r\n</mat-form-field>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n contentChild,\r\n input,\r\n output,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { LibCheckboxComponent } from '../checkbox/checkbox';\r\n\r\nexport interface LibListItemData {\r\n id: string;\r\n label: string;\r\n description?: string;\r\n avatarText?: string | null;\r\n avatarImage?: string | null;\r\n avatarAlt?: string;\r\n disabled?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-list-item',\r\n standalone: true,\r\n imports: [MatListModule, MatCheckboxModule, LibCheckboxComponent, NgTemplateOutlet],\r\n templateUrl: './list-item.html',\r\n styleUrl: './list-item.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibListItemComponent {\r\n items = input<LibListItemData[]>([]);\r\n selectedIds = input<string[]>([]);\r\n multiple = input(true);\r\n disabled = input(false);\r\n showCheckbox = input(true);\r\n showAvatar = input(true);\r\n showDividers = input(true);\r\n /** Posición del checkbox: 'leading' (izquierda) o 'trailing' (derecha). Por defecto 'trailing' según diseño Figma. */\r\n checkboxPosition = input<'leading' | 'trailing'>('trailing');\r\n\r\n /** Ancho de la lista. Acepta valores CSS (ej: '18.8rem', '300px', '100%'). Si no se pasa, la lista ocupa el ancho disponible. */\r\n width = input<string | undefined>(undefined);\r\n /** Fondo personalizado de la lista/items. Si no se define, usa el fondo por defecto de tokens. */\r\n backgroundColor = input<string | undefined>(undefined);\r\n\r\n readonly selectionChange = output<string[]>();\r\n readonly itemClick = output<LibListItemData>();\r\n\r\n /** Template para proyectar contenido arriba de la lista (ej: checkbox, filtros) */\r\n readonly headerTemplate = contentChild<TemplateRef<unknown>>('headerTemplate');\r\n\r\n /** Template para proyectar el contenido personalizado de cada item. Usar: let-item para acceder al item */\r\n readonly itemTemplate = contentChild<TemplateRef<{ $implicit: LibListItemData }>>('itemTemplate');\r\n\r\n readonly selectedSet = computed(() => new Set(this.selectedIds()));\r\n\r\n trackById(_index: number, item: LibListItemData): string {\r\n return item.id;\r\n }\r\n\r\n avatarInitial(item: LibListItemData): string {\r\n const explicit = item.avatarText?.trim();\r\n if (explicit) {\r\n return explicit.slice(0, 2).toUpperCase();\r\n }\r\n\r\n const label = item.label?.trim();\r\n return label ? label.charAt(0).toUpperCase() : '';\r\n }\r\n\r\n isItemSelected(item: LibListItemData): boolean {\r\n return this.selectedSet().has(item.id);\r\n }\r\n\r\n onCheckboxChange(item: LibListItemData, selected: boolean): void {\r\n const current = new Set(this.selectedIds());\r\n if (this.multiple()) {\r\n if (selected) {\r\n current.add(item.id);\r\n } else {\r\n current.delete(item.id);\r\n }\r\n } else {\r\n this.selectionChange.emit(selected ? [item.id] : []);\r\n return;\r\n }\r\n this.selectionChange.emit([...current]);\r\n }\r\n\r\n onRowClick(item: LibListItemData, _event: Event): void {\r\n if (this.showCheckbox() && !(item.disabled ?? this.disabled())) {\r\n const isSelected = this.isItemSelected(item);\r\n this.onCheckboxChange(item, !isSelected);\r\n }\r\n this.itemClick.emit(item);\r\n }\r\n\r\n onItemClick(item: LibListItemData): void {\r\n this.itemClick.emit(item);\r\n }\r\n}\r\n","<div\r\n class=\"ui-list-item__container\"\r\n [style.width]=\"width() ?? '100%'\"\r\n [style.min-width]=\"width() ?? null\"\r\n [style.--lib-list-item-background]=\"backgroundColor() ?? null\"\r\n>\r\n @if (headerTemplate()) {\r\n <div class=\"ui-list-item__header\">\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate()!\" />\r\n </div>\r\n}\r\n<mat-list role=\"list\">\r\n @for (item of items(); track trackById($index, item)) {\r\n <mat-list-item\r\n role=\"listitem\"\r\n class=\"ui-list-option\"\r\n [class.ui-list-item--disabled]=\"item.disabled ?? false\"\r\n [class.ui-list-item--selected]=\"showCheckbox() && isItemSelected(item)\"\r\n [class.ui-list-item--with-divider]=\"showDividers()\"\r\n [disableRipple]=\"true\"\r\n (click)=\"onRowClick(item, $event)\"\r\n >\r\n @if (itemTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\r\n } @else {\r\n <div class=\"ui-list-item\" [class.ui-list-item--with-divider]=\"showDividers()\">\r\n <span class=\"ui-list-item__state-layer\"></span>\r\n\r\n @if (showCheckbox() && checkboxPosition() === 'leading') {\r\n <span class=\"ui-list-item__leading ui-list-item__leading--checkbox\">\r\n <mat-checkbox\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"item.disabled ?? disabled()\"\r\n (change)=\"onCheckboxChange(item, $event.checked)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </span>\r\n }\r\n\r\n @if (showAvatar() && !showCheckbox()) {\r\n <span class=\"ui-list-item__leading\">\r\n @if (item.avatarImage) {\r\n <img\r\n class=\"ui-list-item__avatar-image\"\r\n [src]=\"item.avatarImage\"\r\n [attr.alt]=\"item.avatarAlt || item.label\"\r\n loading=\"lazy\"\r\n />\r\n } @else {\r\n <span class=\"ui-list-item__avatar-text\" aria-hidden=\"true\">\r\n {{ avatarInitial(item) }}\r\n </span>\r\n }\r\n </span>\r\n }\r\n\r\n <span class=\"ui-list-item__content\">\r\n <span class=\"ui-list-item__label\">{{ item.label }}</span>\r\n @if (item.description) {\r\n <span class=\"ui-list-item__description\">{{ item.description }}</span>\r\n }\r\n </span>\r\n\r\n @if (showCheckbox() && checkboxPosition() === 'trailing') {\r\n <span class=\"ui-list-item__trailing ui-list-item__trailing--checkbox\">\r\n <lib-checkbox\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"item.disabled ?? disabled()\"\r\n (checkedChange)=\"onCheckboxChange(item, $event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </span>\r\n }\r\n </div>\r\n }\r\n </mat-list-item>\r\n }\r\n</mat-list>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { LibCheckboxComponent } from './checkbox';\r\n\r\n@Component({\r\n selector: 'lib-checkbox-showcase',\r\n standalone: true,\r\n imports: [LibCheckboxComponent],\r\n templateUrl: './checkbox-showcase.component.html',\r\n styleUrls: ['./checkbox-showcase.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibCheckboxShowcaseComponent {}\r\n\r\n","<section class=\"lib-checkbox-showcase\">\r\n <h2 class=\"lib-checkbox-showcase__title\">Checkbox – estados (tokens Figma)</h2>\r\n\r\n <div class=\"lib-checkbox-showcase__group\">\r\n <h3>Enabled</h3>\r\n <div class=\"lib-checkbox-showcase__row\">\r\n <lib-checkbox>Unselected</lib-checkbox>\r\n <lib-checkbox [checked]=\"true\">Selected</lib-checkbox>\r\n <lib-checkbox [indeterminate]=\"true\">Indeterminate</lib-checkbox>\r\n <lib-checkbox [error]=\"true\">Error (unselected)</lib-checkbox>\r\n <lib-checkbox [checked]=\"true\" [error]=\"true\">Error (selected)</lib-checkbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"lib-checkbox-showcase__group\">\r\n <h3>Disabled</h3>\r\n <div class=\"lib-checkbox-showcase__row\">\r\n <lib-checkbox [disabled]=\"true\">Unselected</lib-checkbox>\r\n <lib-checkbox [disabled]=\"true\" [checked]=\"true\">Selected</lib-checkbox>\r\n <lib-checkbox [disabled]=\"true\" [indeterminate]=\"true\">Indeterminate</lib-checkbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"lib-checkbox-showcase__group\">\r\n <h3>Interactive (hover / pressed)</h3>\r\n <p class=\"lib-checkbox-showcase__hint\">\r\n Pasa el mouse y haz click para ver hover / pressed según tokens de Figma.\r\n </p>\r\n <div class=\"lib-checkbox-showcase__row\">\r\n <lib-checkbox>Unselected (hover / pressed)</lib-checkbox>\r\n <lib-checkbox [checked]=\"true\">Selected (hover / pressed)</lib-checkbox>\r\n <lib-checkbox [indeterminate]=\"true\">Indeterminate (hover / pressed)</lib-checkbox>\r\n </div>\r\n </div>\r\n</section>\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n forwardRef,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\nexport interface LibMenuOption<T = string> {\r\n value: T;\r\n label: string;\r\n}\r\n\r\nexport type LibMenuMode = 'single' | 'multiple';\r\n\r\n@Component({\r\n selector: 'lib-menu',\r\n standalone: true,\r\n imports: [\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatCheckboxModule,\r\n ],\r\n templateUrl: './menu.html',\r\n styleUrl: './menu.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => LibMenuComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\n/**\r\n * @deprecated Prefer `lib-select-field` for new implementations.\r\n * Kept for compatibility while migrating existing screens.\r\n */\r\nexport class LibMenuComponent<T = string> implements ControlValueAccessor {\r\n readonly label = input<string | null>(null);\r\n readonly placeholder = input('Seleccionar');\r\n readonly options = input<LibMenuOption<T>[]>([]);\r\n readonly mode = input<LibMenuMode>('single');\r\n readonly filterable = input(true);\r\n readonly disabled = input(false);\r\n\r\n readonly panelOpen = signal(false);\r\n readonly filterTerm = signal('');\r\n readonly disabledByControl = signal(false);\r\n\r\n readonly valueSignal = signal<T | T[] | null>(null);\r\n\r\n readonly isMultiple = computed(() => this.mode() === 'multiple');\r\n\r\n readonly filteredOptions = computed(() => {\r\n const opts = this.options();\r\n const term = this.filterTerm().trim().toLowerCase();\r\n if (!term) return opts;\r\n return opts.filter((o) => o.label.toLowerCase().includes(term));\r\n });\r\n\r\n readonly triggerLabel = computed(() => {\r\n const current = this.valueSignal();\r\n const opts = this.options();\r\n if (current == null) {\r\n return this.placeholder();\r\n }\r\n if (Array.isArray(current)) {\r\n if (!current.length) return this.placeholder();\r\n const labels = current\r\n .map((v) => opts.find((o) => o.value === v)?.label)\r\n .filter((l): l is string => !!l);\r\n if (!labels.length) return this.placeholder();\r\n if (labels.length === 1) return labels[0];\r\n const [first, ...rest] = labels;\r\n return `${first} (+${rest.length})`;\r\n }\r\n const match = opts.find((o) => o.value === current);\r\n return match?.label ?? this.placeholder();\r\n });\r\n\r\n onMenuOpened(): void {\r\n this.panelOpen.set(true);\r\n }\r\n\r\n onMenuClosed(): void {\r\n this.panelOpen.set(false);\r\n this.filterTerm.set('');\r\n }\r\n\r\n onFilterInput(event: Event): void {\r\n const el = event.target as HTMLInputElement;\r\n this.filterTerm.set(el?.value ?? '');\r\n }\r\n\r\n onOptionClick(option: LibMenuOption<T>, event?: MouseEvent): void {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n if (this.isMultiple()) {\r\n const current = this.valueSignal();\r\n const asArray = Array.isArray(current) ? [...current] : [];\r\n const index = asArray.findIndex((v) => v === option.value);\r\n if (index >= 0) {\r\n asArray.splice(index, 1);\r\n } else {\r\n asArray.push(option.value);\r\n }\r\n const next = asArray as T[];\r\n this.valueSignal.set(next);\r\n this.onChange(next);\r\n } else {\r\n const next = option.value;\r\n this.valueSignal.set(next);\r\n this.onChange(next);\r\n }\r\n }\r\n\r\n isSelected(value: T): boolean {\r\n const current = this.valueSignal();\r\n if (Array.isArray(current)) {\r\n return current.includes(value);\r\n }\r\n return current === value;\r\n }\r\n\r\n // ControlValueAccessor\r\n private onChange: (value: T | T[] | null) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n writeValue(value: T | T[] | null): void {\r\n this.valueSignal.set(value);\r\n }\r\n\r\n registerOnChange(fn: (value: T | T[] | null) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabledByControl.set(isDisabled);\r\n }\r\n}\r\n\r\n","<div class=\"lib-menu\">\r\n <button\r\n mat-button\r\n class=\"lib-menu__trigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"disabled() || disabledByControl()\"\r\n type=\"button\"\r\n >\r\n <span class=\"lib-menu__trigger-label\">\r\n {{ label() || '' }}\r\n </span>\r\n <span class=\"lib-menu__trigger-value\">\r\n {{ triggerLabel() }}\r\n </span>\r\n <mat-icon class=\"lib-menu__trigger-icon\">\r\n {{ panelOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\r\n </mat-icon>\r\n </button>\r\n\r\n <mat-menu\r\n #menu=\"matMenu\"\r\n class=\"lib-menu__panel\"\r\n (menuOpened)=\"onMenuOpened()\"\r\n (menuClosed)=\"onMenuClosed()\"\r\n >\r\n @if (filterable()) {\r\n <div class=\"lib-menu__filter\">\r\n <mat-form-field appearance=\"outline\" class=\"lib-menu__filter-field\">\r\n <mat-label>Buscar</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n (input)=\"onFilterInput($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n }\r\n\r\n @for (opt of filteredOptions(); track opt.value) {\r\n @if (isMultiple()) {\r\n <button mat-menu-item (click)=\"onOptionClick(opt, $event)\">\r\n <mat-checkbox\r\n [checked]=\"isSelected(opt.value)\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n {{ opt.label }}\r\n </mat-checkbox>\r\n </button>\r\n } @else {\r\n <button mat-menu-item (click)=\"onOptionClick(opt, $event)\">\r\n <span>{{ opt.label }}</span>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n</div>\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nexport type LibButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\r\n\r\nexport type LibButtonVariant = 'filled' | 'outlined' | 'tonal' | 'text' | 'elevated';\r\n\r\nexport type LibButtonShape = 'round' | 'square';\r\n\r\nexport type LibButtonIconPosition = 'leading' | 'trailing';\r\n\r\nexport type LibButtonContentAlign = 'start' | 'center' | 'end';\r\n\r\n@Component({\r\n selector: 'lib-button',\r\n standalone: true,\r\n imports: [MatButtonModule, MatIconModule, NgClass],\r\n templateUrl: './button.html',\r\n styleUrl: './button.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class.lib-mat-btn-host--full]': 'fullWidth()',\r\n },\r\n})\r\nexport class LibButtonComponent {\r\n size = input<LibButtonSize>('medium');\r\n disabled = input(false);\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n fullWidth = input(false);\r\n variant = input<LibButtonVariant>('filled');\r\n shape = input<LibButtonShape>('round');\r\n toggle = input(false);\r\n selected = input(false);\r\n label = input<string>('');\r\n icon = input<string>('');\r\n iconPosition = input<LibButtonIconPosition>('leading');\r\n contentAlign = input<LibButtonContentAlign>('center');\r\n labelClass = input<string>('');\r\n pressed = input<boolean>(false);\r\n debugPadding = input<boolean>(false);\r\n readonly isPressed = signal(false);\r\n\r\n /** Si hay label o icon por input, se usa contenido interno; si no, ng-content. */\r\n readonly hasInputContent = computed(\r\n () => this.label().length > 0 || this.icon().length > 0\r\n );\r\n\r\n /** contentAlign ya es 'start' | 'center' | 'end'; se usa directo para las clases CSS. */\r\n private readonly contentAlignNormalized = computed(() => this.contentAlign());\r\n\r\n readonly classes = computed(() => ({\r\n 'lib-mat-btn': true,\r\n 'lib-mat-btn--xsmall': this.size() === 'xsmall',\r\n 'lib-mat-btn--small': this.size() === 'small',\r\n 'lib-mat-btn--medium': this.size() === 'medium',\r\n 'lib-mat-btn--large': this.size() === 'large',\r\n 'lib-mat-btn--xlarge': this.size() === 'xlarge',\r\n 'lib-mat-btn--full': this.fullWidth(),\r\n 'lib-mat-btn--variant-filled': this.variant() === 'filled',\r\n 'lib-mat-btn--variant-outlined': this.variant() === 'outlined',\r\n 'lib-mat-btn--variant-tonal': this.variant() === 'tonal',\r\n 'lib-mat-btn--variant-text': this.variant() === 'text',\r\n 'lib-mat-btn--variant-elevated': this.variant() === 'elevated',\r\n 'lib-mat-btn--shape-round': this.shape() === 'round',\r\n 'lib-mat-btn--shape-square': this.shape() === 'square',\r\n 'lib-mat-btn--toggle': this.toggle(),\r\n 'lib-mat-btn--selected': this.toggle() && this.selected(),\r\n 'lib-mat-btn--pressed': this.isPressed() || this.pressed(),\r\n 'lib-mat-btn--debug-padding': this.debugPadding(),\r\n 'lib-mat-btn--align-start': this.contentAlignNormalized() === 'start',\r\n 'lib-mat-btn--align-center': this.contentAlignNormalized() === 'center',\r\n 'lib-mat-btn--align-end': this.contentAlignNormalized() === 'end',\r\n }));\r\n\r\n onPressStart(): void {\r\n if (!this.disabled()) this.isPressed.set(true);\r\n }\r\n\r\n onPressEnd(): void {\r\n this.isPressed.set(false);\r\n }\r\n\r\n onPressCancel(): void {\r\n this.isPressed.set(false);\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n if (this.disabled()) return;\r\n if (event.code === 'Space' || event.code === 'Enter') this.isPressed.set(true);\r\n }\r\n\r\n onKeyUp(): void {\r\n this.isPressed.set(false);\r\n }\r\n}\r\n","@switch (variant()) {\r\n @case ('filled') {\r\n <button\r\n mat-flat-button\r\n class=\"lib-mat-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n [attr.aria-pressed]=\"toggle() ? selected() : null\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n @case ('outlined') {\r\n <button\r\n mat-stroked-button\r\n class=\"lib-mat-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n [attr.aria-pressed]=\"toggle() ? selected() : null\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n @case ('tonal') {\r\n <button\r\n matButton\r\n appearance=\"tonal\"\r\n class=\"lib-mat-btn lib-mat-btn--variant-tonal\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n [attr.aria-pressed]=\"toggle() ? selected() : null\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n @case ('text') {\r\n <button\r\n mat-button\r\n class=\"lib-mat-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n @case ('elevated') {\r\n <button\r\n mat-raised-button\r\n class=\"lib-mat-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n [attr.aria-pressed]=\"toggle() ? selected() : null\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n @default {\r\n <button\r\n mat-flat-button\r\n class=\"lib-mat-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n [ngClass]=\"classes()\"\r\n (pointerdown)=\"onPressStart()\"\r\n (pointerup)=\"onPressEnd()\"\r\n (pointerleave)=\"onPressCancel()\"\r\n (pointercancel)=\"onPressCancel()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (keyup)=\"onKeyUp()\"\r\n (blur)=\"onPressEnd()\"\r\n >\r\n @if (hasInputContent()) {\r\n @if (iconPosition() === 'leading' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n @if (label()) {\r\n <span [class]=\"labelClass()\">{{ label() }}</span>\r\n }\r\n @if (iconPosition() === 'trailing' && icon()) {\r\n <mat-icon [svgIcon]=\"icon()\">{{ icon() }}</mat-icon>\r\n }\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </button>\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatRippleModule } from '@angular/material/core';\r\n\r\nexport type LibIconButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\r\nexport type LibIconButtonVariant = 'filled' | 'tonal' | 'outlined' | 'standard' | 'action';\r\nexport type LibIconButtonShape = 'round' | 'square';\r\n/** Espacio horizontal (padding) según Figma: narrow, default, wide. */\r\nexport type LibIconButtonSpace = 'narrow' | 'default' | 'wide';\r\n\r\n@Component({\r\n selector: 'lib-icon-button',\r\n standalone: true,\r\n imports: [NgClass, MatRippleModule],\r\n templateUrl: './icon-button.html',\r\n styleUrl: './icon-button.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibIconButtonComponent {\r\n size = input<LibIconButtonSize>('small');\r\n variant = input<LibIconButtonVariant>('standard');\r\n shape = input<LibIconButtonShape>('round');\r\n /** Variante de espacio (padding inline) desde Figma: narrow, default, wide. */\r\n space = input<LibIconButtonSpace>('default');\r\n disabled = input(false);\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n toggle = input(false);\r\n selected = input(false);\r\n\r\n readonly classes = computed(() => ({\r\n 'ui-icon-btn--xsmall': this.size() === 'xsmall',\r\n 'ui-icon-btn--small': this.size() === 'small',\r\n 'ui-icon-btn--medium': this.size() === 'medium',\r\n 'ui-icon-btn--large': this.size() === 'large',\r\n 'ui-icon-btn--xlarge': this.size() === 'xlarge',\r\n 'ui-icon-btn--shape-round': this.shape() === 'round',\r\n 'ui-icon-btn--shape-square': this.shape() === 'square',\r\n 'ui-icon-btn--space-narrow': this.space() === 'narrow',\r\n 'ui-icon-btn--space-default': this.space() === 'default',\r\n 'ui-icon-btn--space-wide': this.space() === 'wide',\r\n 'ui-icon-btn--variant-filled': this.variant() === 'filled',\r\n 'ui-icon-btn--variant-tonal': this.variant() === 'tonal',\r\n 'ui-icon-btn--variant-outlined': this.variant() === 'outlined',\r\n 'ui-icon-btn--variant-standard': this.variant() === 'standard',\r\n 'ui-icon-btn--variant-action': this.variant() === 'action',\r\n 'ui-icon-btn--toggle': this.toggle(),\r\n 'ui-icon-btn--toggle-selected': this.toggle() && this.selected(),\r\n }));\r\n}\r\n","<button\r\n class=\"ui-icon-btn\"\r\n [attr.type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n matRipple\r\n [matRippleDisabled]=\"disabled()\"\r\n [matRippleColor]=\"'var(--ui-icon-btn-ripple-color)'\"\r\n [matRippleCentered]=\"true\"\r\n [ngClass]=\"classes()\"\r\n [attr.aria-pressed]=\"toggle() ? selected() : null\"\r\n>\r\n <span class=\"ui-icon-btn__content\">\r\n <ng-content></ng-content>\r\n </span>\r\n</button>\r\n","import { Component, input, output } from '@angular/core';\r\nimport { MatSlideToggleModule, MatSlideToggleChange } from '@angular/material/slide-toggle';\r\n\r\n@Component({\r\n selector: 'lib-slide-toggle, slide-toggle',\r\n standalone: true, \r\n imports: [MatSlideToggleModule],\r\n templateUrl: './slide-toggle.html',\r\n styleUrl: './slide-toggle.css',\r\n})\r\nexport class SlideToggle {\r\n checked = input(false);\r\n checkedChange = output<boolean>();\r\n\r\n onChange(event: MatSlideToggleChange) {\r\n this.checkedChange.emit(event.checked);\r\n }\r\n}\r\n","<mat-slide-toggle [checked]=\"checked()\" [hideIcon]=\"true\" (change)=\"onChange($event)\">\r\n\t<ng-content></ng-content>\r\n</mat-slide-toggle>\r\n","import { Component, computed, effect, input, signal } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-circular-progress-stepper, circular-progress-stepper',\r\n imports: [],\r\n templateUrl: './circular-progress-stepper.html',\r\n styleUrl: './circular-progress-stepper.css',\r\n})\r\nexport class CircularProgressStepper {\r\n currentStep = input<number>(0);\r\n totalsStep = input<number>(0);\r\n size = input<string>('64px');\r\n barWidth = input<string>('10px');\r\n colorBarProgress = input<string>('#0BC626');\r\n shadowColorBarProgress = input<string>('#F0F0F0');\r\n noJsMessage = input<string>('Esta función requiere JavaScript 😢');\r\n animationDuration = input<number>(500);\r\n\r\n progress = signal<number>(0);\r\n isAnimating = signal<boolean>(false);\r\n jsEnabled = signal<boolean>(true);\r\n progressPercentage = computed(() => `${this.progress()}%`);\r\n\r\n\r\n constructor() {\r\n effect(() => {\r\n this.updateProgress();\r\n });\r\n }\r\n\r\n updateProgress(): void {\r\n const previousStep = (this.currentStep() > 0) ? this.currentStep() - 1 : 0;\r\n const previousProgress = (Math.round(previousStep) / Math.round(this.totalsStep())) * 100;\r\n this.progress.set(Math.round(previousProgress));\r\n const progress = (Math.round(this.currentStep()) / Math.round(this.totalsStep())) * 100;\r\n setTimeout(() => {\r\n this.progress.set(Math.round(progress));\r\n }, 100);\r\n }\r\n}\r\n","<div\r\n class=\"progressbar\"\r\n [class.no-js]=\"!jsEnabled()\"\r\n [attr.role]=\"jsEnabled() ? 'progressbar' : null\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.aria-busy]=\"isAnimating()\"\r\n [attr.aria-live]=\"jsEnabled() ? 'polite' : null\"\r\n [style.--progress]=\"progressPercentage()\"\r\n [style.--size]=\"size()\"\r\n [style.--bar-width]=\"barWidth()\"\r\n [style.--color-bar-progress]=\"colorBarProgress()\"\r\n [style.--shadow-shadow-bar-progress]=\"shadowColorBarProgress()\">\r\n\r\n <div class=\"progress-content\">\r\n <span class=\"step-text\">Paso</span>\r\n <span class=\"step-number\">{{ `${currentStep()} de ${totalsStep()}` }}</span>\r\n </div>\r\n @if (!jsEnabled()) {\r\n <span>{{ noJsMessage() }}</span>\r\n }\r\n\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@Component({\r\n selector: 'lib-spinner, spinner',\r\n standalone: true,\r\n imports: [MatProgressSpinnerModule],\r\n templateUrl: './spinner.html',\r\n styleUrl: './spinner.css',\r\n})\r\nexport class LibSpinnerComponent {\r\n diameter = input<number>(48);\r\n strokeWidth = input<number>(4);\r\n color = input<string>('var(--Rojo-400, #e30613)');\r\n ariaLabel = input<string>('Cargando');\r\n}\r\n\r\n","<mat-spinner\r\n mode=\"indeterminate\"\r\n class=\"lib-spinner\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [diameter]=\"diameter()\"\r\n [strokeWidth]=\"strokeWidth()\"\r\n [style.--lib-spinner-color]=\"color()\"\r\n></mat-spinner>\r\n\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-divider',\r\n standalone: true,\r\n templateUrl: './divider.html',\r\n styleUrl: './divider.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LibDividerComponent {\r\n /** Orientación: horizontal (full width) o vertical (full height). Figma: Horizontal/Full-width, Vertical/Full-width */\r\n orientation = input<'horizontal' | 'vertical'>('horizontal');\r\n}\r\n","<div\r\n class=\"ui-divider\"\r\n [class.ui-divider--horizontal]=\"orientation() === 'horizontal'\"\r\n [class.ui-divider--vertical]=\"orientation() === 'vertical'\"\r\n role=\"separator\"\r\n [attr.aria-orientation]=\"orientation()\"\r\n></div>\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nexport type LibTooltipType = 'single-line' | 'multi-line';\r\n\r\n@Component({\r\n selector: 'lib-tooltip',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './tooltip.html',\r\n styleUrl: './tooltip.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class.ui-tooltip-host]': 'true',\r\n },\r\n})\r\nexport class LibTooltipComponent {\r\n /** Texto del tooltip. */\r\n text = input('Supporting text');\r\n\r\n /** Variante del tooltip según Figma: single-line o multi-line. */\r\n type = input<LibTooltipType>('single-line');\r\n\r\n /** Ancho máximo opcional para controlar el wrap en multi-line (ej: \"12.5rem\", \"200px\"). */\r\n maxWidth = input<string | null>(null);\r\n\r\n readonly classes = computed(() => ({\r\n 'ui-tooltip--single-line': this.type() === 'single-line',\r\n 'ui-tooltip--multi-line': this.type() === 'multi-line',\r\n }));\r\n}\r\n","<div class=\"ui-tooltip\" [ngClass]=\"classes()\" [style.max-width]=\"maxWidth()\">\r\n <span class=\"ui-tooltip__text\">{{ text() }}</span>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nexport type LibCardVariant = 'outlined' | 'elevated' | 'filled';\r\nexport type LibCardState = 'enabled' | 'hovered' | 'focused' | 'pressed' | 'dragged';\r\nexport type LibCardLeadingKind = 'avatar' | 'icon';\r\n\r\n@Component({\r\n selector: 'lib-card',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './card.html',\r\n styleUrl: './card.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class.lib-card-host--full-width]': 'fullWidth()',\r\n },\r\n})\r\nexport class LibCardComponent {\r\n title = input('Header');\r\n subhead = input('');\r\n variant = input<LibCardVariant>('outlined');\r\n state = input<LibCardState>('enabled');\r\n leadingKind = input<LibCardLeadingKind>('avatar');\r\n leadingIcon = input<string>('');\r\n /** Tamaño del contenedor leading (Figma suele usar 2.5rem). */\r\n leadingContainerSize = input('2.5rem');\r\n /** Tamaño del icono leading. */\r\n leadingIconSize = input('2.08331rem');\r\n mediaIcon = input<string>('');\r\n mediaAlt = input('Card media');\r\n showMedia = input(false);\r\n avatarText = input('');\r\n width = input('20.5rem');\r\n /** Alto del card. */\r\n height = input('4.5rem');\r\n /** Si es true, el card toma el 100% del ancho del contenedor padre. */\r\n fullWidth = input(false);\r\n active = input(false);\r\n disabled = input(false);\r\n\r\n readonly cardClick = output<void>();\r\n\r\n readonly initial = computed(() => {\r\n const text = this.avatarText().trim();\r\n if (text.length) return text.slice(0, 1).toUpperCase();\r\n const title = this.title().trim();\r\n return title.length ? title.slice(0, 1).toUpperCase() : 'A';\r\n });\r\n\r\n readonly hasMedia = computed(() => this.mediaIcon().trim().length > 0);\r\n readonly isMediaImage = computed(() => this.mediaIcon().trim().endsWith('.svg'));\r\n readonly hasLeadingIcon = computed(() => this.leadingIcon().trim().length > 0);\r\n readonly isLeadingImage = computed(() => this.leadingIcon().trim().endsWith('.svg'));\r\n readonly hasSubhead = computed(() => this.subhead().trim().length > 0);\r\n\r\n readonly classes = computed(() => ({\r\n 'ui-card': true,\r\n 'ui-card--outlined': this.variant() === 'outlined',\r\n 'ui-card--elevated': this.variant() === 'elevated',\r\n 'ui-card--filled': this.variant() === 'filled',\r\n 'ui-card--state-enabled': this.state() === 'enabled',\r\n 'ui-card--state-hovered': this.state() === 'hovered',\r\n 'ui-card--state-focused': this.state() === 'focused',\r\n 'ui-card--state-pressed': this.state() === 'pressed',\r\n 'ui-card--state-dragged': this.state() === 'dragged',\r\n 'ui-card--leading-avatar': this.leadingKind() === 'avatar',\r\n 'ui-card--leading-icon': this.leadingKind() === 'icon',\r\n 'ui-card--with-media': this.showMedia() && this.hasMedia(),\r\n 'ui-card--title-emphasized': !this.hasSubhead(),\r\n 'ui-card--active': this.active(),\r\n 'ui-card--disabled': this.disabled(),\r\n }));\r\n\r\n onCardClick(): void {\r\n if (this.disabled()) return;\r\n this.cardClick.emit();\r\n }\r\n\r\n onCardKeydown(event: KeyboardEvent): void {\r\n if (this.disabled()) return;\r\n if (event.code === 'Enter' || event.code === 'Space') {\r\n event.preventDefault();\r\n this.cardClick.emit();\r\n }\r\n }\r\n}\r\n","<div\r\n [ngClass]=\"classes()\"\r\n [style.width]=\"fullWidth() ? '100%' : width()\"\r\n [style.min-width]=\"fullWidth() ? '0rem' : width()\"\r\n [style.height]=\"height()\"\r\n [style.min-height]=\"height()\"\r\n [attr.aria-disabled]=\"disabled()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n (click)=\"onCardClick()\"\r\n (keydown)=\"onCardKeydown($event)\"\r\n>\r\n <div class=\"ui-card__content\">\r\n @if (leadingKind() === 'icon') {\r\n <div\r\n class=\"ui-card__leading ui-card__leading--icon\"\r\n aria-hidden=\"true\"\r\n [style.width]=\"leadingContainerSize()\"\r\n [style.height]=\"leadingContainerSize()\"\r\n >\r\n @if (hasLeadingIcon()) {\r\n @if (isLeadingImage()) {\r\n <img [src]=\"leadingIcon()\" alt=\"\" [style.width]=\"leadingIconSize()\" [style.height]=\"leadingIconSize()\" />\r\n } @else {\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n [style.width]=\"leadingIconSize()\"\r\n [style.height]=\"leadingIconSize()\"\r\n >\r\n <g [innerHTML]=\"leadingIcon()\"></g>\r\n </svg>\r\n }\r\n } @else {\r\n <span>{{ initial() }}</span>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"ui-card__avatar\" aria-hidden=\"true\">\r\n {{ initial() }}\r\n </div>\r\n }\r\n\r\n <div class=\"ui-card__text\">\r\n <p class=\"ui-card__title\">{{ title() }}</p>\r\n @if (subhead()) {\r\n <p class=\"ui-card__subhead\">{{ subhead() }}</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (showMedia()) {\r\n <div class=\"ui-card__media\" [class.ui-card__media--empty]=\"!hasMedia()\">\r\n @if (hasMedia()) {\r\n @if (isMediaImage()) {\r\n <img [src]=\"mediaIcon()\" [alt]=\"mediaAlt()\" />\r\n } @else {\r\n <svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\">\r\n <g [innerHTML]=\"mediaIcon()\"></g>\r\n </svg>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n <span class=\"ui-card__state-layer\" aria-hidden=\"true\"></span>\r\n @if (state() === 'focused') {\r\n <span class=\"ui-card__focus-indicator\" aria-hidden=\"true\"></span>\r\n }\r\n</div>\r\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\r\nimport { Component, inject, signal } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { LibButtonComponent } from '../../button/button';\r\n\r\nexport type ConfirmModalVariant = 'basic' | 'list' | 'scrollable-list';\r\n\r\nexport interface ConfirmModalListItem {\r\n id: string;\r\n label: string;\r\n supportingText?: string;\r\n amount?: string;\r\n selected?: boolean;\r\n}\r\n\r\nexport interface ConfirmModalData {\r\n title: string;\r\n reference?: string;\r\n content?: string;\r\n description?: string;\r\n showTopIcon?: boolean;\r\n topIconName?: string;\r\n variant?: ConfirmModalVariant;\r\n listItems?: ConfirmModalListItem[];\r\n labelButtonCancel?: string;\r\n labelButtonConfirm: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-confirm',\r\n templateUrl: './confirm-modal.html',\r\n imports: [LibButtonComponent, MatIconModule],\r\n styleUrl: './confirm-modal.css',\r\n})\r\nexport class ConfirmModal {\r\n readonly dialogRef = inject(DialogRef);\r\n readonly data: ConfirmModalData = inject(DIALOG_DATA) as ConfirmModalData;\r\n readonly listItems = signal<ConfirmModalListItem[]>(this.data.listItems ?? []);\r\n\r\n readonly labelButtonCancel = this.data.labelButtonCancel ?? 'Cancelar';\r\n\r\n readonly supportingText = this.data.description ?? this.data.content ?? this.data.reference ?? '';\r\n\r\n readonly isListVariant = this.data.variant === 'list' || this.data.variant === 'scrollable-list';\r\n readonly isScrollableList = this.data.variant === 'scrollable-list';\r\n\r\n readonly topIconName = this.data.topIconName ?? 'check_box';\r\n\r\n toggleListItem(itemId: string): void {\r\n this.listItems.update((items) =>\r\n items.map((item) => (item.id === itemId ? { ...item, selected: !item.selected } : item))\r\n );\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n onConfirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","<div\r\n class=\"confirm-modal\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby=\"confirm-modal-title\"\r\n [attr.aria-describedby]=\"supportingText || isListVariant ? 'confirm-modal-desc' : null\"\r\n>\r\n <div class=\"confirm-modal__container\">\r\n @if (data.showTopIcon) {\r\n <div class=\"confirm-modal__top-icon\" aria-hidden=\"true\">\r\n <mat-icon>{{ topIconName }}</mat-icon>\r\n </div>\r\n }\r\n\r\n <header class=\"confirm-modal__header\">\r\n <h2 id=\"confirm-modal-title\" class=\"confirm-modal__title\">{{ data.title }}</h2>\r\n @if (supportingText) {\r\n <p id=\"confirm-modal-desc\" class=\"confirm-modal__reference\">{{ supportingText }}</p>\r\n }\r\n </header>\r\n\r\n @if (isListVariant) {\r\n <div\r\n class=\"confirm-modal__list\"\r\n [class.confirm-modal__list--scrollable]=\"isScrollableList\"\r\n [attr.id]=\"!supportingText ? 'confirm-modal-desc' : null\"\r\n >\r\n @for (item of listItems(); track item.id) {\r\n <button type=\"button\" class=\"confirm-modal__list-item\" (click)=\"toggleListItem(item.id)\">\r\n <mat-icon class=\"confirm-modal__list-item-leading-icon\" aria-hidden=\"true\">error_outline</mat-icon>\r\n <span class=\"confirm-modal__list-item-label\">{{ item.label }}</span>\r\n @if (item.amount) {\r\n <span class=\"confirm-modal__list-item-amount\">{{ item.amount }}</span>\r\n }\r\n <mat-icon class=\"confirm-modal__list-item-check\" aria-hidden=\"true\">\r\n {{ item.selected ? 'check_box' : 'check_box_outline_blank' }}\r\n </mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"confirm-modal__actions\">\r\n <lib-button\r\n type=\"button\"\r\n variant=\"text\"\r\n (click)=\"onCancel()\"\r\n [label]=\"labelButtonCancel\"\r\n contentAlign=\"center\"\r\n ></lib-button>\r\n <lib-button\r\n type=\"button\"\r\n variant=\"text\"\r\n (click)=\"onConfirm()\"\r\n [label]=\"data.labelButtonConfirm\"\r\n contentAlign=\"center\"\r\n ></lib-button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { inject, Injectable, signal, WritableSignal } from '@angular/core';\r\nimport { Dialog, DialogRef } from '@angular/cdk/dialog';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { ConfirmModal, ConfirmModalData } from './confirm-modal';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\nexport interface ConfirmModalOpenOptions {\r\n description?: string;\r\n showTopIcon?: boolean;\r\n topIconName?: string;\r\n variant?: ConfirmModalData['variant'];\r\n listItems?: ConfirmModalData['listItems'];\r\n height?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmModalStore {\r\n readonly dialog = inject(Dialog);\r\n private readonly overlay = inject(Overlay);\r\n protected dialogState: WritableSignal<'open' | 'closed'> = signal('open');\r\n private readonly router = inject(Router);\r\n private currentDialogRef?: DialogRef<string, unknown>;\r\n\r\n open(\r\n title: string,\r\n labelButtonConfirm: string,\r\n reference = '',\r\n content = '',\r\n width = '19.5rem',\r\n labelButtonCancel = 'Cancelar',\r\n options: ConfirmModalOpenOptions = {}\r\n ): DialogRef<string, unknown> {\r\n this.dialogState.set('open');\r\n const positionBuilder = this.overlay.position();\r\n const strategy = positionBuilder.global().centerHorizontally().centerVertically();\r\n\r\n this.currentDialogRef = this.dialog.open<string>(ConfirmModal, {\r\n width,\r\n height: options.height,\r\n disableClose: true,\r\n autoFocus: false,\r\n positionStrategy: strategy,\r\n panelClass: 'lib-confirm-modal-panel',\r\n backdropClass: 'lib-confirm-modal-backdrop',\r\n data: {\r\n title: title,\r\n reference: reference,\r\n content: content,\r\n description: options.description,\r\n showTopIcon: options.showTopIcon,\r\n topIconName: options.topIconName,\r\n variant: options.variant,\r\n listItems: options.listItems,\r\n labelButtonConfirm: labelButtonConfirm,\r\n labelButtonCancel: labelButtonCancel,\r\n },\r\n closeOnNavigation: true\r\n });\r\n const sub = this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.close();\r\n sub.unsubscribe();\r\n }\r\n });\r\n return this.currentDialogRef\r\n }\r\n\r\n openBasic(title: string, confirmLabel: string, cancelLabel = 'Cancelar'): DialogRef<string, unknown> {\r\n return this.open(title, confirmLabel, '', '', '19.5rem', cancelLabel);\r\n }\r\n\r\n openWithDescription(\r\n title: string,\r\n description: string,\r\n confirmLabel: string,\r\n cancelLabel = 'Cancelar'\r\n ): DialogRef<string, unknown> {\r\n return this.open(title, confirmLabel, '', '', '19.5rem', cancelLabel, {\r\n description,\r\n });\r\n }\r\n\r\n openWithIcon(\r\n title: string,\r\n description: string,\r\n confirmLabel: string,\r\n cancelLabel = 'Cancelar',\r\n topIconName = 'check_box'\r\n ): DialogRef<string, unknown> {\r\n return this.open(title, confirmLabel, '', '', '19.5rem', cancelLabel, {\r\n description,\r\n showTopIcon: true,\r\n topIconName,\r\n });\r\n }\r\n\r\n openWithList(\r\n title: string,\r\n description: string,\r\n listItems: ConfirmModalData['listItems'],\r\n confirmLabel: string,\r\n cancelLabel = 'Cancelar',\r\n showTopIcon = false\r\n ): DialogRef<string, unknown> {\r\n return this.open(title, confirmLabel, '', '', '19.5rem', cancelLabel, {\r\n description,\r\n showTopIcon,\r\n variant: 'list',\r\n listItems,\r\n });\r\n }\r\n\r\n openWithScrollableList(\r\n title: string,\r\n description: string,\r\n listItems: ConfirmModalData['listItems'],\r\n confirmLabel: string,\r\n cancelLabel = 'Cancelar',\r\n showTopIcon = false\r\n ): DialogRef<string, unknown> {\r\n return this.open(title, confirmLabel, '', '', '19.5rem', cancelLabel, {\r\n description,\r\n showTopIcon,\r\n variant: 'scrollable-list',\r\n listItems,\r\n height: 'auto',\r\n });\r\n }\r\n\r\n close(): void {\r\n if (this.currentDialogRef) {\r\n this.currentDialogRef.close();\r\n this.currentDialogRef = undefined;\r\n }\r\n this.dialogState.set('closed');\r\n }\r\n}\r\n","import { animate, state, style, transition, trigger,AnimationEvent } from '@angular/animations';\r\nimport { DialogRef,DIALOG_DATA } from '@angular/cdk/dialog';\r\nimport { CommonModule, NgComponentOutlet } from '@angular/common';\r\nimport { Component, inject, Type, WritableSignal } from '@angular/core';\r\nimport { SideModalHeaderConfig } from './side-modal.state';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-modal, app-side-modal',\r\n imports: [CommonModule, NgComponentOutlet],\r\n templateUrl: './side-modal.html',\r\n styleUrl: './side-modal.css',\r\n animations: [\r\n trigger('dialogAnimation',[\r\n state('closed', style({ transform: 'translateX(100%)' })),\r\n state('open', style({ transform: 'translateX(0)'})),\r\n transition('open => closed', [animate('0.5s ease')]),\r\n ])\r\n ]\r\n})\r\nexport class SideModal {\r\n readonly dialogData = inject(DIALOG_DATA);\r\n readonly dialogRef = inject(DialogRef);\r\n\r\n readonly content: Type<any> = this.dialogData.content;\r\n readonly title:string = this.dialogData.title;\r\n readonly footer: Type<any> | undefined = this.dialogData.footer;\r\n readonly headerConfig: SideModalHeaderConfig | undefined = this.dialogData.headerConfig;\r\n readonly dialogState:WritableSignal<'open' | 'closed'> = this.dialogData.dialogState;\r\n\r\n closeDialog(): void {\r\n this.dialogState.set('closed');\r\n }\r\n\r\n shouldShowBack(): boolean {\r\n return this.headerConfig?.showBackButton?.() ?? false;\r\n }\r\n\r\n onBackClick(): void {\r\n this.headerConfig?.onBack?.();\r\n }\r\n\r\n onAnimationDone(event: AnimationEvent): void {\r\n if (event.toState === 'action' || event.toState === 'closed') {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"container\" [@dialogAnimation]=\"dialogState()\" (@dialogAnimation.done)=\"onAnimationDone($event)\">\r\n <header class=\"side-modal__header\">\r\n <div style=\"display: flex; align-items: center;\">\r\n @if (shouldShowBack()) {\r\n <button type=\"button\" class=\"side-modal__icon-btn\" (click)=\"onBackClick()\" aria-label=\"Volver\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M14 6H3.83L8.41 1.41L7 0L0 7L7 14L8.41 12.59L3.83 8H14V6Z\" fill=\"#434749\" />\r\n </svg>\r\n </button>\r\n }\r\n <h4 class=\"title\">{{title}}</h4>\r\n </div>\r\n\r\n <button type=\"button\" class=\"side-modal__icon-btn\" (click)=\"closeDialog()\" aria-label=\"Cerrar\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M1.4 14L0 12.6L5.6 7L0 1.4L1.4 0L7 5.6L12.6 0L14 1.4L8.4 7L14 12.6L12.6 14L7 8.4L1.4 14Z\"\r\n fill=\"#434749\" />\r\n </svg>\r\n </button>\r\n </header>\r\n\r\n <main class=\"side-modal__content container-content app-scrollbar-figma\">\r\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\r\n </main>\r\n @if (footer) {\r\n <footer class=\"side-modal__footer\">\r\n <ng-container *ngComponentOutlet=\"footer\"></ng-container>\r\n </footer>\r\n }\r\n</div>\r\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { inject, Injectable, signal, Type, WritableSignal } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { SideModal } from './side-modal';\r\n\r\nexport interface SideModalHeaderConfig {\r\n showBackButton?: () => boolean;\r\n onBack?: () => void;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SideModalStore {\r\n private readonly dialog = inject(Dialog);\r\n private readonly overlay = inject(Overlay);\r\n private readonly dialogState: WritableSignal<'open' | 'closed' | 'action'> = signal('open');\r\n private currentDialogRef?: DialogRef<unknown, unknown>;\r\n private readonly router = inject(Router);\r\n\r\n openSideModal(\r\n content: Type<unknown>,\r\n title: string,\r\n width: string,\r\n footer?: Type<unknown>,\r\n headerConfig?: SideModalHeaderConfig\r\n ): DialogRef<unknown, unknown> {\r\n this.dialogState.set('open');\r\n const positionBuilder = this.overlay.position();\r\n const strategy = positionBuilder.global().end();\r\n\r\n this.currentDialogRef = this.dialog.open<unknown>(SideModal, {\r\n width: width,\r\n height: '100%',\r\n disableClose: true,\r\n hasBackdrop: true,\r\n backdropClass: 'lib-side-modal-backdrop',\r\n positionStrategy: strategy,\r\n data: {\r\n title: title,\r\n content,\r\n dialogState: this.dialogState,\r\n footer,\r\n headerConfig,\r\n },\r\n closeOnNavigation: true\r\n });\r\n\r\n const sub = this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.closeSideModal();\r\n sub.unsubscribe();\r\n }\r\n });\r\n\r\n return this.currentDialogRef;\r\n }\r\n\r\n isOnAction(): boolean {\r\n return this.dialogState() === 'action';\r\n }\r\n\r\n closeSideModal(_data?: unknown): void {\r\n void _data;\r\n if (this.currentDialogRef) {\r\n this.currentDialogRef.close();\r\n this.currentDialogRef = undefined;\r\n }\r\n this.dialogState.set('closed');\r\n }\r\n\r\n actionSideModal(): void {\r\n this.dialogState.set('action');\r\n }\r\n\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { LibDividerComponent } from '../../divider/divider';\r\n\r\n@Component({\r\n selector: 'lib-page-footer-actions',\r\n standalone: true,\r\n imports: [LibDividerComponent],\r\n templateUrl: './page-footer-actions.html',\r\n styleUrl: './page-footer-actions.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PageFooterActionsComponent {}\r\n","<div class=\"lib-page-footer-actions\">\r\n <lib-divider orientation=\"horizontal\" />\r\n <div class=\"lib-page-footer-actions__buttons\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { LibDividerComponent } from '../../divider/divider';\r\n\r\n@Component({\r\n selector: 'lib-modal-footer-actions',\r\n standalone: true,\r\n imports: [LibDividerComponent],\r\n templateUrl: './modal-footer-actions.html',\r\n styleUrl: './modal-footer-actions.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ModalFooterActionsComponent {}\r\n","<div class=\"lib-modal-footer-actions\">\r\n <lib-divider orientation=\"horizontal\" />\r\n <div class=\"lib-modal-footer-actions__buttons\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FooterFlowStore {\r\n readonly totalSteps = signal(1);\r\n readonly currentStep = signal(1);\r\n\r\n setTotalSteps(total: number): void {\r\n this.totalSteps.set(Math.max(1, total));\r\n if (this.currentStep() > this.totalSteps()) {\r\n this.currentStep.set(this.totalSteps());\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.currentStep.set(1);\r\n }\r\n\r\n advance(): void {\r\n if (this.currentStep() < this.totalSteps()) {\r\n this.currentStep.update((step) => step + 1);\r\n }\r\n }\r\n\r\n retreat(): void {\r\n if (this.currentStep() > 1) {\r\n this.currentStep.update((step) => step - 1);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\r\nimport { ConfirmModalStore } from '../../dialogs/confirm-modal/confirm-modal.store';\r\nimport { LibButtonComponent } from '../../button/button';\r\nimport { ModalFooterActionsComponent } from '../modal-footer-actions/modal-footer-actions';\r\nimport { SideModalStore } from '../../dialogs/side-modal/side-modal.state';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { FooterFlowStore } from './footer-flow.store';\r\n\r\n@Component({\r\n selector: 'lib-side-modal-footer',\r\n standalone: true,\r\n imports: [ModalFooterActionsComponent, LibButtonComponent, TranslatePipe],\r\n templateUrl: './footer.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FooterComponent {\r\n private readonly sideModalStore = inject(SideModalStore);\r\n private readonly confirmModalStore = inject(ConfirmModalStore);\r\n private readonly flowStore = inject(FooterFlowStore);\r\n\r\n readonly primaryLabel = computed(() =>\r\n this.flowStore.currentStep() < this.flowStore.totalSteps() ? 'NEXT' : 'SAVE'\r\n );\r\n\r\n onCancel(): void {\r\n this.sideModalStore.closeSideModal();\r\n }\r\n\r\n onContinue(): void {\r\n if (this.flowStore.currentStep() < this.flowStore.totalSteps()) {\r\n this.flowStore.advance();\r\n return;\r\n }\r\n\r\n const dialogRef = this.confirmModalStore.open(\r\n '¿Guardar cambios?',\r\n 'Guardar',\r\n '',\r\n '',\r\n 'max-content',\r\n 'Cancelar',\r\n );\r\n\r\n dialogRef.closed.subscribe((result: unknown) => {\r\n if (result === true) {\r\n this.sideModalStore.closeSideModal({ step: this.flowStore.totalSteps(), saved: true });\r\n }\r\n });\r\n }\r\n}\r\n","<lib-modal-footer-actions>\r\n <lib-button\r\n variant=\"outlined\"\r\n size=\"small\"\r\n [label]=\"'Cancelar' | translate\"\r\n (click)=\"onCancel()\"\r\n />\r\n <lib-button\r\n variant=\"filled\"\r\n size=\"small\"\r\n [label]=\"primaryLabel() | translate\"\r\n (click)=\"onContinue()\"\r\n />\r\n</lib-modal-footer-actions>\r\n","export * from './lib/lib-ui/lib-ui';\r\nexport * from './lib/icons/register-icons';\r\n\r\n// Core data display/navigation.\r\nexport * from './lib/components/shared-table/shared-table.component';\r\nexport * from './lib/components/breadcrumb/breadcrumb.component';\r\nexport * from './lib/components/sidebar/sidebar';\r\nexport * from './lib/components/header/header';\r\n\r\n// Inputs and selections.\r\nexport * from './lib/components/form-field/text-field';\r\nexport * from './lib/components/form-field/select-field';\r\nexport * from './lib/components/list-item/list-item';\r\nexport * from './lib/components/checkbox/checkbox';\r\nexport * from './lib/components/checkbox/checkbox-showcase.component';\r\n\r\n/**\r\n * @deprecated Prefer `lib-select-field` for new implementations.\r\n * Kept for compatibility during migration window.\r\n */\r\nexport * from './lib/components/menu/menu';\r\n\r\n// Actions and affordances.\r\nexport * from './lib/components/button/button';\r\nexport * from './lib/components/icon-button/icon-button';\r\nexport * from './lib/components/slide-toggle/slide-toggle';\r\nexport * from './lib/components/circular-progress-stepper/circular-progress-stepper';\r\nexport * from './lib/components/spinner/spinner';\r\nexport * from './lib/components/divider/divider';\r\nexport * from './lib/components/tooltip/tooltip';\r\nexport * from './lib/components/card/card';\r\n\r\n// Dialogs and modal containers.\r\nexport * from './lib/components/dialogs/confirm-modal/confirm-modal';\r\nexport * from './lib/components/dialogs/confirm-modal/confirm-modal.store';\r\nexport * from './lib/components/dialogs/side-modal/side-modal';\r\nexport * from './lib/components/dialogs/side-modal/side-modal.state';\r\n\r\n// Footer layouts.\r\nexport * from './lib/components/footer-actions/page-footer-actions/page-footer-actions';\r\nexport * from './lib/components/footer-actions/modal-footer-actions/modal-footer-actions';\r\nexport * from './lib/components/footer-actions/footer/footer';\r\nexport * from './lib/components/footer-actions/footer/footer-flow.store';\r\n\r\nexport const LIB_UI_STYLES_PATH = './lib/styles/index.scss';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i1","i5","i6"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crdx-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Credix shared UI component library",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "ng-packagr -p ng-package.json",
|
|
8
|
-
"build:watch": "ng-packagr -p ng-package.json --watch",
|
|
9
|
-
"release": "npm run build && cd dist && npm publish"
|
|
10
|
-
},
|
|
11
6
|
"peerDependencies": {
|
|
7
|
+
"@tokens_variables_credix/tokenized-styles": "^1.0.7",
|
|
12
8
|
"@angular/animations": ">=21.0.0",
|
|
13
9
|
"@angular/cdk": ">=21.0.0",
|
|
14
10
|
"@angular/common": ">=21.0.0",
|
|
@@ -20,14 +16,23 @@
|
|
|
20
16
|
"@ngx-translate/core": ">=17.0.0",
|
|
21
17
|
"rxjs": ">=7.0.0"
|
|
22
18
|
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@angular/compiler": "~21.0.0",
|
|
25
|
-
"@angular/compiler-cli": "~21.0.0",
|
|
26
|
-
"ng-packagr": "~21.0.0",
|
|
27
|
-
"tslib": "^2.3.0",
|
|
28
|
-
"typescript": "~5.9.2"
|
|
29
|
-
},
|
|
30
19
|
"publishConfig": {
|
|
20
|
+
"access": "public",
|
|
31
21
|
"registry": "https://registry.npmjs.org"
|
|
22
|
+
},
|
|
23
|
+
"module": "fesm2022/crdx-components.mjs",
|
|
24
|
+
"typings": "types/crdx-components.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
"./package.json": {
|
|
27
|
+
"default": "./package.json"
|
|
28
|
+
},
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./types/crdx-components.d.ts",
|
|
31
|
+
"default": "./fesm2022/crdx-components.mjs"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"sideEffects": false,
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"tslib": "^2.3.0"
|
|
32
37
|
}
|
|
33
|
-
}
|
|
38
|
+
}
|