diff --git a/projects/components/error-card/index.ts b/projects/components/error-card/index.ts
new file mode 100644
index 00000000..c74f953a
--- /dev/null
+++ b/projects/components/error-card/index.ts
@@ -0,0 +1,3 @@
+// export what ./public_api exports so we can import with the lib name like this:
+// import { ModuleA } from 'libname'
+export * from './public_api';
diff --git a/projects/components/error-card/package.json b/projects/components/error-card/package.json
new file mode 100644
index 00000000..dedb72ce
--- /dev/null
+++ b/projects/components/error-card/package.json
@@ -0,0 +1,7 @@
+{
+ "ngPackage": {
+ "lib": {
+ "entryFile": "index.ts"
+ }
+ }
+}
diff --git a/projects/components/error-card/public_api.ts b/projects/components/error-card/public_api.ts
new file mode 100644
index 00000000..d76e47fe
--- /dev/null
+++ b/projects/components/error-card/public_api.ts
@@ -0,0 +1,2 @@
+export { PsErrorCardComponent } from './src/error-card.component';
+export { PsErrorCardModule } from './src/error-card.module';
diff --git a/projects/components/error-card/src/error-card.component.ts b/projects/components/error-card/src/error-card.component.ts
new file mode 100644
index 00000000..3756708b
--- /dev/null
+++ b/projects/components/error-card/src/error-card.component.ts
@@ -0,0 +1,37 @@
+import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
+
+@Component({
+ selector: 'ps-error-card',
+ template: `
+
+ sentiment_very_dissatisfied
+ {{ errorMessage }}
+
+ `,
+ styles: [
+ `
+ .ps-error-card {
+ color: var(--ps-error);
+ }
+
+ .ps-error-card--center {
+ display: grid;
+ justify-items: center;
+ }
+
+ .ps-error-card__icon {
+ color: var(--ps-error);
+ font-size: 72px;
+ height: 72px;
+ width: 72px;
+ }
+ `,
+ ],
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ encapsulation: ViewEncapsulation.None,
+})
+export class PsErrorCardComponent {
+ @Input() public showIcon = true;
+ @Input() public errorMessage: string;
+ @Input() public center = false;
+}
diff --git a/projects/components/error-card/src/error-card.module.ts b/projects/components/error-card/src/error-card.module.ts
new file mode 100644
index 00000000..9c1dd391
--- /dev/null
+++ b/projects/components/error-card/src/error-card.module.ts
@@ -0,0 +1,12 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { MatCardModule } from '@angular/material/card';
+import { MatIconModule } from '@angular/material/icon';
+import { PsErrorCardComponent } from './error-card.component';
+
+@NgModule({
+ declarations: [PsErrorCardComponent],
+ imports: [CommonModule, MatCardModule, MatIconModule],
+ exports: [PsErrorCardComponent],
+})
+export class PsErrorCardModule {}
diff --git a/projects/components/form/src/form.component.ts b/projects/components/form/src/form.component.ts
index aab3e140..a013087d 100644
--- a/projects/components/form/src/form.component.ts
+++ b/projects/components/form/src/form.component.ts
@@ -62,14 +62,12 @@ export class PsFormCancelEvent extends PsFormEvent {}
-
- sentiment_very_dissatisfied
- {{ errorMessage }}
-
-
-
- {{ errorMessage }}
-
+