+
+
+
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+ width="25rem"
+ label="Textarea with two-way binding, type something in"
+ [(ngModel)]="syncVal"
+ resizable="none"
+ hint="This textarea has a fixed width of 25rem and is not resizable"
+ [ngModelOptions]="{ standalone: true }">
-
-
-
- >
-
- {{ syncVal }}
-
+
{{ syncVal }}
-
+
diff --git a/projects/composition/src/app/pages/textarea-page/textarea-page.component.scss b/projects/composition/src/app/pages/textarea-page/textarea-page.component.scss
index 76e52c7cb..fe6f52680 100644
--- a/projects/composition/src/app/pages/textarea-page/textarea-page.component.scss
+++ b/projects/composition/src/app/pages/textarea-page/textarea-page.component.scss
@@ -1,9 +1,3 @@
-.textarea-group {
- gap: 1.5rem;
- display: flex;
- flex-direction: column;
-}
-
.sync-val-example {
display: flex;
align-items: center;
diff --git a/projects/composition/src/app/pages/textarea-page/textarea-page.component.ts b/projects/composition/src/app/pages/textarea-page/textarea-page.component.ts
index 820e6a62c..74a655801 100644
--- a/projects/composition/src/app/pages/textarea-page/textarea-page.component.ts
+++ b/projects/composition/src/app/pages/textarea-page/textarea-page.component.ts
@@ -7,9 +7,10 @@ import {
Validators
} from '@angular/forms';
import { CpsTextareaComponent } from 'cps-ui-kit';
-
import ComponentData from '../../api-data/cps-textarea.json';
import { ComponentDocsViewerComponent } from '../../components/component-docs-viewer/component-docs-viewer.component';
+import { CodeExampleComponent } from '../../components/code-example/code-example.component';
+import { textareaExamples } from './textarea-page.examples';
@Component({
selector: 'app-textarea-page',
@@ -17,7 +18,8 @@ import { ComponentDocsViewerComponent } from '../../components/component-docs-vi
CpsTextareaComponent,
ReactiveFormsModule,
FormsModule,
- ComponentDocsViewerComponent
+ ComponentDocsViewerComponent,
+ CodeExampleComponent
],
templateUrl: './textarea-page.component.html',
styleUrls: ['./textarea-page.component.scss'],
@@ -27,6 +29,7 @@ export class TextareaPageComponent implements OnInit {
form!: UntypedFormGroup;
syncVal = '';
componentData = ComponentData;
+ readonly examples = textareaExamples;
// eslint-disable-next-line no-useless-constructor
constructor(private _formBuilder: UntypedFormBuilder) {}
diff --git a/projects/composition/src/app/pages/textarea-page/textarea-page.examples.ts b/projects/composition/src/app/pages/textarea-page/textarea-page.examples.ts
new file mode 100644
index 000000000..62e4247ca
--- /dev/null
+++ b/projects/composition/src/app/pages/textarea-page/textarea-page.examples.ts
@@ -0,0 +1,68 @@
+export const textareaExamples: Record
= {
+ requiredTextarea: {
+ html: `
+`,
+ ts: `
+private readonly _formBuilder = inject(UntypedFormBuilder);
+
+form!: UntypedFormGroup;
+
+ngOnInit() {
+ this.form = this._formBuilder.group({
+ requiredTextarea: ['', [Validators.required, Validators.maxLength(3)]]
+ });
+}`
+ },
+
+ disabledTextarea: {
+ html: `
+`
+ },
+
+ readonlyTextarea: {
+ html: `
+
+`
+ },
+
+ clearableTextarea: {
+ html: `
+
+`
+ },
+
+ twoWayBindingTextarea: {
+ html: `
+
+
+
+ {{ syncVal }}
+
`,
+ ts: `
+syncVal = '';`
+ }
+};
diff --git a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.html b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.html
index 2b0dfca1f..67d385aa4 100644
--- a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.html
+++ b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.html
@@ -1,38 +1,69 @@
-