maverick-wave 5.29.0 → 5.31.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 (144) hide show
  1. package/README.md +2 -2
  2. package/maverick-wave.min.css +2 -2
  3. package/package.json +8 -2
  4. package/src/scss/components/_avatars.scss +35 -3
  5. package/src/scss/components/_dropdown.scss +24 -1
  6. package/src/scss/components/_lang-switch.scss +4 -8
  7. package/src/scss/components/_modals.scss +33 -5
  8. package/.claude/settings.local.json +0 -43
  9. package/.claude/skills/mw-maverick-wave/SKILL.md +0 -532
  10. package/.claude/skills/mw-maverick-wave/examples/angular-form.md +0 -279
  11. package/.claude/skills/mw-maverick-wave/examples/angular-list-page.md +0 -309
  12. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +0 -538
  13. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +0 -530
  14. package/.claude/skills/mw-maverick-wave/references/components.md +0 -2169
  15. package/.claude/skills/mw-maverick-wave/references/forms.md +0 -358
  16. package/.claude/skills/mw-maverick-wave/references/javascript.md +0 -164
  17. package/.claude/skills/mw-maverick-wave/references/layout.md +0 -764
  18. package/.claude/skills/mw-maverick-wave/references/theming.md +0 -528
  19. package/.github/workflows/ci.yml +0 -41
  20. package/.idea/codeStyles/Project.xml +0 -59
  21. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  22. package/.idea/maverick-wave.iml +0 -12
  23. package/.idea/modules.xml +0 -8
  24. package/.idea/prettier.xml +0 -6
  25. package/.idea/vcs.xml +0 -6
  26. package/.prettierignore +0 -8
  27. package/.prettierrc.json +0 -7
  28. package/CHANGELOG.md +0 -950
  29. package/CLAUDE.md +0 -60
  30. package/gulpfile.js +0 -167
  31. package/index.html +0 -1730
  32. package/release.sh +0 -31
  33. package/scripts/verify.js +0 -252
  34. package/src/assets/favicon/apple-touch-icon.png +0 -0
  35. package/src/assets/favicon/favicon-96x96.png +0 -0
  36. package/src/assets/favicon/favicon.svg +0 -1
  37. package/src/assets/favicon/site.webmanifest +0 -37
  38. package/src/assets/favicon/web-app-manifest-192x192.png +0 -0
  39. package/src/assets/favicon/web-app-manifest-512x512.png +0 -0
  40. package/src/assets/favicon.ico +0 -0
  41. package/src/assets/header-logo.svg +0 -24
  42. package/src/assets/images/gallery-city.svg +0 -49
  43. package/src/assets/images/gallery-desert.svg +0 -25
  44. package/src/assets/images/gallery-forest.svg +0 -46
  45. package/src/assets/images/gallery-lake.svg +0 -26
  46. package/src/assets/images/gallery-mountain.svg +0 -19
  47. package/src/assets/images/gallery-ocean.svg +0 -26
  48. package/src/assets/images/gallery-oldtown.svg +0 -41
  49. package/src/assets/images/gallery-snow.svg +0 -39
  50. package/src/assets/images/photo-balloon.svg +0 -35
  51. package/src/assets/images/photo-forest-path.svg +0 -31
  52. package/src/assets/images/photo-lighthouse.svg +0 -42
  53. package/src/assets/images/photo-palm.svg +0 -27
  54. package/src/assets/images/photo-peak.svg +0 -27
  55. package/src/assets/images/photo-tower.svg +0 -34
  56. package/src/assets/images/photo-waterfall.svg +0 -32
  57. package/src/assets/images/slider-field.svg +0 -124
  58. package/src/assets/images/slider-forest.svg +0 -33
  59. package/src/assets/images/slider-lake.svg +0 -35
  60. package/src/assets/images/slider-mountains.svg +0 -29
  61. package/src/assets/images/slider-trees.svg +0 -41
  62. package/src/assets/images/story-aurora.svg +0 -36
  63. package/src/assets/images/story-beach.svg +0 -34
  64. package/src/assets/images/story-stars.svg +0 -35
  65. package/src/assets/images/tile-analytics.svg +0 -22
  66. package/src/assets/images/tile-cloud.svg +0 -19
  67. package/src/assets/images/tile-ecommerce.svg +0 -14
  68. package/src/assets/images/tile-enterprise.svg +0 -22
  69. package/src/assets/images/tile-marketing.svg +0 -16
  70. package/src/assets/media/demo-chime.wav +0 -0
  71. package/src/assets/media/story-sunrise.jpg +0 -0
  72. package/src/assets/media/story-sunrise.mp4 +0 -0
  73. package/src/partials/accordions-container.html +0 -179
  74. package/src/partials/alerts-container.html +0 -151
  75. package/src/partials/announcement-container.html +0 -67
  76. package/src/partials/avatars-container.html +0 -229
  77. package/src/partials/badges-container.html +0 -114
  78. package/src/partials/blog-posts-container.html +0 -158
  79. package/src/partials/breadcrumbs-container.html +0 -126
  80. package/src/partials/button-bar-container.html +0 -175
  81. package/src/partials/buttons-container.html +0 -272
  82. package/src/partials/calendar-container.html +0 -203
  83. package/src/partials/cards-container.html +0 -727
  84. package/src/partials/code-container.html +0 -194
  85. package/src/partials/colors-container.html +0 -263
  86. package/src/partials/coming-soon-container.html +0 -10
  87. package/src/partials/contact-container.html +0 -85
  88. package/src/partials/content-slider-container.html +0 -36
  89. package/src/partials/divider-container.html +0 -70
  90. package/src/partials/documentation-container.html +0 -204
  91. package/src/partials/dropdown-container.html +0 -119
  92. package/src/partials/empty-state-container.html +0 -79
  93. package/src/partials/feed-container.html +0 -506
  94. package/src/partials/footer-container.html +0 -113
  95. package/src/partials/form-container.html +0 -262
  96. package/src/partials/form-elements-container.html +0 -616
  97. package/src/partials/form-field-container.html +0 -166
  98. package/src/partials/gallery-container.html +0 -62
  99. package/src/partials/get-started-container.html +0 -423
  100. package/src/partials/grid-container.html +0 -191
  101. package/src/partials/header-container.html +0 -69
  102. package/src/partials/header-utilities-container.html +0 -331
  103. package/src/partials/highlights-container.html +0 -71
  104. package/src/partials/history-container.html +0 -67
  105. package/src/partials/home-container.html +0 -31
  106. package/src/partials/html-lists-container.html +0 -63
  107. package/src/partials/info-container.html +0 -104
  108. package/src/partials/input-group-container.html +0 -299
  109. package/src/partials/item-lists-container.html +0 -368
  110. package/src/partials/kanban-container.html +0 -459
  111. package/src/partials/kbd-container.html +0 -63
  112. package/src/partials/leader-row-container.html +0 -139
  113. package/src/partials/login-container.html +0 -65
  114. package/src/partials/lunch-menu-container.html +0 -341
  115. package/src/partials/media-container.html +0 -27
  116. package/src/partials/meta-info-container.html +0 -21
  117. package/src/partials/modals-container.html +0 -199
  118. package/src/partials/mosaic-container.html +0 -173
  119. package/src/partials/page-header-container.html +0 -78
  120. package/src/partials/pagination-container.html +0 -64
  121. package/src/partials/palette-container.html +0 -480
  122. package/src/partials/panels-container.html +0 -126
  123. package/src/partials/parallax-container.html +0 -147
  124. package/src/partials/portrait-gallery-container.html +0 -175
  125. package/src/partials/preview-container.html +0 -136
  126. package/src/partials/pricing-container.html +0 -523
  127. package/src/partials/progress-container.html +0 -230
  128. package/src/partials/prose-container.html +0 -43
  129. package/src/partials/ratings-container.html +0 -104
  130. package/src/partials/section-head-container.html +0 -77
  131. package/src/partials/segmented-container.html +0 -66
  132. package/src/partials/skeleton-container.html +0 -87
  133. package/src/partials/spinners-container.html +0 -96
  134. package/src/partials/stepper-container.html +0 -111
  135. package/src/partials/stories-container.html +0 -182
  136. package/src/partials/tables-container.html +0 -309
  137. package/src/partials/tabs-container.html +0 -290
  138. package/src/partials/tags-container.html +0 -242
  139. package/src/partials/techstack-bucket-container.html +0 -187
  140. package/src/partials/testimonials-container.html +0 -88
  141. package/src/partials/tiles-container.html +0 -247
  142. package/src/partials/timelines-container.html +0 -196
  143. package/src/partials/typography-container.html +0 -74
  144. package/src/partials/utilities-container.html +0 -553
