@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,439 @@
1
+ /* ============================================
2
+ SLIDE TOGGLE COMPONENT STYLES - ANGULAR 18
3
+ ============================================ */
4
+ @import url('https://fonts.googleapis.com/icon?family=Material+Icons');
5
+ @import '../styles/colors.scss';
6
+ @import '../styles/typography-classes.scss';
7
+
8
+ .slide-toggle-container {
9
+ position: relative;
10
+ display: inline-block;
11
+ }
12
+
13
+ /* ============================================
14
+ ANGULAR 18 MATERIAL DESIGN 3 SIZING
15
+ ============================================ */
16
+
17
+ /* Medium size (default) */
18
+ ::ng-deep .custom-slide-toggle.slide-toggle-medium .mdc-switch {
19
+ width: 52px !important;
20
+ height: 32px !important;
21
+ }
22
+
23
+ ::ng-deep .custom-slide-toggle.slide-toggle-medium .mdc-switch__track {
24
+ width: 52px !important;
25
+ height: 32px !important;
26
+ border-radius: 16px !important;
27
+ }
28
+
29
+ ::ng-deep .custom-slide-toggle.slide-toggle-medium .mdc-switch__handle {
30
+ width: 22px !important;
31
+ height: 22px !important;
32
+ border-radius: 50% !important;
33
+ top: 16px !important;
34
+ left: 4px !important;
35
+ }
36
+
37
+ /* Small size */
38
+ ::ng-deep .custom-slide-toggle.slide-toggle-small .mdc-switch {
39
+ width: 40px !important;
40
+ height: 24px !important;
41
+ }
42
+
43
+ ::ng-deep .custom-slide-toggle.slide-toggle-small .mdc-switch__track {
44
+ width: 40px !important;
45
+ height: 24px !important;
46
+ border-radius: 12px !important;
47
+ }
48
+
49
+ ::ng-deep .custom-slide-toggle.slide-toggle-small .mdc-switch__handle {
50
+ width: 18px !important;
51
+ height: 18px !important;
52
+ border-radius: 50% !important;
53
+ top: 12px !important;
54
+ left: 3px !important;
55
+ }
56
+
57
+ /* Large size */
58
+ ::ng-deep .custom-slide-toggle.slide-toggle-large .mdc-switch {
59
+ width: 64px !important;
60
+ height: 40px !important;
61
+ }
62
+
63
+ ::ng-deep .custom-slide-toggle.slide-toggle-large .mdc-switch__track {
64
+ width: 64px !important;
65
+ height: 40px !important;
66
+ border-radius: 20px !important;
67
+ }
68
+
69
+ ::ng-deep .custom-slide-toggle.slide-toggle-large .mdc-switch__handle {
70
+ width: 28px !important;
71
+ height: 28px !important;
72
+ border-radius: 50% !important;
73
+ top: 20px !important;
74
+ left: 6px !important;
75
+ }
76
+
77
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-checked .mdc-switch__handle {
78
+ transform: translateX(2px) !important;
79
+ top: 5px !important;
80
+ }
81
+
82
+ /* Small size checked state */
83
+ ::ng-deep .custom-slide-toggle.slide-toggle-small.mat-mdc-slide-toggle-checked .mdc-switch__handle {
84
+ transform: translateX(7px) !important;
85
+ top: 3px !important;
86
+ }
87
+
88
+ /* Large size checked state */
89
+ ::ng-deep .custom-slide-toggle.slide-toggle-large.mat-mdc-slide-toggle-checked .mdc-switch__handle {
90
+ transform: translateX(-7px) !important;
91
+ top: 6px !important;
92
+ }
93
+
94
+ /* ============================================
95
+ CUSTOM COLOR THEMES
96
+ ============================================ */
97
+
98
+ /* Default/Primary Color (Blue) */
99
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-checked .mdc-switch__track {
100
+ background-color: $color-blue-300 !important;
101
+ border-color: $color-blue-300 !important;
102
+ }
103
+
104
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-checked .mdc-switch__handle-track {
105
+ background-color: $color-blue-300 !important;
106
+ border-radius: 75px;
107
+ left: -11px;
108
+ height: 0 !important;
109
+ }
110
+
111
+ /* Primary Theme (Blue) */
112
+ ::ng-deep .custom-slide-toggle.mat-primary.mat-mdc-slide-toggle-checked .mdc-switch__track {
113
+ background-color: $color-blue-300 !important;
114
+ border-color: $color-blue-300 !important;
115
+ }
116
+
117
+ ::ng-deep .custom-slide-toggle.mat-primary.mat-mdc-slide-toggle-checked .mdc-switch__handle-track {
118
+ background-color: $color-blue-300 !important;
119
+ border-radius: 75px;
120
+ left: -11px;
121
+ height: 0 !important;
122
+ }
123
+
124
+ /* Green Theme (Cyan) */
125
+ ::ng-deep .custom-slide-toggle.mat-green.mat-mdc-slide-toggle-checked .mdc-switch__track {
126
+ background-color: $color-green-500 !important;
127
+ border-color: $color-green-500 !important;
128
+ }
129
+
130
+ ::ng-deep .custom-slide-toggle.mat-green.mat-mdc-slide-toggle-checked .mdc-switch__handle-track {
131
+ background-color: $color-green-500 !important;
132
+ border-radius: 75px;
133
+ left: -11px;
134
+ height: 0 !important;
135
+ }
136
+
137
+ /* Error Theme (Pink) */
138
+ ::ng-deep .custom-slide-toggle.mat-error.mat-mdc-slide-toggle-checked .mdc-switch__track {
139
+ background-color: $color-error-500 !important;
140
+ border-color: $color-error-500 !important;
141
+ }
142
+
143
+ ::ng-deep .custom-slide-toggle.mat-error.mat-mdc-slide-toggle-checked .mdc-switch__handle-track {
144
+ background-color: $color-error-500 !important;
145
+ border-radius: 75px;
146
+ left: -11px;
147
+ height: 0 !important;
148
+ }
149
+
150
+ /* ============================================
151
+ DISABLED STATE STYLING
152
+ ============================================ */
153
+
154
+ /* Disabled - Unchecked State */
155
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-disabled .mdc-switch__track {
156
+ background-color: #DEE0E6 !important;
157
+ border-color: #DEE0E6 !important;
158
+ }
159
+
160
+ /* Disabled - Checked State */
161
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-disabled.mat-mdc-slide-toggle-checked .mdc-switch__track {
162
+ background-color: #DEE0E6 !important;
163
+ border-color: #DEE0E6 !important;
164
+ }
165
+
166
+ /* Disabled Handle */
167
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-disabled .mdc-switch__handle {
168
+ background-color: #DEE0E6 !important;
169
+ }
170
+
171
+ /* ============================================
172
+ UNCHECKED STATE STYLING
173
+ ============================================ */
174
+
175
+ /* Unchecked State Border */
176
+ .custom-slide-toggle .mdc-switch__track {
177
+ border-color: $color-grey-400 !important;
178
+ }
179
+
180
+ /* Unchecked State Styling */
181
+ ::ng-deep .custom-slide-toggle:not(.mat-mdc-slide-toggle-checked) .mdc-switch__track {
182
+ border: 2px solid $color-grey-400 !important;
183
+ background-color: #fff !important;
184
+ }
185
+
186
+ /* ============================================
187
+ INTERACTIVE STATES (FOCUS & HOVER)
188
+ ============================================ */
189
+
190
+ /* Default Focus State */
191
+ .custom-slide-toggle .mdc-switch__ripple {
192
+ background-color: rgba(84, 115, 232, 0.12) !important;
193
+ }
194
+
195
+ /* Hover State */
196
+ .custom-slide-toggle:hover .mdc-switch__ripple {
197
+ background-color: rgba(84, 115, 232, 0.24) !important;
198
+ }
199
+
200
+ /* ============================================
201
+ TYPOGRAPHY STYLING
202
+ ============================================ */
203
+
204
+ /* Material Design Label Styling */
205
+ .custom-slide-toggle .mdc-form-field>label {
206
+ @extend .font-label-large;
207
+ color: $color-grey-700 !important;
208
+ }
209
+
210
+ /* ============================================
211
+ CUSTOM LABEL COMPONENTS
212
+ ============================================ */
213
+
214
+ /* Main Label Styling */
215
+ .slide-toggle-label-main {
216
+ @extend .font-label-large;
217
+ color: $color-grey-700 !important;
218
+ margin-left: 8px;
219
+ }
220
+
221
+ /* Helper Text Styling */
222
+ .slide-toggle-label-helper {
223
+ @extend .font-label-medium;
224
+ color: $color-grey-500 !important;
225
+ margin-top: 4px !important;
226
+ margin-left: 8px;
227
+ }
228
+
229
+ /* ============================================
230
+ ANIMATION & TRANSITIONS
231
+ ============================================ */
232
+
233
+ .custom-slide-toggle .mdc-switch__handle {
234
+ transition: transform 0.2s ease !important;
235
+ }
236
+
237
+ .custom-slide-toggle .mdc-switch__track {
238
+ transition: background-color 0.2s ease, border-color 0.2s ease !important;
239
+ }
240
+
241
+ /* ============================================
242
+ CUSTOM ICON STYLING
243
+ ============================================ */
244
+
245
+ /* Style the custom icon inside the handle */
246
+ .slide-toggle-custom-icon {
247
+ font-size: 18px !important;
248
+ color: $color-blue-300 !important;
249
+ display: flex !important;
250
+ align-items: center !important;
251
+ justify-content: center !important;
252
+ width: 24px !important;
253
+ height: 24px !important;
254
+ font-family: 'Material Icons' !important;
255
+ font-weight: normal !important;
256
+ font-style: normal !important;
257
+ line-height: 1 !important;
258
+ letter-spacing: normal !important;
259
+ text-transform: none !important;
260
+ white-space: nowrap !important;
261
+ word-wrap: normal !important;
262
+ direction: ltr !important;
263
+ -webkit-font-feature-settings: 'liga' !important;
264
+ -webkit-font-smoothing: antialiased !important;
265
+ text-rendering: optimizeLegibility !important;
266
+ -moz-osx-font-smoothing: grayscale !important;
267
+ }
268
+
269
+ /* Icon sizes for different toggle sizes */
270
+ ::ng-deep .custom-slide-toggle.slide-toggle-small .slide-toggle-custom-icon {
271
+ font-size: 14px !important;
272
+ width: 18px !important;
273
+ height: 18px !important;
274
+ }
275
+
276
+ ::ng-deep .custom-slide-toggle.slide-toggle-medium .slide-toggle-custom-icon {
277
+ font-size: 18px !important;
278
+ width: 24px !important;
279
+ height: 24px !important;
280
+ }
281
+
282
+ ::ng-deep .custom-slide-toggle.slide-toggle-large .slide-toggle-custom-icon {
283
+ font-size: 22px !important;
284
+ width: 28px !important;
285
+ height: 28px !important;
286
+ }
287
+
288
+ /* Icon hover and ripple effects */
289
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon {
290
+ position: relative !important;
291
+ border-radius: 50% !important;
292
+ transition: all 0.2s ease !important;
293
+ cursor: pointer !important;
294
+ padding: 4px !important;
295
+ margin: -4px !important;
296
+ display: inline-flex !important;
297
+ align-items: center !important;
298
+ justify-content: center !important;
299
+ }
300
+
301
+ /* Ensure hover works on the handle */
302
+ ::ng-deep .custom-slide-toggle .mdc-switch__handle:hover .slide-toggle-custom-icon {
303
+ background-color: rgba(113, 119, 147, 0.15) !important;
304
+ border-radius: 50% !important;
305
+ padding: 4px !important;
306
+ margin: -4px !important;
307
+ }
308
+
309
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon:hover,
310
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon:focus {
311
+ background-color: rgba(113, 119, 147, 0.15) !important;
312
+ border-radius: 50% !important;
313
+ padding: 4px !important;
314
+ margin: -4px !important;
315
+ }
316
+
317
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon:active {
318
+ background-color: rgba(113, 119, 147, 0.25) !important;
319
+ border-radius: 50% !important;
320
+ padding: 4px !important;
321
+ margin: -4px !important;
322
+ }
323
+
324
+ /* Icon ripple effect */
325
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon::before {
326
+ content: '' !important;
327
+ position: absolute !important;
328
+ top: 50% !important;
329
+ left: 50% !important;
330
+ width: calc(100% + 8px) !important;
331
+ height: calc(100% + 8px) !important;
332
+ background-color: rgba(113, 119, 147, 0.15) !important;
333
+ border-radius: 50% !important;
334
+ transform: translate(-50%, -50%) scale(0) !important;
335
+ transition: transform 0.3s ease !important;
336
+ pointer-events: none !important;
337
+ z-index: -1 !important;
338
+ }
339
+
340
+ ::ng-deep .custom-slide-toggle .slide-toggle-custom-icon:active::before {
341
+ transform: translate(-50%, -50%) scale(1) !important;
342
+ }
343
+
344
+ /* Ensure the icon container is properly styled */
345
+ ::ng-deep .mdc-switch__icon {
346
+ display: flex !important;
347
+ align-items: center !important;
348
+ justify-content: center !important;
349
+ }
350
+
351
+ /* Also style the thumb element */
352
+ ::ng-deep .mat-slide-toggle-thumb {
353
+ display: flex !important;
354
+ align-items: center !important;
355
+ justify-content: center !important;
356
+ }
357
+
358
+ /* Style the handle to center the icon */
359
+ ::ng-deep .mdc-switch__handle {
360
+ display: flex !important;
361
+ align-items: center !important;
362
+ justify-content: center !important;
363
+ }
364
+
365
+ /* Hide default Material Icons */
366
+ ::ng-deep .mdc-switch__icon--on,
367
+ ::ng-deep .mdc-switch__icon--off {
368
+ display: none !important;
369
+ }
370
+
371
+ /* Focus state color when switch is ON */
372
+ ::ng-deep .mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after {
373
+ background: $color-blue-50 !important;
374
+ }
375
+
376
+ /* Selected handle background color */
377
+ ::ng-deep .mdc-switch--selected:enabled .mdc-switch__handle::after {
378
+ background: $color-blue-50 !important;
379
+ }
380
+
381
+ /* Focus state color when switch is OFF */
382
+ ::ng-deep .mdc-switch:not(.mdc-switch--selected):enabled:focus:not(:active) .mdc-switch__handle::after {
383
+ background: $color-grey-600 !important;
384
+ }
385
+
386
+ /* Track focus background when switch is OFF */
387
+ ::ng-deep .mdc-switch:not(.mdc-switch--selected):enabled:focus:not(:active) .mdc-switch__track::before {
388
+ background: #fff !important;
389
+ }
390
+
391
+ /* Track focus background for error theme when switch is ON */
392
+ ::ng-deep .custom-slide-toggle.mat-error .mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after {
393
+ background: $color-error-500 !important;
394
+ }
395
+
396
+ /* Track after pseudo-element background */
397
+ ::ng-deep .mdc-switch__track::after {
398
+ background-color: $color-error-500 !important;
399
+ }
400
+
401
+ /* Track after pseudo-element background for green theme */
402
+ ::ng-deep .custom-slide-toggle.mat-green .mdc-switch__track::after {
403
+ background-color: $color-green-500 !important;
404
+ }
405
+
406
+ /* Track after pseudo-element background for primary theme */
407
+ ::ng-deep .custom-slide-toggle.mat-primary .mdc-switch__track::after {
408
+ background-color: $color-blue-300 !important;
409
+ }
410
+
411
+ /* Track before pseudo-element background */
412
+ ::ng-deep .mdc-switch__track::before {
413
+ background-color: #fff !important;
414
+ }
415
+
416
+ /* Icon color when toggle is off */
417
+ ::ng-deep .custom-slide-toggle:not(.mat-mdc-slide-toggle-checked) .slide-toggle-custom-icon {
418
+ color: #fff !important;
419
+ }
420
+
421
+ /* Icon color when toggle is on - Primary/Default */
422
+ ::ng-deep .custom-slide-toggle.mat-mdc-slide-toggle-checked .slide-toggle-custom-icon {
423
+ color: $color-blue-300 !important;
424
+ }
425
+
426
+ /* Icon color for Primary theme */
427
+ ::ng-deep .custom-slide-toggle.mat-primary.mat-mdc-slide-toggle-checked .slide-toggle-custom-icon {
428
+ color: $color-blue-300 !important;
429
+ }
430
+
431
+ /* Icon color for Green theme */
432
+ ::ng-deep .custom-slide-toggle.mat-green.mat-mdc-slide-toggle-checked .slide-toggle-custom-icon {
433
+ color: $color-green-500 !important;
434
+ }
435
+
436
+ /* Icon color for Error theme */
437
+ ::ng-deep .custom-slide-toggle.mat-error.mat-mdc-slide-toggle-checked .slide-toggle-custom-icon {
438
+ color: $color-error-500 !important;
439
+ }
@@ -0,0 +1,12 @@
1
+ <div class="sb-testing-strip">
2
+
3
+ <code class="token">{{ testId }}</code>
4
+ <button type="button" class="btn" (click)="onGenerate()">
5
+ <span class="icon">⟳</span>
6
+ Generate
7
+ </button>
8
+ <button type="button" class="btn" (click)="onCopy()">
9
+ <span class="icon">⧉</span>
10
+ Copy
11
+ </button>
12
+ </div>
@@ -0,0 +1 @@
1
+ .sb-testing-strip{display:inline-flex;gap:8px;align-items:center;font:12px/1.4 ui-sans-serif,system-ui;color:#47515E}.sb-testing-strip .label{font-weight:600}.sb-testing-strip .token{background:#f3f4f6;padding:2px 6px;border-radius:4px}.sb-testing-strip .btn{display:inline-flex;gap:4px;align-items:center;font-size:12px;padding:4px 8px;border-radius:4px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.sb-testing-strip .icon{font-size:12px}
@@ -0,0 +1,11 @@
1
+ // Border radius design tokens
2
+ // Aligns with Foundations/Round Corners story: 4px, 8px, 16px
3
+
4
+ $radius-4: 4px; // Small
5
+ $radius-8: 8px; // Medium
6
+ $radius-16: 16px; // Large
7
+
8
+ // Aliases (optional)
9
+ $radius-sm: $radius-4;
10
+ $radius-md: $radius-8;
11
+ $radius-lg: $radius-16;
@@ -0,0 +1,41 @@
1
+ @mixin button-theme($bg, $color, $hover, $active) {
2
+ background-color: $bg;
3
+ color: $color;
4
+
5
+ &:hover {
6
+ background-color: $hover;
7
+ }
8
+
9
+ &:active {
10
+ background-color: $active;
11
+ }
12
+ }
13
+
14
+ @mixin button-outline($color) {
15
+ background-color: #fff;
16
+ color: $color;
17
+ border: 1px solid $color;
18
+
19
+ &:hover {
20
+ background-color: $color;
21
+ color: #fff;
22
+ }
23
+
24
+ &:active {
25
+ background-color: darken($color, 10%);
26
+ color: #fff;
27
+ }
28
+ }
29
+
30
+ @mixin gradient-button($bg, $hover, $active) {
31
+ background: $bg;
32
+ color: #fff;
33
+
34
+ &:hover {
35
+ background: $hover;
36
+ }
37
+
38
+ &:active {
39
+ background: $active;
40
+ }
41
+ }
@@ -0,0 +1,117 @@
1
+ @import './colors.scss';
2
+
3
+ // Base Colors
4
+ $color-blue: #5473E8;
5
+ $color-blue-hover: #6581EA;
6
+ $color-blue-active: #1E46DF;
7
+
8
+ $color-green: #37C1CE;
9
+ $color-green-hover: #4BC7D3;
10
+ $color-green-active: #299DA8;
11
+
12
+ $color-grey: $color-grey-600;
13
+ $color-grey-hover: #4B4F62;
14
+ $color-grey-active: #252831;
15
+
16
+ $color-error: #E854A4;
17
+ $color-error-hover: #EF87BF;
18
+ $color-error-active: #E22A8E;
19
+
20
+ $color-gradient: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);
21
+ $color-gradient-hover: linear-gradient(0deg, rgba(250, 250, 253, 0.3), rgba(250, 250, 253, 0.3)),
22
+ linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);
23
+ $color-gradient-active: linear-gradient(0deg, rgba(56, 59, 74, 0.5), rgba(56, 59, 74, 0.5)),
24
+ linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);
25
+
26
+ // Outline variants
27
+ $color-outline-blue: #5473E8;
28
+ $color-outline-green: #37C1CE;
29
+ $color-outline-grey: #383B4A;
30
+ $color-outline-error: #E854A4;
31
+
32
+ $color-disabled-bg: #D1D3DB;
33
+ $color-disabled-text: #666;
34
+
35
+ @mixin button-theme($bg, $color, $hover, $active) {
36
+ background-color: $bg;
37
+ color: $color;
38
+
39
+ &:hover {
40
+ background-color: $hover;
41
+ }
42
+
43
+ &:active {
44
+ background-color: $active;
45
+ }
46
+ }
47
+
48
+ @mixin button-outline($color) {
49
+ background-color: #fff;
50
+ color: $color;
51
+ border: 1px solid $color;
52
+
53
+ &:hover {
54
+ background-color: $color;
55
+ color: #fff;
56
+ }
57
+
58
+ &:active {
59
+ background-color: darken($color, 10%);
60
+ color: #fff;
61
+ }
62
+ }
63
+
64
+ @mixin gradient-button($bg, $hover, $active) {
65
+ background: $bg;
66
+ color: #fff;
67
+
68
+ &:hover {
69
+ background: $hover;
70
+ }
71
+
72
+ &:active {
73
+ background: $active;
74
+ }
75
+ }
76
+
77
+ .btn-blue {
78
+ @include button-theme($color-blue, #fff, $color-blue-hover, $color-blue-active);
79
+ }
80
+
81
+ .btn-green {
82
+ @include button-theme($color-green, #fff, $color-green-hover, $color-green-active);
83
+ }
84
+
85
+ .btn-grey {
86
+ @include button-theme($color-grey, #fff, $color-grey-hover, $color-grey-active);
87
+ }
88
+
89
+ .btn-error {
90
+ @include button-theme($color-error, #fff, $color-error-hover, $color-error-active);
91
+ }
92
+
93
+ .btn-blue-no-outline {
94
+ @include button-outline($color-outline-blue);
95
+ }
96
+
97
+ .btn-green-no-outline {
98
+ @include button-outline($color-outline-green);
99
+ }
100
+
101
+ .btn-grey-no-outline {
102
+ @include button-outline($color-outline-grey);
103
+ }
104
+
105
+ .btn-error-no-outline {
106
+ @include button-outline($color-outline-error);
107
+ }
108
+
109
+ .btn-gradient {
110
+ @include gradient-button($color-gradient, $color-gradient-hover, $color-gradient-active);
111
+ }
112
+
113
+ .btn-disabled {
114
+ background-color: $color-disabled-bg !important;
115
+ color: $color-disabled-text !important;
116
+ cursor: not-allowed !important;
117
+ }