ultimate-jekyll-manager 0.0.198 → 0.0.200

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 (29) hide show
  1. package/.claude/settings.local.json +3 -2
  2. package/README.md +0 -2
  3. package/TODO-ATTRIBUTION2.md +753 -0
  4. package/bin/ultimate-jekyll +1 -1
  5. package/dist/assets/js/core/auth.js +37 -32
  6. package/dist/assets/js/core/exit-popup.js +3 -0
  7. package/dist/assets/js/core/query-strings.js +16 -12
  8. package/dist/assets/js/libs/auth.js +12 -0
  9. package/dist/assets/js/libs/form-manager.js +1 -1
  10. package/dist/assets/js/pages/account/sections/api-keys.js +1 -4
  11. package/dist/assets/js/pages/account/sections/connections.js +11 -17
  12. package/dist/assets/js/pages/account/sections/delete.js +5 -15
  13. package/dist/assets/js/pages/account/sections/security.js +2 -6
  14. package/dist/assets/js/pages/admin/notifications/new/index.js +5 -16
  15. package/dist/assets/js/pages/download/index.js +3 -6
  16. package/dist/assets/js/pages/oauth2/index.js +5 -5
  17. package/dist/assets/js/pages/payment/checkout/modules/session.js +1 -1
  18. package/dist/assets/js/pages/token/index.js +1 -5
  19. package/dist/assets/themes/bootstrap/overrides/_avatars.scss +5 -1
  20. package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +68 -55
  21. package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
  22. package/dist/assets/themes/bootstrap/overrides/_index.scss +1 -0
  23. package/dist/assets/themes/classy/css/components/_buttons.scss +1 -2
  24. package/dist/build.js +1 -1
  25. package/dist/defaults/dist/pages/test/libraries/bootstrap.html +7 -0
  26. package/dist/defaults/src/_config.yml +10 -6
  27. package/dist/gulp/tasks/defaults.js +1 -1
  28. package/dist/gulp/tasks/sass.js +4 -0
  29. package/package.json +13 -13
@@ -3,93 +3,66 @@
3
3
  // =============================================================================
4
4
  // Buttons that automatically flip between light/dark styles based on theme.
5
5
  // These are universal utilities available to all UJ themes.
6
- // Note: Cannot use @extend with Bootstrap classes due to module scoping,
7
- // so we use CSS custom properties directly.
6
+ // Uses CSS custom properties from _color-shades.scss for hover/active states.
8
7
 
9
8
  // ============================================
10
- // Button Style Mixins (DRY)
9
+ // Solid Adaptive Buttons
11
10
  // ============================================
