@registrucentras/rc-ses-angular-components 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.editorconfig +17 -0
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/build-and-publish.yml +50 -0
  4. package/.vscode/extensions.json +4 -0
  5. package/.vscode/launch.json +20 -0
  6. package/.vscode/tasks.json +42 -0
  7. package/README.md +31 -0
  8. package/RELEASE_NOTES.md +29 -0
  9. package/angular.json +173 -0
  10. package/karma.conf.js +53 -0
  11. package/package.json +48 -0
  12. package/projects/app/public/favicon.ico +0 -0
  13. package/projects/app/src/app/app.component.html +3 -0
  14. package/projects/app/src/app/app.component.scss +0 -0
  15. package/projects/app/src/app/app.component.ts +20 -0
  16. package/projects/app/src/app/app.config.ts +33 -0
  17. package/projects/app/src/app/app.routes.ts +16 -0
  18. package/projects/app/src/app/landing-page/landing-page.html +20 -0
  19. package/projects/app/src/app/landing-page/landing-page.scss +0 -0
  20. package/projects/app/src/app/landing-page/landing-page.ts +37 -0
  21. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.html +283 -0
  22. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.scss +0 -0
  23. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.ts +223 -0
  24. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.html +271 -0
  25. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.scss +0 -0
  26. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.ts +142 -0
  27. package/projects/app/src/index.html +18 -0
  28. package/projects/app/src/main.ts +6 -0
  29. package/projects/app/tsconfig.app.json +15 -0
  30. package/projects/app/tsconfig.spec.json +15 -0
  31. package/projects/rc-ses/angular-components/README.md +31 -0
  32. package/projects/rc-ses/angular-components/ng-package.json +13 -0
  33. package/projects/rc-ses/angular-components/package-lock.json +224 -0
  34. package/projects/rc-ses/angular-components/package.json +40 -0
  35. package/projects/rc-ses/angular-components/src/lib/components/accordion/accordion.scss +71 -0
  36. package/projects/rc-ses/angular-components/src/lib/components/accordion/accordion.ts +31 -0
  37. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.html +7 -0
  38. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.scss +54 -0
  39. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.ts +40 -0
  40. package/projects/rc-ses/angular-components/src/lib/components/button/button.scss +248 -0
  41. package/projects/rc-ses/angular-components/src/lib/components/button/button.spec.ts +46 -0
  42. package/projects/rc-ses/angular-components/src/lib/components/button/button.ts +34 -0
  43. package/projects/rc-ses/angular-components/src/lib/components/divider/divider.scss +18 -0
  44. package/projects/rc-ses/angular-components/src/lib/components/divider/divider.ts +16 -0
  45. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.html +11 -0
  46. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.scss +149 -0
  47. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.ts +87 -0
  48. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.html +10 -0
  49. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.scss +36 -0
  50. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.ts +89 -0
  51. package/projects/rc-ses/angular-components/src/lib/components/form/input/checkbox/checkbox.scss +132 -0
  52. package/projects/rc-ses/angular-components/src/lib/components/form/input/datepicker/datepicker.scss +18 -0
  53. package/projects/rc-ses/angular-components/src/lib/components/form/input/input/input.scss +66 -0
  54. package/projects/rc-ses/angular-components/src/lib/components/form/input/input/input.ts +31 -0
  55. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.html +30 -0
  56. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.scss +88 -0
  57. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.ts +103 -0
  58. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio/radio.scss +85 -0
  59. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.html +7 -0
  60. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.scss +87 -0
  61. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.ts +101 -0
  62. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.html +40 -0
  63. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.scss +153 -0
  64. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.ts +155 -0
  65. package/projects/rc-ses/angular-components/src/lib/components/icons/icons.module.ts +61 -0
  66. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.html +19 -0
  67. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.scss +64 -0
  68. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.ts +45 -0
  69. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.html +16 -0
  70. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.scss +32 -0
  71. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.ts +43 -0
  72. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.html +5 -0
  73. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.scss +35 -0
  74. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.ts +48 -0
  75. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.html +14 -0
  76. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.scss +38 -0
  77. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.ts +37 -0
  78. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.html +18 -0
  79. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.scss +93 -0
  80. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.ts +41 -0
  81. package/projects/rc-ses/angular-components/src/lib/components/message/message.html +39 -0
  82. package/projects/rc-ses/angular-components/src/lib/components/message/message.scss +141 -0
  83. package/projects/rc-ses/angular-components/src/lib/components/message/message.ts +52 -0
  84. package/projects/rc-ses/angular-components/src/lib/theme/index.scss +65 -0
  85. package/projects/rc-ses/angular-components/src/lib/theme/palette.scss +183 -0
  86. package/projects/rc-ses/angular-components/src/lib/theme/theme.scss +24 -0
  87. package/projects/rc-ses/angular-components/src/lib/theme/typography.scss +63 -0
  88. package/projects/rc-ses/angular-components/src/public-api.ts +22 -0
  89. package/projects/rc-ses/angular-components/src/styles.scss +40 -0
  90. package/projects/rc-ses/angular-components/src/test.ts +14 -0
  91. package/projects/rc-ses/angular-components/tsconfig.lib.json +15 -0
  92. package/projects/rc-ses/angular-components/tsconfig.lib.prod.json +11 -0
  93. package/tsconfig.json +37 -0
  94. package/tsconfig.spec.json +18 -0
