maverick-wave 4.28.0 → 5.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 (138) hide show
  1. package/.claude/settings.local.json +29 -1
  2. package/.claude/skills/mw-maverick-wave/SKILL.md +39 -24
  3. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +16 -4
  4. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +13 -4
  5. package/.claude/skills/mw-maverick-wave/references/components.md +42 -5
  6. package/.claude/skills/mw-maverick-wave/references/forms.md +14 -2
  7. package/.claude/skills/mw-maverick-wave/references/javascript.md +17 -4
  8. package/.claude/skills/mw-maverick-wave/references/layout.md +53 -19
  9. package/.claude/skills/mw-maverick-wave/references/theming.md +38 -1
  10. package/.impeccable/config.local.json +5 -0
  11. package/.impeccable/hook.cache.json +1 -0
  12. package/CHANGELOG.md +11 -0
  13. package/CLAUDE.md +5 -5
  14. package/README.md +48 -4
  15. package/index.html +19 -38
  16. package/maverick-wave.min.css +14 -12
  17. package/maverick-wave.min.js +1 -1
  18. package/package.json +2 -2
  19. package/scripts/verify.js +27 -2
  20. package/src/js/main.js +223 -83
  21. package/src/partials/accordions-container.html +6 -10
  22. package/src/partials/alerts-container.html +6 -6
  23. package/src/partials/announcement-container.html +5 -5
  24. package/src/partials/avatars-container.html +85 -17
  25. package/src/partials/badges-container.html +6 -6
  26. package/src/partials/blog-posts-container.html +11 -12
  27. package/src/partials/buttons-container.html +3 -3
  28. package/src/partials/cards-container.html +26 -9
  29. package/src/partials/code-container.html +5 -5
  30. package/src/partials/content-slider-container.html +5 -4
  31. package/src/partials/divider-container.html +7 -7
  32. package/src/partials/dropdown-container.html +2 -2
  33. package/src/partials/empty-state-container.html +5 -5
  34. package/src/partials/footer-container.html +21 -18
  35. package/src/partials/form-elements-container.html +14 -14
  36. package/src/partials/gallery-container.html +16 -8
  37. package/src/partials/get-started-container.html +4 -8
  38. package/src/partials/header-container.html +18 -7
  39. package/src/partials/home-container.html +10 -20
  40. package/src/partials/input-group-container.html +11 -2
  41. package/src/partials/kbd-container.html +1 -1
  42. package/src/partials/login-container.html +5 -1
  43. package/src/partials/media-container.html +2 -2
  44. package/src/partials/modals-container.html +22 -32
  45. package/src/partials/pricing-container.html +9 -9
  46. package/src/partials/skeleton-container.html +6 -6
  47. package/src/partials/stepper-container.html +2 -2
  48. package/src/partials/tables-container.html +12 -12
  49. package/src/partials/tabs-container.html +17 -27
  50. package/src/partials/tags-container.html +23 -17
  51. package/src/partials/techstack-bucket-container.html +13 -0
  52. package/src/partials/tiles-container.html +26 -9
  53. package/src/partials/typography-container.html +7 -6
  54. package/src/partials/utilities-container.html +35 -15
  55. package/src/scss/_layers.scss +10 -0
  56. package/src/scss/abstracts/_index.scss +6 -0
  57. package/src/scss/abstracts/_mixins.scss +61 -153
  58. package/src/scss/abstracts/_variables.scss +123 -319
  59. package/src/scss/base/_base.scss +170 -190
  60. package/src/scss/base/_reset.scss +106 -104
  61. package/src/scss/base/_typography.scss +153 -151
  62. package/src/scss/components/_accordions.scss +97 -97
  63. package/src/scss/components/_alerts.scss +71 -70
  64. package/src/scss/components/_announcement.scss +71 -70
  65. package/src/scss/components/_avatars.scss +130 -142
  66. package/src/scss/components/_badge.scss +131 -132
  67. package/src/scss/components/_blog-post.scss +223 -220
  68. package/src/scss/components/_breadcrumbs.scss +93 -92
  69. package/src/scss/components/_button-bar.scss +102 -110
  70. package/src/scss/components/_buttons.scss +319 -324
  71. package/src/scss/components/_calendar.scss +251 -252
  72. package/src/scss/components/_cards.scss +359 -386
  73. package/src/scss/components/_code.scss +190 -194
  74. package/src/scss/components/_coming-soon.scss +77 -75
  75. package/src/scss/components/_content-slider.scss +90 -89
  76. package/src/scss/components/_divider.scss +55 -53
  77. package/src/scss/components/_dropdown.scss +179 -185
  78. package/src/scss/components/_empty-state.scss +57 -57
  79. package/src/scss/components/_flag.scss +294 -278
  80. package/src/scss/components/_gallery.scss +131 -133
  81. package/src/scss/components/_info.scss +151 -167
  82. package/src/scss/components/_kanban.scss +332 -341
  83. package/src/scss/components/_kbd.scss +40 -38
  84. package/src/scss/components/_lang-switch.scss +89 -97
  85. package/src/scss/components/_links.scss +21 -28
  86. package/src/scss/components/_lists.scss +510 -514
  87. package/src/scss/components/_localhost-indicator.scss +26 -24
  88. package/src/scss/components/_media.scss +22 -20
  89. package/src/scss/components/_meta-info.scss +35 -33
  90. package/src/scss/components/_modals.scss +277 -186
  91. package/src/scss/components/_pagination.scss +81 -87
  92. package/src/scss/components/_panels.scss +99 -97
  93. package/src/scss/components/_pricing.scss +183 -241
  94. package/src/scss/components/_progress.scss +112 -89
  95. package/src/scss/components/_prose.scss +35 -33
  96. package/src/scss/components/_ratings.scss +40 -38
  97. package/src/scss/components/_segmented.scss +82 -84
  98. package/src/scss/components/_skeleton.scss +66 -72
  99. package/src/scss/components/_spinners.scss +155 -159
  100. package/src/scss/components/_stepper.scss +116 -116
  101. package/src/scss/components/_tables.scss +155 -148
  102. package/src/scss/components/_tabs.scss +232 -141
  103. package/src/scss/components/_tags.scss +109 -107
  104. package/src/scss/components/_techstack-bucket.scss +123 -122
  105. package/src/scss/components/_testimonial.scss +72 -70
  106. package/src/scss/components/_theme-toggle.scss +53 -51
  107. package/src/scss/components/_tiles.scss +174 -174
  108. package/src/scss/components/_timelines.scss +282 -280
  109. package/src/scss/components/_toasts.scss +66 -72
  110. package/src/scss/form-elements/_checkbox.scss +117 -132
  111. package/src/scss/form-elements/_form.scss +149 -115
  112. package/src/scss/form-elements/_input-group.scss +99 -103
  113. package/src/scss/form-elements/_input.scss +74 -74
  114. package/src/scss/form-elements/_login.scss +48 -48
  115. package/src/scss/form-elements/_prefilled.scss +53 -51
  116. package/src/scss/form-elements/_radio.scss +95 -107
  117. package/src/scss/form-elements/_select.scss +42 -42
  118. package/src/scss/form-elements/_slider.scss +117 -132
  119. package/src/scss/form-elements/_textarea.scss +68 -54
  120. package/src/scss/form-elements/_toggle.scss +127 -140
  121. package/src/scss/layout/_footer.scss +172 -171
  122. package/src/scss/layout/_grid.scss +268 -302
  123. package/src/scss/layout/_header.scss +426 -427
  124. package/src/scss/layout/_home.scss +28 -27
  125. package/src/scss/layout/_main.scss +275 -238
  126. package/src/scss/layout/_page-header.scss +38 -36
  127. package/src/scss/layout/_section.scss +150 -124
  128. package/src/scss/main.scss +1 -1
  129. package/src/scss/utilities/_accessibility.scss +46 -45
  130. package/src/scss/utilities/_aspect.scss +22 -20
  131. package/src/scss/utilities/_corner.scss +23 -5
  132. package/src/scss/utilities/_display.scss +76 -70
  133. package/src/scss/utilities/_elevation.scss +13 -11
  134. package/src/scss/utilities/_flex.scss +83 -85
  135. package/src/scss/utilities/_reveal.scss +40 -63
  136. package/src/scss/utilities/_spacing.scss +63 -64
  137. package/src/scss/utilities/_text.scss +139 -141
  138. package/src/scss/utilities/_touch-targets.scss +130 -147