12
- @mixin btn-dark-styles {
11
+ // Dark button in light mode, light button in dark mode
12
+ .btn-adaptive {
13
13
  --bs-btn-color: #fff;
14
14
  --bs-btn-bg: var(--bs-dark);
15
15
  --bs-btn-border-color: var(--bs-dark);
16
16
  --bs-btn-hover-color: #fff;
17
- --bs-btn-hover-bg: #1c1c1c;
18
- --bs-btn-hover-border-color: #1a1a1a;
19
- --bs-btn-focus-shadow-rgb: 66, 70, 73;
17
+ --bs-btn-hover-bg: var(--bs-dark-hover);
18
+ --bs-btn-hover-border-color: var(--bs-dark-active);
20
19
  --bs-btn-active-color: #fff;
21
- --bs-btn-active-bg: #1a1a1a;
22
- --bs-btn-active-border-color: #181818;
23
- --bs-btn-disabled-color: #fff;
24
- --bs-btn-disabled-bg: var(--bs-dark);
25
- --bs-btn-disabled-border-color: var(--bs-dark);
20
+ --bs-btn-active-bg: var(--bs-dark-active);
21
+ --bs-btn-active-border-color: var(--bs-dark-active);
26
22
  }
27
23
 
28
- @mixin btn-light-styles {
24
+ [data-bs-theme="dark"] .btn-adaptive {
29
25
  --bs-btn-color: #000;
30
26
  --bs-btn-bg: var(--bs-light);
31
27
  --bs-btn-border-color: var(--bs-light);
32
28
  --bs-btn-hover-color: #000;
33
- --bs-btn-hover-bg: #e9ecef;
34
- --bs-btn-hover-border-color: #e2e6ea;
35
- --bs-btn-focus-shadow-rgb: 211, 212, 213;
29
+ --bs-btn-hover-bg: var(--bs-light-hover);
30
+ --bs-btn-hover-border-color: var(--bs-light-active);
36
31
  --bs-btn-active-color: #000;
37
- --bs-btn-active-bg: #e2e6ea;
38
- --bs-btn-active-border-color: #dae0e5;
39
- --bs-btn-disabled-color: #000;
40
- --bs-btn-disabled-bg: var(--bs-light);
41
- --bs-btn-disabled-border-color: var(--bs-light);
32
+ --bs-btn-active-bg: var(--bs-light-active);
33
+ --bs-btn-active-border-color: var(--bs-light-active);
42
34
  }
43
35
 
44
- @mixin btn-outline-dark-styles {
36
+ // ============================================
37
+ // Outline Adaptive Buttons
38
+ // ============================================
39
+ .btn-outline-adaptive {
45
40
  --bs-btn-color: var(--bs-dark);
41
+ --bs-btn-bg: transparent;
46
42
  --bs-btn-border-color: var(--bs-dark);
47
43
  --bs-btn-hover-color: #fff;
48
44
  --bs-btn-hover-bg: var(--bs-dark);
49
45
  --bs-btn-hover-border-color: var(--bs-dark);
50
- --bs-btn-focus-shadow-rgb: 33, 37, 41;
51
46
  --bs-btn-active-color: #fff;
52
47
  --bs-btn-active-bg: var(--bs-dark);
53
48
  --bs-btn-active-border-color: var(--bs-dark);
54
- --bs-btn-disabled-color: var(--bs-dark);
55
- --bs-btn-disabled-border-color: var(--bs-dark);
49
+
50
+ color: var(--bs-body-color);
51
+ border-color: var(--bs-dark);
56
52
  }
57
53
 
58
- @mixin btn-outline-light-styles {
54
+ [data-bs-theme="dark"] .btn-outline-adaptive {
59
55
  --bs-btn-color: var(--bs-light);
56
+ --bs-btn-bg: transparent;
60
57
  --bs-btn-border-color: var(--bs-light);
61
58
  --bs-btn-hover-color: #000;
62
59
  --bs-btn-hover-bg: var(--bs-light);
63
60
  --bs-btn-hover-border-color: var(--bs-light);
64
- --bs-btn-focus-shadow-rgb: 248, 249, 250;
65
61
  --bs-btn-active-color: #000;
66
62
  --bs-btn-active-bg: var(--bs-light);
67
63
  --bs-btn-active-border-color: var(--bs-light);
68
- --bs-btn-disabled-color: var(--bs-light);
69
- --bs-btn-disabled-border-color: var(--bs-light);
70
- }
71
64
 
72
- // ============================================
73
- // Solid Adaptive Buttons
74
- // ============================================
75
- // Dark button in light mode, light button in dark mode
76
- .btn-adaptive {
77
- @include btn-dark-styles;
78
- }
79
-
80
- [data-bs-theme="dark"] .btn-adaptive {
81
- @include btn-light-styles;
82
- }
83
-
84
- // ============================================
85
- // Outline Adaptive Buttons
86
- // ============================================
87
- .btn-outline-adaptive {
88
- @include btn-outline-dark-styles;
89
- }
90
-
91
- [data-bs-theme="dark"] .btn-outline-adaptive {
92
- @include btn-outline-light-styles;
65
+ border-color: var(--bs-light);
93
66
  }
94
67
 
95
68
  // ============================================
@@ -97,19 +70,59 @@
97
70
  // ============================================
98
71
  // The opposite of adaptive - light in light mode, dark in dark mode
99
72
  .btn-adaptive-inverse {
100
- @include btn-light-styles;
73
+ --bs-btn-color: #000;
74
+ --bs-btn-bg: var(--bs-light);
75
+ --bs-btn-border-color: var(--bs-light);
76
+ --bs-btn-hover-color: #000;
77
+ --bs-btn-hover-bg: var(--bs-light-hover);
78
+ --bs-btn-hover-border-color: var(--bs-light-active);
79
+ --bs-btn-active-color: #000;
80
+ --bs-btn-active-bg: var(--bs-light-active);
81
+ --bs-btn-active-border-color: var(--bs-light-active);
101
82
  }
102
83
 
103
84
  [data-bs-theme="dark"] .btn-adaptive-inverse {
104
- @include btn-dark-styles;
85
+ --bs-btn-color: #fff;
86
+ --bs-btn-bg: var(--bs-dark);
87
+ --bs-btn-border-color: var(--bs-dark);
88
+ --bs-btn-hover-color: #fff;
89
+ --bs-btn-hover-bg: var(--bs-dark-hover);
90
+ --bs-btn-hover-border-color: var(--bs-dark-active);
91
+ --bs-btn-active-color: #fff;
92
+ --bs-btn-active-bg: var(--bs-dark-active);
93
+ --bs-btn-active-border-color: var(--bs-dark-active);
105
94
  }
106
95
 
96
+ // ============================================
97
+ // Outline Inverse Adaptive Buttons
98
+ // ============================================
107
99
  .btn-outline-adaptive-inverse {
108
- @include btn-outline-light-styles;
100
+ --bs-btn-color: var(--bs-light);
101
+ --bs-btn-bg: transparent;
102
+ --bs-btn-border-color: var(--bs-light);
103
+ --bs-btn-hover-color: #000;
104
+ --bs-btn-hover-bg: var(--bs-light);
105
+ --bs-btn-hover-border-color: var(--bs-light);
106
+ --bs-btn-active-color: #000;
107
+ --bs-btn-active-bg: var(--bs-light);
108
+ --bs-btn-active-border-color: var(--bs-light);
109
+
110
+ color: var(--bs-body-color);
111
+ border-color: var(--bs-light);
109
112
  }
110
113
 
111
114
  [data-bs-theme="dark"] .btn-outline-adaptive-inverse {
112
- @include btn-outline-dark-styles;
115
+ --bs-btn-color: var(--bs-dark);
116
+ --bs-btn-bg: transparent;
117
+ --bs-btn-border-color: var(--bs-dark);
118
+ --bs-btn-hover-color: #fff;
119
+ --bs-btn-hover-bg: var(--bs-dark);
120
+ --bs-btn-hover-border-color: var(--bs-dark);
121
+ --bs-btn-active-color: #fff;
122
+ --bs-btn-active-bg: var(--bs-dark);
123
+ --bs-btn-active-border-color: var(--bs-dark);
124
+
125
+ border-color: var(--bs-dark);
113
126
  }
114
127
 
115
128
  // ============================================
@@ -0,0 +1,25 @@
1
+ // =============================================================================
2
+ // Color Shade CSS Custom Properties
3
+ // =============================================================================
4
+ // Provides hover/active shade variants for light and dark colors.
5
+ // These are used by adaptive buttons and can be reused elsewhere.
6
+
7
+ :root,
8
+ [data-bs-theme="light"] {
9
+ // Dark color shades (for hover/active states on dark buttons)
10
+ --bs-dark-hover: #3a3a44;
11
+ --bs-dark-active: #34343e;
12
+
13
+ // Light color shades (for hover/active states on light buttons)
14
+ --bs-light-hover: #d3d6db;
15
+ --bs-light-active: #c8ccd1;
16
+ }
17
+
18
+ [data-bs-theme="dark"] {
19
+ // In dark mode, the values are the same but semantic meaning is swapped
20
+ --bs-dark-hover: #3a3a44;
21
+ --bs-dark-active: #34343e;
22
+
23
+ --bs-light-hover: #d3d6db;
24
+ --bs-light-active: #c8ccd1;
25
+ }
@@ -8,6 +8,7 @@
8
8
  @use 'buttons-adaptive';
9
9
 
10
10
  // Colors
11
+ @use 'color-shades';
11
12
  @use 'soft-colors';
12
13
 
13
14
  // Components
@@ -110,11 +110,10 @@
110
110
  // Outline Button Overrides
111
111
  // ============================================
112
112
  [class*="btn-outline-"] {
113
- background: transparent !important;
114
113
  border-width: 2px !important;
115
114
  border-style: solid !important;
116
115
 
117
- &:not(:hover) {
116
+ &:not(:hover):not(:active):not(.active) {
118
117
  background: transparent !important;
119
118
  }
120
119
  }
package/dist/build.js CHANGED
@@ -3,7 +3,7 @@ const path = require('path');
3
3
  const jetpack = require('fs-jetpack');
4
4
  const fs = require('fs');
5
5
  const JSON5 = require('json5');
6
- const argv = require('yargs').argv;
6
+ const argv = require('yargs')(process.argv.slice(2)).parseSync();
7
7
  const { force, execute } = require('node-powertools');
8
8
  const yaml = require('js-yaml');
9
9
 
@@ -453,6 +453,13 @@ meta:
453
453
  <button type="button" class="btn btn-outline-light">Light</button>
454
454
  <button type="button" class="btn btn-outline-dark">Dark</button>
455
455
 
456
+ <h3 class="mt-4 mb-3">Adaptive Buttons (Theme-Aware)</h3>
457
+ <p class="text-muted">These buttons automatically adapt to light/dark mode. Use instead of btn-light/btn-dark.</p>
458
+ <button type="button" class="btn btn-adaptive">Adaptive</button>
459
+ <button type="button" class="btn btn-outline-adaptive">Outline Adaptive</button>
460
+ <button type="button" class="btn btn-adaptive-inverse">Adaptive Inverse</button>
461
+ <button type="button" class="btn btn-outline-adaptive-inverse">Outline Adaptive Inverse</button>
462
+
456
463
  <h3 class="mt-4 mb-3">Button Sizes</h3>
457
464
  <button type="button" class="btn btn-primary btn-lg">Large button</button>
458
465
  <button type="button" class="btn btn-primary">Default button</button>
@@ -157,12 +157,9 @@ tracking:
157
157
  meta-pixel: null
158
158
  tiktok-pixel: null
159
159
 
160
- # Favicon
161
- favicon:
162
- path: "https://cdn.itwcreativeworks.com/assets/itw-creative-works/images/favicon"
163
- safari-pinned-tab: "#5bbad5"
164
- msapp-tile-color: "#da532c"
165
- theme-color: "#ffffff"
160
+ # reCAPTCHA
161
+ recaptcha:
162
+ site-key: null
166
163
 
167
164
  # Cloudflare
168
165
  cloudflare:
@@ -191,6 +188,13 @@ extension:
191
188
  edge: ""
192
189
  brave: ""
193
190
 
191
+ # Favicon
192
+ favicon:
193
+ path: "https://cdn.itwcreativeworks.com/assets/itw-creative-works/images/favicon"
194
+ safari-pinned-tab: "#5bbad5"
195
+ msapp-tile-color: "#da532c"
196
+ theme-color: "#ffffff"
197
+
194
198
  # Manifest
195
199
  manifest:
196
200
  name: ""
@@ -8,7 +8,7 @@ const path = require('path');
8
8
  const { minimatch } = require('minimatch');
9
9
  const { template } = require('node-powertools');
10
10
  const createTemplateTransform = require('./utils/template-transform');
11
- const argv = require('yargs').argv;
11
+ const argv = require('yargs')(process.argv.slice(2)).parseSync();
12
12
  const JSON5 = require('json5');
13
13
 
14
14
  // Load package
@@ -218,6 +218,10 @@ function sass(complete) {
218
218
  /^active$/,
219
219
  /^disabled$/,
220
220
 
221
+ // Buttons
222
+ // /^btn-outline-adaptive$/,
223
+ // /^btn-adaptive$/,
224
+
221
225
  // Accordion specific
222
226
  /^accordion/,
223
227
  /^collapsed$/,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultimate-jekyll-manager",
3
- "version": "0.0.198",
3
+ "version": "0.0.200",
4
4
  "description": "Ultimate Jekyll dependency manager",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -60,9 +60,9 @@
60
60
  "lighthouse": "Removed from deps to avoid @sentry/core version conflicts with web-manager. Install globally: npm i -g lighthouse"
61
61
  },
62
62
  "dependencies": {
63
- "@babel/core": "^7.28.5",
64
- "@babel/preset-env": "^7.28.5",
65
- "@fullhuman/postcss-purgecss": "^7.0.2",
63
+ "@babel/core": "^7.28.6",
64
+ "@babel/preset-env": "^7.28.6",
65
+ "@fullhuman/postcss-purgecss": "^8.0.0",
66
66
  "@minify-html/node": "^0.18.1",
67
67
  "@octokit/rest": "^22.0.1",
68
68
  "@popperjs/core": "^2.11.8",
@@ -71,7 +71,7 @@
71
71
  "babel-loader": "^10.0.0",
72
72
  "browser-sync": "^3.0.4",
73
73
  "chalk": "^5.6.2",
74
- "cheerio": "^1.1.2",
74
+ "cheerio": "^1.2.0",
75
75
  "chrome-launcher": "^1.2.1",
76
76
  "dotenv": "^17.2.3",
77
77
  "fast-xml-parser": "^5.3.3",
@@ -84,25 +84,25 @@
84
84
  "gulp-responsive-modern": "^1.0.0",
85
85
  "gulp-sass": "^6.0.1",
86
86
  "html-minifier-terser": "^7.2.0",
87
- "html-validate": "^10.5.0",
87
+ "html-validate": "^10.7.0",
88
88
  "itwcw-package-analytics": "^1.0.6",
89
- "js-yaml": "^3.14.2",
89
+ "js-yaml": "^4.1.1",
90
90
  "json5": "^2.2.3",
91
- "libsodium-wrappers": "^0.7.15",
92
- "lodash": "^4.17.21",
91
+ "libsodium-wrappers": "^0.8.2",
92
+ "lodash": "^4.17.23",
93
93
  "minimatch": "^10.1.1",
94
94
  "node-powertools": "^2.3.2",
95
95
  "npm-api": "^1.0.1",
96
96
  "postcss": "^8.5.6",
97
- "prettier": "^3.7.4",
98
- "sass": "^1.97.1",
97
+ "prettier": "^3.8.1",
98
+ "sass": "^1.97.3",
99
99
  "spellchecker": "^3.7.1",
100
100
  "through2": "^4.0.2",
101
- "web-manager": "^4.1.3",
101
+ "web-manager": "^4.1.6",
102
102
  "webpack": "^5.104.1",
103
103
  "wonderful-fetch": "^1.3.4",
104
104
  "wonderful-version": "^1.3.2",
105
- "yargs": "^17.7.2"
105
+ "yargs": "^18.0.0"
106
106
  },
107
107
  "peerDependencies": {
108
108
  "gulp": "^5.0.1"