@@ -0,0 +1,45 @@
1
+ import { DOCUMENT } from "@angular/common";
2
+ import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, OnInit, Renderer2, contentChild } from "@angular/core";
3
+ import { MatButtonModule } from "@angular/material/button";
4
+ import { MatCardModule } from "@angular/material/card";
5
+ import { MatAccordion } from "@angular/material/expansion";
6
+ import { MatIconModule } from "@angular/material/icon";
7
+ import { RcSesButtonDirective } from "../../button/button";
8
+
9
+ @Component({
10
+ selector: 'rc-ses-service-form-actions',
11
+ standalone: true,
12
+ templateUrl: 'service-form-actions.html',
13
+ imports: [
14
+ MatButtonModule,
15
+ MatCardModule,
16
+ MatIconModule,
17
+ RcSesButtonDirective,
18
+ ],
19
+ host: {
20
+ class: 'rc-ses-element rc-ses-service-form-actions'
21
+ },
22
+ })
23
+ export class ServiceFormActions implements AfterViewInit, OnDestroy, OnInit {
24
+ public readonly accordion = contentChild.required(MatAccordion);
25
+
26
+ public initialized: boolean | undefined;
27
+
28
+ constructor(
29
+ @Inject(DOCUMENT) private _document: Document,
30
+ public _el: ElementRef,
31
+ private _renderer: Renderer2,
32
+ ) {}
33
+
34
+ ngOnInit() {
35
+
36
+ }
37
+
38
+ ngAfterViewInit() {
39
+ this.initialized = true;
40
+ }
41
+
42
+ ngOnDestroy() {
43
+ this.initialized = false;
44
+ }
45
+ }
@@ -0,0 +1,16 @@
1
+ @if (canCollapse) {
2
+ <div class="rc-ses-accordion-toggle-controls">
3
+ <button mat-button (click)="accordion().openAll()">
4
+ <mat-icon>unfold_more</mat-icon>
5
+ Praskleisti visus
6
+ </button>
7
+ <button mat-button (click)="accordion().closeAll()">
8
+ <mat-icon>unfold_less</mat-icon>
9
+ Suskleisti visus
10
+ </button>
11
+ </div>
12
+ }
13
+
14
+ <ng-content />
15
+
16
+ <rc-ses-service-form-actions />
@@ -0,0 +1,32 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin bootstrap($theme, $typography) {
4
+ @layer rc-ses {
5
+ .rc-ses-service-form-container {
6
+
7
+ .rc-ses-accordion-toggle-controls {
8
+ display: flex;
9
+ justify-content: flex-end;
10
+ margin: 0 -.625rem 1rem;
11
+
12
+ .mat-mdc-button {
13
+ margin: 0 .625rem;
14
+
15
+ .mat-mdc-button-touch-target {
16
+ height: var(--mdc-text-button-container-height) !important;
17
+ }
18
+ }
19
+ }
20
+ }
21
+ }
22
+
23
+ @layer rc-ses-variables {
24
+ :root {
25
+ .rc-ses-service-form-container {
26
+ --mdc-text-button-container-height: 2.375rem;
27
+ --mat-text-button-icon-spacing: .125rem;
28
+ --mat-text-button-with-icon-horizontal-padding: .125rem;
29
+ }
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,43 @@
1
+ import { DOCUMENT } from "@angular/common";
2
+ import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, OnInit, Renderer2, contentChild, input, Input, booleanAttribute } from "@angular/core";
3
+ import { MatButtonModule } from "@angular/material/button";
4
+ import { MatAccordion } from "@angular/material/expansion";
5
+ import { MatIconModule } from "@angular/material/icon";
6
+ import { ServiceFormActions } from "../service-form-actions/service-form-actions";
7
+
8
+ @Component({
9
+ selector: 'rc-ses-service-form-container',
10
+ standalone: true,
11
+ templateUrl: 'service-form-container.html',
12
+ imports: [
13
+ MatButtonModule,
14
+ MatIconModule,
15
+ ServiceFormActions,
16
+ ],
17
+ host: {
18
+ class: 'rc-ses-element rc-ses-service-form-container'
19
+ },
20
+ })
21
+ export class ServiceFormContainer implements AfterViewInit, OnDestroy, OnInit {
22
+ @Input({ transform: booleanAttribute }) canCollapse: boolean = true;
23
+
24
+ public readonly accordion = contentChild.required(MatAccordion);
25
+
26
+ public initialized: boolean | undefined;
27
+
28
+ constructor(
29
+ @Inject(DOCUMENT) private _document: Document,
30
+ public _el: ElementRef,
31
+ private _renderer: Renderer2,
32
+ ) {}
33
+
34
+ ngOnInit() {}
35
+
36
+ ngAfterViewInit() {
37
+ this.initialized = true;
38
+ }
39
+
40
+ ngOnDestroy() {
41
+ this.initialized = false;
42
+ }
43
+ }
@@ -0,0 +1,5 @@
1
+ <div class="container">
2
+ <rc-ses-breadcrumbs [path]="fullPath" />
3
+ <h1>{{ serviceName }}</h1>
4
+ <p>{{ serviceDescription }}</p>
5
+ </div>
@@ -0,0 +1,35 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin bootstrap($theme, $typography) {
4
+ @layer rc-ses {
5
+ .rc-ses-service-header {
6
+ background-color: mat.get-theme-color($theme, primary, 99);
7
+ display: flex;
8
+ flex-direction: column;
9
+ justify-content: space-around;
10
+ padding: 1.5rem 0;
11
+
12
+ .container {
13
+ flex: 1 1 100%;
14
+ flex-wrap: wrap;
15
+ }
16
+
17
+ h1 {
18
+ margin-bottom: .5rem;
19
+ flex: 1 1 100%;
20
+ }
21
+
22
+ p {
23
+ flex: 1 1 100%;
24
+ font-weight: 300;
25
+ line-height: 1.125rem;
26
+ }
27
+ }
28
+ }
29
+
30
+ @layer rc-ses-variables {
31
+ :root {
32
+
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,48 @@
1
+ import { DOCUMENT } from "@angular/common";
2
+ import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, OnInit, Renderer2, Input } from "@angular/core";
3
+ import { Breadcrumbs } from "../../breadcrumbs/breadcrumbs";
4
+
5
+ type PathItem = { label: string, path: string };
6
+
7
+ @Component({
8
+ selector: 'rc-ses-service-header',
9
+ standalone: true,
10
+ templateUrl: 'service-header.html',
11
+ imports: [Breadcrumbs],
12
+ host: {
13
+ class: 'rc-ses-element rc-ses-service-header'
14
+ },
15
+ })
16
+ export class ServiceHeader implements AfterViewInit, OnDestroy, OnInit {
17
+ @Input() serviceName: string | undefined = undefined;
18
+ @Input() serviceDescription: string | undefined = undefined;
19
+
20
+ @Input() path: PathItem[] | undefined = [];
21
+
22
+ get fullPath(): PathItem[] {
23
+ return [
24
+ { label: 'Savitarna', path: '/'},
25
+ ...(this.path ?? []),
26
+ ];
27
+ }
28
+
29
+ public initialized: boolean | undefined;
30
+
31
+ constructor(
32
+ @Inject(DOCUMENT) private _document: Document,
33
+ public _el: ElementRef,
34
+ private _renderer: Renderer2,
35
+ ) {}
36
+
37
+ ngOnInit() {
38
+
39
+ }
40
+
41
+ ngAfterViewInit() {
42
+ this.initialized = true;
43
+ }
44
+
45
+ ngOnDestroy() {
46
+ this.initialized = false;
47
+ }
48
+ }
@@ -0,0 +1,14 @@
1
+ <div>
2
+ <ng-content select="rc-ses-service-header"></ng-content>
3
+ </div>
4
+
5
+ <div class="container container-main">
6
+ <div class="sidebar-wrapper">
7
+ <ng-content select="rc-ses-service-wizard-steps"></ng-content>
8
+ </div>
9
+
10
+ <div class="content-wrapper">
11
+ <ng-content></ng-content>
12
+ <ng-content select="rc-ses-service-form-container"></ng-content>
13
+ </div>
14
+ </div>
@@ -0,0 +1,38 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin bootstrap($theme, $typography) {
4
+ @layer rc-ses {
5
+ .rc-ses-service-page {
6
+ display: flex;
7
+ flex-direction: column;
8
+ justify-content: center;
9
+ width: 100%;
10
+
11
+ .container {
12
+ display: flex;
13
+ flex-direction: row;
14
+ margin: 0 auto;
15
+ max-width: 1130px;
16
+ padding: 0 1.25rem !important;
17
+ }
18
+
19
+ .container-main {
20
+ margin-top: 3rem;
21
+ }
22
+
23
+ .sidebar-wrapper {
24
+ flex: 1 1 0%;
25
+ }
26
+
27
+ .content-wrapper {
28
+ width: 840px;
29
+ }
30
+ }
31
+ }
32
+
33
+ @layer rc-ses-variables {
34
+ :root {
35
+
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,37 @@
1
+ import { DOCUMENT } from "@angular/common";
2
+ import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, OnInit, Renderer2, Input } from "@angular/core";
3
+ import { Breadcrumbs } from "../../breadcrumbs/breadcrumbs";
4
+
5
+ @Component({
6
+ selector: 'rc-ses-service-page',
7
+ standalone: true,
8
+ templateUrl: 'service-page.html',
9
+ imports: [Breadcrumbs],
10
+ host: {
11
+ class: 'rc-ses-element rc-ses-service-page'
12
+ },
13
+ })
14
+ export class ServicePage implements AfterViewInit, OnDestroy, OnInit {
15
+ @Input() serviceName: string | undefined = undefined;
16
+ @Input() serviceDescription: string | undefined = undefined;
17
+
18
+ public initialized: boolean | undefined;
19
+
20
+ constructor(
21
+ @Inject(DOCUMENT) private _document: Document,
22
+ public _el: ElementRef,
23
+ private _renderer: Renderer2,
24
+ ) {}
25
+
26
+ ngOnInit() {
27
+
28
+ }
29
+
30
+ ngAfterViewInit() {
31
+ this.initialized = true;
32
+ }
33
+
34
+ ngOnDestroy() {
35
+ this.initialized = false;
36
+ }
37
+ }
@@ -0,0 +1,18 @@
1
+ <mat-nav-list role="navigation">
2
+ @for (item of steps; track $index) {
3
+ <mat-list-item
4
+ [activated]="item.state === 'active'"
5
+ [class]="'wizard-step-status--' + item.state"
6
+ >
7
+ @switch (item.state) {
8
+ @case ('completed') {
9
+ <mat-icon matListItemIcon svgIcon="rc-ses-check-circle" aria-hidden="false"></mat-icon>
10
+ }
11
+ @default {
12
+ <mat-icon matListItemIcon svgIcon="rc-ses-circle" aria-hidden="false"></mat-icon>
13
+ }
14
+ }
15
+ <div matListItemTitle>{{ item.label }}</div>
16
+ </mat-list-item>
17
+ }
18
+ </mat-nav-list>
@@ -0,0 +1,93 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin bootstrap($theme, $typography) {
4
+ @layer rc-ses {
5
+ .rc-ses-service-wizard-steps {
6
+ cursor: default !important;
7
+
8
+ .mat-icon {
9
+ position: relative;
10
+ text-align: center !important;
11
+
12
+ svg {
13
+ vertical-align: middle;
14
+ }
15
+ }
16
+
17
+ .wizard-step-status {
18
+
19
+ &--active {
20
+
21
+ .mat-icon svg {
22
+ height: .75rem !important;
23
+ width: .75rem !important;
24
+ }
25
+ }
26
+
27
+ &--pending {
28
+
29
+ .mat-icon svg {
30
+ height: .375rem !important;
31
+ width: .375rem !important;
32
+
33
+ * {
34
+ fill: mat.get-theme-color($theme, neutral, 90) !important;
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+ .mdc-list {
41
+ padding: 3.375rem 0 1.5rem !important;
42
+ }
43
+
44
+ .mdc-list-item {
45
+ --mdc-list-list-item-container-color: transparent !important;
46
+ --mdc-list-list-item-hover-state-layer-color: transparent !important;
47
+ --mdc-list-list-item-label-text-color: #{mat.get-theme-color($theme, neutral, 30)};
48
+ --mdc-list-list-item-label-text-line-height: 1.125rem;
49
+ --mdc-list-list-item-label-text-size: .875rem;
50
+ --mdc-list-list-item-one-line-container-height: 2rem;
51
+ --mat-list-active-indicator-color: transparent !important;
52
+
53
+ cursor: default !important;
54
+
55
+ &--with-leading-icon .mdc-list-item__start {
56
+ margin-left: 0 !important;
57
+ margin-right: .625rem !important;
58
+ }
59
+ }
60
+
61
+ .mat-mdc-list-item {
62
+
63
+ &:after {
64
+ content: "";
65
+ border-left: 2px solid mat.get-theme-color($theme, neutral, 98);
66
+ height: 100%;
67
+ left: 11px;
68
+ position: absolute;
69
+ // K: 50%;
70
+ z-index: -1;
71
+ }
72
+
73
+ &:first-of-type:after {
74
+ top: 50%;
75
+ }
76
+
77
+ &:last-of-type:after {
78
+ bottom: 50%;
79
+ }
80
+
81
+ .mat-mdc-focus-indicator {
82
+ display: none !important;
83
+ }
84
+ }
85
+ }
86
+ }
87
+
88
+ @layer rc-ses-variables {
89
+ :root {
90
+
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,41 @@
1
+ import { CommonModule, DOCUMENT } from "@angular/common";
2
+ import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, OnInit, Renderer2, Input } from "@angular/core";
3
+ import { MatCommonModule } from "@angular/material/core";
4
+ import { MatIconModule } from "@angular/material/icon";
5
+ import { MatListModule } from "@angular/material/list";
6
+ import { RcSesIconsModule } from "../../icons/icons.module";
7
+ import { HttpClient } from "@angular/common/http";
8
+ // import { MatCommonModule } from "@angular/material/core";
9
+
10
+ @Component({
11
+ selector: 'rc-ses-service-wizard-steps',
12
+ standalone: true,
13
+ templateUrl: 'service-wizard-steps.html',
14
+ imports: [MatIconModule, MatListModule, RcSesIconsModule],
15
+ host: {
16
+ class: 'rc-ses-element rc-ses-service-wizard-steps'
17
+ },
18
+ })
19
+ export class ServiceWizardSteps implements AfterViewInit, OnDestroy, OnInit {
20
+ @Input() steps: { label: string, state: 'completed' | 'active' | 'pending' }[] = [];
21
+
22
+ public initialized: boolean | undefined;
23
+
24
+ constructor(
25
+ @Inject(DOCUMENT) private _document: Document,
26
+ public _el: ElementRef,
27
+ private _renderer: Renderer2,
28
+ ) {}
29
+
30
+ ngOnInit() {
31
+
32
+ }
33
+
34
+ ngAfterViewInit() {
35
+ this.initialized = true;
36
+ }
37
+
38
+ ngOnDestroy() {
39
+ this.initialized = false;
40
+ }
41
+ }
@@ -0,0 +1,39 @@
1
+ <div
2
+ aria-live="polite"
3
+ class="rc-ses-message--wrapper mat-accent"
4
+ [class]="containerClass"
5
+ >
6
+
7
+ @if (!hideIcon) {
8
+ <div class="rc-ses-message--icon">
9
+ @switch (severity) {
10
+ @case ('info') {
11
+ <mat-icon matListItemIcon svgIcon="rc-ses-info-fill" aria-hidden="false" />
12
+ }
13
+ @case ('warning') {
14
+ <mat-icon matListItemIcon svgIcon="rc-ses-warning-fill" aria-hidden="false" />
15
+ }
16
+ @case ('error') {
17
+ <mat-icon matListItemIcon svgIcon="rc-ses-warning-diamond-fill" aria-hidden="false" />
18
+ }
19
+ @case ('success') {
20
+ <mat-icon matListItemIcon svgIcon="rc-ses-check-circle-fill" aria-hidden="false" />
21
+ }
22
+ @default {
23
+ <mat-icon matListItemIcon svgIcon="rc-ses-info-fill" aria-hidden="false" />
24
+ }
25
+ }
26
+ </div>
27
+ }
28
+
29
+ <div class="rc-ses-message--content">
30
+ <ng-content />
31
+ </div>
32
+
33
+ <div class="rc-ses-message--actions">
34
+ @if (dismissible) {
35
+ <button rc-ses-button mat-stroked-button>Uždaryti</button>
36
+ }
37
+ <ng-content select="[actions]" />
38
+ </div>
39
+ </div>
@@ -0,0 +1,141 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin bootstrap($theme, $typography) {
4
+ @layer rc-ses {
5
+ .rc-ses-message {
6
+ display: block;
7
+ font-size: .875rem;
8
+ line-height: 1.125rem;
9
+ margin-bottom: 1.25rem;
10
+
11
+ &--wrapper {
12
+ align-items: center;
13
+ border-radius: .375rem;
14
+ display: flex;
15
+ flex-direction: row;
16
+ flex-wrap: nowrap;
17
+ padding: .75rem 1rem;
18
+ }
19
+
20
+ &--icon {
21
+ flex-grow: 0;
22
+ margin-right: .75rem;
23
+ }
24
+
25
+ &--content {
26
+ flex-grow: 1;
27
+ }
28
+
29
+ &--actions {
30
+ align-items: center;
31
+ display: flex;
32
+ flex-grow: 0;
33
+
34
+ &:not(:empty) {
35
+ margin-left: .75rem;
36
+ }
37
+ }
38
+
39
+ &--severity {
40
+
41
+ &-default {
42
+ background-color: mat.get-theme-color($theme, neutral, 98);
43
+ border-color: mat.get-theme-color($theme, neutral, 90);
44
+ color: mat.get-theme-color($theme, primary, 20);
45
+
46
+ svg path {
47
+ fill: mat.get-theme-color($theme, neutral, 40);
48
+ }
49
+
50
+ &.rc-ses-message--theme-dark {
51
+ background-color: mat.get-theme-color($theme, neutral, 20);
52
+ border-color: mat.get-theme-color($theme, neutral, 20);
53
+ }
54
+ }
55
+
56
+ &-info {
57
+ background-color: mat.get-theme-color($theme, primary, 100);
58
+ border-color: mat.get-theme-color($theme, primary, 90);
59
+ color: mat.get-theme-color($theme, neutral, 20);
60
+
61
+ svg path {
62
+ fill: mat.get-theme-color($theme, primary, 50);
63
+ }
64
+
65
+ &.rc-ses-message--theme-dark {
66
+ background-color: mat.get-theme-color($theme, primary, 20);
67
+ border-color: mat.get-theme-color($theme, primary, 20);
68
+ }
69
+ }
70
+
71
+ &-warning {
72
+ background-color: #fdefcf;
73
+ border-color: #fbd170;
74
+ color: #4a3504;
75
+
76
+ svg path {
77
+ fill: #c78f0d;
78
+ }
79
+
80
+ &.rc-ses-message--theme-dark {
81
+ background-color: #fbd170;
82
+ border-color: #fbd170;
83
+ color: #312303;
84
+ }
85
+ }
86
+
87
+ &-error {
88
+ background-color: mat.get-theme-color($theme, error, 99);
89
+ border-color: mat.get-theme-color($theme, error, 90);
90
+ color: mat.get-theme-color($theme, error, 20);
91
+
92
+ svg path {
93
+ fill: mat.get-theme-color($theme, error, 40);
94
+ }
95
+
96
+ &.rc-ses-message--theme-dark {
97
+ background-color: mat.get-theme-color($theme, error, 40);
98
+ border-color: mat.get-theme-color($theme, error, 40);
99
+ }
100
+ }
101
+
102
+ &-success {
103
+ background-color: mat.get-theme-color($theme, secondary, 98);
104
+ border-color: mat.get-theme-color($theme, secondary, 90);
105
+ color: mat.get-theme-color($theme, secondary, 20);
106
+
107
+ svg path {
108
+ fill: mat.get-theme-color($theme, secondary, 40);
109
+ }
110
+
111
+ &.rc-ses-message--theme-dark {
112
+ background-color: mat.get-theme-color($theme, secondary, 30);
113
+ border-color: mat.get-theme-color($theme, secondary, 30);
114
+ }
115
+ }
116
+ }
117
+
118
+ &--theme {
119
+
120
+ &-light {
121
+ border-style: solid;
122
+ border-width: 1px;
123
+ }
124
+
125
+ &-dark {
126
+ color: white;
127
+
128
+ svg path {
129
+ fill: white;
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+
136
+ @layer rc-ses-variables {
137
+ :root {
138
+
139
+ }
140
+ }
141
+ }