One-time prettier --write so the new format:check CI gate starts green. .prettierignore excludes generated (api-client.ts, documentation.json), vendored (public/cibg-huisstijl), and backend (dotnet format owns it). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { Component, input } from '@angular/core';
|
|
import { HeadingComponent } from '@shared/ui/heading/heading.component';
|
|
|
|
/** Molecule: a content card. Standardises the repeated card surface (white,
|
|
subtle border, rounded, padded) so pages compose cards instead of hand-rolling
|
|
a hand-rolled card surface. Optional heading; the rest is projected.
|
|
Local class is .app-card (NOT Bootstrap's .card, whose padding-on-body layout differs). */
|
|
@Component({
|
|
selector: 'app-card',
|
|
imports: [HeadingComponent],
|
|
styles: [
|
|
`
|
|
:host {
|
|
display: block;
|
|
block-size: 100%;
|
|
}
|
|
.app-card {
|
|
background: var(--rhc-color-wit);
|
|
border: var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);
|
|
border-radius: var(--rhc-border-radius-md);
|
|
padding: var(--rhc-space-max-xl);
|
|
block-size: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
.app-card > * + * {
|
|
margin-block-start: var(--rhc-space-max-md);
|
|
}
|
|
`,
|
|
],
|
|
template: `
|
|
<section class="app-card">
|
|
@if (heading()) {
|
|
<app-heading [level]="level()">{{ heading() }}</app-heading>
|
|
}
|
|
<ng-content />
|
|
</section>
|
|
`,
|
|
})
|
|
export class CardComponent {
|
|
heading = input<string>();
|
|
level = input<1 | 2 | 3 | 4 | 5>(3);
|
|
}
|