package/CLAUDE.md DELETED
@@ -1,60 +0,0 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## Project Overview
6
-
7
- MaverickWave is a lightweight, modern CSS framework providing a grid system, 59 UI components, utility classes, and light/dark mode support. The repo also contains the showcase/documentation website bundled into the distribution.
8
-
9
- ## Commands
10
-
11
- ```bash
12
- npm start # Build + watch for changes (development)
13
- npm run build # Clean dist, then full build
14
- npm run showcase # Serve built dist on http://localhost:8888
15
- npm run clean # Remove dist/ (never touches the root release files)
16
- npm run format # Check formatting of SCSS, JS, JSON, HTML, MD (used by CI)
17
- npm run format:fix # Format all files with Prettier
18
- npm run verify # Consistency checks between built CSS, markup and docs
19
- npm run prepack # Build minified maverick-wave.min.{css,js} in project root
20
- # (runs automatically before npm pack / npm publish)
21
- ```
22
-
23
- There are no test or lint scripts.
24
-
25
- ## Architecture
26
-
27
- **Build pipeline** - `gulpfile.js` orchestrates everything: SCSS compilation (autoprefixed, minified), JS minification via Terser, HTML templating via `gulp-file-include`, asset copying, and build-info injection (`{{VERSION}}`, `{{LAST_BUILD_DATE}}`, `{{LAST_BUILD_YEAR}}` placeholders replaced in HTML at build time).
28
-
29
- **SCSS layers** (`src/scss/`) follow an ITCSS-inspired structure:
30
-
31
- - `abstracts/` - CSS custom properties, mixins, SCSS functions (color variant generation)
32
- - `base/` - Reset, element defaults, typography
33
- - `components/` - Self-contained component styles (59 files, one per component)
34
- - `form-elements/` - Form input/select/checkbox-specific styles
35
- - `layout/` - Grid, container, header/footer, section
36
- - `utilities/` - Spacing, flex, display utility classes
37
- - `main.scss` - Entry point using `@use`/`@forward` (not `@import`)
38
-
39
- **Mobile-first** - The unprefixed block is the phone layout; `media-up($bp)` adds
40
- to it. `media-down($bp)` only for rules that set what the base never sets, or
41
- where the narrow layout costs more properties than the wide one.
42
-
43
- **JavaScript** (`src/js/main.js`) - Single file. All components auto-initialize on `DOMContentLoaded`. Includes: gallery and image sliders, theme toggle (persisted to localStorage, transitions suppressed during the flip), accordion, mobile nav, progress bar (IntersectionObserver), scroll spy, tabs (which also get their ARIA and arrow-key handling here), alerts/toasts, modals, range inputs, dropdowns, language switcher, checkbox lists, kanban board, calendar, portrait gallery, mosaic, lightbox, story reels.
44
-
45
- **HTML showcase** (`index.html` + `src/partials/`) - The top-level `index.html` uses `@@include()` syntax to pull in 72 partials from `src/partials/`. These compile into `dist/index.html`.
46
-
47
- ## Naming Conventions
48
-
49
- - **CSS classes**: `mw-` prefix for all framework classes (`.mw-btn`, `.mw-card`, `.mw-modal`)
50
- - **State classes**: `.mw-active`, `.mw-selected`
51
- - **CSS custom properties**: `--mw-` prefix (`--mw-primary-color`, `--mw-font-family-base`)
52
- - **Theme control**: `--mw-internal-theme-mode` CSS var controls whether theme is switchable/fixed-light/fixed-dark; body class `mw-theme-light` toggles light mode
53
-
54
- ## Code Formatting
55
-
56
- Prettier is the single formatter. Config (`.prettierrc.json`): single quotes, 80-char print width, 2-space tabs, semicolons, trailing commas (ES5). Run `npm run format:fix` before committing.
57
-
58
- ## Commit Convention
59
-
60
- Follows Conventional Commits: `feat:`, `fix:`, `release:`, etc.
package/gulpfile.js DELETED
@@ -1,167 +0,0 @@
1
- const gulp = require('gulp');
2
- const fileinclude = require('gulp-file-include');
3
- const sass = require('gulp-sass')(require('sass'));
4
- const postcss = require('gulp-postcss');
5
- const autoprefixer = require('autoprefixer');
6
- // clean-css 4 is the last release gulp-clean-css pins, and it predates
7
- // @container, @layer and @starting-style: it drops those blocks or eats their
8
- // selectors without an error. cssnano runs in the postcss pass that is already
9
- // here and understands them.
10
- const cssnano = require('cssnano');
11
- // postcss-calc cannot lex relative color syntax - `calc(l * 0.85)` inside
12
- // `oklch(from ...)` makes it log a parse error per declaration. It leaves the
13
- // value alone, so the output was always correct, but the noise buried real
14
- // build errors. Switching it off leaves ten calc() terms unfolded
15
- // (`calc(500px - 1.5rem - 2px)` stays as written), worth about 100 bytes across
16
- // the whole file - cheaper than a build log nobody reads.
17
- const cssnanoPreset = ['default', { calc: false }];
18
- const terser = require('gulp-terser');
19
- const fs = require('fs');
20
- const path = require('path');
21
- const rename = require('gulp-rename');
22
- const through = require('through2');
23
- const { deleteAsync } = require('del');
24
-
25
- // Paths
26
- const paths = {
27
- root: '.',
28
- src: 'src',
29
- dist: 'dist',
30
- scss: 'src/scss/**/*.scss',
31
- html: '*.html',
32
- js: 'src/js/*.js',
33
- assets: 'src/assets/**/*',
34
- };
35
-
36
- function convertDateFormat(dateStr) {
37
- // Use regex to match day, month, and year
38
- const regex = /(\d{2})\/(\d{2})\/(\d{4})/;
39
- // Replace with year-month-day format
40
- return dateStr.replace(regex, '$3-$2-$1');
41
- }
42
-
43
- // Process HTML files
44
- gulp.task('html', function () {
45
- return gulp
46
- .src(paths.html)
47
- .pipe(
48
- fileinclude({
49
- prefix: '@@',
50
- basepath: '@file',
51
- })
52
- )
53
- .pipe(gulp.dest(paths.dist));
54
- });
55
-
56
- // Process SCSS files
57
- gulp.task('scss-build', function () {
58
- return gulp
59
- .src(paths.scss)
60
- .pipe(sass().on('error', sass.logError))
61
- .pipe(postcss([autoprefixer(), cssnano({ preset: cssnanoPreset })]))
62
- .pipe(rename('maverick-wave.min.css'))
63
- .pipe(gulp.dest(path.join(paths.dist)));
64
- });
65
- gulp.task('scss-release', function () {
66
- return gulp
67
- .src(paths.scss)
68
- .pipe(sass().on('error', sass.logError))
69
- .pipe(postcss([autoprefixer(), cssnano({ preset: cssnanoPreset })]))
70
- .pipe(rename('maverick-wave.min.css'))
71
- .pipe(gulp.dest(path.join(paths.root)));
72
- });
73
-
74
- // Copy JavaScript files
75
- gulp.task('js-build', function () {
76
- return gulp
77
- .src(paths.js)
78
- .pipe(terser())
79
- .pipe(rename('maverick-wave.min.js'))
80
- .pipe(gulp.dest(path.join(paths.dist)));
81
- });
82
- gulp.task('js-release', function () {
83
- return gulp
84
- .src(paths.js)
85
- .pipe(terser())
86
- .pipe(rename('maverick-wave.min.js'))
87
- .pipe(gulp.dest(path.join(paths.root)));
88
- });
89
-
90
- // Copy assets
91
- gulp.task('assets', function () {
92
- return gulp
93
- .src(paths.assets, { encoding: false })
94
- .pipe(gulp.dest(path.join(paths.dist)));
95
- });
96
-
97
- // Inject build info into HTML
98
- gulp.task('inject-build-info', function () {
99
- // Get package.json data
100
- const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
101
-
102
- // Create build info object
103
- const buildInfo = {
104
- name: packageJson.name,
105
- version: packageJson.version,
106
- buildDate: convertDateFormat(new Date().toLocaleDateString('en-DE')),
107
- };
108
-
109
- // Create a custom transform stream to inject build info
110
- const injectBuildInfo = through.obj(function (file, enc, cb) {
111
- if (file.isBuffer()) {
112
- let contents = file.contents.toString();
113
-
114
- // Replace placeholders with actual values
115
- contents = contents.replace(/\{\{VERSION\}\}/g, buildInfo.version);
116
- contents = contents.replace(
117
- /\{\{LAST_BUILD_DATE\}\}/g,
118
- buildInfo.buildDate
119
- );
120
- contents = contents.replace(
121
- /\{\{LAST_BUILD_YEAR\}\}/g,
122
- buildInfo.buildDate.slice(0, 4)
123
- );
124
-
125
- file.contents = Buffer.from(contents);
126
- }
127
-
128
- this.push(file);
129
- cb();
130
- });
131
-
132
- return gulp
133
- .src(path.join(paths.dist, '*.html'))
134
- .pipe(injectBuildInfo)
135
- .pipe(gulp.dest(paths.dist));
136
- });
137
-
138
- // clean - remove dist only. The root maverick-wave.min.* files are committed
139
- // release artifacts - deleting them here once shipped a broken npm package
140
- // (4.22.0) because a plain build before publish wiped them.
141
- gulp.task('clean', async function () {
142
- await deleteAsync(['dist'], { force: true });
143
- });
144
-
145
- // Watch for changes
146
- gulp.task('watch', function () {
147
- gulp.watch(paths.scss, gulp.series('scss-build'));
148
- gulp.watch('*.html', gulp.series('html', 'inject-build-info'));
149
- gulp.watch('src/partials/*.html', gulp.series('html', 'inject-build-info'));
150
- gulp.watch(paths.js, gulp.series('js-build'));
151
- gulp.watch(paths.assets, gulp.series('assets'));
152
- });
153
-
154
- // Build task
155
- gulp.task(
156
- 'build',
157
- gulp.series(
158
- gulp.parallel('scss-build', 'js-build', 'assets', 'html'),
159
- 'inject-build-info'
160
- )
161
- );
162
-
163
- // Release task
164
- gulp.task('release', gulp.series(gulp.parallel('scss-release', 'js-release')));
165
-
166
- // Default task
167
- gulp.task('default', gulp.series('build', 'watch'));