@@ -1,157 +1,156 @@
1
1
  @use '../abstracts' as *;
2
2
 
3
- // Badge
4
- //
5
- // Not a tag. A tag is a label with a soft surface that names something - a
6
- // topic, a state, a category - and sits in a row of its own kind. A badge is a
7
- // solid mark that carries a *count* or a *status*, and it usually sits on
8
- // something else: the number on a bell, the dot on an avatar, the "3" on a tab.
9
-
10
- $_mw-badge-colors: (primary, secondary, success, warning, danger, info);
11
-
12
- .mw-badge {
13
- display: inline-flex;
14
- align-items: center;
15
- justify-content: center;
16
- min-width: 1.25rem;
17
- height: 1.25rem;
18
- padding: 0 spacing('2');
19
- border-radius: radius('xl');
20
- background: var(--mw-primary-color);
21
- color: var(--mw-primary-accent-text-color);
22
- font-size: font-size('2xs');
23
- font-weight: font-weight('bold');
24
- line-height: 1;
25
- font-variant-numeric: tabular-nums lining-nums;
26
- white-space: nowrap;
27
- vertical-align: middle;
28
- }
29
-
30
- @each $name in $_mw-badge-colors {
31
- .mw-badge-#{$name} {
32
- background: var(--mw-#{$name}-color);
33
- color: var(--mw-#{$name}-accent-text-color);
3
+ @layer mw.components {
4
+ // Badge
5
+ //
6
+ // Not a tag. A tag is a label with a soft surface that names something - a
7
+ // topic, a state, a category - and sits in a row of its own kind. A badge is a
8
+ // solid mark that carries a *count* or a *status*, and it usually sits on
9
+ // something else: the number on a bell, the dot on an avatar, the "3" on a tab.
10
+
11
+ $_mw-badge-colors: (primary, secondary, success, warning, danger, info);
12
+
13
+ .mw-badge {
14
+ display: inline-flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ min-width: 1.25rem;
18
+ height: 1.25rem;
19
+ padding: 0 spacing('2');
20
+ border-radius: radius('xl');
21
+ background: var(--mw-primary-color);
22
+ color: var(--mw-primary-accent-text-color);
23
+ font-size: font-size('2xs');
24
+ font-weight: font-weight('bold');
25
+ line-height: 1;
26
+ font-variant-numeric: tabular-nums lining-nums;
27
+ white-space: nowrap;
28
+ vertical-align: middle;
34
29
  }
35
- }
36
-
37
- .mw-badge-muted {
38
- background: var(--mw-gray-color);
39
- color: var(--mw-accent-text-color);
40
- }
41
-
42
- .mw-badge-outline {
43
- background: transparent;
44
- border: 1px solid currentcolor;
45
- color: var(--mw-primary-text-color);
46
- }
47
30
 
48
- .mw-badge-sm {
49
- min-width: 1rem;
50
- height: 1rem;
51
- padding: 0 spacing('1');
52
- font-size: font-size('3xs');
53
- }
31
+ @each $name in $_mw-badge-colors {
32
+ .mw-badge-#{$name} {
33
+ background: var(--mw-#{$name}-color);
34
+ color: var(--mw-#{$name}-accent-text-color);
35
+ }
36
+ }
54
37
 
55
- .mw-badge-lg {
56
- min-width: 1.6rem;
57
- height: 1.6rem;
58
- padding: 0 spacing('3');
59
- font-size: font-size('xs');
60
- }
38
+ .mw-badge-muted {
39
+ background: var(--mw-gray-color);
40
+ color: var(--mw-accent-text-color);
41
+ }
61
42
 
62
- // Dot
63
- .mw-badge-dot {
64
- display: inline-block;
65
- width: 0.55rem;
66
- height: 0.55rem;
67
- min-width: 0;
68
- padding: 0;
69
- border-radius: radius('full');
70
- background: var(--mw-primary-color);
71
- flex-shrink: 0;
72
- vertical-align: middle;
73
- }
43
+ .mw-badge-outline {
44
+ background: transparent;
45
+ border: 1px solid currentcolor;
46
+ color: var(--mw-primary-text-color);
47
+ }
74
48
 
75
- // A dot that is actually live - a running job, an open connection. The ring
76
- // pulses outward and fades; the dot underneath never moves, so a row of them
77
- // stays legible.
78
- .mw-badge-pulse {
79
- position: relative;
49
+ .mw-badge-sm {
50
+ min-width: 1rem;
51
+ height: 1rem;
52
+ padding: 0 spacing('1');
53
+ font-size: font-size('3xs');
54
+ }
80
55
 
81
- &::after {
82
- content: '';
83
- position: absolute;
84
- inset: 0;
85
- border-radius: inherit;
86
- background: inherit;
87
- animation: mw-badge-pulse 1.8s var(--mw-ease-out) infinite;
56
+ .mw-badge-lg {
57
+ min-width: 1.6rem;
58
+ height: 1.6rem;
59
+ padding: 0 spacing('3');
60
+ font-size: font-size('xs');
88
61
  }
89
- }
90
62
 
91
- @keyframes mw-badge-pulse {
92
- 0% {
93
- transform: scale(1);
94
- opacity: 0.7;
63
+ .mw-badge-dot {
64
+ display: inline-block;
65
+ width: 0.55rem;
66
+ height: 0.55rem;
67
+ min-width: 0;
68
+ padding: 0;
69
+ border-radius: radius('full');
70
+ background: var(--mw-primary-color);
71
+ flex-shrink: 0;
72
+ vertical-align: middle;
95
73
  }
96
- 100% {
97
- transform: scale(2.6);
98
- opacity: 0;
74
+
75
+ // A dot that is actually live - a running job, an open connection. The ring
76
+ // pulses outward and fades; the dot underneath never moves, so a row of them
77
+ // stays legible.
78
+ .mw-badge-pulse {
79
+ position: relative;
80
+
81
+ &::after {
82
+ content: '';
83
+ position: absolute;
84
+ inset: 0;
85
+ border-radius: inherit;
86
+ background: inherit;
87
+ animation: mw-badge-pulse 1.8s var(--mw-ease-out) infinite;
88
+ }
99
89
  }
100
- }
101
90
 
102
- // Anchoring a badge to something
103
- .mw-badge-anchor {
104
- position: relative;
105
- display: inline-flex;
106
- }
91
+ @keyframes mw-badge-pulse {
92
+ 0% {
93
+ transform: scale(1);
94
+ opacity: 0.7;
95
+ }
96
+ 100% {
97
+ transform: scale(2.6);
98
+ opacity: 0;
99
+ }
100
+ }
107
101
 
108
- .mw-badge-float {
109
- position: absolute;
110
- top: 0;
111
- right: 0;
112
- transform: translate(40%, -40%);
113
- box-shadow: 0 0 0 2px var(--mw-page-background);
114
- pointer-events: none;
115
- z-index: z-index('lift');
116
- }
102
+ .mw-badge-anchor {
103
+ position: relative;
104
+ display: inline-flex;
105
+ }
117
106
 
118
- // Inside anything that paints its own surface the ring has to match that
119
- // surface, not the page
120
- .mw-card,
121
- .mw-panel,
122
- .mw-modal,
123
- .mw-tile,
124
- .mw-header {
125
107
  .mw-badge-float {
126
- box-shadow: 0 0 0 2px var(--mw-card-background);
108
+ position: absolute;
109
+ top: 0;
110
+ right: 0;
111
+ transform: translate(40%, -40%);
112
+ box-shadow: 0 0 0 2px var(--mw-page-background);
113
+ pointer-events: none;
114
+ z-index: z-index('lift');
127
115
  }
128
- }
129
116
 
130
- .mw-header .mw-badge-float {
131
- box-shadow: 0 0 0 2px var(--mw-header-background);
132
- }
117
+ // Inside anything that paints its own surface the ring has to match that
118
+ // surface, not the page
119
+ .mw-card,
120
+ .mw-panel,
121
+ .mw-modal,
122
+ .mw-tile,
123
+ .mw-header {
124
+ .mw-badge-float {
125
+ box-shadow: 0 0 0 2px var(--mw-card-background);
126
+ }
127
+ }
133
128
 
134
- // Status line
135
- .mw-badge-status {
136
- display: inline-flex;
137
- align-items: center;
138
- gap: spacing('2');
139
- font-size: font-size('sm');
140
- color: var(--mw-text-color);
141
- white-space: nowrap;
142
- }
129
+ .mw-header .mw-badge-float {
130
+ box-shadow: 0 0 0 2px var(--mw-header-background);
131
+ }
143
132
 
144
- @each $name in $_mw-badge-colors {
145
- .mw-badge-dot-#{$name} {
146
- background: var(--mw-#{$name}-color);
133
+ .mw-badge-status {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ gap: spacing('2');
137
+ font-size: font-size('sm');
138
+ color: var(--mw-text-color);
139
+ white-space: nowrap;
147
140
  }
148
141
 
149
- .mw-badge-status-#{$name} .mw-badge-dot {
150
- background: var(--mw-#{$name}-color);
142
+ @each $name in $_mw-badge-colors {
143
+ .mw-badge-dot-#{$name} {
144
+ background: var(--mw-#{$name}-color);
145
+ }
146
+
147
+ .mw-badge-status-#{$name} .mw-badge-dot {
148
+ background: var(--mw-#{$name}-color);
149
+ }
151
150
  }
152
- }
153
151
 
154
- .mw-badge-dot-muted,
155
- .mw-badge-status-muted .mw-badge-dot {
156
- background: var(--mw-gray-color);
152
+ .mw-badge-dot-muted,
153
+ .mw-badge-status-muted .mw-badge-dot {
154
+ background: var(--mw-gray-color);
155
+ }
157
156
  }