@allsorter/ui-components 0.0.367 → 0.0.370

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 (124) hide show
  1. package/fesm2022/allsorter-ui-components.mjs +2996 -1391
  2. package/fesm2022/allsorter-ui-components.mjs.map +1 -1
  3. package/images/Column left.svg +5 -0
  4. package/images/Move.svg +8 -0
  5. package/images/Success.svg +5 -0
  6. package/images/Table.svg +3 -0
  7. package/images/Vector-1.svg +3 -0
  8. package/images/Vector.svg +3 -0
  9. package/images/add-teble.svg +6 -0
  10. package/images/arrow_downward.svg +3 -0
  11. package/images/calendar_year.svg +4 -0
  12. package/images/column right.svg +5 -0
  13. package/images/delete -table.svg +6 -0
  14. package/images/delete row.svg +10 -0
  15. package/images/delete-column.svg +10 -0
  16. package/images/delete.svg +3 -0
  17. package/images/drag-drop-icon.svg +8 -0
  18. package/images/edit.svg +3 -0
  19. package/images/error.svg +5 -0
  20. package/images/row bottom.svg +5 -0
  21. package/images/row top.svg +5 -0
  22. package/images/search.svg +3 -0
  23. package/images/subrole.svg +3 -0
  24. package/images/visibility_off.svg +3 -0
  25. package/images/warning.svg +5 -0
  26. package/lib/app-toolbar/app-toolbar.component.d.ts +5 -8
  27. package/lib/app-toolbar/app-toolbar.module.d.ts +4 -4
  28. package/lib/app-toolbar-right/app-toolbar-right.component.d.ts +3 -5
  29. package/lib/button/button.component.d.ts +30 -1
  30. package/lib/candidate-section/candidate-section.component.d.ts +8 -0
  31. package/lib/custom-editor/custom-editor.component.d.ts +110 -14
  32. package/lib/custom-editor/table/table.component.d.ts +5 -0
  33. package/lib/editable-form-wrapper/editable-form-wrapper.component.d.ts +48 -0
  34. package/lib/experience-section/experience-section.component.d.ts +4 -2
  35. package/lib/general-container/general-container.component.d.ts +5 -1
  36. package/lib/icon-button/icon-button.component.d.ts +16 -7
  37. package/lib/input/input.component.d.ts +41 -10
  38. package/lib/newresumeheader/newresumeheader.component.d.ts +43 -4
  39. package/lib/resume-entries/resume-entries.component.d.ts +7 -1
  40. package/lib/resume-header/resume-header.model.d.ts +11 -20
  41. package/lib/shared-popup-modal/shared-popup-modal.component.d.ts +17 -0
  42. package/lib/side-action-bar-wrapper/side-action-bar-wrapper.component.d.ts +34 -0
  43. package/lib/side-action-bar-wrapper/side-action-bar-wrapper.module.d.ts +12 -0
  44. package/lib/styles/border-radius.scss +11 -0
  45. package/lib/styles/button-mixins.scss +41 -0
  46. package/lib/styles/button.scss +117 -0
  47. package/lib/styles/colors.scss +221 -0
  48. package/lib/styles/elevation.scss +46 -0
  49. package/lib/styles/new-typography.scss +202 -0
  50. package/lib/styles/spacing.scss +39 -0
  51. package/lib/styles/typography-classes.scss +203 -0
  52. package/lib/utils/icon-utils.d.ts +51 -0
  53. package/lib/utils/image-utils.d.ts +54 -0
  54. package/package.json +15 -3
  55. package/public-api.d.ts +3 -3
  56. package/src/lib/ai-apply-bar/ai-apply-bar.component.html +43 -0
  57. package/src/lib/ai-apply-bar/ai-apply-bar.component.scss +182 -0
  58. package/src/lib/app-toolbar/app-toolbar.component.html +13 -0
  59. package/src/lib/app-toolbar/app-toolbar.component.scss +141 -0
  60. package/src/lib/app-toolbar-right/app-toolbar-right.component.html +15 -0
  61. package/src/lib/app-toolbar-right/app-toolbar-right.component.scss +294 -0
  62. package/src/lib/button/button.component.html +127 -0
  63. package/src/lib/button/button.component.scss +1238 -0
  64. package/src/lib/candidate-section/candidate-section.component.html +91 -0
  65. package/src/lib/candidate-section/candidate-section.component.scss +154 -0
  66. package/src/lib/checkbox/checkbox.component.html +24 -0
  67. package/src/lib/checkbox/checkbox.component.scss +280 -0
  68. package/src/lib/custom-editor/custom-editor.component.html +129 -0
  69. package/src/lib/custom-editor/custom-editor.component.scss +441 -0
  70. package/src/lib/custom-editor/table/table.component.html +21 -0
  71. package/src/lib/date-range/date-range.component.html +33 -0
  72. package/src/lib/date-range/date-range.component.scss +284 -0
  73. package/src/lib/editable-form-wrapper/editable-form-wrapper.component.html +12 -0
  74. package/src/lib/editable-form-wrapper/editable-form-wrapper.component.scss +227 -0
  75. package/src/lib/experience-section/experience-section.component.html +20 -0
  76. package/src/lib/experience-section/experience-section.component.scss +0 -0
  77. package/src/lib/field-placeholder/field-placeholder.component.html +17 -0
  78. package/src/lib/field-placeholder/field-placeholder.component.scss +119 -0
  79. package/src/lib/general-container/general-container.component.html +3 -0
  80. package/src/lib/general-container/general-container.component.scss +10 -0
  81. package/src/lib/icon-button/icon-button.component.html +12 -0
  82. package/src/lib/icon-button/icon-button.component.scss +77 -0
  83. package/src/lib/input/input.component.html +86 -0
  84. package/src/lib/input/input.component.scss +1337 -0
  85. package/src/lib/loader/loader.component.html +15 -0
  86. package/src/lib/loader/loader.component.scss +493 -0
  87. package/src/lib/new-typography/new-typography.component.html +10 -0
  88. package/src/lib/new-typography/new-typography.component.scss +200 -0
  89. package/src/lib/newresumeheader/newresumeheader.component.html +178 -0
  90. package/src/lib/newresumeheader/newresumeheader.component.scss +530 -0
  91. package/src/lib/radio/radio.component.html +23 -0
  92. package/src/lib/radio/radio.component.scss +253 -0
  93. package/src/lib/responsive-columns/responsive-columns.component.html +6 -0
  94. package/src/lib/responsive-columns/responsive-columns.component.scss +68 -0
  95. package/src/lib/responsive-layout/responsive-layout.component.html +1 -0
  96. package/src/lib/responsive-layout/responsive-layout.component.scss +47 -0
  97. package/src/lib/resume-entries/resume-entries.component.html +97 -0
  98. package/src/lib/resume-entries/resume-entries.component.scss +341 -0
  99. package/src/lib/resume-header/resume-header.component.html +167 -0
  100. package/src/lib/shared-popup-modal/shared-popup-modal.component.html +99 -0
  101. package/src/lib/shared-popup-modal/shared-popup-modal.component.scss +223 -0
  102. package/src/lib/side-action-bar-wrapper/side-action-bar-wrapper.component.html +17 -0
  103. package/src/lib/side-action-bar-wrapper/side-action-bar-wrapper.component.scss +58 -0
  104. package/src/lib/slide-toggle/slide-toggle.component.html +17 -0
  105. package/src/lib/slide-toggle/slide-toggle.component.scss +439 -0
  106. package/src/lib/storybook/testing-strip/testing-strip.component.html +12 -0
  107. package/src/lib/storybook/testing-strip/testing-strip.component.scss +1 -0
  108. package/src/lib/styles/border-radius.scss +11 -0
  109. package/src/lib/styles/button-mixins.scss +41 -0
  110. package/src/lib/styles/button.scss +117 -0
  111. package/src/lib/styles/colors.scss +221 -0
  112. package/src/lib/styles/elevation.scss +46 -0
  113. package/src/lib/styles/new-typography.scss +202 -0
  114. package/src/lib/styles/spacing.scss +39 -0
  115. package/src/lib/styles/typography-classes.scss +203 -0
  116. package/src/lib/tabs/tabs.component.html +9 -0
  117. package/src/lib/tabs/tabs.component.scss +151 -0
  118. package/src/lib/toggle-buttons/toggle-buttons.component.html +17 -0
  119. package/src/lib/toggle-buttons/toggle-buttons.component.scss +284 -0
  120. package/src/lib/tooltip/tooltip.component.html +6 -0
  121. package/src/lib/tooltip/tooltip.component.scss +8 -0
  122. package/lib/action-bar-wrapper/action-bar-wrapper.component.d.ts +0 -36
  123. package/lib/resume-header/resume-header.component.d.ts +0 -69
  124. package/lib/resume-header/resume-header.module.d.ts +0 -8
