maverick-wave 3.10.0 → 4.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.
- package/.claude/skills/maverick-wave/SKILL.md +62 -30
- package/.claude/skills/maverick-wave/examples/angular-form.md +1 -1
- package/.claude/skills/maverick-wave/examples/angular-services.md +15 -8
- package/.claude/skills/maverick-wave/examples/static-landing-page.md +4 -4
- package/.claude/skills/maverick-wave/references/components.md +416 -27
- package/.claude/skills/maverick-wave/references/forms.md +8 -4
- package/.claude/skills/maverick-wave/references/javascript.md +32 -18
- package/.claude/skills/maverick-wave/references/layout.md +48 -3
- package/.claude/skills/maverick-wave/references/theming.md +34 -24
- package/CHANGELOG.md +56 -0
- package/index.html +25 -0
- package/maverick-wave.min.css +2 -2
- package/maverick-wave.min.js +1 -1
- package/package.json +2 -2
- package/src/js/main.js +314 -20
- package/src/partials/accordions-container.html +2 -2
- package/src/partials/button-bar-container.html +4 -2
- package/src/partials/buttons-container.html +35 -0
- package/src/partials/calendar-container.html +205 -0
- package/src/partials/cards-container.html +43 -0
- package/src/partials/documentation-container.html +3 -0
- package/src/partials/form-container.html +1 -1
- package/src/partials/get-started-container.html +2 -2
- package/src/partials/kanban-container.html +680 -715
- package/src/partials/modals-container.html +5 -5
- package/src/partials/pagination-container.html +50 -13
- package/src/partials/segmented-container.html +66 -0
- package/src/partials/tables-container.html +96 -24
- package/src/partials/tabs-container.html +16 -6
- package/src/partials/tags-container.html +15 -0
- package/src/partials/timelines-container.html +2 -2
- package/src/partials/utilities-container.html +81 -0
- package/src/scss/abstracts/_mixins.scss +34 -0
- package/src/scss/abstracts/_variables.scss +6 -2
- package/src/scss/base/_base.scss +21 -0
- package/src/scss/components/_accordions.scss +2 -0
- package/src/scss/components/_alerts.scss +5 -19
- package/src/scss/components/_button-bar.scss +6 -0
- package/src/scss/components/_buttons.scss +67 -0
- package/src/scss/components/_calendar.scss +290 -0
- package/src/scss/components/_content-slider.scss +1 -0
- package/src/scss/components/_index.scss +2 -0
- package/src/scss/components/_kanban.scss +2 -6
- package/src/scss/components/_modals.scss +15 -4
- package/src/scss/components/_pagination.scss +68 -64
- package/src/scss/components/_segmented.scss +85 -0
- package/src/scss/components/_tables.scss +16 -0
- package/src/scss/components/_tabs.scss +15 -0
- package/src/scss/components/_tags.scss +16 -0
- package/src/scss/components/_theme-toggle.scss +2 -0
- package/src/scss/components/_timelines.scss +3 -0
- package/src/scss/form-elements/_form.scss +13 -7
- package/src/scss/layout/_header.scss +3 -0
- package/src/scss/layout/_main.scss +5 -1
- package/src/scss/layout/_section.scss +1 -1
- package/src/scss/utilities/_accessibility.scss +14 -0
- package/src/scss/utilities/_flex.scss +17 -0
- package/src/scss/utilities/_index.scss +2 -0
- package/src/scss/utilities/_text.scss +17 -5
- package/src/scss/utilities/_touch-targets.scss +54 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Calendar</h3>
|
|
2
|
+
<p class="mw-text-muted">
|
|
3
|
+
Month, compact and week share every class - a week is seven cells instead of
|
|
4
|
+
forty-two, <code>mw-calendar-compact</code> drops the dots and a third of the
|
|
5
|
+
height. The status dots come in as
|
|
6
|
+
<code>data-calendar-markers='{"2026-08-19": ["success", "warning"]}'</code>.
|
|
7
|
+
</p>
|
|
8
|
+
<p class="mw-text-muted">
|
|
9
|
+
What a dot <em>means</em> belongs to the caller: the same calendar reads
|
|
10
|
+
“request pending / booked / time offered” in a scheduling app and
|
|
11
|
+
something else entirely on a public booking page. So the colour is a property,
|
|
12
|
+
<code>--mw-calendar-dot</code>, settable per dot or inherited from the cell -
|
|
13
|
+
<code>mw-calendar-dot-success</code> and friends are named presets for it, not
|
|
14
|
+
the only way in.
|
|
15
|
+
</p>
|
|
16
|
+
<div class="mw-card mw-card-simple mw-mb-6">
|
|
17
|
+
<div class="mw-row-split mw-row-split-center">
|
|
18
|
+
<span>Any colour, set on the dot itself</span>
|
|
19
|
+
<span class="mw-d-flex mw-items-center mw-gap-3">
|
|
20
|
+
<span class="mw-calendar-dot" style="--mw-calendar-dot: #7a4fd4"></span>
|
|
21
|
+
<span class="mw-calendar-dot" style="--mw-calendar-dot: #d47a4f"></span>
|
|
22
|
+
<span class="mw-calendar-dot mw-calendar-dot-success"></span>
|
|
23
|
+
<code>--mw-calendar-dot</code>
|
|
24
|
+
</span>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div class="mw-grid-2 calendar-demos mw-my-6">
|
|
29
|
+
<div>
|
|
30
|
+
<h4 class="mw-mb-2">Month</h4>
|
|
31
|
+
<div
|
|
32
|
+
class="mw-calendar calendar-demo"
|
|
33
|
+
id="calendar-month"
|
|
34
|
+
data-calendar="month"
|
|
35
|
+
data-calendar-locale="en-GB"
|
|
36
|
+
>
|
|
37
|
+
<div class="mw-calendar-header">
|
|
38
|
+
<button
|
|
39
|
+
type="button"
|
|
40
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
41
|
+
data-calendar-nav="-1"
|
|
42
|
+
aria-label="Previous month"
|
|
43
|
+
>
|
|
44
|
+
<i class="fas fa-chevron-left"></i>
|
|
45
|
+
</button>
|
|
46
|
+
|
|
47
|
+
<div class="mw-calendar-title" aria-live="polite"></div>
|
|
48
|
+
|
|
49
|
+
<button
|
|
50
|
+
type="button"
|
|
51
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
52
|
+
data-calendar-nav="1"
|
|
53
|
+
aria-label="Next month"
|
|
54
|
+
>
|
|
55
|
+
<i class="fas fa-chevron-right"></i>
|
|
56
|
+
</button>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="mw-calendar-grid"></div>
|
|
60
|
+
|
|
61
|
+
<div class="mw-calendar-legend">
|
|
62
|
+
<span class="mw-calendar-legend-item">
|
|
63
|
+
<span class="mw-calendar-dot mw-calendar-dot-success"></span>
|
|
64
|
+
Slots free
|
|
65
|
+
</span>
|
|
66
|
+
<span class="mw-calendar-legend-item">
|
|
67
|
+
<span class="mw-calendar-dot mw-calendar-dot-warning"></span>
|
|
68
|
+
Almost booked
|
|
69
|
+
</span>
|
|
70
|
+
<span class="mw-calendar-legend-item">
|
|
71
|
+
<span class="mw-calendar-dot mw-calendar-dot-danger"></span>
|
|
72
|
+
Fully booked
|
|
73
|
+
</span>
|
|
74
|
+
<span class="mw-calendar-legend-item">
|
|
75
|
+
<span class="mw-calendar-dot mw-calendar-dot-info"></span>
|
|
76
|
+
Public holiday
|
|
77
|
+
</span>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div>
|
|
83
|
+
<h4 class="mw-mb-2">Compact Month</h4>
|
|
84
|
+
<div
|
|
85
|
+
class="mw-calendar mw-calendar-compact calendar-demo"
|
|
86
|
+
id="calendar-compact"
|
|
87
|
+
data-calendar="month"
|
|
88
|
+
data-calendar-locale="en-GB"
|
|
89
|
+
>
|
|
90
|
+
<div class="mw-calendar-header">
|
|
91
|
+
<button
|
|
92
|
+
type="button"
|
|
93
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
94
|
+
data-calendar-nav="-1"
|
|
95
|
+
aria-label="Previous month"
|
|
96
|
+
>
|
|
97
|
+
<i class="fas fa-chevron-left"></i>
|
|
98
|
+
</button>
|
|
99
|
+
|
|
100
|
+
<div class="mw-calendar-title" aria-live="polite"></div>
|
|
101
|
+
|
|
102
|
+
<button
|
|
103
|
+
type="button"
|
|
104
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
105
|
+
data-calendar-nav="1"
|
|
106
|
+
aria-label="Next month"
|
|
107
|
+
>
|
|
108
|
+
<i class="fas fa-chevron-right"></i>
|
|
109
|
+
</button>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<div class="mw-calendar-grid"></div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div>
|
|
117
|
+
<h4 class="mw-mb-2">Week</h4>
|
|
118
|
+
<div
|
|
119
|
+
class="mw-calendar calendar-demo"
|
|
120
|
+
id="calendar-week"
|
|
121
|
+
data-calendar="week"
|
|
122
|
+
data-calendar-locale="en-GB"
|
|
123
|
+
>
|
|
124
|
+
<div class="mw-calendar-header">
|
|
125
|
+
<button
|
|
126
|
+
type="button"
|
|
127
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
128
|
+
data-calendar-nav="-1"
|
|
129
|
+
aria-label="Previous week"
|
|
130
|
+
>
|
|
131
|
+
<i class="fas fa-chevron-left"></i>
|
|
132
|
+
</button>
|
|
133
|
+
|
|
134
|
+
<div class="mw-calendar-title" aria-live="polite"></div>
|
|
135
|
+
|
|
136
|
+
<button
|
|
137
|
+
type="button"
|
|
138
|
+
class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
|
|
139
|
+
data-calendar-nav="1"
|
|
140
|
+
aria-label="Next week"
|
|
141
|
+
>
|
|
142
|
+
<i class="fas fa-chevron-right"></i>
|
|
143
|
+
</button>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="mw-calendar-grid"></div>
|
|
147
|
+
|
|
148
|
+
<div class="mw-calendar-legend">
|
|
149
|
+
<span class="mw-calendar-legend-item">
|
|
150
|
+
<span class="mw-calendar-dot mw-calendar-dot-success"></span>
|
|
151
|
+
Slots free
|
|
152
|
+
</span>
|
|
153
|
+
<span class="mw-calendar-legend-item">
|
|
154
|
+
<span class="mw-calendar-dot mw-calendar-dot-warning"></span>
|
|
155
|
+
Almost booked
|
|
156
|
+
</span>
|
|
157
|
+
<span class="mw-calendar-legend-item">
|
|
158
|
+
<span class="mw-calendar-dot mw-calendar-dot-danger"></span>
|
|
159
|
+
Fully booked
|
|
160
|
+
</span>
|
|
161
|
+
<span class="mw-calendar-legend-item">
|
|
162
|
+
<span class="mw-calendar-dot mw-calendar-dot-info"></span>
|
|
163
|
+
Public holiday
|
|
164
|
+
</span>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
<script>
|
|
171
|
+
// Showcase only: the demo markers hang off today, so the dots stay in view no
|
|
172
|
+
// matter when this page is opened. A real page ships them as a literal.
|
|
173
|
+
(function () {
|
|
174
|
+
const markers = {};
|
|
175
|
+
|
|
176
|
+
const add = (offset, tones) => {
|
|
177
|
+
const date = new Date();
|
|
178
|
+
date.setDate(date.getDate() + offset);
|
|
179
|
+
const key =
|
|
180
|
+
date.getFullYear() +
|
|
181
|
+
'-' +
|
|
182
|
+
String(date.getMonth() + 1).padStart(2, '0') +
|
|
183
|
+
'-' +
|
|
184
|
+
String(date.getDate()).padStart(2, '0');
|
|
185
|
+
markers[key] = tones;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
add(-6, ['danger']);
|
|
189
|
+
add(-4, ['success']);
|
|
190
|
+
add(-1, ['warning', 'info']);
|
|
191
|
+
add(0, ['success', 'warning']);
|
|
192
|
+
add(1, ['success']);
|
|
193
|
+
add(2, ['info']);
|
|
194
|
+
add(3, ['danger', 'warning', 'success']);
|
|
195
|
+
add(5, ['secondary']);
|
|
196
|
+
add(8, ['success']);
|
|
197
|
+
add(11, ['warning']);
|
|
198
|
+
add(14, ['danger']);
|
|
199
|
+
|
|
200
|
+
const encoded = JSON.stringify(markers);
|
|
201
|
+
document.querySelectorAll('[data-calendar]').forEach((calendar) => {
|
|
202
|
+
calendar.dataset.calendarMarkers = encoded;
|
|
203
|
+
});
|
|
204
|
+
})();
|
|
205
|
+
</script>
|
|
@@ -276,6 +276,49 @@
|
|
|
276
276
|
</div>
|
|
277
277
|
</div>
|
|
278
278
|
|
|
279
|
+
<h3 class="mw-mb-4 mw-mt-6">Note Above the Actions</h3>
|
|
280
|
+
<p class="mw-text-muted">
|
|
281
|
+
<code>mw-actions-note</code> puts one right-aligned, muted line above a row of
|
|
282
|
+
actions - what the buttons apply to, why one of them is disabled, or that
|
|
283
|
+
something cannot be taken back. It goes straight into the action row and needs
|
|
284
|
+
no wrapper: the line takes the full width and pushes the buttons below it. It
|
|
285
|
+
works the same way in <code>mw-card-footer</code>,
|
|
286
|
+
<code>mw-modal-footer</code>, <code>mw-form-actions</code> and
|
|
287
|
+
<code>mw-panel-footer</code>.
|
|
288
|
+
</p>
|
|
289
|
+
<div class="mw-grid-2-lg">
|
|
290
|
+
<div class="mw-card">
|
|
291
|
+
<div class="mw-card-body">
|
|
292
|
+
<h3 class="mw-card-title">Subscription</h3>
|
|
293
|
+
<hr class="mw-card-title-divider" />
|
|
294
|
+
<p class="mw-card-text">
|
|
295
|
+
The plan stays active until the end of the current billing period.
|
|
296
|
+
</p>
|
|
297
|
+
<div class="mw-card-footer">
|
|
298
|
+
<p class="mw-actions-note">Renews on 19 September 2026.</p>
|
|
299
|
+
<button type="button" class="mw-btn mw-btn-outline">Change plan</button>
|
|
300
|
+
<button type="button" class="mw-btn mw-btn-primary">Keep it</button>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
|
|
305
|
+
<div class="mw-card">
|
|
306
|
+
<div class="mw-card-body">
|
|
307
|
+
<h3 class="mw-card-title">Export</h3>
|
|
308
|
+
<hr class="mw-card-title-divider" />
|
|
309
|
+
<p class="mw-card-text">
|
|
310
|
+
Every invoice of the selected period, as one ZIP archive.
|
|
311
|
+
</p>
|
|
312
|
+
<div class="mw-card-footer">
|
|
313
|
+
<p class="mw-actions-note">128 invoices, roughly 40 MB.</p>
|
|
314
|
+
<button type="button" class="mw-btn mw-btn-primary">
|
|
315
|
+
Start export
|
|
316
|
+
</button>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
|
|
279
322
|
<h3 class="mw-mb-4 mw-mt-6">Card Variations</h3>
|
|
280
323
|
<div class="mw-grid-3">
|
|
281
324
|
<div class="mw-card">
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
</div>
|
|
246
246
|
|
|
247
247
|
<div class="mw-form-actions">
|
|
248
|
-
<p class="mw-
|
|
248
|
+
<p class="mw-actions-note">
|
|
249
249
|
Changes are saved to your account immediately after clicking Save.
|
|
250
250
|
</p>
|
|
251
251
|
<button type="reset" class="mw-btn mw-btn-outline">Reset</button>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
<div class="mw-tabs mw-mb-6">
|
|
25
25
|
<div class="mw-tabs-nav">
|
|
26
|
-
<div class="mw-tabs-nav-item active" data-tab="html-css">HTML/CSS</div>
|
|
26
|
+
<div class="mw-tabs-nav-item mw-active" data-tab="html-css">HTML/CSS</div>
|
|
27
27
|
<div class="mw-tabs-nav-item" data-tab="scss">SCSS Projects</div>
|
|
28
28
|
<div class="mw-tabs-nav-item" data-tab="angular">Angular</div>
|
|
29
29
|
<div class="mw-tabs-nav-item" data-tab="react">React</div>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<div class="mw-tabs-content">
|
|
33
33
|
<!-- HTML/CSS Tab -->
|
|
34
|
-
<div class="mw-tabs-panel active" id="html-css">
|
|
34
|
+
<div class="mw-tabs-panel mw-active" id="html-css">
|
|
35
35
|
<div class="mw-card mw-card-simple">
|
|
36
36
|
<h4>Using Pre-compiled CSS (CDN or Download)</h4>
|
|
37
37
|
<p>
|