feat(product-row-card): add reusable product row card component with styling and functionality

This commit is contained in:
2026-07-17 11:54:12 -03:00
parent 45c2ee7a2f
commit 40cc2b840d
5 changed files with 201 additions and 0 deletions

View File

@@ -631,6 +631,30 @@
</div>
</section>
<section class="component-demo card shadow-sm mt-4">
<div class="card-body">
<span class="eyebrow">Reusable Component</span>
<h2 class="mb-4">Tarjetas de Producto (Row Layout)</h2>
<p class="text-muted mb-4">
Diseño horizontal que ocupa el 100% del ancho disponible.
</p>
<div class="row">
<div class="col-12 mb-4 d-flex align-items-stretch">
<app-product-row-card
[title]="testRowProduct.title"
[description]="testRowProduct.description"
[price]="testRowProduct.price"
[variants]="testRowProduct.variants"
(buy)="onProductBuy(testRowProduct.title)"
(addToCart)="triggerToast('success')"
/>
</div>
</div>
</div>
</section>
<app-store-section
title="PRODUCTOS"
class="component-demo store-section-demo mt-5"

View File

@@ -9,6 +9,7 @@ import { IconButtonComponent } from '../../../../shared/components/icon-button/i
import { InputComponent } from '../../../../shared/components/input/input.component';
import { PaginatorComponent } from '../../../../shared/components/paginator/paginator.component';
import { ProductCardComponent } from '../../../../shared/components/product-card/product-card.component';
import { ProductRowCardComponent } from '../../../../shared/components/product-row-card/product-row-card.component';
import { StoreSectionComponent } from '../../../../shared/components/store-section/store-section.component';
import { ModalService } from '../../../../core/services/modal.service';
import { TenantService } from '../../../../core/services/tenant.service';
@@ -24,6 +25,7 @@ import { StepComponent } from '../../../../shared/components/stepper/step.compon
InputComponent,
PaginatorComponent,
ProductCardComponent,
ProductRowCardComponent,
StoreSectionComponent,
IconButtonComponent,
CartIconComponent,
@@ -86,6 +88,16 @@ export class ReutilizablesTestPageComponent {
}
];
protected readonly testRowProduct = {
title: 'ENTRADA GENERAL',
description: 'Acceso total al predio. No incluye acceso a estacionamiento. Niños menores de 5 años ingresan gratis.',
price: 10000,
variants: [
{ label: '10 de Octubre', value: '10-oct' },
{ label: '11 de Octubre', value: '11-oct' }
]
};
protected readonly cartMockItems: CartItemMock[] = [
{
imageUrl: null,