@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,15 @@
1
+ <div class="loader-container" [attr.data-testid]="effectiveDataTestId">
2
+ <!-- Brain Icon -->
3
+ <mat-icon class="loader-icon font-icon icon-brain" fontSet="material-icons">psychology</mat-icon>
4
+ <!-- Settings/Gear Icon -->
5
+ <mat-icon class="loader-icon font-icon icon-cog" fontSet="material-icons-outlined">settings</mat-icon>
6
+ <!-- Document Icon -->
7
+ <mat-icon class="loader-icon font-icon icon-document" fontSet="material-icons">article</mat-icon>
8
+ <!-- Wand Icon -->
9
+ <mat-icon class="loader-icon font-icon icon-wand" fontSet="material-icons">auto_awesome</mat-icon>
10
+ <!-- Settings Icon -->
11
+ <mat-icon class="loader-icon font-icon icon-tick" fontSet="material-icons">build</mat-icon>
12
+ </div>
13
+ <div class="text-container" *ngIf="showText">
14
+ <span class="loader-text">{{ displayText }}</span>
15
+ </div>
@@ -0,0 +1,493 @@
1
+ @import url("https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined");
2
+
3
+ :host {
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ font-family: 'Roboto', sans-serif;
8
+ }
9
+
10
+ .loader-container {
11
+ position: relative;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ }
16
+
17
+ .loader-icon,
18
+ .loader-text {
19
+ /* Hide all icons and text by default */
20
+ opacity: 0;
21
+ position: absolute;
22
+ top: 0;
23
+ left: 0;
24
+ width: 100%;
25
+ height: 100%;
26
+ transition: opacity 0.3s ease-in-out;
27
+ }
28
+
29
+ .text-container {
30
+ position: relative;
31
+ margin-top: 8px;
32
+ }
33
+
34
+ .loader-text {
35
+ position: relative;
36
+ /* Reset position for text */
37
+ color: #717793;
38
+ font-weight: 300;
39
+ font-size: 1.125rem;
40
+ /* text-lg */
41
+ text-align: center;
42
+ opacity: 0;
43
+ transition: opacity 0.3s ease-in-out;
44
+ }
45
+
46
+ /* Styles for the mat-icon elements */
47
+ .font-icon {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ }
52
+
53
+ mat-icon.loader-icon {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ }
58
+
59
+ /* Size variations */
60
+ :host(.size-small) {
61
+ .loader-container {
62
+ width: 48px;
63
+ height: 48px;
64
+ }
65
+
66
+ .font-icon {
67
+ font-size: 48px;
68
+ }
69
+
70
+ mat-icon.loader-icon {
71
+ font-size: 48px;
72
+ width: 48px;
73
+ height: 48px;
74
+ }
75
+
76
+ .loader-text {
77
+ font-size: 0.875rem;
78
+ /* text-sm */
79
+ }
80
+ }
81
+
82
+ :host(.size-medium) {
83
+ .loader-container {
84
+ width: 80px;
85
+ height: 80px;
86
+ }
87
+
88
+ .font-icon {
89
+ font-size: 72px;
90
+ }
91
+
92
+ mat-icon.loader-icon {
93
+ font-size: 72px;
94
+ width: 72px;
95
+ height: 72px;
96
+ }
97
+
98
+ .loader-text {
99
+ font-size: 1.125rem;
100
+ /* text-lg */
101
+ }
102
+ }
103
+
104
+ :host(.size-large) {
105
+ .loader-container {
106
+ width: 120px;
107
+ height: 120px;
108
+ }
109
+
110
+ .font-icon {
111
+ font-size: 108px;
112
+ }
113
+
114
+ mat-icon.loader-icon {
115
+ font-size: 108px;
116
+ width: 108px;
117
+ height: 108px;
118
+ }
119
+
120
+ .loader-text {
121
+ font-size: 1.25rem;
122
+ /* text-xl */
123
+ }
124
+ }
125
+
126
+ /* Icon Colors */
127
+ .icon-brain {
128
+ color: #EF87BF;
129
+ }
130
+
131
+ .icon-cog {
132
+ color: #A2A6B8;
133
+ position: relative;
134
+ }
135
+
136
+ .icon-cog::before {
137
+ content: '';
138
+ position: absolute;
139
+ top: 50%;
140
+ left: 50%;
141
+ transform: translate(-50%, -50%);
142
+ width: 20%;
143
+ height: 20%;
144
+ border-radius: 50%;
145
+ background-color: #A2A6B8;
146
+ z-index: 1;
147
+ }
148
+
149
+ .icon-document {
150
+ color: #37C1CE;
151
+ }
152
+
153
+ .icon-tick {
154
+ color: #00AD83;
155
+ }
156
+
157
+ .icon-wand {
158
+ background: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);
159
+ -webkit-background-clip: text;
160
+ background-clip: text;
161
+ color: transparent;
162
+ }
163
+
164
+ /* --- Enhanced Looping Animations --- */
165
+ /* These animations include enter/exit transitions for smooth looping */
166
+
167
+ @keyframes animate-brain {
168
+ 0% {
169
+ opacity: 0;
170
+ transform: scale(0);
171
+ }
172
+
173
+ 12.5% {
174
+ opacity: 1;
175
+ transform: scale(1.2);
176
+ }
177
+
178
+ 25% {
179
+ transform: scale(1);
180
+ }
181
+
182
+ 37.5% {
183
+ transform: scale(1.1);
184
+ }
185
+
186
+ 50% {
187
+ transform: scale(1);
188
+ }
189
+
190
+ 62.5% {
191
+ transform: scale(1.1);
192
+ }
193
+
194
+ 75% {
195
+ transform: scale(1);
196
+ }
197
+
198
+ 87.5% {
199
+ opacity: 1;
200
+ transform: scale(1);
201
+ }
202
+
203
+ 100% {
204
+ opacity: 0;
205
+ transform: scale(0);
206
+ }
207
+ }
208
+
209
+ @keyframes animate-cog {
210
+ 0% {
211
+ opacity: 0;
212
+ transform: scale(0) rotate(0deg);
213
+ }
214
+
215
+ 12.5% {
216
+ opacity: 1;
217
+ transform: scale(1.2) rotate(0deg);
218
+ }
219
+
220
+ 25% {
221
+ transform: scale(1) rotate(0deg);
222
+ }
223
+
224
+ 87.5% {
225
+ opacity: 1;
226
+ transform: scale(1) rotate(180deg);
227
+ }
228
+
229
+ 100% {
230
+ opacity: 0;
231
+ transform: scale(0) rotate(180deg);
232
+ }
233
+ }
234
+
235
+ @keyframes animate-document {
236
+ 0% {
237
+ opacity: 0;
238
+ transform: scale(0) translateY(0);
239
+ }
240
+
241
+ 12.5% {
242
+ opacity: 1;
243
+ transform: scale(1.2) translateY(0);
244
+ }
245
+
246
+ 25% {
247
+ transform: scale(1) translateY(0);
248
+ }
249
+
250
+ 37.5% {
251
+ transform: scale(1) translateY(-10px);
252
+ }
253
+
254
+ 50% {
255
+ transform: scale(1) translateY(0);
256
+ }
257
+
258
+ 62.5% {
259
+ transform: scale(1) translateY(-10px);
260
+ }
261
+
262
+ 75% {
263
+ transform: scale(1) translateY(0);
264
+ }
265
+
266
+ 87.5% {
267
+ opacity: 1;
268
+ transform: scale(1) translateY(0);
269
+ }
270
+
271
+ 100% {
272
+ opacity: 0;
273
+ transform: scale(0) translateY(0);
274
+ }
275
+ }
276
+
277
+ @keyframes animate-wand {
278
+ 0% {
279
+ opacity: 0;
280
+ transform: scale(0) rotate(0deg);
281
+ }
282
+
283
+ 12.5% {
284
+ opacity: 1;
285
+ transform: scale(1.2) rotate(0deg);
286
+ }
287
+
288
+ 25% {
289
+ transform: scale(1) rotate(-20deg);
290
+ }
291
+
292
+ 50% {
293
+ transform: scale(1) rotate(20deg);
294
+ }
295
+
296
+ 75% {
297
+ transform: scale(1) rotate(-20deg);
298
+ }
299
+
300
+ 87.5% {
301
+ opacity: 1;
302
+ transform: scale(1) rotate(0deg);
303
+ }
304
+
305
+ 100% {
306
+ opacity: 0;
307
+ transform: scale(0) rotate(0deg);
308
+ }
309
+ }
310
+
311
+ @keyframes animate-tick {
312
+ 0% {
313
+ opacity: 0;
314
+ transform: scale(0);
315
+ }
316
+
317
+ 12.5% {
318
+ opacity: 1;
319
+ transform: scale(1.2);
320
+ }
321
+
322
+ 25% {
323
+ transform: scale(1);
324
+ }
325
+
326
+ 100% {
327
+ opacity: 1;
328
+ transform: scale(1);
329
+ }
330
+ }
331
+
332
+ @keyframes animate-text {
333
+ 0% {
334
+ opacity: 0;
335
+ transform: translateX(30px);
336
+ }
337
+
338
+ 12.5% {
339
+ opacity: 1;
340
+ transform: translateX(0);
341
+ }
342
+
343
+ 87.5% {
344
+ opacity: 1;
345
+ transform: translateX(0);
346
+ }
347
+
348
+ 100% {
349
+ opacity: 0;
350
+ transform: translateX(-30px);
351
+ }
352
+ }
353
+
354
+ /* Legacy animations for non-looping mode */
355
+ @keyframes pulse {
356
+
357
+ 0%,
358
+ 100% {
359
+ transform: scale(1);
360
+ }
361
+
362
+ 50% {
363
+ transform: scale(1.1);
364
+ }
365
+ }
366
+
367
+ @keyframes rotate {
368
+ from {
369
+ transform: rotate(0deg);
370
+ }
371
+
372
+ to {
373
+ transform: rotate(360deg);
374
+ }
375
+ }
376
+
377
+ @keyframes hop {
378
+
379
+ 0%,
380
+ 100% {
381
+ transform: translateY(0);
382
+ }
383
+
384
+ 50% {
385
+ transform: translateY(-10px);
386
+ }
387
+ }
388
+
389
+ @keyframes wave {
390
+
391
+ 0%,
392
+ 100% {
393
+ transform: rotate(0deg);
394
+ }
395
+
396
+ 25% {
397
+ transform: rotate(-20deg);
398
+ }
399
+
400
+ 75% {
401
+ transform: rotate(20deg);
402
+ }
403
+ }
404
+
405
+
406
+ /* --- Status-based Visibility and Animation --- */
407
+ /* Standard mode: simple infinite animations */
408
+ :host(.status-analyzing) .icon-brain,
409
+ :host(.status-analyzing) .loader-text {
410
+ opacity: 1;
411
+ }
412
+
413
+ :host(.status-analyzing) .icon-brain {
414
+ animation: pulse 1.5s ease-in-out infinite;
415
+ }
416
+
417
+ :host(.status-gathering) .icon-cog,
418
+ :host(.status-gathering) .loader-text {
419
+ opacity: 1;
420
+ }
421
+
422
+ :host(.status-gathering) .icon-cog {
423
+ animation: rotate 2s linear infinite;
424
+ }
425
+
426
+ :host(.status-processing) .icon-document,
427
+ :host(.status-processing) .loader-text {
428
+ opacity: 1;
429
+ }
430
+
431
+ :host(.status-processing) .icon-document {
432
+ animation: hop 1s ease-in-out infinite;
433
+ }
434
+
435
+ :host(.status-applying) .icon-wand,
436
+ :host(.status-applying) .loader-text {
437
+ opacity: 1;
438
+ }
439
+
440
+ :host(.status-applying) .icon-wand {
441
+ animation: wave 2s ease-in-out infinite;
442
+ }
443
+
444
+ :host(.status-done) .icon-tick,
445
+ :host(.status-done) .loader-text {
446
+ opacity: 1;
447
+ }
448
+
449
+ :host(.status-done) .icon-tick {
450
+ animation: pulse 0.5s ease-out;
451
+ }
452
+
453
+ /* --- Looping Mode: Enhanced animations with enter/exit transitions --- */
454
+ /* These are triggered when autoLoop is enabled */
455
+ :host(.auto-loop.status-analyzing) .icon-brain {
456
+ animation: animate-brain 3s ease-in-out;
457
+ }
458
+
459
+ :host(.auto-loop.status-analyzing) .loader-text {
460
+ animation: animate-text 3s ease-in-out;
461
+ }
462
+
463
+ :host(.auto-loop.status-gathering) .icon-cog {
464
+ animation: animate-cog 3s ease-in-out;
465
+ }
466
+
467
+ :host(.auto-loop.status-gathering) .loader-text {
468
+ animation: animate-text 3s ease-in-out;
469
+ }
470
+
471
+ :host(.auto-loop.status-processing) .icon-document {
472
+ animation: animate-document 3s ease-in-out;
473
+ }
474
+
475
+ :host(.auto-loop.status-processing) .loader-text {
476
+ animation: animate-text 3s ease-in-out;
477
+ }
478
+
479
+ :host(.auto-loop.status-applying) .icon-wand {
480
+ animation: animate-wand 3s ease-in-out;
481
+ }
482
+
483
+ :host(.auto-loop.status-applying) .loader-text {
484
+ animation: animate-text 3s ease-in-out;
485
+ }
486
+
487
+ :host(.auto-loop.status-done) .icon-tick {
488
+ animation: animate-tick 3s ease-in-out;
489
+ }
490
+
491
+ :host(.auto-loop.status-done) .loader-text {
492
+ animation: animate-text 3s ease-in-out;
493
+ }
@@ -0,0 +1,10 @@
1
+ <ng-container [ngSwitch]="tag">
2
+ <h1 *ngSwitchCase="'h1'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h1>
3
+ <h2 *ngSwitchCase="'h2'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h2>
4
+ <h3 *ngSwitchCase="'h3'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h3>
5
+ <h4 *ngSwitchCase="'h4'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h4>
6
+ <h5 *ngSwitchCase="'h5'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h5>
7
+ <h6 *ngSwitchCase="'h6'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</h6>
8
+ <p *ngSwitchCase="'p'" [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</p>
9
+ <span *ngSwitchDefault [attr.data-test-id]="dataTestId" [class]="classList">{{ text }}</span>
10
+ </ng-container>
@@ -0,0 +1,200 @@
1
+ /* Google Fonts import suggestion left to consumer's index.html or global styles. */
2
+
3
+ // SCSS Variables
4
+ $primary-text-color: #101828;
5
+
6
+ // Mixins
7
+ @mixin typography-base($size, $line-height, $letter-spacing, $weight: 400) {
8
+ font-size: $size;
9
+ line-height: $line-height;
10
+ letter-spacing: $letter-spacing;
11
+ font-weight: $weight;
12
+ color: $primary-text-color;
13
+ }
14
+
15
+ /* Weight utilities */
16
+ .weight-light {
17
+ font-weight: 300 !important;
18
+ }
19
+
20
+ .weight-regular {
21
+ font-weight: 400 !important;
22
+ }
23
+
24
+ .weight-medium {
25
+ font-weight: 500 !important;
26
+ }
27
+
28
+ .weight-semibold {
29
+ font-weight: 600 !important;
30
+ }
31
+
32
+ .weight-bold {
33
+ font-weight: 700 !important;
34
+ }
35
+
36
+ /* Line height utilities */
37
+ .line-height-none {
38
+ line-height: 1 !important;
39
+ }
40
+
41
+ .line-height-tight {
42
+ line-height: 1.2 !important;
43
+ }
44
+
45
+ .line-height-normal {
46
+ line-height: 1.4 !important;
47
+ }
48
+
49
+ /* Letter spacing utilities */
50
+ .letter-spacing-normal {
51
+ letter-spacing: 0 !important;
52
+ }
53
+
54
+ .letter-spacing-wide {
55
+ letter-spacing: 0.1em !important;
56
+ }
57
+
58
+ .letter-spacing-wider {
59
+ letter-spacing: 0.2em !important;
60
+ }
61
+
62
+ /* Text decoration utilities */
63
+ .text-decoration-none {
64
+ text-decoration: none !important;
65
+ font-style: normal !important;
66
+ }
67
+
68
+ .text-decoration-underline {
69
+ text-decoration: underline !important;
70
+ font-style: normal !important;
71
+ }
72
+
73
+ .text-decoration-italic {
74
+ text-decoration: none !important;
75
+ font-style: italic !important;
76
+ }
77
+
78
+ .text-decoration-strike {
79
+ text-decoration: line-through !important;
80
+ font-style: normal !important;
81
+ }
82
+
83
+ /* Typography Scale - Based on the design system */
84
+
85
+ /* Text 5XL */
86
+ .font-text-5xl {
87
+ @include typography-base(2rem, 1.2, -0.1px, 400);
88
+ }
89
+
90
+ .font-text-5xl-medium {
91
+ @include typography-base(2rem, 1.2, -0.1px, 500);
92
+ }
93
+
94
+ .font-text-5xl-bold {
95
+ @include typography-base(2rem, 1.2, -0.1px, 700);
96
+ }
97
+
98
+ /* Text 4XL */
99
+ .font-text-4xl {
100
+ @include typography-base(1.75rem, 1.2, -0.1px, 400);
101
+ }
102
+
103
+ .font-text-4xl-medium {
104
+ @include typography-base(1.75rem, 1.2, -0.1px, 500);
105
+ }
106
+
107
+ .font-text-4xl-bold {
108
+ @include typography-base(1.75rem, 1.2, -0.1px, 700);
109
+ }
110
+
111
+ /* Text 3XL */
112
+ .font-text-3xl {
113
+ @include typography-base(1.5rem, 1.2, -0.1px, 400);
114
+ }
115
+
116
+ .font-text-3xl-medium {
117
+ @include typography-base(1.5rem, 1.2, -0.1px, 500);
118
+ }
119
+
120
+ .font-text-3xl-bold {
121
+ @include typography-base(1.5rem, 1.2, -0.1px, 700);
122
+ }
123
+
124
+ /* Text 2XL */
125
+ .font-text-2xl {
126
+ @include typography-base(1.375rem, 1.2, -0.1px, 400);
127
+ }
128
+
129
+ .font-text-2xl-medium {
130
+ @include typography-base(1.375rem, 1.2, -0.1px, 500);
131
+ }
132
+
133
+ .font-text-2xl-bold {
134
+ @include typography-base(1.375rem, 1.2, -0.1px, 700);
135
+ }
136
+
137
+ /* Text XL */
138
+ .font-text-xl {
139
+ @include typography-base(1.25rem, 1.2, -0.1px, 400);
140
+ }
141
+
142
+ .font-text-xl-medium {
143
+ @include typography-base(1.25rem, 1.2, -0.1px, 500);
144
+ }
145
+
146
+ .font-text-xl-bold {
147
+ @include typography-base(1.25rem, 1.2, -0.1px, 700);
148
+ }
149
+
150
+ /* Text LG */
151
+ .font-text-lg {
152
+ @include typography-base(1rem, 1.4, 0.25px, 400);
153
+ }
154
+
155
+ .font-text-lg-medium {
156
+ @include typography-base(1rem, 1.4, 0.25px, 500);
157
+ }
158
+
159
+ .font-text-lg-bold {
160
+ @include typography-base(1rem, 1.4, 0.25px, 700);
161
+ }
162
+
163
+ /* Text Base */
164
+ .font-text-base {
165
+ @include typography-base(0.875rem, 1.4, 0.25px, 400);
166
+ }
167
+
168
+ .font-text-base-medium {
169
+ @include typography-base(0.875rem, 1.4, 0.25px, 500);
170
+ }
171
+
172
+ .font-text-base-bold {
173
+ @include typography-base(0.875rem, 1.4, 0.25px, 700);
174
+ }
175
+
176
+ /* Text SM */
177
+ .font-text-sm {
178
+ @include typography-base(0.75rem, 1.4, 0.5px, 400);
179
+ }
180
+
181
+ .font-text-sm-medium {
182
+ @include typography-base(0.75rem, 1.4, 0.5px, 500);
183
+ }
184
+
185
+ .font-text-sm-bold {
186
+ @include typography-base(0.75rem, 1.4, 0.5px, 700);
187
+ }
188
+
189
+ /* Text XS */
190
+ .font-text-xs {
191
+ @include typography-base(0.625rem, 1.4, 0.5px, 400);
192
+ }
193
+
194
+ .font-text-xs-medium {
195
+ @include typography-base(0.625rem, 1.4, 0.5px, 500);
196
+ }
197
+
198
+ .font-text-xs-bold {
199
+ @include typography-base(0.625rem, 1.4, 0.5px, 700);
200
+ }