maverick-wave 5.30.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 (141) hide show
  1. package/README.md +2 -2
  2. package/maverick-wave.min.css +1 -1
  3. package/package.json +8 -2
  4. package/src/scss/components/_modals.scss +23 -9
  5. package/.claude/settings.local.json +0 -43
  6. package/.claude/skills/mw-maverick-wave/SKILL.md +0 -532
  7. package/.claude/skills/mw-maverick-wave/examples/angular-form.md +0 -279
  8. package/.claude/skills/mw-maverick-wave/examples/angular-list-page.md +0 -309
  9. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +0 -538
  10. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +0 -530
  11. package/.claude/skills/mw-maverick-wave/references/components.md +0 -2170
  12. package/.claude/skills/mw-maverick-wave/references/forms.md +0 -358
  13. package/.claude/skills/mw-maverick-wave/references/javascript.md +0 -164
  14. package/.claude/skills/mw-maverick-wave/references/layout.md +0 -764
  15. package/.claude/skills/mw-maverick-wave/references/theming.md +0 -530
  16. package/.github/workflows/ci.yml +0 -41
  17. package/.idea/codeStyles/Project.xml +0 -59
  18. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  19. package/.idea/maverick-wave.iml +0 -12
  20. package/.idea/modules.xml +0 -8
  21. package/.idea/prettier.xml +0 -6
  22. package/.idea/vcs.xml +0 -6
  23. package/.prettierignore +0 -8
  24. package/.prettierrc.json +0 -7
  25. package/CHANGELOG.md +0 -956
  26. package/CLAUDE.md +0 -60
  27. package/gulpfile.js +0 -167
  28. package/index.html +0 -1730
  29. package/release.sh +0 -31
  30. package/scripts/verify.js +0 -252
  31. package/src/assets/favicon/apple-touch-icon.png +0 -0
  32. package/src/assets/favicon/favicon-96x96.png +0 -0
  33. package/src/assets/favicon/favicon.svg +0 -1
  34. package/src/assets/favicon/site.webmanifest +0 -37
  35. package/src/assets/favicon/web-app-manifest-192x192.png +0 -0
  36. package/src/assets/favicon/web-app-manifest-512x512.png +0 -0
  37. package/src/assets/favicon.ico +0 -0
  38. package/src/assets/header-logo.svg +0 -24
  39. package/src/assets/images/gallery-city.svg +0 -49
  40. package/src/assets/images/gallery-desert.svg +0 -25
  41. package/src/assets/images/gallery-forest.svg +0 -46
  42. package/src/assets/images/gallery-lake.svg +0 -26
  43. package/src/assets/images/gallery-mountain.svg +0 -19
  44. package/src/assets/images/gallery-ocean.svg +0 -26
  45. package/src/assets/images/gallery-oldtown.svg +0 -41
  46. package/src/assets/images/gallery-snow.svg +0 -39
  47. package/src/assets/images/photo-balloon.svg +0 -35
  48. package/src/assets/images/photo-forest-path.svg +0 -31
  49. package/src/assets/images/photo-lighthouse.svg +0 -42
  50. package/src/assets/images/photo-palm.svg +0 -27
  51. package/src/assets/images/photo-peak.svg +0 -27
  52. package/src/assets/images/photo-tower.svg +0 -34
  53. package/src/assets/images/photo-waterfall.svg +0 -32
  54. package/src/assets/images/slider-field.svg +0 -124
  55. package/src/assets/images/slider-forest.svg +0 -33
  56. package/src/assets/images/slider-lake.svg +0 -35
  57. package/src/assets/images/slider-mountains.svg +0 -29
  58. package/src/assets/images/slider-trees.svg +0 -41
  59. package/src/assets/images/story-aurora.svg +0 -36
  60. package/src/assets/images/story-beach.svg +0 -34
  61. package/src/assets/images/story-stars.svg +0 -35
  62. package/src/assets/images/tile-analytics.svg +0 -22
  63. package/src/assets/images/tile-cloud.svg +0 -19
  64. package/src/assets/images/tile-ecommerce.svg +0 -14
  65. package/src/assets/images/tile-enterprise.svg +0 -22
  66. package/src/assets/images/tile-marketing.svg +0 -16
  67. package/src/assets/media/demo-chime.wav +0 -0
  68. package/src/assets/media/story-sunrise.jpg +0 -0
  69. package/src/assets/media/story-sunrise.mp4 +0 -0
  70. package/src/partials/accordions-container.html +0 -179
  71. package/src/partials/alerts-container.html +0 -151
  72. package/src/partials/announcement-container.html +0 -67
  73. package/src/partials/avatars-container.html +0 -229
  74. package/src/partials/badges-container.html +0 -114
  75. package/src/partials/blog-posts-container.html +0 -158
  76. package/src/partials/breadcrumbs-container.html +0 -126
  77. package/src/partials/button-bar-container.html +0 -175
  78. package/src/partials/buttons-container.html +0 -272
  79. package/src/partials/calendar-container.html +0 -203
  80. package/src/partials/cards-container.html +0 -727
  81. package/src/partials/code-container.html +0 -194
  82. package/src/partials/colors-container.html +0 -263
  83. package/src/partials/coming-soon-container.html +0 -10
  84. package/src/partials/contact-container.html +0 -85
  85. package/src/partials/content-slider-container.html +0 -36
  86. package/src/partials/divider-container.html +0 -70
  87. package/src/partials/documentation-container.html +0 -204
  88. package/src/partials/dropdown-container.html +0 -119
  89. package/src/partials/empty-state-container.html +0 -79
  90. package/src/partials/feed-container.html +0 -506
  91. package/src/partials/footer-container.html +0 -113
  92. package/src/partials/form-container.html +0 -262
  93. package/src/partials/form-elements-container.html +0 -616
  94. package/src/partials/form-field-container.html +0 -166
  95. package/src/partials/gallery-container.html +0 -62
  96. package/src/partials/get-started-container.html +0 -423
  97. package/src/partials/grid-container.html +0 -191
  98. package/src/partials/header-container.html +0 -69
  99. package/src/partials/header-utilities-container.html +0 -331
  100. package/src/partials/highlights-container.html +0 -71
  101. package/src/partials/history-container.html +0 -67
  102. package/src/partials/home-container.html +0 -31
  103. package/src/partials/html-lists-container.html +0 -63
  104. package/src/partials/info-container.html +0 -104
  105. package/src/partials/input-group-container.html +0 -299
  106. package/src/partials/item-lists-container.html +0 -368
  107. package/src/partials/kanban-container.html +0 -459
  108. package/src/partials/kbd-container.html +0 -63
  109. package/src/partials/leader-row-container.html +0 -139
  110. package/src/partials/login-container.html +0 -65
  111. package/src/partials/lunch-menu-container.html +0 -341
  112. package/src/partials/media-container.html +0 -27
  113. package/src/partials/meta-info-container.html +0 -21
  114. package/src/partials/modals-container.html +0 -199
  115. package/src/partials/mosaic-container.html +0 -173
  116. package/src/partials/page-header-container.html +0 -78
  117. package/src/partials/pagination-container.html +0 -64
  118. package/src/partials/palette-container.html +0 -480
  119. package/src/partials/panels-container.html +0 -126
  120. package/src/partials/parallax-container.html +0 -147
  121. package/src/partials/portrait-gallery-container.html +0 -175
  122. package/src/partials/preview-container.html +0 -136
  123. package/src/partials/pricing-container.html +0 -523
  124. package/src/partials/progress-container.html +0 -230
  125. package/src/partials/prose-container.html +0 -43
  126. package/src/partials/ratings-container.html +0 -104
  127. package/src/partials/section-head-container.html +0 -77
  128. package/src/partials/segmented-container.html +0 -66
  129. package/src/partials/skeleton-container.html +0 -87
  130. package/src/partials/spinners-container.html +0 -96
  131. package/src/partials/stepper-container.html +0 -111
  132. package/src/partials/stories-container.html +0 -182
  133. package/src/partials/tables-container.html +0 -309
  134. package/src/partials/tabs-container.html +0 -290
  135. package/src/partials/tags-container.html +0 -242
  136. package/src/partials/techstack-bucket-container.html +0 -187
  137. package/src/partials/testimonials-container.html +0 -88
  138. package/src/partials/tiles-container.html +0 -247
  139. package/src/partials/timelines-container.html +0 -196
  140. package/src/partials/typography-container.html +0 -74
  141. 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'));