@@ -0,0 +1,182 @@
1
+ @import '../styles/border-radius.scss';
2
+ @import '../styles/spacing.scss';
3
+ @import '../styles/colors.scss';
4
+
5
+
6
+ /* Hide down arrow in mat-mdc-select for all selects inside ai-apply-bar */
7
+ :host ::ng-deep .mat-mdc-select-arrow {
8
+ display: none !important;
9
+ }
10
+
11
+ /* Outer container to allow floating close button */
12
+ .ai-apply-wrap {
13
+ position: relative;
14
+ display: inline-flex;
15
+ align-items: stretch;
16
+ width: 100%;
17
+ overflow: hidden;
18
+ gap: 8px;
19
+ }
20
+
21
+ /* Dark rail with rounded corners */
22
+ .ai-apply-rail {
23
+ background: rgba(113, 119, 147, 0.8);
24
+ border-radius: $radius-8;
25
+ padding: $space-8;
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: $space-4;
29
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
30
+ backdrop-filter: blur(2px);
31
+ }
32
+
33
+ .ai-apply-row {
34
+ display: flex;
35
+ align-items: center;
36
+ gap: $space-4;
37
+ height: 40px;
38
+ }
39
+
40
+ .ai-apply-button {
41
+ display: flex;
42
+ align-items: center;
43
+ gap: $space-4;
44
+ height: 40px;
45
+ }
46
+
47
+ .ai-apply-button al-button {
48
+ height: 40px;
49
+ min-height: 40px;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ box-sizing: border-box;
54
+ }
55
+
56
+ .ai-apply-button al-icon-button {
57
+ height: 24px !important;
58
+ min-height: 24px !important;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ box-sizing: border-box;
63
+ }
64
+
65
+ .ai-apply-input {
66
+ flex: 1 1 auto;
67
+ display: flex;
68
+ align-items: center;
69
+
70
+ /* Stretch inner input and normalize height to 40px */
71
+ ::ng-deep al-input {
72
+ width: 100%;
73
+ }
74
+
75
+ ::ng-deep .al-input-size-base .mat-mdc-form-field-infix {
76
+ min-height: 40px !important;
77
+ }
78
+
79
+ ::ng-deep .al-input-field .mat-mdc-text-field-wrapper {
80
+ height: 40px;
81
+ }
82
+
83
+ /* Style mat-form-field */
84
+ ::ng-deep .mat-mdc-form-field {
85
+ background: #fff;
86
+ border-radius: $radius-8;
87
+ border: 0 !important;
88
+ overflow: hidden;
89
+ }
90
+
91
+ /* Ensure all parts of the notched outline have consistent border-radius */
92
+ ::ng-deep .al-input-field .mdc-notched-outline {
93
+ border-radius: $radius-8 !important;
94
+ }
95
+
96
+ ::ng-deep .al-input-field .mdc-notched-outline__leading {
97
+ border-top-left-radius: $radius-8 !important;
98
+ border-bottom-left-radius: $radius-8 !important;
99
+ border-top-right-radius: 0 !important;
100
+ border-bottom-right-radius: 0 !important;
101
+ }
102
+
103
+ ::ng-deep .al-input-field .mdc-notched-outline__trailing {
104
+ border-top-right-radius: $radius-8 !important;
105
+ border-bottom-right-radius: $radius-8 !important;
106
+ border-top-left-radius: 0 !important;
107
+ border-bottom-left-radius: 0 !important;
108
+ }
109
+
110
+ ::ng-deep .al-input-field .mdc-notched-outline__notch {
111
+ border-radius: 0 !important;
112
+ }
113
+
114
+ /* Ensure placeholder is visible in mat-select */
115
+ ::ng-deep .mat-mdc-select-placeholder {
116
+ color: $color-grey-700 !important;
117
+ opacity: 1 !important;
118
+ }
119
+
120
+ ::ng-deep .mat-mdc-select-value-text {
121
+ color: $color-grey-700 !important;
122
+ }
123
+
124
+ /* Styles for searchfilter autocomplete input */
125
+ ::ng-deep input[matInput] {
126
+ color: $color-grey-700 !important;
127
+ }
128
+
129
+ ::ng-deep input[matInput]::placeholder {
130
+ color: $color-grey-700 !important;
131
+ opacity: 1 !important;
132
+ }
133
+
134
+ /* Hide the label when labelText is empty */
135
+ ::ng-deep .mat-mdc-form-field:has(.mat-mdc-form-field-label:empty) .mat-mdc-form-field-label {
136
+ display: none !important;
137
+ }
138
+
139
+ /* Ensure no label spacing when labelText is empty */
140
+ ::ng-deep .mat-mdc-form-field:not(:has(.mat-mdc-form-field-label:not(:empty))) .mat-mdc-form-field-infix {
141
+ padding-top: 0 !important;
142
+ padding-bottom: 0 !important;
143
+ }
144
+ }
145
+
146
+
147
+
148
+ .ai-apply-helper {
149
+ color: rgba(255, 255, 255, 0.7);
150
+ font-size: 12px;
151
+ line-height: 16px;
152
+ }
153
+
154
+ /* Floating close button to the right, vertically centered */
155
+
156
+ .ai-apply-close {
157
+ position: relative;
158
+ margin-left: auto;
159
+ z-index: 2;
160
+ display: flex;
161
+ align-items: start;
162
+ margin-top: 8px;
163
+
164
+ ::ng-deep button.icon-circle {
165
+ width: 40px !important;
166
+ height: 40px !important;
167
+ min-width: 40px !important;
168
+ background-color: none !important;
169
+ border: none !important;
170
+ box-shadow: none !important;
171
+ color: rgba(255, 255, 255, 0.7) !important;
172
+ cursor: pointer !important;
173
+
174
+ &:hover {
175
+ color: rgba(255, 255, 255, 0.9) !important;
176
+ }
177
+
178
+ &:active {
179
+ color: rgba(255, 255, 255, 0.9) !important;
180
+ }
181
+ }
182
+ }
@@ -0,0 +1,13 @@
1
+ <div class="toolbar-container">
2
+ <div class="icon-wrapper"><button type="button" class="toolbar-icon toolbar-icon--handle"
3
+ [attr.aria-label]="requiredIcon.handle.title" [attr.title]="requiredIcon.handle.title"
4
+ (click)="$event.stopPropagation()"><mat-icon svgIcon="handle" class="handle-icon"></mat-icon></button></div>
5
+ <div class="toolbar-icons">
6
+ <div class="icon-wrapper"><button type="button" class="toolbar-icon toolbar-icon--edit"
7
+ [attr.aria-label]="requiredIcon.edit.title" [attr.title]="requiredIcon.edit.title"
8
+ (click)="editSelectedSection()"><mat-icon svgIcon="edit_icon" class="edit-icon"></mat-icon></button></div>
9
+ <div class="icon-wrapper"><button type="button" class="toolbar-icon toolbar-icon--search"
10
+ [attr.aria-label]="requiredIcon.search.title" [attr.title]="requiredIcon.search.title"
11
+ (click)="onSearchClick($event)"><mat-icon svgIcon="search" class="search-icon"></mat-icon></button></div>
12
+ </div>
13
+ </div>
@@ -0,0 +1,141 @@
1
+ .toolbar-container {
2
+ background-color: transparent;
3
+ border-radius: 8px;
4
+ padding: 8px 6px;
5
+ display: flex;
6
+ flex-direction: column;
7
+ align-items: center;
8
+ gap: 12px;
9
+
10
+ transition: background-color 0.2s ease;
11
+ }
12
+
13
+ .toolbar-container:hover {
14
+ background-color: #e5e9fc;
15
+
16
+ }
17
+
18
+
19
+ .toolbar-icon {
20
+ /* Removed custom sizing/alignment to use icon-button's built-in styles */
21
+ border-radius: 8px;
22
+ color: #6B7280;
23
+ background: transparent;
24
+ transition: background 0.2s, color 0.2s;
25
+ cursor: pointer;
26
+ }
27
+
28
+ .toolbar-icon:focus,
29
+ .toolbar-icon:hover,
30
+ .toolbar-icon.active {
31
+ // background: #F5F7FB;
32
+ color: #374151;
33
+ }
34
+
35
+ .toolbar-icon--handle,
36
+ .toolbar-icon--edit,
37
+ .toolbar-icon--search {
38
+ border: none;
39
+ background: transparent;
40
+ padding: 0;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ }
45
+
46
+ .toolbar-icon--handle {
47
+ cursor: grab;
48
+ }
49
+
50
+ .icon-wrapper {
51
+ position: relative;
52
+ display: flex;
53
+ width: 20px;
54
+ height: 20px;
55
+ padding: 2px;
56
+ justify-content: center;
57
+ align-items: center;
58
+ flex-shrink: 0;
59
+ aspect-ratio: 1/1;
60
+ background-color: transparent;
61
+ border-radius: 4px;
62
+ margin: 0 auto;
63
+ box-sizing: border-box;
64
+
65
+ &::before {
66
+ content: '';
67
+ position: absolute;
68
+ top: 50%;
69
+ left: 50%;
70
+ transform: translate(-50%, -50%);
71
+ width: 20px;
72
+ height: 20px;
73
+ background-color: transparent;
74
+ border-radius: 4px;
75
+ transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
76
+ z-index: 0;
77
+ pointer-events: none;
78
+ }
79
+
80
+ &:hover::before {
81
+ width: 22px;
82
+ height: 22px;
83
+ background-color: #BBC7F6;
84
+ }
85
+
86
+ // Ensure icon-button stays above and centered
87
+ ::ng-deep al-icon-button,
88
+ button {
89
+ position: relative;
90
+ z-index: 1;
91
+ }
92
+ }
93
+
94
+ .handle-icon,
95
+ .edit-icon,
96
+ .search-icon {
97
+ width: 20px;
98
+ height: 20px;
99
+ font-size: 20px;
100
+ color: #6B7280;
101
+ }
102
+
103
+ .handle-icon mat-icon,
104
+ .edit-icon mat-icon,
105
+ .search-icon mat-icon {
106
+ width: 20px;
107
+ height: 20px;
108
+ font-size: 20px;
109
+ color: #6B7280;
110
+
111
+ ::ng-deep svg {
112
+ width: 20px;
113
+ height: 20px;
114
+ }
115
+ }
116
+
117
+ .icon-wrapper .toolbar-icon {
118
+ width: 20px;
119
+ height: 20px;
120
+ margin: 0 auto;
121
+ }
122
+
123
+ .toolbar-icons {
124
+ display: flex;
125
+ flex-direction: column;
126
+ align-items: center;
127
+ gap: 12px;
128
+ opacity: 0;
129
+ visibility: hidden;
130
+ pointer-events: none;
131
+ transform: translateY(-4px);
132
+ transition: opacity 150ms ease, transform 150ms ease, visibility 0s linear 150ms;
133
+ }
134
+
135
+ .toolbar-container:hover .toolbar-icons {
136
+ opacity: 1;
137
+ visibility: visible;
138
+ pointer-events: auto;
139
+ transform: translateY(0);
140
+ transition: opacity 150ms ease, transform 150ms ease, visibility 0s;
141
+ }
@@ -0,0 +1,15 @@
1
+ <div class="toolbar-right-container">
2
+ <div class="icon-wrapper"><al-checkbox *ngIf="requiredIcon.checkbox.display" [checked]="checked" [showLabels]="false"
3
+ (change)="onCheckboxChange($event)" (mouseenter)="onCheckboxHover(true)"
4
+ (mouseleave)="onCheckboxHover(false)"></al-checkbox></div>
5
+ <div class="toolbar-right-icons" [ngClass]="{'always-visible': showIcons}">
6
+ <div class="icon-wrapper"><button *ngIf="requiredIcon.sr.display" type="button"
7
+ class="toolbar-icon toolbar-icon--subrole" [attr.aria-label]="requiredIcon.sr.title"
8
+ [attr.title]="requiredIcon.sr.title" (click)="setSubrole()"><mat-icon
9
+ [svgIcon]="currentObj['subrole'] ? 'subrole_active' : 'subrole'" class="subrole-icon"></mat-icon></button>
10
+ </div>
11
+ <div class="icon-wrapper"><button *ngIf="requiredIcon.eye.display" type="button"
12
+ class="toolbar-icon toolbar-icon--eye eye-icon" [attr.aria-label]="eyeLabel" [attr.title]="eyeTitle"
13
+ (click)="onToggleVisibility()"><mat-icon [svgIcon]="eyeSvgIcon" class="eye-icon"></mat-icon></button></div>
14
+ </div>
15
+ </div>
@@ -0,0 +1,294 @@
1
+ .toolbar-right-container {
2
+ background-color: transparent;
3
+ border-radius: 8px;
4
+ padding: 8px 6px !important;
5
+ display: flex;
6
+ flex-direction: column;
7
+ align-items: center;
8
+ justify-content: center;
9
+
10
+ gap: 12px !important;
11
+ transition: background-color 0.3s ease-in-out;
12
+
13
+ // Disable all ripple effects
14
+ ::ng-deep .mat-ripple-element {
15
+ display: none !important;
16
+ opacity: 0 !important;
17
+ visibility: hidden !important;
18
+ pointer-events: none !important;
19
+ animation: none !important;
20
+ }
21
+
22
+ ::ng-deep .mat-ripple {
23
+ display: none !important;
24
+ visibility: hidden !important;
25
+ pointer-events: none !important;
26
+ }
27
+
28
+ ::ng-deep .mdc-ripple-surface {
29
+ --mdc-ripple-fg-opacity: 0 !important;
30
+ --mdc-ripple-hover-opacity: 0 !important;
31
+ --mdc-ripple-press-opacity: 0 !important;
32
+ --mdc-ripple-focus-opacity: 0 !important;
33
+ }
34
+
35
+ // Disable MDC checkbox ripple - all states
36
+ ::ng-deep .mdc-checkbox__ripple,
37
+ ::ng-deep .mdc-checkbox:hover .mdc-checkbox__ripple,
38
+ ::ng-deep .mdc-checkbox:focus .mdc-checkbox__ripple,
39
+ ::ng-deep .mat-mdc-checkbox:hover .mdc-checkbox__ripple,
40
+ ::ng-deep .mat-mdc-checkbox:focus .mdc-checkbox__ripple,
41
+ ::ng-deep .mat-mdc-checkbox.mat-focused .mdc-checkbox__ripple {
42
+ display: none !important;
43
+ opacity: 0 !important;
44
+ visibility: hidden !important;
45
+ background-color: transparent !important;
46
+ pointer-events: none !important;
47
+ animation: none !important;
48
+ transform: scale(0) !important;
49
+ }
50
+
51
+ // Disable all ripple animations and elements
52
+ ::ng-deep [class*="ripple"],
53
+ ::ng-deep [class*="Ripple"] {
54
+ display: none !important;
55
+ opacity: 0 !important;
56
+ visibility: hidden !important;
57
+ pointer-events: none !important;
58
+ animation: none !important;
59
+ }
60
+
61
+ // Disable state layer (MDC ripple container)
62
+ ::ng-deep .mdc-checkbox__native-control::before,
63
+ ::ng-deep .mdc-checkbox__native-control::after {
64
+ display: none !important;
65
+ }
66
+ }
67
+
68
+ .toolbar-right-container:hover {
69
+ background-color: #e5e9fc;
70
+
71
+ }
72
+
73
+
74
+ al-icon-button {
75
+ margin: 0 auto !important;
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ }
80
+
81
+
82
+ .icon-wrapper al-checkbox {
83
+ width: 20px !important;
84
+ height: 20px !important;
85
+ margin: 0 auto !important;
86
+ padding: 0 !important;
87
+ display: flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ background: none !important;
91
+ border-radius: 2px;
92
+
93
+ ::ng-deep * {
94
+ border-radius: 2px !important;
95
+ }
96
+
97
+ // Disable checkbox ripple effect completely
98
+ ::ng-deep .mdc-checkbox__ripple {
99
+ display: none !important;
100
+ opacity: 0 !important;
101
+ visibility: hidden !important;
102
+ background-color: transparent !important;
103
+ pointer-events: none !important;
104
+ animation: none !important;
105
+ transform: scale(0) !important;
106
+ }
107
+
108
+ ::ng-deep .mat-ripple-element {
109
+ display: none !important;
110
+ opacity: 0 !important;
111
+ visibility: hidden !important;
112
+ pointer-events: none !important;
113
+ animation: none !important;
114
+ }
115
+
116
+ ::ng-deep .mat-ripple {
117
+ display: none !important;
118
+ visibility: hidden !important;
119
+ pointer-events: none !important;
120
+ }
121
+
122
+ ::ng-deep .mdc-ripple-surface {
123
+ --mdc-ripple-fg-opacity: 0 !important;
124
+ --mdc-ripple-hover-opacity: 0 !important;
125
+ --mdc-ripple-press-opacity: 0 !important;
126
+ --mdc-ripple-focus-opacity: 0 !important;
127
+ }
128
+
129
+ // Disable state layer pseudo-elements
130
+ ::ng-deep .mdc-checkbox__native-control::before,
131
+ ::ng-deep .mdc-checkbox__native-control::after {
132
+ display: none !important;
133
+ content: none !important;
134
+ }
135
+ }
136
+
137
+
138
+ @import '../styles/colors.scss';
139
+
140
+ al-icon-button {
141
+ color: $color-grey-700 !important;
142
+ background: transparent !important;
143
+ }
144
+
145
+ :host ::ng-deep al-icon-button:hover,
146
+ :host ::ng-deep al-icon-button:focus {
147
+ background: transparent !important;
148
+ color: $color-grey-700 !important;
149
+ }
150
+
151
+ .toolbar-right-icons {
152
+ display: flex;
153
+ flex-direction: column;
154
+ align-items: center;
155
+ gap: 12px;
156
+ visibility: hidden;
157
+ opacity: 0;
158
+ transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
159
+ }
160
+
161
+ .icon-wrapper {
162
+ position: relative;
163
+ display: flex;
164
+ width: 20px;
165
+ height: 20px;
166
+ padding: 2px;
167
+ justify-content: center;
168
+ align-items: center;
169
+ flex-shrink: 0;
170
+ aspect-ratio: 1/1;
171
+ background-color: transparent;
172
+ border-radius: 4px;
173
+ margin: 0 auto;
174
+ box-sizing: border-box;
175
+
176
+ &::before {
177
+ content: '';
178
+ position: absolute;
179
+ top: 50%;
180
+ left: 50%;
181
+ transform: translate(-50%, -50%);
182
+ width: 24px;
183
+ height: 24px;
184
+ background-color: transparent;
185
+ border-radius: 4px;
186
+ transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
187
+ z-index: 0;
188
+ pointer-events: none;
189
+ padding: 0;
190
+ box-sizing: border-box;
191
+ }
192
+
193
+ // Ensure icon-button stays above and centered
194
+ ::ng-deep al-icon-button,
195
+ ::ng-deep al-checkbox,
196
+ button {
197
+ position: relative;
198
+ z-index: 1;
199
+ }
200
+ }
201
+
202
+ /* Remove hover background from checkbox wrapper (first icon-wrapper) */
203
+ .toolbar-right-container>.icon-wrapper:first-child:hover::before {
204
+ background-color: transparent;
205
+ width: 20px;
206
+ height: 20px;
207
+ padding: 0;
208
+ }
209
+
210
+ /* Show background on other icon wrappers (subrole, etc.) on hover with padding */
211
+ .toolbar-right-icons .icon-wrapper:hover::before {
212
+ width: 24px;
213
+ height: 24px;
214
+ background-color: #BBC7F6;
215
+ }
216
+
217
+ /* Show background on checkbox wrapper only when eye icon is hovered */
218
+ .toolbar-right-container:has(.toolbar-right-icons .icon-wrapper:has(.eye-icon):hover)>.icon-wrapper:first-child::before {
219
+ width: 24px;
220
+ height: 24px;
221
+ background-color: #BBC7F6;
222
+ }
223
+
224
+ .toolbar-right-container:hover .toolbar-right-icons {
225
+ visibility: visible;
226
+ opacity: 1;
227
+ }
228
+
229
+ /* Always show icons when alwaysShowIcons is true or when hovering checkbox */
230
+ .toolbar-right-icons.always-visible {
231
+ visibility: visible;
232
+ opacity: 1;
233
+ }
234
+
235
+ .toolbar-icon {
236
+ border: none;
237
+ background: transparent;
238
+ padding: 0;
239
+ display: flex;
240
+ align-items: center;
241
+ justify-content: center;
242
+ cursor: pointer;
243
+ width: 20px;
244
+ height: 20px;
245
+ margin: 0 auto;
246
+
247
+ // Disable ripple effect
248
+ &::after {
249
+ display: none !important;
250
+ }
251
+
252
+ // Disable Material ripple
253
+ ::ng-deep .mat-ripple-element {
254
+ display: none !important;
255
+ }
256
+
257
+ ::ng-deep .mat-ripple {
258
+ display: none !important;
259
+ }
260
+ }
261
+
262
+ .subrole-icon {
263
+ width: 20px;
264
+ height: 20px;
265
+ font-size: 20px;
266
+ color: #6B7280;
267
+ }
268
+
269
+ .subrole-icon mat-icon {
270
+ width: 20px;
271
+ height: 20px;
272
+ font-size: 20px;
273
+ color: #6B7280;
274
+ }
275
+
276
+ .eye-icon {
277
+ width: 20px;
278
+ height: 20px;
279
+ font-size: 20px;
280
+ color: #6B7280;
281
+ }
282
+
283
+ .eye-icon mat-icon {
284
+ width: 20px;
285
+ height: 20px;
286
+ font-size: 20px;
287
+ color: #6B7280;
288
+ }
289
+
290
+ .icon-wrapper al-icon-button {
291
+ width: 20px;
292
+ height: 20px;
293
+ margin: 0 auto;
294
+ }