diff --git a/projects/composition/src/app/pages/switch-page/switch-page.component.html b/projects/composition/src/app/pages/switch-page/switch-page.component.html index 312d4c072..6d34853e4 100644 --- a/projects/composition/src/app/pages/switch-page/switch-page.component.html +++ b/projects/composition/src/app/pages/switch-page/switch-page.component.html @@ -1,26 +1,52 @@ -
+ + + + + + + + + + + + + + + +
Is checked: {{ syncVal }}
-
+
diff --git a/projects/composition/src/app/pages/switch-page/switch-page.component.scss b/projects/composition/src/app/pages/switch-page/switch-page.component.scss index 7aaff7fa2..d32514303 100644 --- a/projects/composition/src/app/pages/switch-page/switch-page.component.scss +++ b/projects/composition/src/app/pages/switch-page/switch-page.component.scss @@ -1,10 +1,3 @@ -.switches-group { - gap: 2rem; - display: flex; - flex-direction: column; - margin-left: 0.5rem; -} - .sync-val-example { .sync-val { margin-top: 1rem; diff --git a/projects/composition/src/app/pages/switch-page/switch-page.component.ts b/projects/composition/src/app/pages/switch-page/switch-page.component.ts index cd5d094f3..73c39ce7d 100644 --- a/projects/composition/src/app/pages/switch-page/switch-page.component.ts +++ b/projects/composition/src/app/pages/switch-page/switch-page.component.ts @@ -1,16 +1,18 @@ import { Component } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CpsSwitchComponent } from 'cps-ui-kit'; - import ComponentData from '../../api-data/cps-switch.json'; import { ComponentDocsViewerComponent } from '../../components/component-docs-viewer/component-docs-viewer.component'; +import { CodeExampleComponent } from '../../components/code-example/code-example.component'; +import { switchExamples } from './switch-page.examples'; @Component({ imports: [ CpsSwitchComponent, ReactiveFormsModule, FormsModule, - ComponentDocsViewerComponent + ComponentDocsViewerComponent, + CodeExampleComponent ], selector: 'app-switch-page', templateUrl: './switch-page.component.html', @@ -20,4 +22,5 @@ import { ComponentDocsViewerComponent } from '../../components/component-docs-vi export class SwitchPageComponent { syncVal = true; componentData = ComponentData; + readonly examples = switchExamples; } diff --git a/projects/composition/src/app/pages/switch-page/switch-page.examples.ts b/projects/composition/src/app/pages/switch-page/switch-page.examples.ts new file mode 100644 index 000000000..bd84651d0 --- /dev/null +++ b/projects/composition/src/app/pages/switch-page/switch-page.examples.ts @@ -0,0 +1,48 @@ +export const switchExamples: Record = { + tooltipSwitch: { + html: ` + +` + }, + + basicSwitch: { + html: ` +` + }, + + unlabeledSwitch: { + html: ` +` + }, + + disabledCheckedSwitch: { + html: ` +` + }, + + disabledUncheckedSwitch: { + html: ` +` + }, + + twoWayBindingSwitch: { + html: ` +
+ +
Is checked: {{ syncVal }}
+
`, + ts: ` +syncVal = true;` + } +}; diff --git a/projects/composition/src/app/pages/tag-page/tag-page.component.html b/projects/composition/src/app/pages/tag-page/tag-page.component.html index 4291ad7fd..87715a400 100644 --- a/projects/composition/src/app/pages/tag-page/tag-page.component.html +++ b/projects/composition/src/app/pages/tag-page/tag-page.component.html @@ -1,8 +1,17 @@ -
+ + + + + + +
Is selected: {{ syncVal }}
- +
diff --git a/projects/composition/src/app/pages/tag-page/tag-page.component.scss b/projects/composition/src/app/pages/tag-page/tag-page.component.scss index b6b8c82ed..d32514303 100644 --- a/projects/composition/src/app/pages/tag-page/tag-page.component.scss +++ b/projects/composition/src/app/pages/tag-page/tag-page.component.scss @@ -1,10 +1,3 @@ -.tags-group { - margin-left: 0.5rem; - gap: 2rem; - display: flex; - flex-direction: column; -} - .sync-val-example { .sync-val { margin-top: 1rem; diff --git a/projects/composition/src/app/pages/tag-page/tag-page.component.ts b/projects/composition/src/app/pages/tag-page/tag-page.component.ts index 6e1defdf5..a0101b25a 100644 --- a/projects/composition/src/app/pages/tag-page/tag-page.component.ts +++ b/projects/composition/src/app/pages/tag-page/tag-page.component.ts @@ -1,16 +1,18 @@ import { Component } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CpsTagComponent } from 'cps-ui-kit'; - import ComponentData from '../../api-data/cps-tag.json'; import { ComponentDocsViewerComponent } from '../../components/component-docs-viewer/component-docs-viewer.component'; +import { CodeExampleComponent } from '../../components/code-example/code-example.component'; +import { tagExamples } from './tag-page.examples'; @Component({ imports: [ CpsTagComponent, ReactiveFormsModule, FormsModule, - ComponentDocsViewerComponent + ComponentDocsViewerComponent, + CodeExampleComponent ], selector: 'app-tag-page', templateUrl: './tag-page.component.html', @@ -20,4 +22,5 @@ import { ComponentDocsViewerComponent } from '../../components/component-docs-vi export class TagPageComponent { syncVal = true; componentData = ComponentData; + readonly examples = tagExamples; } diff --git a/projects/composition/src/app/pages/tag-page/tag-page.examples.ts b/projects/composition/src/app/pages/tag-page/tag-page.examples.ts new file mode 100644 index 000000000..8892d3fbb --- /dev/null +++ b/projects/composition/src/app/pages/tag-page/tag-page.examples.ts @@ -0,0 +1,25 @@ +export const tagExamples: Record = { + regularTag: { + html: ` +` + }, + + disabledTag: { + html: ` +` + }, + + selectableTag: { + html: ` +
+ +
Is selected: {{ syncVal }}
+
`, + ts: ` +syncVal = true;` + } +}; diff --git a/projects/composition/src/app/pages/textarea-page/textarea-page.component.html b/projects/composition/src/app/pages/textarea-page/textarea-page.component.html index a4bb5e81c..4db4cdd4b 100644 --- a/projects/composition/src/app/pages/textarea-page/textarea-page.component.html +++ b/projects/composition/src/app/pages/textarea-page/textarea-page.component.html @@ -1,7 +1,10 @@ -
-
+ + + + - + + + - - + + + + + + + + + + +
+ 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 @@ -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ label="12-hour timepicker with two-way binding" + [(ngModel)]="syncVal" + [withSeconds]="true" + [ngModelOptions]="{ standalone: true }"> - - - - - - -
- - - {{ syncVal | json }} -
+ {{ syncVal | json }}
- +
diff --git a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.scss b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.scss index 68f1a6936..1e881efc4 100644 --- a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.scss +++ b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.scss @@ -1,9 +1,3 @@ -.timepickers-group { - gap: 1.5rem; - display: flex; - flex-direction: column; -} - .sync-val-example { display: flex; flex-direction: column; diff --git a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.ts b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.ts index a2ebaee28..9b3c4eb1a 100644 --- a/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.ts +++ b/projects/composition/src/app/pages/timepicker-page/timepicker-page.component.ts @@ -9,8 +9,9 @@ import { Validators } from '@angular/forms'; import { ComponentDocsViewerComponent } from '../../components/component-docs-viewer/component-docs-viewer.component'; - +import { CodeExampleComponent } from '../../components/code-example/code-example.component'; import ComponentData from '../../api-data/cps-timepicker.json'; +import { timepickerExamples } from './timepicker-page.examples'; @Component({ selector: 'app-timepicker-page', @@ -19,13 +20,15 @@ import ComponentData from '../../api-data/cps-timepicker.json'; CpsTimepickerComponent, ReactiveFormsModule, FormsModule, - ComponentDocsViewerComponent + ComponentDocsViewerComponent, + CodeExampleComponent ], templateUrl: './timepicker-page.component.html', styleUrls: ['./timepicker-page.component.scss'], host: { class: 'composition-page' } }) export class TimepickerPageComponent implements OnInit { + readonly examples = timepickerExamples; form!: UntypedFormGroup; syncVal: CpsTime = { diff --git a/projects/composition/src/app/pages/timepicker-page/timepicker-page.examples.ts b/projects/composition/src/app/pages/timepicker-page/timepicker-page.examples.ts new file mode 100644 index 000000000..783d8d85a --- /dev/null +++ b/projects/composition/src/app/pages/timepicker-page/timepicker-page.examples.ts @@ -0,0 +1,91 @@ +export const timepickerExamples: Record = + { + requiredTimepicker: { + html: ` +
+ +
`, + ts: ` +private readonly _formBuilder = inject(UntypedFormBuilder); + +form!: UntypedFormGroup; + +ngOnInit() { + const defVal: CpsTime = { + hours: '11', + minutes: '10', + dayPeriod: 'PM' + }; + this.form = this._formBuilder.group({ + requiredTimepicker: [defVal, [Validators.required]] + }); +}` + }, + + disabledTimepicker: { + html: ` + +` + }, + + secondsTimepicker: { + html: ` + +`, + ts: ` +onValueChanged(val: CpsTime) { + console.log('onValueChanged', val); +}` + }, + + use24HourTimepicker: { + html: ` + +` + }, + + use24HourSecondsTimepicker: { + html: ` + +`, + ts: ` +val24: CpsTime = { + hours: '22', + minutes: '59', + seconds: '59' +};` + }, + + twoWayBindingTimepicker: { + html: ` +
+ + + {{ syncVal | json }} +
`, + ts: ` +syncVal: CpsTime = { + hours: '05', + minutes: '10', + seconds: '10', + dayPeriod: 'PM' +};` + } + };