maverick-wave 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/.claude/commands/mw.md +580 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/maverick-wave.iml +12 -0
  6. package/.idea/modules.xml +8 -0
  7. package/.idea/prettier.xml +6 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.prettierignore +6 -0
  10. package/.prettierrc.json +7 -0
  11. package/CHANGELOG.md +420 -0
  12. package/CLAUDE.md +53 -0
  13. package/LICENSE +21 -0
  14. package/README.md +191 -0
  15. package/gulpfile.js +158 -0
  16. package/index.html +472 -0
  17. package/maverick-wave.min.css +1 -0
  18. package/maverick-wave.min.js +1 -0
  19. package/package.json +52 -0
  20. package/release.sh +17 -0
  21. package/src/assets/favicon/android-chrome-192x192.png +0 -0
  22. package/src/assets/favicon/android-chrome-512x512.png +0 -0
  23. package/src/assets/favicon/apple-touch-icon.png +0 -0
  24. package/src/assets/favicon/favicon-16x16.png +0 -0
  25. package/src/assets/favicon/favicon-32x32.png +0 -0
  26. package/src/assets/favicon/site.webmanifest +1 -0
  27. package/src/assets/favicon.ico +0 -0
  28. package/src/assets/header-logo.svg +24 -0
  29. package/src/js/main.js +587 -0
  30. package/src/partials/accordions-container.html +163 -0
  31. package/src/partials/alerts-container.html +120 -0
  32. package/src/partials/avatars-container.html +84 -0
  33. package/src/partials/blog-posts-container.html +157 -0
  34. package/src/partials/breadcrumbs-container.html +126 -0
  35. package/src/partials/button-bar-container.html +168 -0
  36. package/src/partials/buttons-container.html +133 -0
  37. package/src/partials/cards-container.html +508 -0
  38. package/src/partials/code-container.html +194 -0
  39. package/src/partials/colors-container.html +125 -0
  40. package/src/partials/coming-soon-container.html +6 -0
  41. package/src/partials/content-slider-container.html +47 -0
  42. package/src/partials/divider-container.html +52 -0
  43. package/src/partials/documentation-container.html +161 -0
  44. package/src/partials/empty-state-container.html +74 -0
  45. package/src/partials/footer-container.html +113 -0
  46. package/src/partials/form-container.html +257 -0
  47. package/src/partials/form-elements-container.html +595 -0
  48. package/src/partials/form-field-container.html +141 -0
  49. package/src/partials/gallery-container.html +49 -0
  50. package/src/partials/get-started-container.html +294 -0
  51. package/src/partials/grid-container.html +171 -0
  52. package/src/partials/header-container.html +49 -0
  53. package/src/partials/header-utilities-container.html +80 -0
  54. package/src/partials/home-container.html +48 -0
  55. package/src/partials/html-lists-container.html +58 -0
  56. package/src/partials/info-container.html +87 -0
  57. package/src/partials/input-group-container.html +285 -0
  58. package/src/partials/item-lists-container.html +413 -0
  59. package/src/partials/login-container.html +61 -0
  60. package/src/partials/meta-info-container.html +16 -0
  61. package/src/partials/modals-container.html +136 -0
  62. package/src/partials/pagination-container.html +27 -0
  63. package/src/partials/panels-container.html +196 -0
  64. package/src/partials/progress-container.html +226 -0
  65. package/src/partials/ratings-container.html +104 -0
  66. package/src/partials/skeleton-container.html +82 -0
  67. package/src/partials/spinners-container.html +92 -0
  68. package/src/partials/stepper-container.html +107 -0
  69. package/src/partials/tables-container.html +120 -0
  70. package/src/partials/tabs-container.html +263 -0
  71. package/src/partials/tags-container.html +168 -0
  72. package/src/partials/techstack-bucket-container.html +174 -0
  73. package/src/partials/tiles-container.html +245 -0
  74. package/src/partials/timelines-container.html +196 -0
  75. package/src/partials/typography-container.html +66 -0
  76. package/src/partials/utilities-container.html +85 -0
  77. package/src/scss/abstracts/_functions.scss +37 -0
  78. package/src/scss/abstracts/_index.scss +3 -0
  79. package/src/scss/abstracts/_mixins.scss +45 -0
  80. package/src/scss/abstracts/_variables.scss +222 -0
  81. package/src/scss/base/_base.scss +165 -0
  82. package/src/scss/base/_index.scss +3 -0
  83. package/src/scss/base/_reset.scss +75 -0
  84. package/src/scss/base/_typography.scss +230 -0
  85. package/src/scss/components/_accordions.scss +91 -0
  86. package/src/scss/components/_alerts.scss +105 -0
  87. package/src/scss/components/_avatars.scss +123 -0
  88. package/src/scss/components/_blog-post.scss +268 -0
  89. package/src/scss/components/_breadcrumbs.scss +108 -0
  90. package/src/scss/components/_button-bar.scss +139 -0
  91. package/src/scss/components/_buttons.scss +164 -0
  92. package/src/scss/components/_cards.scss +316 -0
  93. package/src/scss/components/_code.scss +252 -0
  94. package/src/scss/components/_coming-soon.scss +92 -0
  95. package/src/scss/components/_content-slider.scss +119 -0
  96. package/src/scss/components/_divider.scss +70 -0
  97. package/src/scss/components/_empty-state.scss +73 -0
  98. package/src/scss/components/_gallery.scss +158 -0
  99. package/src/scss/components/_index.scss +33 -0
  100. package/src/scss/components/_info.scss +143 -0
  101. package/src/scss/components/_lists.scss +653 -0
  102. package/src/scss/components/_localhost-indicator.scss +29 -0
  103. package/src/scss/components/_meta-info.scss +34 -0
  104. package/src/scss/components/_modals.scss +118 -0
  105. package/src/scss/components/_pagination.scss +99 -0
  106. package/src/scss/components/_panels.scss +112 -0
  107. package/src/scss/components/_progress.scss +107 -0
  108. package/src/scss/components/_ratings.scss +47 -0
  109. package/src/scss/components/_skeleton.scss +90 -0
  110. package/src/scss/components/_spinners.scss +208 -0
  111. package/src/scss/components/_stepper.scss +145 -0
  112. package/src/scss/components/_tables.scss +127 -0
  113. package/src/scss/components/_tabs.scss +146 -0
  114. package/src/scss/components/_tags.scss +93 -0
  115. package/src/scss/components/_techstack-bucket.scss +145 -0
  116. package/src/scss/components/_theme-toggle.scss +50 -0
  117. package/src/scss/components/_tiles.scss +217 -0
  118. package/src/scss/components/_timelines.scss +339 -0
  119. package/src/scss/form-elements/_checkbox.scss +174 -0
  120. package/src/scss/form-elements/_form.scss +122 -0
  121. package/src/scss/form-elements/_index.scss +10 -0
  122. package/src/scss/form-elements/_input-group.scss +103 -0
  123. package/src/scss/form-elements/_input.scss +72 -0
  124. package/src/scss/form-elements/_login.scss +62 -0
  125. package/src/scss/form-elements/_radio.scss +144 -0
  126. package/src/scss/form-elements/_select.scss +56 -0
  127. package/src/scss/form-elements/_slider.scss +174 -0
  128. package/src/scss/form-elements/_textarea.scss +74 -0
  129. package/src/scss/form-elements/_toggle.scss +174 -0
  130. package/src/scss/layout/_footer.scss +214 -0
  131. package/src/scss/layout/_grid.scss +287 -0
  132. package/src/scss/layout/_header.scss +441 -0
  133. package/src/scss/layout/_home.scss +40 -0
  134. package/src/scss/layout/_index.scss +6 -0
  135. package/src/scss/layout/_main.scss +116 -0
  136. package/src/scss/layout/_section.scss +89 -0
  137. package/src/scss/main.scss +5 -0
  138. package/src/scss/utilities/_display.scss +35 -0
  139. package/src/scss/utilities/_flex.scss +66 -0
  140. package/src/scss/utilities/_index.scss +3 -0
  141. package/src/scss/utilities/_spacing.scss +78 -0
