maverick-wave 4.27.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 (140) hide show
  1. package/.claude/settings.local.json +29 -1
  2. package/.claude/skills/mw-maverick-wave/SKILL.md +42 -25
  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 +90 -5
  6. package/.claude/skills/mw-maverick-wave/references/forms.md +14 -2
  7. package/.claude/skills/mw-maverick-wave/references/javascript.md +18 -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 +17 -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 +266 -75
  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/header-utilities-container.html +192 -5
  40. package/src/partials/home-container.html +10 -20
  41. package/src/partials/input-group-container.html +11 -2
  42. package/src/partials/kbd-container.html +1 -1
  43. package/src/partials/login-container.html +5 -1
  44. package/src/partials/media-container.html +2 -2
  45. package/src/partials/modals-container.html +22 -32
  46. package/src/partials/pricing-container.html +9 -9
  47. package/src/partials/skeleton-container.html +6 -6
  48. package/src/partials/stepper-container.html +2 -2
  49. package/src/partials/tables-container.html +12 -12
  50. package/src/partials/tabs-container.html +17 -27
  51. package/src/partials/tags-container.html +23 -17
  52. package/src/partials/techstack-bucket-container.html +13 -0
  53. package/src/partials/tiles-container.html +26 -9
  54. package/src/partials/typography-container.html +7 -6
  55. package/src/partials/utilities-container.html +35 -15
  56. package/src/scss/_layers.scss +10 -0
  57. package/src/scss/abstracts/_index.scss +6 -0
  58. package/src/scss/abstracts/_mixins.scss +61 -153
  59. package/src/scss/abstracts/_variables.scss +123 -319
  60. package/src/scss/base/_base.scss +170 -190
  61. package/src/scss/base/_reset.scss +106 -104
  62. package/src/scss/base/_typography.scss +153 -151
  63. package/src/scss/components/_accordions.scss +97 -97
  64. package/src/scss/components/_alerts.scss +71 -70
  65. package/src/scss/components/_announcement.scss +71 -70
  66. package/src/scss/components/_avatars.scss +130 -142
  67. package/src/scss/components/_badge.scss +131 -132
  68. package/src/scss/components/_blog-post.scss +223 -220
  69. package/src/scss/components/_breadcrumbs.scss +93 -92
  70. package/src/scss/components/_button-bar.scss +102 -110
  71. package/src/scss/components/_buttons.scss +319 -324
  72. package/src/scss/components/_calendar.scss +251 -252
  73. package/src/scss/components/_cards.scss +359 -386
  74. package/src/scss/components/_code.scss +190 -194
  75. package/src/scss/components/_coming-soon.scss +77 -75
  76. package/src/scss/components/_content-slider.scss +90 -89
  77. package/src/scss/components/_divider.scss +55 -53
  78. package/src/scss/components/_dropdown.scss +179 -185
  79. package/src/scss/components/_empty-state.scss +57 -57
  80. package/src/scss/components/_flag.scss +325 -0
  81. package/src/scss/components/_gallery.scss +131 -133
  82. package/src/scss/components/_index.scss +2 -0
  83. package/src/scss/components/_info.scss +151 -167
  84. package/src/scss/components/_kanban.scss +332 -341
  85. package/src/scss/components/_kbd.scss +40 -38
  86. package/src/scss/components/_lang-switch.scss +108 -0
  87. package/src/scss/components/_links.scss +21 -28
  88. package/src/scss/components/_lists.scss +510 -514
  89. package/src/scss/components/_localhost-indicator.scss +26 -24
  90. package/src/scss/components/_media.scss +22 -20
  91. package/src/scss/components/_meta-info.scss +35 -33
  92. package/src/scss/components/_modals.scss +277 -186
  93. package/src/scss/components/_pagination.scss +81 -87
  94. package/src/scss/components/_panels.scss +99 -97
  95. package/src/scss/components/_pricing.scss +183 -241
  96. package/src/scss/components/_progress.scss +112 -89
  97. package/src/scss/components/_prose.scss +35 -33
  98. package/src/scss/components/_ratings.scss +40 -38
  99. package/src/scss/components/_segmented.scss +82 -84
  100. package/src/scss/components/_skeleton.scss +66 -72
  101. package/src/scss/components/_spinners.scss +155 -159
  102. package/src/scss/components/_stepper.scss +116 -116
  103. package/src/scss/components/_tables.scss +155 -148
  104. package/src/scss/components/_tabs.scss +232 -141
  105. package/src/scss/components/_tags.scss +109 -107
  106. package/src/scss/components/_techstack-bucket.scss +123 -122
  107. package/src/scss/components/_testimonial.scss +72 -70
  108. package/src/scss/components/_theme-toggle.scss +53 -51
  109. package/src/scss/components/_tiles.scss +174 -174
  110. package/src/scss/components/_timelines.scss +282 -280
  111. package/src/scss/components/_toasts.scss +66 -72
  112. package/src/scss/form-elements/_checkbox.scss +117 -132
  113. package/src/scss/form-elements/_form.scss +149 -115
  114. package/src/scss/form-elements/_input-group.scss +99 -103
  115. package/src/scss/form-elements/_input.scss +74 -74
  116. package/src/scss/form-elements/_login.scss +48 -48
  117. package/src/scss/form-elements/_prefilled.scss +53 -51
  118. package/src/scss/form-elements/_radio.scss +95 -107
  119. package/src/scss/form-elements/_select.scss +42 -42
  120. package/src/scss/form-elements/_slider.scss +117 -132
  121. package/src/scss/form-elements/_textarea.scss +68 -54
  122. package/src/scss/form-elements/_toggle.scss +127 -140
  123. package/src/scss/layout/_footer.scss +172 -171
  124. package/src/scss/layout/_grid.scss +268 -302
  125. package/src/scss/layout/_header.scss +426 -427
  126. package/src/scss/layout/_home.scss +28 -27
  127. package/src/scss/layout/_main.scss +275 -238
  128. package/src/scss/layout/_page-header.scss +38 -36
  129. package/src/scss/layout/_section.scss +150 -124
  130. package/src/scss/main.scss +1 -1
  131. package/src/scss/utilities/_accessibility.scss +46 -45
  132. package/src/scss/utilities/_aspect.scss +22 -20
  133. package/src/scss/utilities/_corner.scss +23 -5
  134. package/src/scss/utilities/_display.scss +76 -70
  135. package/src/scss/utilities/_elevation.scss +13 -11
  136. package/src/scss/utilities/_flex.scss +83 -85
  137. package/src/scss/utilities/_reveal.scss +40 -63
  138. package/src/scss/utilities/_spacing.scss +63 -64
  139. package/src/scss/utilities/_text.scss +139 -141
  140. 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
  }