@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,178 @@
1
+ <al-general-container [borderRadius]="'0'" [borderPosition]="'none'" [boxShadow]="false" [padding]="'0'"
2
+ [width]="'100%'">
3
+ <cdk-accordion class="example-accordion">
4
+ <cdk-accordion-item #accordionItem="cdkAccordionItem" [expanded]="true" class="example-accordion-item">
5
+ <div class="example-accordion-item-header" [ngClass]="{'header-hidden': isSectionHidden}">
6
+ <!-- Normal header layout (shows when section is NOT hidden) -->
7
+ <ng-container *ngIf="!isSectionHidden; else hiddenHeaderLayout">
8
+ <al-responsive-columns [stackAt]="0" [gap]="'12px'" [padding]="'8px 12px'">
9
+ <div left>
10
+ <button (click)="toggleAccordion(accordionItem)" tabindex="0" class="toggle-button align-center"
11
+ [attr.aria-expanded]="accordionItem.expanded"
12
+ [matTooltip]="accordionItem.expanded ? 'Collapse' : 'Expand'" matTooltipPosition="above">
13
+ <span class="material-icons-outlined" *ngIf="!accordionItem.expanded">
14
+ expand_less
15
+ </span>
16
+ <span class="material-icons-outlined" *ngIf="accordionItem.expanded">
17
+ expand_more
18
+ </span>
19
+ </button>
20
+ <ng-content select="[header-left]"></ng-content>
21
+ </div>
22
+ <div center>
23
+ <al-responsive-columns [stackAt]="0" [gap]="'12px'" [padding]="'0'" [leftWidth]="'auto'"
24
+ [rightWidth]="'32px'" [ngClass]="{'input-focused': isInputFocused}">
25
+ <div left>
26
+ <div class="edit-input-group" [ngClass]="{'input-focused': isInputFocused}">
27
+ <div class="content_width">
28
+ <span *ngIf="!isTitleEditing" class="title-text" (click)="onTitleClick()">
29
+ {{ title || 'Click to edit' }}
30
+ </span>
31
+ <input *ngIf="isTitleEditing" #titleInput type="text" [(ngModel)]="editedTitle"
32
+ (focus)="onTitleFocus()" (blur)="onTitleBlur()" (keydown)="onTitleKeyPress($event)"
33
+ class="title-input onfocus-input-text" />
34
+ <ng-content select="[header-center-left]"></ng-content>
35
+ </div>
36
+ <mat-icon class="edit-icon" svgIcon="edit_icon" matTooltip="Edit title" matTooltipPosition="above"
37
+ (click)="onTitleClick()">
38
+ </mat-icon>
39
+ </div>
40
+ </div>
41
+ <div center>
42
+ <ng-content select="[header-center-center]"></ng-content>
43
+ <!-- Header buttons for large screens (including Deep Extraction via buttonConfig) -->
44
+ <ng-container *ngIf="isLargeScreen">
45
+ <ng-container *ngTemplateOutlet="headerButtonsTemplate; context: { buttons: buttonConfig }">
46
+ </ng-container>
47
+ </ng-container>
48
+ <!-- Menu trigger and slide-out panel for small screens only -->
49
+ <div class="hover-menu-container" *ngIf="!isLargeScreen">
50
+ <div class="menu-trigger" (click)="toggleMenu()">
51
+ <al-button buttonType="icon-label" iconOnly size="header" category="grey" leftIcon="more_vert"
52
+ aria-label="More options" [dataTestId]="'resume-header-more-menu'">
53
+ </al-button>
54
+ </div>
55
+ <div class="slide-out-panel" [class.visible]="isMenuVisible">
56
+ <div class="fit-panel">
57
+ <ng-container *ngTemplateOutlet="headerButtonsTemplate; context: { buttons: buttonConfig }">
58
+ </ng-container>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div right>
64
+ <ng-content select="[header-center-right]"></ng-content>
65
+ <!-- Eye icon - uses actual isHidden value from config, always visible -->
66
+ <ng-container *ngIf="configEyeToggle && configEyeToggle.length > 0">
67
+ <ng-container *ngFor="let eyeConfig of configEyeToggle">
68
+ <ng-container *ngIf="eyeConfig">
69
+ <ng-container
70
+ *ngTemplateOutlet="eyeIconTemplate; context: { isHidden: eyeConfig.isHidden === true, accordionItem: accordionItem, configEyeToggle: eyeConfig }">
71
+ </ng-container>
72
+ </ng-container>
73
+ </ng-container>
74
+ </ng-container>
75
+ </div>
76
+ </al-responsive-columns>
77
+ </div>
78
+ <div right>
79
+ <al-checkbox *ngIf="showHeaderCheckbox" [checked]="headerCheckboxChecked" [showLabels]="false"
80
+ (change)="onHeaderCheckboxChange($event)">
81
+ </al-checkbox>
82
+ <ng-content select="[header-right]"></ng-content>
83
+ </div>
84
+ </al-responsive-columns>
85
+ </ng-container>
86
+
87
+ <!-- Hidden header layout (shows when section IS hidden) -->
88
+ <ng-template #hiddenHeaderLayout>
89
+ <al-responsive-columns [stackAt]="0" [gap]="'12px'" [padding]="'8px 12px'">
90
+ <div left>
91
+ <!-- Toggle button hidden when section is hidden -->
92
+ <ng-content select="[header-left]"></ng-content>
93
+ </div>
94
+ <div center>
95
+ <al-responsive-columns [stackAt]="0" [gap]="'12px'" [padding]="'0'" [leftWidth]="'auto'"
96
+ [rightWidth]="'32px'">
97
+ <div left>
98
+ <div class="edit-input-group hide-header-title">
99
+ <div class="content_width">
100
+ <span class="title-text header-text-turncate">{{ title }}</span>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ <div center>
105
+ <div class="hidden-write">Section hidden</div>
106
+ </div>
107
+ <div right>
108
+ <ng-content select="[header-center-right]"></ng-content>
109
+ <!-- Eye icon - uses actual isHidden value from config, always visible -->
110
+ <ng-container *ngIf="configEyeToggle && configEyeToggle.length > 0">
111
+ <ng-container *ngFor="let eyeConfig of configEyeToggle">
112
+ <ng-container *ngIf="eyeConfig">
113
+ <ng-container
114
+ *ngTemplateOutlet="eyeIconTemplate; context: { isHidden: eyeConfig.isHidden === true, accordionItem: accordionItem, configEyeToggle: eyeConfig }">
115
+ </ng-container>
116
+ </ng-container>
117
+ </ng-container>
118
+ </ng-container>
119
+ </div>
120
+ </al-responsive-columns>
121
+ </div>
122
+ <div right>
123
+ <!-- Checkbox hidden when section is hidden -->
124
+ <ng-content select="[header-right]"></ng-content>
125
+ </div>
126
+ </al-responsive-columns>
127
+ </ng-template>
128
+ </div>
129
+ <!-- Accordion body (only shows when expanded AND not hidden) -->
130
+ <div class="example-accordion-item-body" *ngIf="accordionItem.expanded && !isSectionHidden">
131
+ <!-- Pop-out Panel -->
132
+ <div *ngIf="shouldShowPopOut" class="pop-out-panel">
133
+ <div class="pop-out-content">
134
+ <al-button [labelText]="popOutButtonLabel" [rightIcon]="popOutButtonIcon" [buttonType]="'icon-label'"
135
+ [category]="'gradient'" [size]="'xs'" [iconOnly]="false" (onClick)="popOutButtonClick.emit()"
136
+ [dataTestId]="'pop-out-run-deep-extraction'" [title]="popOutButtonLabel">
137
+ </al-button>
138
+ <p class="pop-out-message" [innerHTML]="sanitizedMessage"></p>
139
+ <button type="button" class="pop-out-close" (click)="dismissPopOut()" aria-label="Close pop-out panel">
140
+ <span class="material-icons-outlined">close</span>
141
+ </button>
142
+ </div>
143
+ </div>
144
+ <!-- Single body content slot - child component will handle 3-column layout internally -->
145
+ <ng-content></ng-content>
146
+ </div>
147
+ </cdk-accordion-item>
148
+ </cdk-accordion>
149
+ </al-general-container>
150
+
151
+ <ng-template #headerButtonsTemplate let-buttons="buttons" let-handleClick="handleClick">
152
+ <ng-container *ngFor="let btn of buttonConfig">
153
+ <al-button *ngIf="!btn.displayCondition || btn.displayCondition()" [color]="btn.color" [outline]="btn.outline"
154
+ [size]="btn.size" [iconOutlined]="btn.iconOutlined" [labelText]="btn.labelText"
155
+ [leftIcon]="getButtonIcons(btn).leftIcon" [rightIcon]="getButtonIcons(btn).rightIcon"
156
+ [dataTestId]="btn.dataTestId" [hasDropDown]="btn.hasDropDown" [dropdownItems]="btn.dropdownItems"
157
+ [buttonType]="'icon-label'" [iconOnly]="!btn.labelText" [tooltip]="getButtonTooltip(btn)"
158
+ [tooltipPosition]="'above'" (onClick)="onButtonClick(btn, $event)" (optionSelect)="onDropdownSelect(btn, $event)">
159
+ </al-button>
160
+ </ng-container>
161
+ </ng-template>
162
+
163
+ <ng-template #eyeIconTemplate let-isHidden="isHidden" let-accordionItem="accordionItem"
164
+ let-configEyeToggle="configEyeToggle">
165
+ <div class="mat-checkbox-margin align-center"
166
+ [attr.data-test-id]="isHidden ? 'section-show-eye-div' : 'section-hide-eye-div'"
167
+ style="display: flex; align-items: center; justify-content: center;">
168
+ <mat-icon class="delete-multiple mat-fab.mat-accent eye-icon" [svgIcon]="isHidden ? 'visibility' : 'visibility_off'"
169
+ [matTooltip]="configEyeToggle?.tooltips?.[isHidden ? 'collapse' : 'expand'] || (isHidden ? 'Show Section' : 'Hide Section')"
170
+ [matTooltipPosition]="configEyeToggle?.tooltips?.position || 'above'"
171
+ [attr.aria-label]="configEyeToggle?.ariaLabels?.[isHidden ? 'collapsed' : 'expanded'] || (isHidden ? 'Show section' : 'Hide section')"
172
+ (click)="onEyeIconClick(isHidden, accordionItem, configEyeToggle)"
173
+ [attr.data-test-id]="isHidden ? 'section-show-eye-icon' : 'section-hide-eye-icon'"
174
+ style="cursor: pointer; display: inline-block; width: 24px; height: 24px; font-size: 24px; color: #717793;"
175
+ [style.opacity]="1" [style.visibility]="'visible'">
176
+ </mat-icon>
177
+ </div>
178
+ </ng-template>
@@ -0,0 +1,530 @@
1
+
2
+ @import url('https://fonts.googleapis.com/css2?family=Material+Icons+Outlined');
3
+ @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20,400,0,0');
4
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
5
+
6
+
7
+
8
+
9
+ .example-accordion-item-header {
10
+ display: flex;
11
+ align-items: center;
12
+ cursor: pointer;
13
+ width: 100%;
14
+ }
15
+
16
+ .example-accordion-item-header al-responsive-columns {
17
+ width: 100%;
18
+ display: block;
19
+ }
20
+
21
+ /* Center align items in outer responsive-columns - only vertical alignment, preserve grid layout */
22
+ .example-accordion-item-header al-responsive-columns ::ng-deep .container {
23
+ align-items: center;
24
+ /* Grid layout preserved - align-items only affects vertical alignment */
25
+ display: grid;
26
+ }
27
+
28
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns {
29
+ width: 100%;
30
+ display: block;
31
+ }
32
+
33
+ /* Center align items in nested responsive-columns - only vertical alignment, preserve grid layout */
34
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns ::ng-deep .container {
35
+ align-items: center;
36
+ /* Grid layout preserved - align-items only affects vertical alignment */
37
+ display: grid;
38
+ min-width: 0;
39
+ transition: grid-template-columns 0.2s ease;
40
+ }
41
+
42
+ /* Override grid template columns when input is focused to expand left column */
43
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns.input-focused ::ng-deep .container {
44
+ grid-template-columns: 1fr auto 32px !important;
45
+ }
46
+
47
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns ::ng-deep .column {
48
+ display: flex;
49
+ align-items: center;
50
+ min-width: 0;
51
+ }
52
+
53
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[left],
54
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[center],
55
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[right] {
56
+ display: flex;
57
+ align-items: center;
58
+ width: 100%;
59
+ min-width: 0;
60
+ }
61
+
62
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[left] {
63
+ flex-shrink: 1;
64
+ min-width: 0;
65
+ overflow: hidden;
66
+ max-width: 100%;
67
+ transition: flex 0.2s ease, width 0.2s ease;
68
+ }
69
+
70
+ /* Expand left div when input inside is focused */
71
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns.input-focused div[left],
72
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[left] .edit-input-group.input-focused {
73
+ width: 100%;
74
+ min-width: 0;
75
+ max-width: none;
76
+ }
77
+
78
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns ::ng-deep .column.left {
79
+ min-width: 0;
80
+ overflow: hidden;
81
+ max-width: 100%;
82
+ transition: flex 0.2s ease;
83
+ }
84
+
85
+ /* Expand left column in grid when input is focused */
86
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns.input-focused ::ng-deep .column.left {
87
+ min-width: 0;
88
+ max-width: none;
89
+ width: 100%;
90
+ }
91
+
92
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[center] {
93
+ justify-content: flex-end;
94
+ gap: 8px;
95
+ flex-shrink: 0;
96
+ flex-wrap: nowrap;
97
+ display: flex;
98
+ align-items: center;
99
+ }
100
+
101
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[right] {
102
+ flex-shrink: 0;
103
+ }
104
+
105
+ .example-accordion-item-body {
106
+ width: 100%;
107
+ }
108
+
109
+ .example-accordion-item-body al-responsive-columns {
110
+ width: 100%;
111
+ display: block;
112
+ }
113
+
114
+ .toggle-button {
115
+ border: none;
116
+ background: none;
117
+ padding: 0;
118
+ cursor: pointer;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+
123
+ }
124
+
125
+ .example-accordion-item-header al-responsive-columns div[left] {
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ }
130
+
131
+ .example-accordion-item-header al-responsive-columns div[right] {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ flex-shrink: 0;
136
+ }
137
+
138
+ .align-center {
139
+ display: flex;
140
+ align-items: center;
141
+ }
142
+
143
+
144
+
145
+
146
+ .example-accordion-item-header {
147
+ display: flex;
148
+ justify-content: space-between;
149
+ align-items: center;
150
+ background: #ecedf1;
151
+ gap: 8px;
152
+ border-bottom: 2px solid #37c1ce;
153
+ border-radius: 8px;
154
+ box-sizing: border-box;
155
+
156
+ }
157
+
158
+
159
+ .material-symbols-outlined {
160
+ font-family: 'Material Symbols Outlined';
161
+ font-weight: normal;
162
+ font-style: normal;
163
+ font-size: 24px;
164
+ letter-spacing: normal;
165
+ text-transform: none;
166
+ display: inline-block;
167
+ white-space: nowrap;
168
+ word-wrap: normal;
169
+ direction: ltr;
170
+ -webkit-font-feature-settings: 'liga';
171
+ font-feature-settings: 'liga';
172
+ -webkit-font-smoothing: antialiased;
173
+ color: #717793;
174
+ width: 24px;
175
+ height: 24px;
176
+ cursor: pointer;
177
+ transition: color 0.2s ease;
178
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;
179
+ }
180
+
181
+ .material-symbols-outlined:hover {
182
+ color: #4b4f62;
183
+ background-color: #BBC7F6;
184
+ width: 24px;
185
+ height: 24px;
186
+ border-radius: 4px;
187
+
188
+ }
189
+
190
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[right] {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: center;
194
+ }
195
+
196
+ /* Edit input group hover effect for title */
197
+ .edit-input-group {
198
+ display: flex;
199
+ align-items: center;
200
+ gap: 4px;
201
+ min-width: 0;
202
+ border-radius: 4px;
203
+ transition: background-color 0.2s ease, width 0.2s ease;
204
+ padding: 0 8px;
205
+ flex-shrink: 1;
206
+ width: 100%;
207
+ max-width: 100%;
208
+ overflow: hidden;
209
+ flex: 1 1 0;
210
+ }
211
+
212
+ /* Expand edit-input-group to 100% width when input is focused */
213
+ .edit-input-group.input-focused {
214
+ width: 100%;
215
+ flex: 1 1 100%;
216
+ min-width: 0;
217
+ }
218
+
219
+ .edit-input-group:hover {
220
+ background-color: #D1D3DB;
221
+ }
222
+
223
+ /* Disable hover effect when input is focused */
224
+ .edit-input-group:has(input:focus):hover,
225
+ .edit-input-group:focus-within:hover {
226
+ background-color: transparent;
227
+ }
228
+
229
+ /* Hide edit icon when input is focused */
230
+ .edit-input-group:has(input:focus) mat-icon.edit-icon,
231
+ .edit-input-group:focus-within mat-icon.edit-icon {
232
+ opacity: 0;
233
+ visibility: hidden;
234
+ }
235
+
236
+ /* Hover menu container for small screens */
237
+ .hover-menu-container {
238
+ position: relative;
239
+ display: inline-block;
240
+ }
241
+
242
+ .menu-trigger {
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ padding: 0 8px;
247
+ cursor: pointer;
248
+ z-index: 10;
249
+ }
250
+
251
+ .slide-out-panel {
252
+ position: absolute;
253
+ bottom: 100%;
254
+ right: 0;
255
+ background-color: white;
256
+ border: 1px solid #dee2e6;
257
+ border-radius: 6px;
258
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
259
+ z-index: 10035;
260
+ padding: 8px;
261
+ margin-bottom: 6px;
262
+ opacity: 0;
263
+ visibility: hidden;
264
+ transition: opacity 0.2s ease, visibility 0.2s ease;
265
+ display: flex;
266
+ flex-direction: row;
267
+ gap: 8px;
268
+ flex-wrap: nowrap;
269
+ white-space: nowrap;
270
+ align-items: center;
271
+ }
272
+
273
+ .slide-out-panel.visible {
274
+ opacity: 1;
275
+ visibility: visible;
276
+ }
277
+
278
+ .fit-panel {
279
+ display: inline-flex;
280
+ width: fit-content;
281
+ background: none;
282
+ gap: 8px;
283
+ align-items: center;
284
+ }
285
+
286
+ /* Pop-out Panel Styles */
287
+ .example-accordion-item-body .pop-out-panel {
288
+ background-color: #717793;
289
+ border-radius: 12px;
290
+ width: calc(100% - 110px);
291
+ margin: 8px auto;
292
+ padding: 12px 16px;
293
+ position: relative;
294
+ box-sizing: border-box;
295
+
296
+ }
297
+
298
+ .pop-out-content {
299
+ display: flex;
300
+ align-items: flex-start;
301
+ justify-content: space-between;
302
+ gap: 8px;
303
+ align-items: center;
304
+ }
305
+
306
+ .pop-out-content al-button {
307
+ flex-shrink: 0;
308
+ align-self: center;
309
+ }
310
+
311
+ .pop-out-content al-button .button-label {
312
+ display: inline-block !important;
313
+ visibility: visible !important;
314
+ opacity: 1 !important;
315
+ }
316
+
317
+ .pop-out-message {
318
+ flex: 1;
319
+ color: #fff;
320
+ font-size: 12px;
321
+ line-height: 1.5;
322
+ font-family: 'Roboto', sans-serif;
323
+ font-weight: 400;
324
+ min-width: 0;
325
+ letter-spacing: 0.06px;
326
+ }
327
+
328
+ .pop-out-message ::ng-deep a,
329
+ .pop-out-link {
330
+ color: var(--Base-Blue, #5473E8);
331
+ font-family: Roboto;
332
+ font-size: 12px;
333
+ font-style: normal;
334
+ font-weight: 400;
335
+ line-height: 136%;
336
+ letter-spacing: 0.06px;
337
+ cursor: pointer;
338
+ }
339
+
340
+ .pop-out-message ::ng-deep a:hover,
341
+ .pop-out-link:hover {
342
+ color: #6581EA;
343
+ }
344
+
345
+ .pop-out-close {
346
+ background: transparent;
347
+ border: none;
348
+ padding: 0;
349
+ cursor: pointer;
350
+ display: flex;
351
+ align-items: center;
352
+ justify-content: center;
353
+ width: 24px;
354
+ height: 24px;
355
+ flex-shrink: 0;
356
+ color: #6B7280;
357
+ transition: color 0.2s ease;
358
+ }
359
+
360
+ .pop-out-close:hover {
361
+ color: #374151;
362
+ }
363
+
364
+ .pop-out-close .material-icons-outlined {
365
+ font-size: 20px;
366
+ width: 20px;
367
+ height: 20px;
368
+ color: #fff;
369
+ }
370
+
371
+ .edit-input-group .content_width {
372
+ flex: 1 1 0;
373
+ min-width: 0;
374
+ max-width: 450px;
375
+ overflow: hidden;
376
+ display: flex;
377
+ align-items: center;
378
+ transition: flex 0.2s ease, width 0.2s ease;
379
+ }
380
+
381
+ /* Expand content_width when input is focused */
382
+ .edit-input-group.input-focused .content_width {
383
+ flex: 1 1 100%;
384
+ width: 100%;
385
+ min-width: 0;
386
+ }
387
+
388
+ .title-text {
389
+ font-size: 16px;
390
+ font-weight: 400;
391
+ color: #383b4a;
392
+ font-family: 'Roboto', sans-serif;
393
+ white-space: nowrap;
394
+ overflow: hidden;
395
+ text-overflow: ellipsis;
396
+ margin-right: 4px;
397
+ flex-shrink: 1;
398
+ min-width: 0;
399
+ max-width: 100%;
400
+ cursor: pointer;
401
+ }
402
+
403
+ .title-input {
404
+ font-size: 16px;
405
+ font-weight: 400;
406
+ font-family: 'Roboto', sans-serif;
407
+ border: none;
408
+ outline: none;
409
+ padding: 0;
410
+ margin: 0;
411
+ margin-right: 4px;
412
+ flex-shrink: 1;
413
+ min-width: 100px;
414
+ max-width: 100%;
415
+ box-sizing: border-box;
416
+ width: 100%;
417
+ transition: width 0.2s ease;
418
+ }
419
+
420
+ /* Input expands to 100% width when focused */
421
+ .title-input:focus {
422
+ width: 100%;
423
+ min-width: 100%;
424
+ flex: 1 1 100%;
425
+ }
426
+
427
+ .title-input.onfocus-input-text {
428
+ height: 28px;
429
+ background: #f4f8fc;
430
+ border-radius: 5px;
431
+ text-overflow: ellipsis;
432
+ overflow: hidden;
433
+ white-space: nowrap;
434
+ }
435
+
436
+ .title-input.focusout-input-text {
437
+ color: #383b4a;
438
+ background: transparent;
439
+ white-space: nowrap;
440
+ overflow: hidden;
441
+ text-overflow: ellipsis;
442
+ }
443
+
444
+ .title-input:focus {
445
+ outline: none;
446
+ border: none;
447
+ box-shadow: none;
448
+ }
449
+
450
+ /* Allow title to expand and use available space */
451
+ .example-accordion-item-header al-responsive-columns div[center] al-responsive-columns ::ng-deep .column.left {
452
+ min-width: 0;
453
+ overflow: visible;
454
+ }
455
+
456
+ .edit-input-group mat-icon.edit-icon {
457
+ opacity: 0;
458
+ visibility: hidden;
459
+ transition: opacity 0.2s ease, visibility 0.2s ease;
460
+ cursor: pointer;
461
+ border-radius: 4px;
462
+ flex-shrink: 0;
463
+ min-width: 24px;
464
+ width: 24px;
465
+ height: 24px;
466
+ display: inline-flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ color: #717793;
470
+ }
471
+
472
+ .edit-input-group:hover mat-icon.edit-icon {
473
+ opacity: 1;
474
+ visibility: visible;
475
+ }
476
+
477
+ /* Hidden header layout styles */
478
+ /* Hide edit icon when header is in hidden state */
479
+ .hide-header-title mat-icon.edit-icon {
480
+ display: none;
481
+ }
482
+
483
+ .hide-header-title .edit-input-group {
484
+ cursor: default;
485
+ opacity: 0.7;
486
+ }
487
+
488
+ .hide-header-title .edit-input-group:hover {
489
+ background-color: transparent;
490
+ }
491
+
492
+ .hide-header-title .title-text {
493
+ cursor: default;
494
+ pointer-events: none;
495
+ }
496
+
497
+ .header-text-turncate {
498
+ font-weight: 400;
499
+ white-space: nowrap;
500
+ overflow: hidden;
501
+ text-overflow: ellipsis;
502
+ max-width: 100%;
503
+ color: #a2a6b8;
504
+ line-height: 28px;
505
+ font-family: 'Roboto', sans-serif;
506
+ cursor: default;
507
+ }
508
+
509
+ .hidden-section-right {
510
+ display: flex;
511
+ align-items: center;
512
+ gap: 8px;
513
+ flex-shrink: 0;
514
+ }
515
+
516
+ .hidden-write {
517
+ color: #a2a6b8;
518
+ font-weight: 400;
519
+ font-family: 'Roboto', sans-serif;
520
+ white-space: nowrap;
521
+ }
522
+
523
+ /* Apply reduced opacity to entire header when hidden */
524
+ .example-accordion-item-header.header-hidden {
525
+ opacity: 0.7;
526
+ }
527
+
528
+ .mat-checkbox-margin {
529
+ margin-left: 8px;
530
+ }