@@ -0,0 +1,653 @@
1
+ @use '../abstracts' as *;
2
+
3
+ // Base list styles
4
+ .mw-list {
5
+ margin: spacing('3') spacing('0') spacing('5') spacing('0');
6
+ padding-left: spacing('2');
7
+ padding-right: spacing('2');
8
+
9
+ li {
10
+ margin-bottom: spacing('1');
11
+
12
+ &:last-child {
13
+ margin-bottom: spacing('0');
14
+ }
15
+ }
16
+
17
+ // Nested lists
18
+ .mw-list {
19
+ margin: spacing('1');
20
+ }
21
+ }
22
+
23
+ // Unstyled list - removes bullets and padding
24
+ .mw-list-unstyled {
25
+ list-style: none;
26
+ padding-left: spacing('0');
27
+ }
28
+
29
+ // Inline list - horizontal layout
30
+ .mw-list-inline {
31
+ list-style: none;
32
+ padding-left: spacing('0');
33
+
34
+ li {
35
+ display: inline-block;
36
+ margin-right: spacing('4');
37
+
38
+ &:last-child {
39
+ margin-right: spacing('0');
40
+ }
41
+ }
42
+ }
43
+
44
+ // Link list - with anchor tag
45
+ .mw-list-link {
46
+ list-style: none;
47
+
48
+ a {
49
+ display: inline-block;
50
+ position: relative;
51
+ color: var(--mw-text-muted-color);
52
+ text-decoration: none;
53
+ padding-bottom: 2px;
54
+
55
+ // subtle default underline via box‐shadow
56
+ &::after {
57
+ content: '';
58
+ position: absolute;
59
+ left: 0;
60
+ bottom: 1px;
61
+ width: 100%;
62
+ height: 1px;
63
+ background: currentColor;
64
+ opacity: 0.4;
65
+ transform: scaleX(1);
66
+ transform-origin: left;
67
+ transition:
68
+ transform 0.2s ease,
69
+ opacity 0.2s ease;
70
+ }
71
+
72
+ &:hover {
73
+ color: var(--mw-primary-color);
74
+
75
+ &::after {
76
+ opacity: 1;
77
+ height: 2px;
78
+ transform: scaleX(1.1);
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ // Dot lists
85
+ .mw-list-dot {
86
+ padding-left: spacing('4');
87
+ list-style: disc inside;
88
+
89
+ li {
90
+ padding-left: spacing('0');
91
+ margin-bottom: spacing('1');
92
+
93
+ &::marker {
94
+ left: spacing('0');
95
+ color: var(--mw-primary-color);
96
+ }
97
+ }
98
+ }
99
+
100
+ // Check list
101
+ .mw-list-check {
102
+ list-style: none;
103
+ padding-left: spacing('3');
104
+
105
+ li {
106
+ padding-left: spacing('0');
107
+ margin-bottom: spacing('1');
108
+ }
109
+
110
+ li::before {
111
+ content: '✓';
112
+ color: var(--mw-primary-color);
113
+ padding-right: spacing('4');
114
+ }
115
+ }
116
+
117
+ // Base item list - flexible container for any content
118
+ .mw-item-list {
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: spacing('3');
122
+ padding: 0;
123
+ margin: 0;
124
+ list-style: none;
125
+
126
+ // Smooth focus management for accessibility
127
+ &:focus-within {
128
+ outline: 2px solid var(--mw-primary-color);
129
+ outline-offset: 2px;
130
+ border-radius: radius('sm');
131
+ }
132
+ }
133
+
134
+ // Horizontal item list
135
+ .mw-item-list-horizontal {
136
+ @extend .mw-item-list;
137
+ flex-direction: row;
138
+ flex-wrap: wrap;
139
+ align-items: flex-start;
140
+
141
+ @include media-down('sm') {
142
+ flex-direction: column;
143
+ }
144
+ }
145
+
146
+ // Interactive card list
147
+ .mw-item-list-cards {
148
+ @extend .mw-item-list;
149
+ gap: spacing('4');
150
+
151
+ > * {
152
+ position: relative;
153
+ }
154
+ }
155
+
156
+ // Sliding border list
157
+ .mw-item-list-slide {
158
+ @extend .mw-item-list;
159
+
160
+ > * {
161
+ position: relative;
162
+ border-radius: radius('sm');
163
+ padding: spacing('3') spacing('4');
164
+ background: var(--mw-card-background);
165
+ border: 1px solid transparent;
166
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
167
+ overflow: hidden;
168
+
169
+ &::before {
170
+ content: '';
171
+ position: absolute;
172
+ left: 0;
173
+ top: 0;
174
+ bottom: 0;
175
+ width: 0;
176
+ background: var(--mw-primary-color);
177
+ transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
178
+ }
179
+
180
+ &:hover {
181
+ padding-left: spacing('5');
182
+ background: var(--mw-primary-background-hover);
183
+ border-color: var(--mw-primary-color);
184
+ transform: translateX(4px);
185
+
186
+ &::before {
187
+ width: 4px;
188
+ }
189
+ }
190
+ }
191
+ }
192
+
193
+ // Secondary variant
194
+ .mw-item-list-slide-secondary {
195
+ @extend .mw-item-list-slide;
196
+
197
+ > * {
198
+ &::before {
199
+ background: var(--mw-secondary-color);
200
+ }
201
+
202
+ &:hover {
203
+ background: var(--mw-secondary-background-hover);
204
+ border-color: var(--mw-secondary-color);
205
+ }
206
+ }
207
+ }
208
+
209
+ // Compact item list
210
+ .mw-item-list-compact {
211
+ @extend .mw-item-list;
212
+ gap: 0;
213
+ border: 1px solid var(--mw-border);
214
+ border-radius: radius('md');
215
+ overflow: hidden;
216
+
217
+ > * {
218
+ padding: spacing('3');
219
+ border-bottom: 1px solid var(--mw-border);
220
+ transition: all 0.2s ease;
221
+ position: relative;
222
+
223
+ &:last-child {
224
+ border-bottom: none;
225
+ }
226
+
227
+ &:hover {
228
+ background: var(--mw-primary-color-hover);
229
+ color: var(--mw-primary-text-color);
230
+ padding-left: spacing('4');
231
+
232
+ &::before {
233
+ content: '';
234
+ position: absolute;
235
+ left: 0;
236
+ top: 0;
237
+ bottom: 0;
238
+ width: 3px;
239
+ background: var(--mw-primary-color);
240
+ }
241
+ }
242
+
243
+ // Handle nested compact lists
244
+ &:has(.mw-item-list-compact) {
245
+ padding-bottom: spacing('1');
246
+
247
+ &:hover {
248
+ color: var(--mw-text-color);
249
+ padding-left: spacing('3');
250
+
251
+ &::before {
252
+ display: none;
253
+ }
254
+ }
255
+ }
256
+ }
257
+
258
+ // Nested compact lists styling
259
+ .mw-item-list-compact {
260
+ margin-top: spacing('2');
261
+ margin-left: spacing('3');
262
+ border-left: 2px solid var(--mw-border);
263
+ border-radius: 0;
264
+
265
+ > * {
266
+ padding: spacing('2') spacing('3');
267
+ font-size: font-size('sm');
268
+
269
+ &:hover {
270
+ background: var(--mw-primary-color-hover);
271
+ margin-left: spacing('-2');
272
+ padding-left: spacing('5');
273
+ border-left: 3px solid var(--mw-primary-color);
274
+ }
275
+ }
276
+ }
277
+ }
278
+
279
+ // Interactive menu list
280
+ .mw-item-list-menu {
281
+ @extend .mw-item-list;
282
+ gap: spacing('0');
283
+ border: 1px solid var(--mw-border);
284
+ border-radius: radius('lg');
285
+ overflow: hidden;
286
+ background: var(--mw-card-background);
287
+ box-shadow: 0 2px 8px var(--mw-shadow);
288
+
289
+ > * {
290
+ padding: spacing('3') spacing('4');
291
+ border-bottom: 1px solid var(--mw-border);
292
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
293
+ cursor: pointer;
294
+ display: flex;
295
+ align-items: center;
296
+ gap: spacing('2');
297
+
298
+ &:last-child {
299
+ border-bottom: none;
300
+ }
301
+
302
+ &:hover {
303
+ background: var(--mw-primary-color-hover);
304
+ color: var(--mw-primary-text-color);
305
+ padding-left: spacing('5');
306
+ }
307
+
308
+ &:active {
309
+ background: var(--mw-primary-color);
310
+ transform: scale(0.98);
311
+ }
312
+ }
313
+ }
314
+
315
+ // Simple scrollable list
316
+ .mw-item-list-scroll {
317
+ @extend .mw-item-list;
318
+ gap: 0;
319
+ max-height: 300px;
320
+ overflow-y: auto;
321
+ border: 1px solid var(--mw-border);
322
+ border-radius: radius('md');
323
+ background: var(--mw-card-background);
324
+ scrollbar-gutter: stable; // Prevent layout shift
325
+
326
+ // Custom scrollbar styling
327
+ &::-webkit-scrollbar {
328
+ width: 7px;
329
+ }
330
+
331
+ &::-webkit-scrollbar-track {
332
+ background: var(--mw-primary-color-hover);
333
+ border-radius: 3px;
334
+ }
335
+
336
+ &::-webkit-scrollbar-thumb {
337
+ background: var(--mw-text-muted-color);
338
+ border-radius: 3px;
339
+ opacity: 0.6;
340
+
341
+ &:hover {
342
+ background: var(--mw-primary-color);
343
+ opacity: 1;
344
+ }
345
+ }
346
+
347
+ // Modern Firefox scrollbar
348
+ scrollbar-width: thin;
349
+ scrollbar-color: var(--mw-text-muted-color) var(--mw-gray-background);
350
+
351
+ > * {
352
+ padding: spacing('3');
353
+ border-bottom: 1px solid var(--mw-border);
354
+ transition: all 0.2s ease;
355
+
356
+ &:last-child {
357
+ border-bottom: none;
358
+ }
359
+
360
+ &:hover {
361
+ background: var(--mw-primary-color-hover);
362
+ cursor: pointer;
363
+ }
364
+
365
+ &:active {
366
+ background: var(--mw-primary-color);
367
+ }
368
+ }
369
+ }
370
+
371
+ // Height variants
372
+ .mw-item-list-scroll-sm {
373
+ @extend .mw-item-list-scroll;
374
+ max-height: 200px;
375
+ }
376
+
377
+ .mw-item-list-scroll-lg {
378
+ @extend .mw-item-list-scroll;
379
+ max-height: 400px;
380
+ }
381
+
382
+ .mw-item-list-scroll-xl {
383
+ @extend .mw-item-list-scroll;
384
+ max-height: 500px;
385
+ }
386
+
387
+ // Checkbox list component
388
+ .mw-item-list-checkbox {
389
+ @extend .mw-item-list;
390
+ gap: spacing('1');
391
+ border: 1px solid var(--mw-border);
392
+ border-radius: radius('md');
393
+ background: var(--mw-card-background);
394
+ overflow: hidden;
395
+
396
+ > * {
397
+ display: flex;
398
+ align-items: flex-start;
399
+ padding: spacing('2') spacing('3');
400
+ border-bottom: 1px solid var(--mw-border);
401
+ cursor: pointer;
402
+ transition: all 0.2s ease;
403
+ user-select: none;
404
+
405
+ &:last-child {
406
+ border-bottom: none;
407
+ }
408
+
409
+ &:hover {
410
+ background: var(--mw-primary-color-hover);
411
+ }
412
+
413
+ &:active {
414
+ background: var(--mw-primary-color);
415
+ transform: scale(0.98);
416
+ }
417
+
418
+ .mw-checkbox {
419
+ display: flex;
420
+ align-items: flex-start;
421
+ gap: spacing('2');
422
+ flex: 1;
423
+
424
+ // Hide native checkbox
425
+ input[type='checkbox'] {
426
+ position: absolute;
427
+ opacity: 0;
428
+ width: 0;
429
+ height: 0;
430
+ margin: spacing('0');
431
+ }
432
+
433
+ // Visual checkbox (the label)
434
+ .mw-checkbox-box {
435
+ position: relative;
436
+ flex-shrink: 0;
437
+ width: spacing('4');
438
+ height: spacing('4');
439
+ border: 2px solid var(--mw-border);
440
+ border-radius: radius('sm');
441
+ background: var(--mw-form-elements-background);
442
+ transition: var(--mw-transition);
443
+ margin-top: spacing('0.5');
444
+ cursor: pointer;
445
+ display: block;
446
+
447
+ &::after {
448
+ content: '';
449
+ position: absolute;
450
+ top: 50%;
451
+ left: 50%;
452
+ width: spacing('2');
453
+ height: spacing('1');
454
+ border-left: 2px solid var(--mw-primary-color);
455
+ border-bottom: 2px solid var(--mw-primary-color);
456
+ transform: translate(-50%, -60%) rotate(-45deg) scale(0);
457
+ transform-origin: center;
458
+ transition: var(--mw-transition);
459
+ }
460
+ }
461
+
462
+ // Checked state
463
+ input[type='checkbox']:checked + .mw-checkbox-box {
464
+ border-color: var(--mw-primary-color);
465
+
466
+ &::after {
467
+ transform: translate(-50%, -60%) rotate(-45deg) scale(1);
468
+ }
469
+ }
470
+
471
+ .mw-checkbox-content {
472
+ display: flex;
473
+ flex-direction: column;
474
+ gap: spacing('1');
475
+ flex: 1;
476
+
477
+ .mw-checkbox-header {
478
+ font-size: font-size('sm');
479
+ font-weight: font-weight('medium');
480
+ color: var(--mw-text-color);
481
+ line-height: 1.3;
482
+ margin: spacing('0');
483
+ }
484
+
485
+ .mw-checkbox-label {
486
+ font-size: font-size('xs');
487
+ color: var(--mw-text-muted-color);
488
+ line-height: 1.4;
489
+ margin: spacing('0');
490
+ }
491
+ }
492
+
493
+ // When only label exists (no header)
494
+ &:not(:has(.mw-checkbox-header)) {
495
+ align-items: center;
496
+
497
+ .mw-checkbox-box {
498
+ margin-top: spacing('0');
499
+ }
500
+
501
+ .mw-checkbox-content {
502
+ gap: spacing('0');
503
+ }
504
+
505
+ .mw-checkbox-label {
506
+ font-size: font-size('sm');
507
+ color: var(--mw-text-color);
508
+ }
509
+ }
510
+ }
511
+
512
+ // When item is selected, add visual feedback
513
+ &.mw-selected {
514
+ background: var(--mw-primary-background-hover);
515
+ border-left: 3px solid var(--mw-primary-color);
516
+ padding-left: spacing('2');
517
+ }
518
+ }
519
+
520
+ // Compact variant
521
+ &-compact {
522
+ > * {
523
+ padding: spacing('1') spacing('3');
524
+
525
+ .mw-checkbox {
526
+ gap: spacing('1');
527
+
528
+ .mw-checkbox-box {
529
+ width: spacing('3');
530
+ height: spacing('3');
531
+ margin-top: spacing('1');
532
+ }
533
+
534
+ .mw-checkbox-content {
535
+ gap: spacing('1');
536
+
537
+ .mw-checkbox-header {
538
+ font-size: font-size('xs');
539
+ font-weight: font-weight('medium');
540
+ }
541
+
542
+ .mw-checkbox-label {
543
+ font-size: font-size('2xs');
544
+ }
545
+ }
546
+
547
+ // When only label exists in compact
548
+ &:not(:has(.mw-checkbox-header)) {
549
+ .mw-checkbox-box {
550
+ margin-top: 0;
551
+ }
552
+
553
+ .mw-checkbox-label {
554
+ font-size: font-size('xs');
555
+ }
556
+ }
557
+ }
558
+ }
559
+ }
560
+
561
+ // Large variant
562
+ &-large {
563
+ > * {
564
+ padding: spacing('4') spacing('4');
565
+
566
+ .mw-checkbox {
567
+ gap: spacing('3');
568
+
569
+ .mw-checkbox-box {
570
+ width: spacing('5');
571
+ height: spacing('5');
572
+ margin-top: spacing('1');
573
+ }
574
+
575
+ .mw-checkbox-content {
576
+ gap: spacing('1');
577
+
578
+ .mw-checkbox-header {
579
+ font-size: font-size('base');
580
+ font-weight: font-weight('medium');
581
+ }
582
+
583
+ .mw-checkbox-label {
584
+ font-size: font-size('sm');
585
+ }
586
+ }
587
+
588
+ // When only label exists in large
589
+ &:not(:has(.mw-checkbox-header)) {
590
+ .mw-checkbox-box {
591
+ margin-top: spacing('0');
592
+ }
593
+
594
+ .mw-checkbox-label {
595
+ font-size: font-size('base');
596
+ }
597
+ }
598
+ }
599
+ }
600
+ }
601
+ }
602
+
603
+ // Color variants for checkbox lists
604
+ .mw-item-list-checkbox-secondary {
605
+ @extend .mw-item-list-checkbox;
606
+
607
+ > * {
608
+ &:hover {
609
+ background: var(--mw-secondary-color-hover);
610
+ }
611
+
612
+ &:active {
613
+ background: var(--mw-secondary-color);
614
+ }
615
+
616
+ &.mw-selected {
617
+ background: var(--mw-secondary-background-hover);
618
+ border-left-color: var(--mw-secondary-color);
619
+ }
620
+ }
621
+ }
622
+
623
+ // Scrollable checkbox list
624
+ .mw-item-list-checkbox-scroll {
625
+ @extend .mw-item-list-checkbox;
626
+ max-height: 300px;
627
+ overflow-y: auto;
628
+ scrollbar-gutter: stable;
629
+
630
+ // Same scrollbar styling as scroll lists
631
+ &::-webkit-scrollbar {
632
+ width: 6px;
633
+ }
634
+
635
+ &::-webkit-scrollbar-track {
636
+ background: var(--mw-text-muted-color);
637
+ border-radius: 3px;
638
+ }
639
+
640
+ &::-webkit-scrollbar-thumb {
641
+ background: var(--mw-text-muted-color);
642
+ border-radius: 3px;
643
+ opacity: 0.6;
644
+
645
+ &:hover {
646
+ background: var(--mw-primary-color);
647
+ opacity: 1;
648
+ }
649
+ }
650
+
651
+ scrollbar-width: thin;
652
+ scrollbar-color: var(--mw-text-muted-color);
653
+ }
@@ -0,0 +1,29 @@
1
+ @use '../abstracts' as *;
2
+
3
+ // Localhost indicator - a pulsating thin line at the very top of the header
4
+ .mw-localhost-indicator-pulse {
5
+ position: absolute;
6
+ top: 2px;
7
+ left: spacing('0');
8
+ width: 100%;
9
+ height: 4px;
10
+ background: var(--mw-warning-color);
11
+ z-index: z-index('modal')-10;
12
+ animation: pulse-indicator 4s infinite;
13
+ }
14
+
15
+ // Keyframes for the pulsing indicator
16
+ @keyframes pulse-indicator {
17
+ 0% {
18
+ opacity: 0.4;
19
+ box-shadow: 0 0 3px var(--mw-warning-color);
20
+ }
21
+ 25% {
22
+ opacity: 0.9;
23
+ box-shadow: 0 6px 13px var(--mw-warning-color);
24
+ }
25
+ 100% {
26
+ opacity: 0.4;
27
+ box-shadow: 0 0 3px var(--mw-warning-color);
28
+ }
29
+ }
@@ -0,0 +1,34 @@
1
+ @use '../abstracts' as *;
2
+
3
+ .mw-meta {
4
+ &-header {
5
+ padding: spacing('3') spacing('2');
6
+ border-bottom: 1px solid var(--mw-border);
7
+ margin-bottom: spacing('5');
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+ align-items: center;
11
+ justify-content: flex-end;
12
+ row-gap: spacing('1');
13
+ }
14
+
15
+ &-item {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ row-gap: spacing('1');
19
+ gap: spacing('2');
20
+ &:not(:first-child) {
21
+ margin-left: spacing('9');
22
+ }
23
+ font-size: font-size('md');
24
+
25
+ i {
26
+ font-size: font-size('lg');
27
+ color: var(--mw-primary-color);
28
+ flex-shrink: 0;
29
+ }
30
+ span {
31
+ color: var(--mw-text-color);
32
+ }
33
+ }
34
+ }