Compare commits

...

692 Commits

Author SHA1 Message Date
8bd7186f97 expose new image sizes to javascript and properly get specified image sizes in react 2026-01-05 17:23:59 +00:00
abde60aecc BackgroundImage component: support specific image sizes and lazy loading 2026-01-05 14:49:33 +00:00
b5a751e237 add lazy background image 2026-01-05 13:39:42 +00:00
4b6c093a1c add hero image size 2026-01-05 13:39:24 +00:00
e3bb5274ad add block READMEs 2026-01-04 18:03:17 +00:00
af0fb75d22 add placeholder markup to example block editor file 2026-01-04 18:02:58 +00:00
fd44d8d091 add placeholder js to example block 2026-01-04 18:02:36 +00:00
3325eab953 remove unused styles and scripts from article block 2026-01-04 18:01:53 +00:00
e5de979f94 remove unused js function 2026-01-04 18:01:18 +00:00
71646f253f acf footer block can have buttons or blurb 2026-01-04 18:00:37 +00:00
b37583f3b2 add some placeholder markup to dynamic example block 2026-01-04 18:00:05 +00:00
e876dd1ca8 article block : add wysiwyg class to container 2026-01-04 17:59:40 +00:00
b58c88a425 background tint no longer requires background image 2026-01-04 17:59:01 +00:00
4241670ace allow extra classes in className js function 2026-01-04 17:57:51 +00:00
7342503e4a use json lists in editor.js 2026-01-04 17:57:20 +00:00
7d1cfa3323 adjust framework css 2026-01-04 17:56:40 +00:00
a4cc7a8e6f acf blocks: adjust padding and contrast controls 2026-01-04 17:55:34 +00:00
9b87639974 most block lists to json files 2026-01-04 17:54:46 +00:00
eb4980d64b adjust colour php functions 2026-01-04 17:53:45 +00:00
799115fd37 article block front end rendering 2026-01-03 13:33:13 +00:00
b362bc290e package-lock.json 2026-01-03 10:32:26 +00:00
8d8ccedbf2 basic article block backend working 2026-01-03 10:31:24 +00:00
0576d05dfb block background image settings 2026-01-02 20:21:33 +00:00
39458e4f11 cleanup unused theme hook 2026-01-02 18:54:16 +00:00
70e995cbd5 block background colours and tint 2026-01-02 01:15:56 +00:00
b0d6d90616 add css class name helper functions for blocks 2025-12-19 12:29:38 +00:00
d005f549bf move restAPI class to utilities 2025-12-19 12:28:59 +00:00
3c16535444 fix editor styles after wp update 2025-12-19 12:28:25 +00:00
9a8df23529 remove console.log from block js 2025-12-18 11:01:52 +00:00
1d3a8477ee remove unused css 2025-12-18 11:00:43 +00:00
fc49265cb9 setup endpoints class and add container widths for blocks 2025-12-18 10:59:25 +00:00
8ffec45182 integrating attributes 2025-12-18 10:57:50 +00:00
002f33c5e1 remove autoload_psr4 for old block approach 2025-12-18 10:54:43 +00:00
fd4ee11d26 tweak editor styles 2025-12-15 18:34:09 +00:00
ae6eec5848 remove old style acf block 2025-12-15 18:24:46 +00:00
f0d8cb2065 use standard block.json method with ACF blocks 2025-12-15 18:10:06 +00:00
d47b3fdb07 auto-registering blocks in php and javascript with dynamic enqueuing of associated styles and scripts with support for scss and blade 2025-12-13 14:22:42 +00:00
da8097e7c3 cleanup allowed_blocks logic and add mechanism for disabling blade template for specific block 2025-12-12 13:12:37 +00:00
917150bbe6 a working react/php dynamic wordpress block example integrated with the Vite build process 2025-12-10 19:44:32 +00:00
b16bd77355 restrict core blocks to inner blocks of specified parent blocks. blocks blocks blocks 2025-12-09 22:40:44 +00:00
7d1beee2da stop loading blocks in main app.js 2025-12-09 22:11:20 +00:00
292fc01370 block whitelist json 2025-12-09 22:10:55 +00:00
68a42deebb remove BadExample css 2025-12-09 22:10:35 +00:00
f6ba2ea71b remove old code 2025-12-09 22:09:49 +00:00
ab4aad0fc6 move Blocks.php stuff alongside top level includes 2025-12-09 22:07:50 +00:00
5558a60696 use json file for block whitelist 2025-12-09 22:06:47 +00:00
2ee1171474 basic block styles within editor 2025-12-09 22:04:29 +00:00
046da1742e remove blocks.js 2025-12-09 22:02:59 +00:00
65bc75b56e tweak acf block settings 2025-12-09 22:02:24 +00:00
8ac6583758 add $wpblue var 2025-12-09 22:01:52 +00:00
b03bdc2139 fix container width in blocks 2025-12-09 22:01:23 +00:00
0055a25420 new text editor block that contains core blocks as inner blocks and prevents them from being used at top level 2025-11-27 07:14:31 +00:00
00d0861014 default content block that uses core inner blocks 2025-11-23 17:34:49 +00:00
de94d0e68e update vite base path 2025-11-22 20:51:28 +00:00
b31aa7550b Merge pull request 'Upgrade to version 11.0.1' (#1) from v11.0.1 into main 2025-10-30 22:14:45 +00:00
b258482ca3 replace deprecated scss 2025-10-30 22:01:23 +00:00
010160ce46 pull in v11.0.1 from upstream 2025-10-30 21:40:17 +00:00
Brandon
ddf23d2c29 🔖 v11.0.1 2025-03-26 21:39:02 -05:00
Brandon
5ffb5636b2 🎨 Simplify the default Composers (#3250) 2025-03-26 21:24:04 -05:00
Brandon
3d87ce1f6a 🔥 Remove unnecessary HMR client setup (#3241) 2025-03-26 21:21:13 -05:00
Brandon
cf25bcd20f 🔥 Remove package-lock.json (#3251)
* 👷 Update workflow to not depend on package lock file
2025-03-26 21:08:22 -05:00
Johan van der Molen
20d1d07c21 🧑‍💻 Always import editor.css in block editor settings (#3248) 2025-03-26 20:57:56 -05:00
Brandon
afbebbe816 🔧 Set a default layout content size (#3240) 2025-03-07 14:34:28 -06:00
Andréas Lundgren
9864d7cf36 🎨 Remove unused use statement in setup.php (#3238) 2025-03-04 05:35:32 -06:00
Ben Word
da70c86f5e 🔧 11.x-dev 2025-03-03 08:48:15 -05:00
Ben Word
9ecea45705 🔖 v11.0.0 2025-03-03 08:46:56 -05:00
Ben Word
86864166f9 🔧 Acorn v5 (#3235) 2025-03-03 08:45:46 -05:00
renovate[bot]
c8a7dcdf05 ⬆️ Bump @roots/vite-plugin to ^1.0.2 (#3236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 08:45:30 -05:00
Joshua Fredrickson
b134d39172 Avoid missing folder error when running dev (#3224) 2025-02-27 13:48:43 -05:00
Ben Word
194ab5af52 🔧 WordPress 6.6+ required 2025-02-26 13:17:15 -05:00
Ben Word
3012d2875c 🩹 static 2025-02-26 10:51:55 -05:00
Ben Word
be72015657 ⬆️ Bump deps 2025-02-26 10:49:06 -05:00
Ben Word
5948da928d 👷 Update labeler 2025-02-23 11:17:23 -05:00
Ben Word
2f2d67fb7f Use @roots/vite-plugin (#3231)
Co-authored-by: Brandon <brandon@tendency.me>
2025-02-22 15:13:42 -05:00
Ben Word
8cc24bab95 📝 Update README [ci skip] 2025-02-22 13:57:28 -05:00
Ben Word
24bb08f02e 📝 Update README [ci skip] 2025-02-20 14:23:03 -05:00
Ben Word
9ec39fb246 ⬆️ Bump Pint 2025-02-12 09:20:23 -05:00
Ben Word
677d658ecb ⬆️ Upgrade npm deps 2025-02-12 09:18:51 -05:00
Ben Word
77eda834d4 👷 Renovate: Move rangeStrategy to root config 2025-02-12 09:10:40 -05:00
Ben Word
57cf6ab817 👷 Renovate: Enable version bumps in package.json 2025-02-12 09:08:21 -05:00
renovate[bot]
f6385cd4a3 Migrate config .github/renovate.json (#3227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-12 09:01:27 -05:00
Ben Word
1e9790c37d 🔥 Remove assets config 2025-02-12 08:58:49 -05:00
Ben Word
0656c7ba68 brb
This reverts commit 8d81e1ba3e.
2025-02-06 11:56:39 -05:00
Ben Word
8d81e1ba3e 🔥 Remove assets config 2025-02-06 11:53:28 -05:00
Ben Word
a3b9e82240 🔧 Add Acorn's postAutoloadDump script 2025-02-06 11:40:49 -05:00
Ben Word
464e977d5a ♻️ Improve theme.json generation with more robust CSS parsing (#3223) 2025-02-06 08:52:03 -05:00
Matthias
47a48480bd fix tailwind css regex mismatch (#3221) 2025-02-05 17:58:57 -05:00
Pavol Caban
6012bf1886 Fix Vite dependency extract (#3219)
* Fix Vite dependency extract regex

* Fix Vite Typescript compatibility
2025-02-05 17:50:31 -05:00
Steve Jones
04b2404e47 🩹 Compact fix for color generation in theme.json (#3222)
* Fix for incorrect theme.json generation of colours

* Fix for theme.json color generation

* Compact fix for colour theme.json generation

---------

Co-authored-by: Steve Jones <steve@codewithfeeling.com>
2025-02-05 17:47:11 -05:00
Marcin Lis
8c91368c4f Fix default aliases paths for assets (#3218)
Setting absolute paths in aliases to prevent warnings in Vite.js and fix the background-image reference to an image using eg. @images/bg.svg
2025-02-03 06:21:37 -05:00
Ben Word
a9fa2433a5 🔧 Update Renovate config 2025-02-02 08:07:20 -05:00
Ben Word
7d3bbd2122 ⬆️ Bump dev dependencies 2025-02-02 08:03:30 -05:00
renovate[bot]
487716a1ac ⬆️ Bump tailwindcss monorepo to v4.0.3 (#3217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 07:55:31 -05:00
Ben Word
723506daba Tailwind v4 (#3208)
Co-authored-by: Brandon <brandon@tendency.me>
Co-authored-by: csorrentino <cjsorren@gmail.com>
Co-authored-by: stuart <stuartjwong@gmail.com>
2025-02-02 07:53:33 -05:00
csorrentino
8d5a1ac4f4 Add default aliases for assets (#3215)
* add default aliases for assets

Adds the same default aliases as the @roots/sage bud extension

* Remove beginning slash

---------

Co-authored-by: Ben Word <ben@benword.com>
2025-02-02 07:52:49 -05:00
csorrentino
3f808812dd Support external WP dependencies in JSX files (#3209) 2025-01-20 18:02:59 -05:00
Ben Word
37e3773d88 🩹 Dev server: fix WP dependency handling (#3207)
* Revert "🎨 Simplify WordPress dependency handling" (#3202)
* 🩹 Fix dev server error
2025-01-20 15:57:09 -05:00
Ben Word
2ff215a3df 🔧 Set public base path 2025-01-15 18:45:57 -05:00
Ben Word
0755a90847 🔧 Set public base path (#3205) 2025-01-15 18:37:47 -05:00
tombroucke
e5f46df7bc 🔧 Import static assets (#3204)
Similar to `.assets(["images"])` in bud, we can add static assets in vite.
2025-01-15 18:10:41 -05:00
Ben Word
41e232bcdd 🎨 Simplify WordPress dependency handling (#3202) 2025-01-14 08:10:27 -05:00
Ben Word
713594d768 🔧 PHP 8.2 is required 2025-01-04 10:14:33 -05:00
Ben Word
0957f59fcd ⬆️ Update build deps 2025-01-04 10:03:25 -05:00
Ben Word
9362ba6c26 🙈 Update .gitignore 2025-01-04 09:52:29 -05:00
Ben Word
fbb87394f3 🔧 Don't declare providers in composer.json 2025-01-04 09:14:11 -05:00
Ben Word
89e5ebcd55 🔧 Minimal bootloader 2025-01-04 09:09:31 -05:00
Ben Word
e7a87f09c5 📝 Update README [ci skip] 2025-01-04 09:06:41 -05:00
Ben Word
25ef858d58 🔧 Bootloader: Remove unnecessary wrapping action from inside theme 2025-01-04 09:03:59 -05:00
Ben Word
256128b0cc 🔧⬆️ Acorn v5 (#3201) 2025-01-04 08:57:07 -05:00
Ben Word
a969be597c 🔧 11.x-dev 2025-01-04 08:46:07 -05:00
Ben Word
a482791397 🔧 Use Vite for build (#3199)
Co-authored-by: Brandon Nifong <brandon@tendency.me>
2025-01-04 08:45:24 -05:00
Ben Word
bc60adb1b5 📝 Update README [ci skip] 2024-12-22 13:34:01 -05:00
Ben Word
b26907ad79 📝 Update README [ci skip] 2024-12-22 13:31:34 -05:00
Steve Ross
586da211df updates from most recent website build 2024-12-20 17:09:16 +00:00
Ben Word
b81a59e682 📝 Update README [ci skip] 2024-11-13 04:53:25 -05:00
Ben Word
33d0146a4c 📄 Update name 2024-11-13 04:52:57 -05:00
Steve Ross
c437137134 disable comments 2024-11-06 22:56:03 +00:00
Steve Ross
93d9838cbd acf-json 2024-11-06 22:55:01 +00:00
Steve Ross
feebb7c94a custom post type and ACF json syncing 2024-11-06 22:42:07 +00:00
Steve Ross
d0733bfc01 set theme name and details 2024-11-06 21:00:00 +00:00
Steve Ross
6cd48fdd31 add base framework styles 2024-11-05 17:19:47 +00:00
Steve Ross
2204d6691c remove tailwind-css 2024-11-05 15:10:13 +00:00
Steve Ross
3bfd6c6c9d badegg screenshot.png 2024-11-05 14:58:55 +00:00
Steve Ross
c85142272e build theme assets 2024-11-05 14:58:44 +00:00
Steve Ross
d203a49bab composer install 2024-11-05 14:14:26 +00:00
renovate[bot]
c6a21c4611 chore(deps): ⬆️ bump bud to v6.23.3 (#3193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 10:10:29 -05:00
renovate[bot]
a31f120492 chore(deps): ⬆️ bump bud to v6.23.2 (#3187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 11:39:07 -05:00
Ben Word
f1b9646655 📝 Update README [ci skip] 2024-06-02 15:26:58 -05:00
Marcelo
d58fcc7976 🩹 Add missing text domain to skip link (#3190) 2024-05-29 13:59:43 -05:00
Ben Word
56a121182d 📝 Update README [ci skip] 2024-04-04 09:17:11 -05:00
Ben Word
5693139abc 🔧 10.x-dev 2024-02-06 08:50:26 -06:00
Ben Word
081782f05e 🔖 v10.8.2 2024-02-06 08:48:58 -06:00
Brandon
308cc20859 🩹 Fix the comment list output (#3184) 2024-02-02 09:36:33 -06:00
Darshan Gada
a86946e39f 👷 Fix deprecation errors in CI Action (#3183) 2024-02-02 09:35:54 -06:00
Ben Word
3932435866 🔧 10.x-dev 2024-02-01 16:58:33 -06:00
Ben Word
947831ac1c 🔖 v10.8.1 2024-02-01 16:57:46 -06:00
Brandon
4ff19c77ca 🩹 Fix exception being thrown when listing comments (#3182) 2024-02-01 16:56:58 -06:00
Daniel Sturm
0fe7047fa3 🔧 Bump minimum PHP version to 8.1 in style.css (#3181) 2024-02-01 09:25:39 -06:00
Ben Word
f0c5224112 🔧 10.x-dev 2024-01-30 15:29:01 -06:00
Ben Word
c6ff21662b 🔖 v10.8.0 2024-01-30 15:28:18 -06:00
Ben Word
68898723a1 🔧 Build 2024-01-30 15:20:18 -06:00
Ben Word
2e17f81c5d 🔧 Remove sage-svg suggestion
https://roots.io/sage/docs/use-blade-icons/
2024-01-26 09:59:32 -06:00
Ben Word
0365fb2515 ️ Add accessible names to nav elements (#3179)
* ️ Add accessible names to nav elements

---------

Co-authored-by: Nathan Knowler <nathan@knowler.me>
2024-01-18 13:18:02 -06:00
renovate[bot]
c841a02361 chore(deps): ⬆️ bump actions/cache action to v4 (#3180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 13:09:32 -06:00
Ben Word
8bbc14e781 🩹 Comments title: Fix make-pot warning (#3178) 2024-01-18 12:56:13 -06:00
Sandro Würmli
e5b06d37d9 Fix for multiple .po files (#3155)
Co-authored-by: Ben Word <ben@benword.com>
2024-01-18 12:48:38 -06:00
Brandon
c72f14c68d 🎨 Move comment logic into a dedicated Composer (#3162)
* 🎨 Move comment logic into a dedicated Composer

* 🎨 Swap the method order
2024-01-18 12:37:47 -06:00
Ben Word
ad93e8b8c7 👷 Fix labeler action (#3177) 2024-01-18 12:36:07 -06:00
Brandon
e27af6282b 👷 Replace phpcs with Pint (#3161)
 Add `laravel/pint` to the project
 Remove `squizlabs/php_codesniffer` from the project
🔧 Remove deprecated Composer scripts
👷 Replace phpcs with Pint
🎨 Run Pint

---------

Co-authored-by: Ben Word <ben@benword.com>
2024-01-18 12:01:21 -06:00
renovate[bot]
a3807c7e94 chore(deps): ⬆️ bump actions/labeler action to v5 (#3164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 11:53:44 -06:00
renovate[bot]
4301b2827a chore(deps): ⬆️ bump squizlabs/php_codesniffer to v3.8.1 (#3163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 11:53:31 -06:00
strarsis
f44d6b8c72 Use npm for translate scripts execution (#3174) 2024-01-18 11:50:47 -06:00
Ben Word
bf4c7759ba 🔧 Bump minimum PHP version to 8.1 (#3176) 2024-01-18 11:45:42 -06:00
Ben Word
eccb8ba90e 🔧 Bump minimum Node.js version to v20 (#3175) 2024-01-18 11:42:55 -06:00
renovate[bot]
cca3ffaed1 chore(deps): ⬆️ bump bud to v6.20.0 (#3137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 11:36:49 -06:00
Ben Word
6bb5325f66 🔥 Remove Soil features (#3172) 2024-01-16 09:17:15 -06:00
Brandon
f57d9aab30 🎨 Make the Alert component anonymous (#3173) 2024-01-05 11:10:05 -06:00
Brandon
6f46605b83 🎨 Move default theme markup to the app layout (#3167) 2024-01-05 11:08:58 -06:00
Brandon
5b07f46c2c 🎨 Make the Alert component anonymous 2024-01-04 12:05:48 -06:00
Brandon
94a1787838 🩹 Move get_header hook above wp_head() (Fixes #3171) 2024-01-04 00:30:48 -06:00
Ben Word
5cd2c43847 Editor: Add background image support (#3169) 2023-12-19 10:31:29 -06:00
Brandon
66a39822ee 🚨 Run phpcbf 2023-12-18 23:37:35 -06:00
Brandon
3c07fae355 👷 Stop the madness (#3168) 2023-12-18 23:25:08 -06:00
Log1x
aa2d27699b 🎨 Run Pint 2023-12-19 02:21:37 +00:00
Brandon
b94e545e82 🔧 Remove index.php from the Tailwind config 2023-12-18 20:20:26 -06:00
Brandon
dd114a4798 🎨 Move default theme markup to the app layout
🐛 Fix uncontrollable HTML output (Fixes #3166)
2023-12-18 20:15:03 -06:00
Ben Word
588297f063 📝 Update README [ci skip] 2023-12-11 10:48:10 -06:00
Jacek Gajewski
8109f7d039 ♻️ Check wp_link_pages before rendering in content-single.blade.php (#3157)
Co-authored-by: Brandon <brandon@tendency.me>
2023-12-08 10:44:28 -06:00
renovate[bot]
f53aee2c1f chore(deps): ⬆️ bump actions/setup-node action to v4 (#3156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 10:26:38 -06:00
renovate[bot]
4495474c9f chore(deps): ⬆️ bump stefanzweifel/git-auto-commit-action action to v5 (#3153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 10:26:16 -06:00
strarsis
2208c11c62 🌐 Include theme.json; patterns/ in translation scan command (#3076) 2023-12-08 10:25:42 -06:00
Adrian Enriquez
00691cbeac 💡 Update links in bud.config.js (#3154) 2023-12-08 10:16:46 -06:00
Ben Word
285a273030 📝 Update README [ci skip] 2023-12-07 10:53:44 -06:00
Ben Word
be5281cdd1 📝 Update README [ci skip] 2023-10-10 19:25:36 -05:00
Ben Word
be730d90df 📝 Update README [ci skip] 2023-09-27 10:10:04 -05:00
Ben Word
806993d4f9 🔧 10.x-dev 2023-09-27 09:27:31 -05:00
Ben Word
14f2f9ade4 🔖 v10.7.0 2023-09-27 09:26:40 -05:00
Tom Lawton
c6e9191686 fix: update default app.css tailwind syntax to use @tailwind (#3149) (#3150) 2023-09-27 09:22:49 -05:00
renovate[bot]
3c366a8f3d chore(deps): ⬆️ bump actions/checkout action to v4 (#3147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 09:14:35 -05:00
renovate[bot]
b123a6bf58 chore(deps): ⬆️ bump actions/setup-node action to v3 (#3084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 09:13:43 -05:00
renovate[bot]
b022da215c chore(deps): ⬆️ bump squizlabs/php_codesniffer to v3.7.2 (#3127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 09:13:26 -05:00
Kelly Mears
1bbd32b6ad 📦 deps: upgrade @roots/bud to 6.16.1 (#3146) 2023-09-27 09:12:32 -05:00
Ben Word
c0d3dd87f7 🔧 10.x-dev 2023-05-09 09:30:16 -05:00
Ben Word
3159cadabb 🔖 v10.6.0 2023-05-09 09:22:08 -05:00
Kelly Mears
27a63ecacd 🩹 fix: core/button block style (#3130) 2023-05-09 09:20:41 -05:00
renovate[bot]
505c310d1f chore(deps): ⬆️ bump bud to v6.12.2 (#3135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-02 21:26:02 -05:00
renovate[bot]
a2c29f4949 chore(deps): ⬆️ bump bud to v6.12.1 (#3134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 10:05:44 -05:00
Kelly Mears
cc94b1bc47 bump: bud@6.12.0 & improvements (#3128)
This PR contains various improvements and cleanups to the configuration and JavaScript code. Key changes include:

- Adding simple comments to `jsconfig.json`.
- Improving config: `bud.wpjson.set` replaces `bud.wpjson.settings`. Note that `bud.wpjson.settings` is not deprecated.
- `bud.wpjson.settings` now disables `dropCap` by default.
- `app.js` and `editor.js` now use `if (import.meta.webpackHot)` instead of optional chaining, since `import.meta.webpackHot` is not a real method and using optional chaining might cause errors.
2023-04-05 13:42:27 -04:00
Ben Word
102778abcf 📝 Update README [ci skip] 2023-03-25 11:33:33 -05:00
renovate[bot]
fe34ad86d0 chore(deps): ⬆️ bump bud to v6.11.0 (#3126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-09 17:39:45 -06:00
Ben Word
46e0a8407a 📝 Update README [ci skip] 2023-03-07 18:36:57 -06:00
Ben Word
41c7f2c508 📝 Update README 2023-02-28 00:03:07 -06:00
strarsis
d6e6e21339 🔧 Use wp i18n update-po for updating PO files (#3081) 2023-02-22 17:41:27 -06:00
renovate[bot]
d1e1c8ea90 chore(deps): ⬆️ bump bud to v6.9.0 (#3123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 18:51:09 -06:00
Joshua Fredrickson
d22e3935cb 🔧 Bump required PHP version in style.css (#3125) 2023-02-06 12:00:30 -06:00
Daniel Sturm
e99867daca 📝 Update README, update requirement for Acorn v3 (#3124) 2023-02-06 11:59:56 -06:00
Ben Word
eb41bd8c63 🔧 10.x-dev 2023-02-05 12:24:13 -06:00
Ben Word
40dedd67a5 🔖 v10.5.1 2023-02-05 12:22:40 -06:00
renovate[bot]
7129b9b4df ⬆️ Bump Bud to v6.8.0 (#3120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ben Word <ben@benword.com>
2023-02-04 17:28:30 -06:00
Brandon
07f28076ca 🧑‍💻 Check that the Acorn bootloader exists before booting (#3121) 2023-02-03 16:52:36 -06:00
Ben Word
51d60f9c43 🔧 10.x-dev 2023-01-27 16:47:14 -06:00
Ben Word
d5f5fbef27 🔖 v10.5.0 2023-01-27 16:45:38 -06:00
Ben Word
03386f06ab 🔧 Acorn v3 (Laravel 9.x), drop PHP 7.4 support (#3097)
Co-authored-by: retlehs <retlehs@users.noreply.github.com>
Co-authored-by: Brandon Nifong <brandon@tendency.me>
2023-01-27 16:43:23 -06:00
Ben Word
523c99c4ec 🔧 10.x-dev 2023-01-26 16:32:32 -06:00
Ben Word
3b4b261e3e 🔖 v10.4.1 2023-01-26 16:31:00 -06:00
renovate[bot]
e0f9f7cd1c chore(deps): ⬆️ bump bud to v6.7.3 (#3117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-26 12:51:45 -06:00
renovate[bot]
6f2b46dbae chore(deps): ⬆️ bump bud to v6.7.2 (#3116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-25 12:41:52 -06:00
renovate[bot]
9aa9c00f0b chore(deps): ⬆️ bump bud to v6.7.1 (#3106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-24 10:37:56 -06:00
Ben Word
353a60711d 🔍️ Posts: Use latest h-entry microformat (#3115) 2023-01-23 20:46:47 -06:00
Ben Word
d644887612 📝 Update README 2023-01-23 11:05:06 -06:00
Ben Word
7eb78a0789 📝 Update README 2023-01-10 14:43:41 -06:00
Ben Word
cd5285864d 🔧 10.x-dev 2023-01-04 09:26:31 -06:00
Ben Word
4c9308983f 🔖 v10.4.0 2023-01-04 09:24:27 -06:00
Ben Word
8e310aeed6 🩹 Fix badge 2023-01-03 14:26:47 -06:00
Kelly Mears
b63f8773a6 Merge pull request #3111 from roots/km-6.6.6
📦 bump: 6.6.6
2023-01-03 12:17:57 -08:00
Kelly Mears
d23fcfb5a4 6.6.9 2023-01-03 10:04:20 -08:00
Kelly Mears
fce1ab7da6 📦 update: 6.6.8 2022-12-31 11:20:49 -08:00
Kelly Mears
0f0fd6995a 📦 yarn.lock 2022-12-23 10:54:24 -08:00
Kelly Mears
fe2885dd9e improve: js boilerplate 2022-12-23 10:53:52 -08:00
Kelly Mears
f4474ecb00 bud.config.mjs -> bud.config.js 2022-12-23 10:53:11 -08:00
Kelly Mears
8865b86bef sage as esm; bump to 6.6.6 2022-12-23 10:50:38 -08:00
Kelly Mears
8a62486cdf improve: jsconfig.json 2022-12-23 10:49:26 -08:00
Kelly Mears
009298f1c0 improve: .editorconfig quote_type 2022-12-23 10:48:53 -08:00
Joshua Fredrickson
c7d5324d89 💡 Update WordPress documentation links (#3107) 2022-12-01 16:09:54 -06:00
renovate[bot]
2aef9a2b40 chore(deps): ⬆️ bump bud to v6.6.2 (#3103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-20 13:10:08 -06:00
renovate[bot]
fd72d7a21e chore(deps): ⬆️ bump bud to v6.6.1 (#3102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-17 09:41:24 -06:00
renovate[bot]
3d767ac76b chore(deps): ⬆️ bump bud to v6.6.0 (#3096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-16 10:17:35 -06:00
Joshua Fredrickson
026e1e58c4 🔥 Remove default duotone filters from theme.json (#3101) 2022-11-04 09:27:30 -05:00
Ben Word
20f92ebe64 🔧 10.x-dev 2022-10-04 09:26:52 -05:00
Ben Word
6235f2fc53 🔖 v10.3.1 2022-10-04 09:24:58 -05:00
renovate[bot]
b0adc8b781 chore(deps): ⬆️ bump bud to v6.4.5 (#3094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-04 09:23:15 -05:00
Ben Word
05be790280 👷 CI: Run Pint (#3088) 2022-10-04 09:22:41 -05:00
Ben Word
634e1f3182 🔧 Update Renovate config 2022-10-04 09:15:24 -05:00
Ben Word
c326d50595 🔧 10.x-dev 2022-09-28 11:54:43 -06:00
Ben Word
3d7dc7a128 🔖 v10.3.0 2022-09-28 11:50:04 -06:00
renovate[bot]
2e05b35205 ⬆️ Bump Bud to v6.4.4 (#3091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-28 11:49:31 -06:00
Kelly Mears
1b79a949c4 Merge pull request #2999 from roots/feat-bud-config 2022-09-25 10:08:02 -07:00
Ben Word
b063fa030d 🔧 Generated theme.json 2022-09-24 10:28:56 -05:00
Ben Word
74bad62814 🔧 Remove test color 2022-09-24 10:28:56 -05:00
Ben Word
8e37498eaa 🔧 theme.json generator - move Tailwind to end 2022-09-24 10:28:56 -05:00
Ben Word
a2bd26a4af 🚧 theme.json generator updates 2022-09-24 10:28:56 -05:00
Ben Word
fb8de9a301 🔧 account for #3002 2022-09-24 10:28:56 -05:00
Kelly Mears
972f4cd55c improve: set theme.json colors in tailwind conf 2022-09-24 10:28:56 -05:00
renovate[bot]
7332184315 ⬆️ Bump Bud to v6.4.3 (#3090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-24 10:28:41 -05:00
renovate[bot]
5544c50bc6 ⬆️ Bump Bud to v6.4.2 (#3089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-23 15:10:30 -05:00
renovate[bot]
dec43c4d37 ⬆️ Bump Bud to v6.4.1 (#3087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-20 18:13:35 -05:00
luotao
7bafa7c89a Fix broken doc URL (#3086) 2022-09-19 08:05:37 -05:00
Ben Word
7f45932ce1 📝 update README 2022-08-11 10:11:09 -05:00
renovate[bot]
15e81e5a7a Bump Bud to v6.3.5 (#3083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-28 17:08:46 -05:00
renovate[bot]
034d18ed6a Bump Bud to v6.3.4 (#3082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-27 09:37:21 -05:00
Ben Word
3540877dd0 🔧 10.x-dev 2022-07-19 17:14:31 -05:00
Ben Word
46babd52df 🔖 v10.2.0 2022-07-19 17:10:59 -05:00
renovate[bot]
76efb28b63 Bump Bud to v6.3.3 (#3080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 17:04:40 -05:00
renovate[bot]
bc73bebdf7 Pin 📦 update squizlabs/php_codesniffer to 3.7.1 (#3065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-12 11:54:49 -05:00
renovate[bot]
fd674fa18b Bump actions/labeler action to v4 (#3073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-12 11:52:05 -05:00
renovate[bot]
9838a8e4c1 Bump actions/checkout action to v3 (#3072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-12 11:51:37 -05:00
renovate[bot]
cce6f19292 Bump actions/cache action to v3 (#3066)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-07-12 11:51:26 -05:00
renovate[bot]
108a7fd671 Bump Bud to v6.3.1 (#3079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ben Word <ben@benword.com>
2022-07-12 11:50:54 -05:00
Brandon
d488b670c0 chore(lint): run pint (#3075) 2022-07-12 11:29:07 -05:00
Kelly Mears
8192a15e50 📦 improve(patch): bud@6.2.0 (#3074) 2022-07-12 11:27:24 -05:00
Ben Word
16d99623a9 🔧 bud config: set the public path by default (#3064) 2022-06-20 14:31:26 -05:00
Ben Word
8b0df45311 💬 update README 2022-05-31 13:55:02 -05:00
Ben Word
830ceaf3f2 🔧 10.x-dev 2022-05-30 19:14:31 -05:00
Ben Word
b04dc3fae6 🔖 v10.1.7 2022-05-30 19:12:16 -05:00
renovate[bot]
b73f3a8fdd ⬆️ Bump bud to v5.8.7 (#3063)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-24 10:56:33 -05:00
Kelly Mears
d6f53f5e3c 👷 dependabot --> renovate (#3060) 2022-05-24 10:46:58 -05:00
strarsis
03921768f3 🐛 Fix i18n warnings (#3039) 2022-05-11 14:30:48 -05:00
Joshua Fredrickson
112bec8628 🎨 Add trailing commas (#3032) 2022-04-27 13:27:04 -05:00
strarsis
828e5709e9 🔧 Improve translation scripts (#3013) 2022-04-06 23:24:04 -05:00
Ben Word
0ccb907838 ⬆️ bud 5.7.7 (#3029) 2022-04-05 18:00:37 -05:00
Gabriel Giordano
90a1680639 🔧 Add index.php to tailwindcss purge list (#3025) 2022-04-02 08:22:14 -05:00
Ben Word
bd97fb26a8 🔧 10.x-dev 2022-03-30 19:45:21 -05:00
Ben Word
a2e21df741 🔖 v10.1.6 2022-03-30 19:44:34 -05:00
Ben Word
82ad056fae ⬆️ bud 5.7.6 (#3024) 2022-03-30 19:44:13 -05:00
Ben Word
7abdb7490c 🔧 10.x-dev 2022-03-29 08:59:47 -05:00
Ben Word
a6f1c8c49f 🔖 v10.1.5 2022-03-29 08:58:38 -05:00
Ben Word
9eb1b7af41 ⬆️ bud 5.7.4 (#3023) 2022-03-29 08:57:02 -05:00
Ben Word
ef6913f286 ⬆️ bud 5.7.3 2022-03-28 08:26:52 -05:00
Ben Word
614d47f0d9 🔧 10.x-dev 2022-03-27 09:49:38 -05:00
Ben Word
9df7a7ccb4 ⬆️ bud 5.7.2 2022-03-27 09:48:16 -05:00
Ben Word
9e6d73fdca 🔧 10.x-dev 2022-03-25 08:44:06 -05:00
Ben Word
6b5789c05c 🔖 v10.1.3 2022-03-25 08:41:13 -05:00
dependabot[bot]
019506d69a chore(deps-dev): bump @roots/bud-tailwindcss from 5.6.2 to 5.7.0 (#3016)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 08:39:50 -05:00
dependabot[bot]
2dc6fe908b chore(deps-dev): bump @roots/sage from 5.6.2 to 5.7.0 (#3017)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 08:32:48 -05:00
dependabot[bot]
8035e1d49d chore(deps-dev): bump @roots/bud from 5.6.2 to 5.7.0 (#3015)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 08:27:14 -05:00
Ben Word
12eb244d03 📄 update name 2022-03-18 00:07:06 -05:00
Ben Word
2494f6d73b 🔧 10.x-dev 2022-03-17 11:45:59 -05:00
Ben Word
2d05b855ca 🔖 v10.1.2 2022-03-17 11:44:03 -05:00
Ben Word
93ea049113 ⬆️ bud v5.6.2 (#3012)
Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2022-03-17 11:42:27 -05:00
Ben Word
d76b6c93c2 🔥 remove add_theme_support('align-wide') (#3008) 2022-03-16 09:01:38 -05:00
Ben Word
74709f31e0 add discourse topic release workflow (#3003) 2022-03-14 11:34:06 -05:00
Ben Word
500b3e4c8b 🔧 10.x-dev 2022-03-09 12:52:31 -06:00
Ben Word
eb85b33f69 🔖 v10.1.1 2022-03-09 12:51:11 -06:00
Mike Sheppard
ed89b07f4c 🔥 remove default palette + gradients from theme.json (#3002) 2022-03-09 12:49:57 -06:00
Ben Word
ffd3f94701 🔧 10.x-dev 2022-03-08 09:11:28 -06:00
Ben Word
8f109a9261 🔖 v10.1.0 2022-03-08 09:09:20 -06:00
Brandon
260672b786 chore(deps): Remove deprecated variant configuration from tailwind config (#2994) 2022-03-07 16:20:50 -06:00
Ben Word
8b4031a029 🔥 remove linting (#2998)
Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2022-03-07 16:20:31 -06:00
Ben Word
cf2dc5430a 🔥 improve: no need to watch tailwind.config.js (#3000)
Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2022-03-05 09:41:56 -06:00
Ben Word
7a89349347 ⬆️ bud v5.5.0 (#2997) 2022-03-04 19:25:23 -06:00
Ben Word
f04d35f717 🔧 10.x-dev 2022-03-01 20:43:16 -06:00
Ben Word
67805292e2 🔖 v10.0.0 (#2993) 2022-03-01 08:24:26 -06:00
Kelly Mears
f297df0942 bud 5.4.0 (#2983)
Co-authored-by: Ben Word <ben@benword.com>
2022-02-23 08:45:08 -06:00
Ben Word
fc93185a7a 🔧 10.0.0-dev 2022-02-14 08:47:56 -06:00
Ben Word
5a95a6200c 🔧 sage 10.0.0-beta.3 (#2977) 2022-02-14 08:37:01 -06:00
Ben Word
c51960bada ✏️ readme: update bud url 2022-02-13 23:54:30 -06:00
Ben Word
42f4344a91 📝 acorn: clarify version 2022-02-13 22:59:19 -06:00
Ben Word
7900dd3748 📝 simplify acorn notes 2022-02-13 21:31:37 -06:00
Ben Word
52add4944d 💬 acorn requirement error: add link to install docs (#2979) 2022-02-11 21:00:58 -06:00
Ben Word
c630a224d0 🔧 remove acorn post-autoload-dump (#2978) 2022-02-10 18:05:56 -06:00
Ben
cd1e3af50f Remove Acorn as dependency; treat as requirement (#2827) 2022-02-10 17:04:35 -06:00
Ben Word
0bd1f42982 📝 update changelog 2022-02-10 16:50:04 -06:00
Ben Word
9fad6e758d ⬆️ bump roots/acorn to v2.0.0-beta.9 (#2968) 2022-02-10 16:44:34 -06:00
Ben Word
5c7587f8d6 ⬆️ bump bud to v5.3.2 (#2976) 2022-02-10 16:44:24 -06:00
Ben Word
7080c225a6 📝 update changelog 2022-02-10 15:00:33 -06:00
Ben Word
b1d291e63f 🔧 migrate global settings to theme.json (#2964) 2022-02-10 14:52:33 -06:00
strarsis
9857121ed0 Re-add i18n related scripts/tasks (#2958)
Scripts were accidentally removed in PR #2643.
2022-02-08 17:29:54 -06:00
Pascal GAULT
85366aeb06 chore(header): allow unescaped siteName data (#2967) 2022-02-06 11:27:02 -06:00
Ben Word
258d1f9675 Update README.md 2022-01-31 17:59:39 -06:00
Ben Word
60e4c24d97 Bud v5.2.0 (#2959)
* chore(deps): Bump @roots/bud to v5.2.0

* lockfile

* remove `setPublicPath`

* suggestions (#2961)

* suggestions

* unneccessary

Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2022-01-25 19:33:04 -06:00
Ben Word
f63033ef3a chore(deps): Bump roots/acorn to v2.0.0-beta.8 (#2953) 2022-01-19 15:33:57 -06:00
Ben Word
c036636022 Bud v5.1.0 (#2952)
Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2022-01-19 15:31:46 -06:00
dependabot[bot]
c26b7691ee chore(deps-dev): bump postcss-preset-env from 7.2.0 to 7.2.3 (#2945)
Bumps [postcss-preset-env](https://github.com/csstools/postcss-plugins/tree/HEAD/plugin-packs/postcss-preset-env) from 7.2.0 to 7.2.3.
- [Release notes](https://github.com/csstools/postcss-plugins/releases)
- [Changelog](https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-plugins/commits/HEAD/plugin-packs/postcss-preset-env)

---
updated-dependencies:
- dependency-name: postcss-preset-env
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-14 11:12:10 -06:00
Ben Word
ea4da9c211 fix(bundle-editor): remove @wordpress/edit-post (#2932) 2022-01-14 11:11:44 -06:00
Nathan Knowler
4281ffff90 feat(search): use a button element (#2943)
This is trivial. The only real benefit is that it might be easier to add an icon and easier to style.
2022-01-11 10:05:35 -06:00
dependabot[bot]
90c9fe1da8 chore(deps-dev): bump tailwindcss from 3.0.12 to 3.0.13 (#2944)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.12 to 3.0.13.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 09:53:36 -06:00
Brandon
16f3330a4a chore(readme): Add sections directory to theme structure (#2942) 2022-01-10 16:28:36 -06:00
Brandon
fc53cf18b8 fix(views): Use dot notation on entry-meta view includes (#2941) 2022-01-10 16:16:14 -06:00
Ben Word
21491ce84f enhance(views): Move page section views to a sections directory (#2936)
Co-authored-by: Brandon Nifong <brandon@tendency.me>
2022-01-10 16:00:11 -06:00
dependabot[bot]
489fd5af6b chore(deps-dev): bump postcss-preset-env from 7.1.0 to 7.2.0 (#2926)
Bumps [postcss-preset-env](https://github.com/csstools/postcss-plugins/tree/HEAD/plugin-packs/postcss-preset-env) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/csstools/postcss-plugins/releases)
- [Changelog](https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-plugins/commits/HEAD/plugin-packs/postcss-preset-env)

---
updated-dependencies:
- dependency-name: postcss-preset-env
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 10:18:06 -06:00
dependabot[bot]
1d3d60ba0a chore(deps-dev): bump tailwindcss from 3.0.9 to 3.0.12 (#2939)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.9 to 3.0.12.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.12)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 10:10:09 -06:00
dependabot[bot]
fee03bf186 chore(deps-dev): bump autoprefixer from 10.4.1 to 10.4.2 (#2938)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.1 to 10.4.2.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.1...10.4.2)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 10:09:41 -06:00
Nathan Knowler
7b427c42e0 fix: app/setup.php doesn’t need to be executable (#2933) 2022-01-05 01:06:27 -06:00
dependabot[bot]
7a66350da9 chore(deps-dev): bump tailwindcss from 3.0.8 to 3.0.9 (#2930)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.8 to 3.0.9.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 11:34:18 -06:00
Nathan Knowler
443e493161 chore(php): bump minimum PHP version to 7.4 (#2925) 2022-01-03 05:40:40 -06:00
Simon
0eeda78340 Bump eslint to 8.6.0 (#2922)
babel-eslint is deprecated and should be replaced with @babel/eslint-parser

Co-authored-by: Simon Hammes <simonhammes@users.noreply.github.com>
2022-01-02 15:25:21 -06:00
dependabot[bot]
339e718806 chore(deps-dev): bump autoprefixer from 10.4.0 to 10.4.1 (#2918)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.0 to 10.4.1.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.0...10.4.1)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-02 14:13:18 -06:00
Nathan Knowler
6523ebccb7 refactor: remove JavaScript detection (#2916)
JavaScript detection with a class name on the body or html element tends
to go unused even by websites that have it set up. Instead, we recommend
that developers write progressively enhanced components that are styled
for non-JS usage by default. Increase specificity, use the cascade, or
code split to apply progressively enhanced styles.
2022-01-02 14:12:20 -06:00
Brandon
ee889edf16 chore: remove helpers.php (#2917)
* chore: remove helpers.php

* chore(docs): remove helpers.php reference from readme
2022-01-02 14:11:43 -06:00
Ben Word
0cea0c3c86 10.0.0-dev 2021-12-29 17:02:53 -06:00
dependabot[bot]
f1adf08902 chore(deps-dev): bump tailwindcss from 3.0.7 to 3.0.8 (#2914)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.7 to 3.0.8.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-29 15:42:41 -06:00
Ben Word
ed8a80c052 Switch to zero-config setup, remove config and bootstrap dirs (#2839)
* Remove config directory

* feat(zeroconfig): Add support for zero-config

* test(php-lint): remove config directory

* chore(readme): update dir structure

* admin/customizer has been removed

Co-authored-by: QWp6t <hi@qwp6t.me>
2021-12-29 15:42:29 -06:00
Ben Word
85db9c25ca chore(deps): Bump roots/acorn to v2.0.0-beta.7 (#2913) 2021-12-29 15:41:50 -06:00
Ben Word
a2f8e0242e chore(labeler): fix labeler (#2915) 2021-12-29 09:58:31 -06:00
dependabot[bot]
0eae57f278 chore(deps-dev): bump postcss-preset-env from 7.0.1 to 7.1.0 (#2912)
Bumps [postcss-preset-env](https://github.com/csstools/postcss-plugins/tree/HEAD/plugin-packs/postcss-preset-env) from 7.0.1 to 7.1.0.
- [Release notes](https://github.com/csstools/postcss-plugins/releases)
- [Changelog](https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-plugins/commits/HEAD/plugin-packs/postcss-preset-env)

---
updated-dependencies:
- dependency-name: postcss-preset-env
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-23 12:01:31 -06:00
Ben Word
1274cbcafc Add PR labeler (#2909)
* Add PR labeler
2021-12-23 11:56:54 -06:00
Ben Word
27f565a63a Sage 10.0.0-beta.2 (#2908) 2021-12-21 08:36:11 -06:00
Ben Word
a870896df9 chore(deps): Bump roots/acorn to v2.0.0-beta.6 (#2911) 2021-12-21 08:31:57 -06:00
Ben Word
358ae364d7 Remove all base styles followup (#2900) 2021-12-20 08:32:50 -06:00
dependabot[bot]
c74afa4789 chore(deps-dev): bump tailwindcss from 3.0.6 to 3.0.7 (#2910)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-20 08:31:55 -06:00
Ben Word
09234d21f0 Remove customizer starter (#2904) 2021-12-19 09:19:09 -06:00
Ben Word
83ced2339c chore(deps-dev): Bump @roots/bud to v5.0.0 (#2906) 2021-12-19 09:16:13 -06:00
Ben Word
0bc00b0907 chore(deps-dev): Bump @roots/bud to v5.0.0-next.20 (#2905) 2021-12-17 11:00:28 -06:00
dependabot[bot]
0af9543b6b chore(deps-dev): bump tailwindcss from 3.0.5 to 3.0.6 (#2901)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-17 10:15:39 -06:00
dependabot[bot]
bb8e4be381 chore(deps-dev): bump tailwindcss from 3.0.2 to 3.0.5 (#2896)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.2 to 3.0.5.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.2...v3.0.5)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-15 09:17:06 -06:00
QWp6t
fd94cff640 chore(deps-dev): Bump @roots/bud to v5.0.0-next.19 (#2895) 2021-12-15 09:14:19 -06:00
Kelly Mears
d1d9dc03bf update watch glob for views directory (#2892) 2021-12-13 17:40:12 -06:00
Kelly Mears
4e1d4ccfaf update tailwind.config.js (#2891) 2021-12-13 17:39:55 -06:00
Ben Word
2331f43a84 Fix Bud proxy (#2890) 2021-12-13 13:09:44 -06:00
Ben Word
44c09a6212 Remove all base styles (#2889) 2021-12-13 13:08:37 -06:00
dependabot[bot]
7b5d7a9bce chore(deps-dev): bump prettier from 2.5.0 to 2.5.1 (#2877)
Bumps [prettier](https://github.com/prettier/prettier) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 09:39:29 -06:00
dependabot[bot]
11bbb913bf chore(deps-dev): bump postcss from 8.4.4 to 8.4.5 (#2885)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.4 to 8.4.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.4...8.4.5)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 09:34:06 -06:00
dependabot[bot]
f011851803 chore(deps-dev): bump tailwindcss from 3.0.0 to 3.0.2 (#2888)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.0 to 3.0.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0...v3.0.2)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 09:28:50 -06:00
dependabot[bot]
4cbbf5ba9c chore(deps-dev): bump @roots/sage from 5.0.0-next.17 to 5.0.0-next.18 (#2886)
Bumps [@roots/sage](https://github.com/roots/bud/tree/HEAD/packages/@roots/sage) from 5.0.0-next.17 to 5.0.0-next.18.
- [Release notes](https://github.com/roots/bud/releases)
- [Changelog](https://github.com/roots/bud/blob/main/CHANGELOG.md)
- [Commits](https://github.com/roots/bud/commits/v5.0.0-next.18/packages/@roots/sage)

---
updated-dependencies:
- dependency-name: "@roots/sage"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 09:25:37 -06:00
dependabot[bot]
b7961a8b95 chore(deps-dev): bump @roots/bud from 5.0.0-next.17 to 5.0.0-next.18 (#2887)
Bumps [@roots/bud](https://github.com/roots/bud/tree/HEAD/packages/@roots/bud) from 5.0.0-next.17 to 5.0.0-next.18.
- [Release notes](https://github.com/roots/bud/releases)
- [Changelog](https://github.com/roots/bud/blob/main/CHANGELOG.md)
- [Commits](https://github.com/roots/bud/commits/v5.0.0-next.18/packages/@roots/bud)

---
updated-dependencies:
- dependency-name: "@roots/bud"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 09:21:34 -06:00
Ben Word
26ff3fa9ff Tailwind CSS v3.0 (#2882) 2021-12-10 09:43:41 -06:00
Ben Word
60271ef7e6 Update docs link [ci skip] 2021-12-08 13:13:38 -06:00
Ben Word
0ae5f93e17 Switch primary branch from master to main (#2851)
* Switch primary branch from master to main

Co-authored-by: QWp6t <hi@qwp6t.me>
2021-12-08 13:12:30 -06:00
Ben Word
a8266b98ec Remove issue closer (#2878) 2021-12-06 15:59:08 -06:00
dependabot[bot]
c58deddd61 chore(deps-dev): bump postcss from 8.4.1 to 8.4.4 (#2867)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.1 to 8.4.4.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.1...8.4.4)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-04 12:29:09 -06:00
dependabot[bot]
a18d02713b chore(deps-dev): bump @roots/sage from 5.0.0-next.16 to 5.0.0-next.17 (#2865)
Bumps [@roots/sage](https://github.com/roots/bud/tree/HEAD/packages/@roots/sage) from 5.0.0-next.16 to 5.0.0-next.17.
- [Release notes](https://github.com/roots/bud/releases)
- [Changelog](https://github.com/roots/bud/blob/main/CHANGELOG.md)
- [Commits](https://github.com/roots/bud/commits/v5.0.0-next.17/packages/@roots/sage)

---
updated-dependencies:
- dependency-name: "@roots/sage"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-04 12:22:44 -06:00
dependabot[bot]
eb9bcf9d1a chore(deps-dev): bump @roots/bud from 5.0.0-next.16 to 5.0.0-next.17 (#2866)
Bumps [@roots/bud](https://github.com/roots/bud/tree/HEAD/packages/@roots/bud) from 5.0.0-next.16 to 5.0.0-next.17.
- [Release notes](https://github.com/roots/bud/releases)
- [Changelog](https://github.com/roots/bud/blob/main/CHANGELOG.md)
- [Commits](https://github.com/roots/bud/commits/v5.0.0-next.17/packages/@roots/bud)

---
updated-dependencies:
- dependency-name: "@roots/bud"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-04 11:46:25 -06:00
Ben Word
a19f9df351 README: Mention Sage 10 beta releases (#2873) 2021-12-04 11:44:05 -06:00
Nathan Knowler
0976ced31f feat(theme-wrapper): remove shrink-to-fit=no (#2870)
See:
https://www.matuzo.at/blog/html-boilerplate/
https://www.scottohara.me/blog/2018/12/11/shrink-to-fit.html
HTML 5 Boilerplate
2021-12-02 07:51:13 -06:00
Ben Word
759eb08030 chore(theme): misc cleanup (#2862) 2021-11-28 13:48:29 -06:00
Altan S
9717df84de Fix assets path for static images (#2864) 2021-11-28 13:48:00 -06:00
Ben Word
174c64f261 chore(deps): Bump roots/acorn to v2.0.0-beta.5 (#2861) 2021-11-28 13:39:55 -06:00
dependabot[bot]
54b2711c01 chore(deps-dev): bump postcss-preset-env from 7.0.0 to 7.0.1 (#2846)
Bumps [postcss-preset-env](https://github.com/csstools/postcss-preset-env) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/csstools/postcss-preset-env/releases)
- [Changelog](https://github.com/csstools/postcss-preset-env/blob/main/CHANGELOG.md)
- [Commits](https://github.com/csstools/postcss-preset-env/compare/7.0.0...7.0.1)

---
updated-dependencies:
- dependency-name: postcss-preset-env
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-26 11:04:56 -06:00
dependabot[bot]
6d2ecce590 chore(deps-dev): bump prettier from 2.4.1 to 2.5.0 (#2857)
Bumps [prettier](https://github.com/prettier/prettier) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.4.1...2.5.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-26 10:52:56 -06:00
dependabot[bot]
6957fa7531 chore(deps-dev): bump postcss from 8.3.11 to 8.4.1 (#2859)
Bumps [postcss](https://github.com/postcss/postcss) from 8.3.11 to 8.4.1.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.3.11...8.4.1)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-26 10:52:15 -06:00
dependabot[bot]
64c9dea8eb chore(deps-dev): bump @roots/sage from 5.0.0-next.14 to 5.0.0-next.16 (#2860)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-25 08:18:57 -08:00
dependabot[bot]
7383c9892d chore(deps-dev): bump @roots/bud from 5.0.0-next.14 to 5.0.0-next.16 (#2858)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-25 07:44:16 -08:00
Joshua Fredrickson
319d5ad1a0 fix(lint): Add additional known at-rules (#2811)
Allows use of `@use`, `@forward` and `@layer` in `.scss` files.
2021-11-23 11:39:21 -06:00
Nathan Knowler
771db437cd doc(readme): replace Mix with Bud (#2850)
[skip ci]
2021-11-23 10:35:54 -06:00
Ben Word
652b7ae24c Update CHANGELOG [ci skip] 2021-11-21 23:56:55 -06:00
Kelly Mears
69dfbfc65c Replace Laravel Mix with Bud (#2643)
Co-authored-by: QWp6t <hi@qwp6t.me>
Co-authored-by: Ben Word <ben@benword.com>
2021-11-21 23:53:01 -06:00
QWp6t
e533e1bd15 chore(deps): Bump roots/acorn to v2.0.0-beta.4 (#2844) 2021-11-19 12:13:47 -08:00
Ben Word
2f50547c20 Move compiled views back to cache dir by default (#2837)
* chore(cache-views): move compiled views to [wp-content]/cache/acorn/views

Co-authored-by: QWp6t <QWp6t@users.noreply.github.com>
2021-11-02 18:06:03 -05:00
QWp6t
7c034f42c6 Revert "Remove Acorn as dependency; treat as requirement (#2825)" (#2826)
This reverts commit 653832edb2.
2021-10-22 17:57:29 -05:00
Ben
653832edb2 Remove Acorn as dependency; treat as requirement (#2825) 2021-10-22 15:48:51 -07:00
Brandon
385452469a chore(views): nitpick blade syntax 2021-10-21 15:19:13 -05:00
Ben Word
66014d7770 Update CHANGELOG [ci skip] 2021-10-21 15:12:38 -05:00
Nathan Knowler
8cb0124750 Use menu name as accessible name of <nav> 2021-10-08 09:13:37 -05:00
Nathan Knowler
824a2cc18c Only display <nav> if primary_navigation is set
The contents of the menu were being conditionally displayed, but it
would display an empty `<nav>` element if the menu location wasn’t set.
2021-10-08 09:13:37 -05:00
Ben Word
a03f55880a Update sponsors [ci skip] 2021-10-07 17:16:57 -05:00
Joshua Fredrickson
acb7bc59a2 Enable Webpack 5's automatic unique naming (#2745) (Fixes #2733) 2021-08-04 18:51:39 -05:00
Ben Word
982ab458bb Update sponsors [ci skip] 2021-07-01 12:16:45 -06:00
Nathan Knowler
e7de7b256a feat: remove x-ua-compatible tag (#2742)
This is redundant in IE 11.
2021-06-16 12:41:53 -05:00
Nathan Knowler
933f9ad8a5 refactor: remove deprecated jQuery .ready() syntax (#2738)
jQuery 3 recommends `$( handler )` syntax.

Reference: https://api.jquery.com/ready/
2021-06-16 12:41:36 -05:00
strarsis
6d66debe17 chore(i18n): Fix/add proper translator comments (#2716)
Co-authored-by: Brandon <brandon@tendency.me>
2021-05-26 20:10:21 -05:00
Brandon Nifong
cb5a5b57fe chore(deps): Bump dependencies 2021-05-26 20:05:16 -05:00
Joshua Fredrickson
926c71eb30 enhance(theme): Disable full-site editing support (#2692) 2021-05-26 19:59:44 -05:00
Brandon
ff62e351aa chore(deps): Bump dependencies (#2723) 2021-05-26 19:40:53 -05:00
Nathan Knowler
e5a59753c7 chore(deps): make jQuery ^3.5.1 a peer dependency (#2721)
Co-authored-by: Austin Pray <austin@austinpray.com>
2021-05-26 19:32:17 -05:00
Greg Hunt
0808d80063 enhance(assets): Shorter pattern for purge files (#2722) 2021-05-26 19:22:03 -05:00
Ben Word
3c985bf416 Update sponsors [ci skip] 2021-05-24 16:32:09 -06:00
dependabot-preview[bot]
b4146f9af6 Upgrade to GitHub-native Dependabot (#2693)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-05-14 11:57:49 -07:00
Ben Word
428f456a20 Update sponsors [ci skip] 2021-04-08 14:53:49 -06:00
QWp6t
90abb3197f fix(assets): use PhpAsset::load()
closes #2660
2021-03-31 12:40:36 -07:00
QWp6t
f19e1a52a6 chore(deps): update acorn to 2.0.0-alpha.0 2021-03-31 04:12:35 -07:00
Ben Word
b4e63a5922 Update sponsors [ci skip] 2021-03-15 16:30:20 -06:00
QWp6t
f19b1dd360 chore(config-log): use generic application.log 2021-02-28 21:52:43 -08:00
QWp6t
749d9d4798 fix(config-view): use acorn helper functions 2021-02-28 20:44:05 -08:00
QWp6t
8d5df52eb7 fix(bootstrap): use static bootloader to prevent rebooting 2021-02-26 22:20:46 -08:00
Brandon
6ca0aa6b74 chore(docs): Fix link to Blade in README 2021-02-16 01:16:08 -06:00
Brandon
19e59450ae chore(docs): Bump minimum requirements
* chore(docs): Change mention of Bootstrap to TailwindCSS
2021-02-16 01:14:33 -06:00
Brandon
af960211f6 chore(docs): Add style to build status badge 2021-02-16 01:11:40 -06:00
Brandon
ac7312ea15 fix(lint): Update eslint path 2021-02-16 01:08:50 -06:00
Brandon
9b1241997e chore(deps): Bump dependencies
revert(assets): Rename js/ back to scripts/
revert(assets): Rename css/ back to styles/
2021-02-16 01:08:50 -06:00
Ben Word
78855e51c8 Update sponsors [ci skip] 2021-02-16 01:08:50 -06:00
Mosaad
b13f4dd85d fix(composer): use proper wp cli command name (#2636) 2021-02-16 01:08:50 -06:00
Brandon
171b1a7aef chore(deps): Bump dependencies 2021-02-16 01:08:50 -06:00
Brandon
e845481fc2 chore(deps): Bump dependencies
chore(view): Remove tabindex from main selector
2021-02-16 01:08:50 -06:00
Brandon
a3d3e54a9d chore(deps): optimize tailwind's purgecss dirs 2021-02-16 01:08:50 -06:00
Michael W. Delaney
23e374d773 enhance(view): Add "skip to content" link (#2622) 2021-02-16 01:08:50 -06:00
Brandon
a5836af8d3 chore(theme): reword soil docblock 2021-02-16 01:08:50 -06:00
Brandon
6d4a52b46c fix(deps): Remove wildcards from .copyDirectory() in webpack.mix.js
chore(deps): Remove reundently passed tailwind config location
chore(deps): Slightly reorganize webpack.mix.js
chore(deps): Bump dependencies
2021-02-16 01:08:50 -06:00
Brandon
648ad5de25 chore(deps): Bump dependencies 2021-02-16 01:08:50 -06:00
Brandon
e1d55e5254 chore(ci): Add --frozen-lockfile arg to yarn install 2021-02-16 01:08:50 -06:00
Brandon
cfb446e78e chore(lint): Tone down the lint script 2021-02-16 01:08:50 -06:00
Brandon
be1b316a83 chore(deps): Bump dependencies 2021-02-16 01:08:50 -06:00
Brandon
ddb46a868f chore(project): Remove .circleci and add .github to .gitattributes
chore(docs): Change build badge to GitHub actions
2021-02-16 01:08:50 -06:00
Brandon
d8dad85a0e chore(ci): Change workflow event to only target master 2021-02-16 01:08:50 -06:00
Brandon
23fd09baea enhance(ci): Change from CircleCI to GitHub actions 2021-02-16 01:08:50 -06:00
Brandon
7c247fa5d8 wip 2021-02-16 01:08:50 -06:00
Brandon
08716e6a78 wip(ci): Change from CircleCI to GitHub actions 2021-02-16 01:08:50 -06:00
Brandon
a5398d2830 wip(ci): Change from CircleCI to GitHub actions 2021-02-16 01:08:50 -06:00
Brandon
57c24f8ba7 chore(theme): Remove specificity from custom-units theme support 2021-02-16 01:08:50 -06:00
Brandon
38cae9f8e5 enhance(theme): Add theme support for custom-line-height 2021-02-16 01:08:50 -06:00
Brandon
6269cee56a chore(theme): Fix docblock link 2021-02-16 01:08:50 -06:00
Brandon
cc2d02d7de chore(theme): Move custom-spacing up for visibility 2021-02-16 01:08:50 -06:00
Brandon
efbb13f282 enhance(theme): Add theme support for custom-units 2021-02-16 01:08:50 -06:00
Brandon
96974bf20a enhance(theme): Add theme support for editor-gradient-presets, editor-font-sizes, disable-custom-colors, disable-custom-gradients, disable-custom-font-sizes, custom-spacing
enhance(theme): Remove theme support for default block patterns
chore(theme): Reorder actions inside of the `after_setup_theme` hook by usefulness
chore(ci): Add `8.0` to version matrix
2021-02-16 01:08:50 -06:00
Brandon
3e2d9baac3 fix(ci): Add test to package.json scripts 2021-02-16 01:08:50 -06:00
Brandon
b3bdf487fb fix(ci): Drop PHP 7.2 from test matrix 2021-02-16 01:08:50 -06:00
Brandon
8f2779a99d chore(readme): Update theme structure example 2021-02-16 01:08:50 -06:00
Brandon
098f2fcfe5 chore(view): Remove redundant selector 2021-02-16 01:08:50 -06:00
Brandon
f64c975375 chore(deps): Remove cross-env as it is no longer necessary 2021-02-16 01:08:50 -06:00
Brandon
5518ea165a feat(assets): Change default CSS framework to Tailwind
* enhance(view): Add light default styling for Tailwind
* chore(view): Clean up unnecessary selectors and spacing
* feat(acorn): Update Acorn for Laravel 8.x
* chore(acorn): Create default `bootstrap/` project directory for Laravel 8.x
* refactor(acorn): Split the Acorn bootloader between `functions.php` and `bootstrap/app.php` to coincide with Laravel
* refactor(assets): Lighten the out of the box CSS boilerplate
* refactor(assets): Rename `dist/` to `public/` to coincide with Laravel
* refactor(assets): Flatten the `assets/` directory into `resources/` to coincide with Laravel
* refactor(assets): Rename `scripts/` to `js/` to coincide with Laravel
* refactor(assets): Rename `styles/` to `css/` to coincide with Laravel
* feat(deps): Update to Laravel Mix ^6.0
* chore(deps): Change Mix-related package.json `scripts` to the new `mix` binary
* chore(deps): Remove PurgeCSS in favor of Tailwind's built in purge
* chore(deps): Remove deprecated/unnecessary/unused dependencies
* chore(deps): Bump minimum PHP version to 7.3 to coincide with Laravel 8.x
2021-02-16 01:08:50 -06:00
Ben Word
33005e59b4 Update sponsors [ci skip] 2020-12-04 09:10:06 -07:00
Mosaad
af2089a7f5 Correct "trailingComma" value for prettier (#2582)
For "trailingComma" in `.prettierrc`, the value "true" is not accepted. Valid values are: "es5", "none", "all" https://prettier.io/docs/en/options.html#trailing-commas
2020-11-23 16:03:42 -06:00
dependabot-preview[bot]
a54a2a1221 Bump squizlabs/php_codesniffer from 3.5.6 to 3.5.8 (#2562)
Bumps [squizlabs/php_codesniffer](https://github.com/squizlabs/PHP_CodeSniffer) from 3.5.6 to 3.5.8.
- [Release notes](https://github.com/squizlabs/PHP_CodeSniffer/releases)
- [Commits](https://github.com/squizlabs/PHP_CodeSniffer/compare/3.5.6...3.5.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-09 18:15:08 -07:00
dependabot-preview[bot]
21cef41ecd Bump bootstrap from 4.5.2 to 4.5.3 (#2554)
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.5.2 to 4.5.3.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.5.2...v4.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-09 18:14:34 -07:00
Tang Rufus
f70de3d052 package.json: Specify supported node versions (#2555) 2020-11-09 18:12:49 -07:00
Ben Word
36937b4cea Update sponsors [ci skip] 2020-10-03 10:13:24 -06:00
Ben Word
1d4f5675c8 Soil: Activation updates for latest version (#2527) 2020-08-30 10:04:32 -06:00
Brandon
24ac51d510 Housekeeping (#2520)
* enhance(project): Add .prettierrc to project
* chore(deps): Bump dependencies
* chore(view): Improve readability of the search form view
* chore(admin): Improve language used in the customize_register filter docblock
* chore(lint): Lint project assets
* chore(change-log): Improve/prepare the changelog for actual release
* chore(readme): Improve README feature list
* chore(readme): Update README theme directory structure
* chore(readme): Add GitHub sponsors badge
* chore(readme): Clean up various wording
* fix(ci): Fix failing tests
* fix(mix): Add index.php to purgecss scope (Supersedes #2423) (Credit @oxyc)
2020-08-20 13:35:15 -05:00
Smeedijzer Internet
5535ea6184 Update setup.php (#2499)
add_theme_support('html5, [.... 'script', 'style']); removes type="text/javascript" and type=”text/css” from enqueued scripts and styles.
2020-08-18 09:34:01 -06:00
Daniel Sturm
be73e2c2dd Fix typos in latest changes (#2502) 2020-07-02 02:42:59 -05:00
dependabot-preview[bot]
fc292199e5 Bump roots/acorn from 1.0.8 to 1.0.9 (#2500)
Bumps [roots/acorn](https://github.com/roots/acorn) from 1.0.8 to 1.0.9.
- [Release notes](https://github.com/roots/acorn/releases)
- [Commits](https://github.com/roots/acorn/compare/v1.0.8...v1.0.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 11:27:52 -05:00
Tang Rufus
c1fe8fb22a ci: Use offical CircleCI PHP and Node orbs, and next-gen docker images (#2484) 2020-06-27 19:59:27 -07:00
Ben Word
3ae83c7e57 Update sponsors [ci skip] 2020-05-18 19:32:57 -06:00
Ben Word
eb93c64b6c Update CHANGELOG [ci skip] 2020-05-16 04:39:04 -06:00
dependabot-preview[bot]
41d8239271 Bump bootstrap from 4.4.1 to 4.5.0 (#2467)
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.4.1...v4.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-16 04:37:15 -06:00
dependabot-preview[bot]
604f3ccc92 Bump @wordpress/babel-preset-default from 4.12.1 to 4.13.0 (#2468)
Bumps [@wordpress/babel-preset-default](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default) from 4.12.1 to 4.13.0.
- [Release notes](https://github.com/WordPress/gutenberg/releases)
- [Changelog](https://github.com/WordPress/gutenberg/blob/master/changelog.txt)
- [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/babel-preset-default@4.13.0/packages/babel-preset-default)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-16 04:37:04 -06:00
dependabot-preview[bot]
7ef97a583a Bump roots/acorn from 1.0.6 to 1.0.8 (#2469)
Bumps [roots/acorn](https://github.com/roots/acorn) from 1.0.6 to 1.0.8.
- [Release notes](https://github.com/roots/acorn/releases)
- [Commits](https://github.com/roots/acorn/compare/v1.0.6...v1.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-16 04:36:47 -06:00
Brandon
a4f3392da2 Update README [ci skip] 2020-05-10 16:39:50 -06:00
QWp6t
2c5479995d Sage 10 (#2138)
* Sage 10 (#2122)

There's a new version of Sage in the pipeline. The most significant change is the introduction of Acorn. I'll release more information about Acorn as it nears completion.

TODO

- [ ] Restructure templates (@retlehs)
- [ ] Code splitting (@austinpray, @QWp6t, @swalkinshaw)
- [ ] WooCommerce compatibility (@QWp6t, @retlehs)
- [ ] API for build process (possibly extend Laravel Mix) (@QWp6t, @austinpray)
- [ ] Acorn - https://github.com/QWp6t/acorn/issues/1 (@QWp6t)
- [ ] Documentation

Sage 10 and Acorn are both still works in progress so you should definitely not start any projects with them in their current state unless you're willing to do an inordinate amount of debugging and go through the hassle of keeping up with updates as we push them.

* Add wp_body_open hook (WP 5.2+)

* Add missing search blade
Enable preflight by default
Bump version to 10.0.0 in package.json and style.css
Change PHP requirement to 7.1.3
Upgrade roots/sage-installer
Remove deprecated qwp6t/acorn repository from composer.json
Add some sane optimizations to composer.json
Remove excessive linebreaks from helpers.php
Make config linebreaking uniform
Add missing space to ! conditionals to stay consistent with PSR-1/2
Update the file structure in README.md and add the new sponsor
Revert to shorthand @php()
Add aside markup to sidebar and wrap it in @hasSection
Add a document wrapper
Add ARIA roles to the document, main, aside, header, nav, and footer wrappers
Change entry-meta conditional in content-search.blade.php to an @includeWhen
Add some sane linebreaks throughout the views and codebase to increase readability
Add docblocks to the example Title.php composer

* Add WP Blade Check

* Remove redundant ARIA roles

* Revert language_attributes() to get_language_attributes()
Remove roots/wp-blade-check until we decide on where to put it
Only enable preflight when not in production

* Make searchform translations match WordPress core

* Update Travis conf

* rmdist is gone in Sage 10

* Change to Laravel Mix
Clean up and refactor starter styles
Remove autoload from styles/scripts
Remove $ import on customizer.js as Mix autoload will handle that
Fix conditional on comments.blade.php
Bump PHP version to 7.1.3 on Travis
Remove unnecessary fields in package.json as it will never be published
Rename main.css/main.js to app.css/app.js
Automatically remove Blade cache when theme is activated, changed, or removed

* Simplify Blade cache removal

* Use ->uri() on asset for sanity purposes

* Fix app.js typo

* Add npm-run-all

This lets us run related scripts together pretty easily since we can
use glob patterns (e.g. `lint:*` — `**` is supported too). You can
either run scripts sequentially with `run-s` or in parallel with
`run-p`.

See: https://github.com/mysticatea/npm-run-all

* Add -c (continue on error) flag to lint command

This way lint issues for the scripts doesn’t block the styles from being
linted.

* run-s all the things

* Break up `build:production`
* Refine `start` script to call `build` but using `--watch`
  * Since the base command is the same, this makes it easier to
    maintain.
* Use run-s for `test` script for consistency.

* Refactor build commands

The only thing that differs between `build` and `build:production` is
the Node environment variable. We can use `run-s build:mix` preceeded by
the correspinding environment setting.

* Fix start command

We need to pass `--watch` to the `build:mix` not `build`. Also, this
means we need to set the Node environment beforehand since `build:mix`
doesn’t have that.

* Fix hot command

`dist` needs to exist for HMR to work since it looks for `dist/hot`.
This means we should probably build once before starting HMR. This also
renames `build:mix` to just `mix` to keep a consistent naming scheme.

* Move cache location to `storage/`
Add app.name to configuration
Add a ServiceProvider stub
Add missing trailing commas to config
Remove automatic Blade cache removal action as it is no longer necessary
Clean up .gitignore
Clean up JavaScript docblocks
Remove home.js example
Remove leftover Sage 9 information from README

* Remove redundent $asset in setup.php

* Add clean:views npm script (#2176)

Since views are in a predictable location within the theme, this might
be handy. A side effect of adding this is that generated views are now
cleared on every production build, which might be a good thing. If not,
it’s not hard to change.

* [Sage 10] Add src and public mix path helpers (#2177)

Since Mix uses the `webpack.mix.js` path as the webpack context and
doesn’t let us change the context, having a helper can make it easier to
add new assets. It also provides a single source of truth for the assets
source directory.

Also, this adds a `public` function which just makes it easy for setting
the `to` path in the `copyDirectory` task.

By including the definitions of these functions within the
`webpack.mix.js` file itself it makes it clear to Sage users that they
are not a part of Mix.

* Typo [ci skip]

* Syntax optimizations

* Combine watch rules using extended glob patterns
* Use template literals for mix helpers (src + public). Makes it seem
  less cluttered.

* Use out instead of public for publicPath helper

`public` is a future reserved word in JS

* Use publicPath instead of out

* Use Roots\Acorn\ServiceProvider (#2180)

* Make editorconfig account for Blade's outside of resources/views

* non-Blade files located in resources/views should also be indent_size = 2

* [Sage 10] Replace jQuery’s .ready() (#2182)

* Use DOMContentLoaded listener for document ready
* Account for DOMContentLoaded not firing
* Extract ready() to utils.js

Also uses `window.setTimeout(fn, 0)` to cover async.

In a commit/PR in the near future, the `util` directory will be going
away since the DOM router has been extracted to its own package
(https://github.com/roots/js-dom-router). `utils.js` will function as a
place for custom utilities, similar to what `app/helpers.php` is on the
PHP side of things.

* Replace Travis CI with CircleCI (#2185)

* Replace Travis CI with CircleCI

* Replace badge [ci skip]

* Optimize CircleCI (#2186)

* Optimize CircleCI

* Change cache keys

* Update .gitattributes

* Update .gitattributes

* Optimize CircleCI config (#2188)

* Update composer dependencies

* Bump required WordPress version (#2193)

* Change WordPress requirement to 5.2

* Restructure (#2200)

* Restructure Sage
* Composer test -> lint

* Fix version_compare() operators (#2195)

* Simplify Mix Browsersync API (#2198)

* New DOM router + dynamic imports (#2190)

* Use new js-dom-router 
* add dynamic import support with example
* Use babel-eslint as eslint parser

* Update dependencies

* Add post-autoload-dump script for package discovery (#2201)

* CircleCI: `yarn install` with `--frozen-lockfile` (#2203)

* Bump babel-eslint from 10.0.1 to 10.0.2 (#2209)

Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.1...v10.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass from 1.21.0 to 1.22.0 (#2211)

Bumps [sass](https://github.com/sass/dart-sass) from 1.21.0 to 1.22.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.21.0...1.22.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint-plugin-import from 2.17.3 to 2.18.0 (#2210)

Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.17.3 to 2.18.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.17.3...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint from 5.16.0 to 6.0.1 (#2212)

Bumps [eslint](https://github.com/eslint/eslint) from 5.16.0 to 6.0.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.16.0...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Fix npm run start script options not forwarded with npm (#2205)

This is a known difference between yarn and npm and will eventually
break with yarn once backwards compatibility is removed.

* Use WordPress’ Browserslist config (#2214)

Co-authored-by: Ben Word <ben@benword.com>

* Bump sass from 1.22.0 to 1.22.1 (#2216)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.0 to 1.22.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.0...1.22.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass from 1.22.1 to 1.22.3 (#2218)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.1 to 1.22.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.1...1.22.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump laravel-mix from 4.0.16 to 4.1.2 (#2219)

Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 4.0.16 to 4.1.2.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Commits](https://github.com/JeffreyWay/laravel-mix/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update README [ci skip]

* [Security] Bump lodash from 4.17.11 to 4.17.14 (#2259)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass from 1.22.3 to 1.22.4 (#2260)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.3 to 1.22.4.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.3...1.22.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* chore(readme): Use brand color for Twitter follow badge

[ci skip]

* Acorn asset manager config (#2220)

* Add logs directory

* Bump sass from 1.22.4 to 1.22.5 (#2263)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.4 to 1.22.5.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.4...1.22.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Add alert component with view composer (#2267)

Resolves #2262

* Fix broken source maps + remove unnecessary conditionals (#2268)

Resolves #2266

Laravel Mix has a bug where source maps are not generated if you do not
specify the source map type (the second argument). This corrects that.

Co-authored-by: Matt Mirus <matt@mattmirus.com>

* chore(config): add alert component alias to view config (#2272)

This also updates Acorn.

* Bump sass from 1.22.5 to 1.22.7 (#2273)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.5 to 1.22.7.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.5...1.22.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint-plugin-import from 2.18.0 to 2.18.2 (#2275)

Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* No scripts/suggests during `composer install` on CircleCI [ci skip]

* Add timezone, globals, and locale app config [ci skip]

* Add logging config

* Update theme structure in README [ci skip]

* Move get_search_form and body_class to Acorn
comments_template() now defaults to `partials/comments.blade.php`
Composers are now autoloaded

* Bump sass from 1.22.7 to 1.22.9 (#2281)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.7 to 1.22.9.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.7...1.22.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint from 6.0.1 to 6.1.0 (#2276)

Bumps [eslint](https://github.com/eslint/eslint) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.0.1...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update sponsors [ci skip]

* Keep a commented out example of calling a Composer class

* Bump dependencies
Add sage-svg (#2270)
Add sage-directives (#2265)
Start changelog (Related to #2271)

* Set `wp_nav_menu` echo to `false` (#2278)

* Bump @wordpress/browserslist-config from 2.5.0 to 2.6.0 (#2282)

Bumps [@wordpress/browserslist-config](https://github.com/WordPress/gutenberg/tree/HEAD/packages/browserslist-config) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/WordPress/gutenberg/releases)
- [Changelog](https://github.com/WordPress/gutenberg/blob/master/packages/browserslist-config/CHANGELOG.md)
- [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/browserslist-config@2.6.0/packages/browserslist-config)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* chore(deps): log1x/sage-directives from 1.0.9 to 1.1.2 (#2286)

Bumps [log1x/sage-directives](https://github.com/Log1x/sage-directives) from 1.0.9 to 1.1.2.
- [Release notes](https://github.com/Log1x/sage-directives/releases)
- [Changelog](https://github.com/Log1x/sage-directives/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Log1x/sage-directives/compare/v1.0.9...v1.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass-loader from 7.1.0 to 7.2.0 (#2287)

Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.1.0...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Remove unnecessary linebreak [ci skip]

* docs(changelog): Use lowercase for "webpack"

Keeps it consistent with [their brand](https://webpack.js.org/branding/#the-name).

[ci skip]

* Bump rimraf from 2.6.3 to 3.0.0 (#2289)

Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.6.3 to 3.0.0.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.6.3...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass from 1.22.9 to 1.22.10 (#2292)

Bumps [sass](https://github.com/sass/dart-sass) from 1.22.9 to 1.22.10.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.22.9...1.22.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass-loader from 7.2.0 to 7.3.1 (#2293)

Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.2.0 to 7.3.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.2.0...v7.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint from 6.1.0 to 6.2.1 (#2294)

Bumps [eslint](https://github.com/eslint/eslint) from 6.1.0 to 6.2.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.1.0...v6.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump babel-eslint from 10.0.2 to 10.0.3 (#2295)

Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.2 to 10.0.3.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.2...v10.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint from 6.2.1 to 6.2.2 (#2296)

Bumps [eslint](https://github.com/eslint/eslint) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.2.1...v6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump log1x/sage-directives from 1.1.2 to 1.1.3 (#2297)

Bumps [log1x/sage-directives](https://github.com/Log1x/sage-directives) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/Log1x/sage-directives/releases)
- [Changelog](https://github.com/Log1x/sage-directives/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Log1x/sage-directives/compare/v1.1.2...v1.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Adds i18n support (#2290)

Adds translation commands to package.json. Includes support for Javascript strings.

Adds translator comment to example app/Composers/Title.php.

Does not implement the loading of translated strings as this is a costly operation and implementations can be opinionated.

* Update Composers to work with the latest Acorn
- Bump dependencies
- Run all translate commands with translate:*

* Use $this->data in the Alert Composer (#2300)

* Use $this->data for handling data in the example Alert composer
* Bump Acorn

* Update sponsors [ci skip]

* Update sponsors [ci skip]

* Update sponsors [ci skip]

* Call ->render() on view instead of relying on toString (#2330)

* Bump for Acorn (#2337)

* Breaking Change: Bump required PHP version to 7.2
* chore(deps): Bump dependencies
* fix(app): Change app.env and app.debug default values (important*)
* chore(deps-dev): Add filp/whoops to required-dev
* chore(ci): Remove php-71 from CircleCI

* Use mix-manifest.json (Fixes #2329)

* Pre-Sage 10 Alpha (#2338)

- Refactor default styles and scripts
- Clean up default view markup
- Change `Title.php` to `Post.php` to suggest a more organized workflow (Supersedes #2320)
- Create an `App` composer to show an example of a global variable
- Add `align-wide` and `responsive-embeds` to `add_theme_support` by default
- Remove deprecated `soil-jquery-cdn` from `add_theme_support`
- Clean up docblocks project-wide
- Update linting to match the latest PSR-12 standards (e.g. the license docblocks)
- Add an appropriate `#app` wrapper to make the project ready for frameworks like Vue
- Add `laravel-mix-purgecss` for purgeCSS in production
- Add `laravel-mix-copy-watched` for asset watching & versioning
- Add `laravel-mix-wp-blocks` to handle compiling blocks
- Reduce the footprint of the default `webpack.mix.js`
- Append filetypes to asset names
- Add default block editor assets
- Add handling for the WordPress asset manifest
- Remove visual editor styling (Fixes #2269)
- Add sensible default styles and folders
- Remove unused `phpcs.xml`
- Move `sage-directives` and `sage-svg` to suggests
- Bump dependencies
- Add Brandon Nifong as an author
- Change license URI to https
- Remove unused function namespaces from setup.php
- Append filetypes to asset names
- Add default block editor assets
- Add handling for the WordPress asset manifest
- Ignore dist when running phpcs
- Change the search input class the the WP default

* Inline manifest.js when enqueueing editor.js (#2344)

* Add theme color palette support (#2352)

* Bump bootstrap from 4.3.1 to 4.4.1 (#2350)

Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.3.1 to 4.4.1.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.3.1...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump eslint from 6.6.0 to 6.7.2 (#2354)

Bumps [eslint](https://github.com/eslint/eslint) from 6.6.0 to 6.7.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.6.0...v6.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump sass from 1.23.3 to 1.23.7 (#2345)

Bumps [sass](https://github.com/sass/dart-sass) from 1.23.3 to 1.23.7.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.23.3...1.23.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Sage 10 editor scripts & styles (#2351)

* adds alternate button style and super basic starter css

* Adds transition variable

* Add bootstrap max-width to editor-styles

* updates button scss, editor wrapper scss, and registration

* rename is-style-ghost to is-style-outline

* simplify structure and cleanup css

* Protect Ben Word's typographic holdings

* Remove scoping from .has-xyz-color classes

* Restore scss partial import structure

* rename partials, move color util, apply bootstrap font

* alphabetical selectors ¯\_(ツ)_/¯

* Bump stylelint from 11.1.1 to 12.0.0 (#2342)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 11.1.1 to 12.0.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/11.1.1...12.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump squizlabs/php_codesniffer from 3.5.2 to 3.5.3 (#2356)

Bumps [squizlabs/php_codesniffer](https://github.com/squizlabs/PHP_CodeSniffer) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/squizlabs/PHP_CodeSniffer/releases)
- [Commits](https://github.com/squizlabs/PHP_CodeSniffer/compare/3.5.2...3.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* README updates for 10.0.0-alpha.1 (#2271)

* Update theme structure + files in README

* Update setup.php

* Keep hierarchical assets directory structure (#2372)

* fix(stylelint): Fix broken tests (#2375)

feat(stylelint): Set `at-rule-empty-line-before` to `null` to allow sane seperation of imports

* chore(deps): Bump dependencies (#2376)

* update laravel-mix-wp-blocks (#2381)

* Update sponsors [ci skip]

* Sage 10 fixes/cleanup (#2413)

* fix(templates): Move the document wrapper from app.blade.php to index.php to fix hook run sequence (See: #2123)
* feat(mix): Add purgecss-with-wordpress whitelists by default
* chore(docblocks): Remove copyright/license from PHP docblocks
* chore(babel): Remove unused dynamic import plugin until Webpack 5
* chore(babel): Remove unused .babelrc
* chore(deps): Bump dependencies

* Laravel 7.x (#2429)

* enhance(acorn): Update to Laravel 7.x
* enhance(blade): Convert existing alert component to a new View Component
* chore(deps): Bump minimum PHP version to 7.2.5
* chore(deps): Bump dependencies
* chore(configs): Clean up configs
* BREAKING(config): Bump configs to support Laravel 7.x
* BREAKING(components): @Alert() has been replaced with <x-alert ...>
* BREAKING(composers): View co

* enhance(deps): Add `Requires PHP` and `Requires at least` to theme style headers. Bump WordPress requirement to v5.4 (#2409)

* Sage 10 Chores (#2431)

* enhance(functions): Make functions.php pretty
* fix(component): Fix improper use of translation on the Alert component
* enhance(component): Add `$slot` fallback ternary to the Alert component view
* chore(component): Move Alert component message to a slot by default to properly pass the translated string.
* chore(component): Properly set default values for Alert
* chore(deps): Bump dependencies
* chore(theme): Fix required PHP version in style.css

* Bump roots/acorn from 1.0.2 to 1.0.3 (#2433)

Bumps [roots/acorn](https://github.com/roots/acorn) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/roots/acorn/releases)
- [Commits](https://github.com/roots/acorn/compare/v1.0.2...v1.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump roots/acorn from 1.0.3 to 1.0.4 (#2440)

Bumps [roots/acorn](https://github.com/roots/acorn) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/roots/acorn/releases)
- [Commits](https://github.com/roots/acorn/compare/v1.0.3...v1.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump stylelint from 13.2.1 to 13.3.0 (#2439)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.2.1 to 13.3.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.2.1...13.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Update sponsors [ci skip]

* Bump roots/acorn from 1.0.4 to 1.0.6 (#2444)

Bumps [roots/acorn](https://github.com/roots/acorn) from 1.0.4 to 1.0.6.
- [Release notes](https://github.com/roots/acorn/releases)
- [Commits](https://github.com/roots/acorn/compare/v1.0.4...v1.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump @wordpress/dependency-extraction-webpack-plugin from 2.4.0 to 2.5.0 (#2448)

Bumps [@wordpress/dependency-extraction-webpack-plugin](https://github.com/WordPress/gutenberg/tree/HEAD/packages/dependency-extraction-webpack-plugin) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/WordPress/gutenberg/releases)
- [Changelog](https://github.com/WordPress/gutenberg/blob/master/packages/dependency-extraction-webpack-plugin/CHANGELOG.md)
- [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/dependency-extraction-webpack-plugin@2.5.0/packages/dependency-extraction-webpack-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump @wordpress/babel-preset-default from 4.11.0 to 4.12.1 (#2450)

Bumps [@wordpress/babel-preset-default](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default) from 4.11.0 to 4.12.1.
- [Release notes](https://github.com/WordPress/gutenberg/releases)
- [Changelog](https://github.com/WordPress/gutenberg/blob/master/changelog.txt)
- [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/babel-preset-default@4.12.1/packages/babel-preset-default)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump squizlabs/php_codesniffer from 3.5.4 to 3.5.5 (#2451)

Bumps [squizlabs/php_codesniffer](https://github.com/squizlabs/PHP_CodeSniffer) from 3.5.4 to 3.5.5.
- [Release notes](https://github.com/squizlabs/PHP_CodeSniffer/releases)
- [Commits](https://github.com/squizlabs/PHP_CodeSniffer/compare/3.5.4...3.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump laravel-mix-copy-watched from 2.2.3 to 2.2.4 (#2452)

Bumps [laravel-mix-copy-watched](https://github.com/dsktschy/laravel-mix-copy-watched) from 2.2.3 to 2.2.4.
- [Release notes](https://github.com/dsktschy/laravel-mix-copy-watched/releases)
- [Commits](https://github.com/dsktschy/laravel-mix-copy-watched/compare/v2.2.3...v2.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump jquery from 3.4.1 to 3.5.0 (#2445)

Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.4.1...3.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump stylelint from 13.3.0 to 13.3.3 (#2453)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.3.0 to 13.3.3.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.3.0...13.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Update README.md

Co-authored-by: Ben Word <ben@benword.com>
Co-authored-by: Brandon Nifong <brandon@tendency.me>
Co-authored-by: Nathan Knowler <nathan@knowler.me>
Co-authored-by: Tang Rufus <tangrufus@gmail.com>
Co-authored-by: dependabot-preview[bot] <dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Oskar Schöldström <m@oxy.fi>
Co-authored-by: Matt Mirus <matt@mattmirus.com>
Co-authored-by: Kelly Mears <developers@tinypixel.dev>
2020-05-10 16:22:44 -06:00
Ben Word
d2d5df8295 Update sponsors 2020-05-09 12:20:53 -06:00
Ben Word
95cbfd155d Update sponsors [ci skip] 2020-04-12 10:02:56 -06:00
Ben Word
dcde0c47e3 Update sponsors [ci skip] 2020-02-11 15:45:39 -07:00
Ben Word
bd38502616 Update sponsors [ci skip] 2019-10-01 18:33:23 -06:00
Ben Word
56680bb5e5 Update sponsors [ci skip] 2019-09-30 19:13:28 -06:00
Ben Word
8255e0feaf Update sponsors [ci skip] 2019-09-30 17:35:49 -06:00
Scott Walkinshaw
f6e5b08569 Fix issue-close-message 2019-09-01 23:25:42 -04:00
Scott Walkinshaw
b430525f14 Add issue closer github action 2019-09-01 23:24:17 -04:00
Ben Word
9100cea66b Update sponsors [ci skip] 2019-07-31 19:58:49 -06:00
Ben Word
9a8ca10365 Update sponsors [ci skip] 2019-04-01 07:39:30 -06:00
Ben Word
e7b2d27569 Merge pull request #2160 from roots/default-health-files
Remove community health files so that defaults from roots/.github are used
2019-03-12 16:47:38 -06:00
Ben Word
03e7d0c430 Remove community health files so that defaults from roots/.github are used 2019-03-12 16:35:08 -06:00
Ben Word
f3e794a093 Merge pull request #2153 from roots/bs-4-3.1
Update to Bootstrap 4.3.1 (9.0.9)
2019-02-13 18:30:50 -07:00
Ben Word
ba30b01456 Update to Bootstrap 4.3.1 2019-02-13 18:18:40 -07:00
Ben Word
fbf041b9d8 Merge pull request #2152 from roots/bs-4-3.0
Update to Bootstrap 4.3.0 (9.0.8)
2019-02-11 20:35:05 -07:00
Ben Word
cee92a97fd Update to Bootstrap 4.3.0 2019-02-11 20:23:44 -07:00
Matt Mirus
19057f60be Filter template hierarchy for embed templates (#2145) 2019-01-15 16:42:00 -08:00
Michael Van Der Velden
899ceac132 Decrease optipng level (#2143)
After seeing the following graph [here](http://sweetme.at/2013/09/11/how-to-maximize-png-image-compression-with-optipng/) we decided to test optimsation level 2 for OptiPNG instead of 7. This is because, acording to the graph we would notice no real difference in avarage file size but would notice a speed increase with our builds.

![image](https://user-images.githubusercontent.com/9092863/50760280-39a7c480-125f-11e9-9bd6-d28171289abe.png)

After testing , we noticed our theme build go from a build time of over 10 mins (just on the 94% asset optimisation step) to an avarage of `150.75s`. All the while, we only gained 10-15kb per png file which we believe more than reasonable for a build speed increase of this magnatude.
2019-01-15 01:03:38 -08:00
Ben Word
889e13f8c0 Merge pull request #2141 from roots/unescape-titles
Unescape post titles
2019-01-08 14:12:47 -07:00
Ben Word
64cf06058d Update sponsors [ci skip] 2019-01-02 14:49:30 -06:00
Matt Mirus
3b36eb5b41 Unescape post titles 2018-12-31 16:06:17 -05:00
Ben Word
0cb6bf2a89 Merge pull request #2137 from roots/9.0.7
9.0.7
2018-12-28 11:05:30 -07:00
Ben Word
c7faf46591 9.0.7 2018-12-28 10:56:37 -07:00
Ben Word
7a9ac5ccde When you're sloppy and forget things 😇 2018-12-21 14:22:59 -07:00
Ben Word
788cec525c Merge pull request #2136 from roots/bootstrap-4.2.1
Sage 9.0.6: Update to Bootstrap 4.2.1
2018-12-21 13:40:29 -07:00
Ben Word
1e31a901b1 Require Node 8+, also test PHP 7.2 and 7.3 2018-12-21 13:28:51 -07:00
Ben Word
d60f1f675d Shoutout to npm: https://npm.community/t/npm-install-downgrading-resolved-packages-from-https-to-http-registry-in-package-lock-json/1818 2018-12-21 12:44:36 -07:00
Ben Word
f3a2e6ab6a Update to Bootstrap 4.2.1 2018-12-21 12:39:33 -07:00
Naokazu Terada
96ad12a650 gitignore /vendors not vendors 2018-11-27 01:43:48 -08:00
Matt Mirus
33832739fe Merge pull request #2131 from roots/tailwind-at-rules
Fix stylelint and eslint validation errors
2018-11-26 20:51:54 -05:00
Matt Mirus
c9252f4180 Fix no-extra-semi 2018-11-26 20:40:17 -05:00
Matt Mirus
7f61dc8682 Update sage-installer 2018-11-26 20:28:29 -05:00
Matt Mirus
dfe4b878a3 Add Tailwind custom at-rules 2018-11-26 20:13:04 -05:00
Ben Word
f793a212d1 Update README.md 2018-11-26 11:34:14 -07:00
Ben Word
2ccaa47f06 Add CodeFirst 2018-11-22 11:34:02 -07:00
Ben Word
fbd2f552b5 Merge pull request #2127 from roots/update-deps
Update a few dependencies
2018-11-16 12:14:22 -07:00
Ben Word
524d1e2f9d Merge pull request #2080 from tormjens/patch-1
Dispatch event when firing routes
2018-11-16 12:13:34 -07:00
Ben Word
b06e4aebe6 Update a few dependencies - close #2117 2018-11-16 12:03:04 -07:00
Ben Word
517b7ff62f Merge pull request #2076 from rbraunschweig/normalize-quotes
Normalize and enforce single quotes
2018-11-16 11:46:16 -07:00
Ben Word
7773e7db41 Double quotes for styles 2018-11-16 11:41:47 -07:00
Ben Word
eee07a84f4 Merge branch 'master' into normalize-quotes 2018-11-16 11:34:28 -07:00
Ben Word
93ee95dfac Merge pull request #2123 from kimhf/hook-run-sequence
Hook run sequence fix
2018-11-16 11:16:13 -07:00
Ben Word
863bbb5b3a Merge pull request #2120 from roots/webpack-preset-note
Add note regarding webpack.config.preset.js usage
2018-11-15 16:12:44 -06:00
Ben Word
28acba4f09 Merge pull request #2125 from roots/fix-sage-dist-path-example
Fix SAGE_DIST_PATH example path
2018-11-15 16:12:26 -06:00
Nathan Knowler
e9bf0beaa2 Fix SAGE_DIST_PATH example path
Needs the trailing slash.
2018-11-07 16:19:19 -07:00
Kim Helge Frimanslund
435e9f26dc More descriptive variable name 2018-10-28 23:37:54 +01:00
Kim Helge Frimanslund
79fddf944f Remove no longer needed script enqueue fix 2018-10-27 11:54:30 +02:00
Kim Helge Frimanslund
ede699368e Bring hook run sequence in line with expected WordPress behaviour 2018-10-27 11:53:52 +02:00
Nathan Knowler
37c7e0dd93 Add note regarding webpack.config.preset.js usage
See #2119
2018-10-19 09:49:31 -06:00
Ben Word
a33bbe5091 Merge pull request #2114 from roots/9.0.5
9.0.5
2018-09-17 11:21:39 -06:00
Ben Word
60e547aa19 9.0.5 2018-09-17 11:13:10 -06:00
Ben Word
f087320908 Update comment [ci skip] 2018-09-17 11:09:24 -06:00
MWDelaney
e72b490626 Workaround for Bootstrap incompatibility with webpack. Fixes #2017 2018-09-17 10:17:14 -04:00
Ben Word
375b06a22b Merge pull request #2112 from roots/9.0.4
9.0.4: Force `illuminate/support` to `5.6.*`
2018-09-07 09:36:32 -06:00
Ben Word
ed0b52bddc Force illuminate/support to 5.6.* 2018-09-07 09:30:38 -06:00
Ben Word
dc53b90a37 Merge pull request #2111 from roots/9.0.3
9.0.3
2018-09-07 08:17:53 -06:00
Ben Word
c9d2c8a223 9.0.3 2018-09-07 08:02:01 -06:00
Ben Word
c9bb05a93d Merge pull request #2110 from roots/revert-2090-master
Revert "Add searchform partial and function to replace default WordPress functionality"
2018-09-07 07:57:23 -06:00
Ben Word
b8c0ebc3ae Merge pull request #2100 from mejta/comments-template-data
Add data from controller to comments template
2018-09-06 19:14:22 -06:00
Ben Word
b7aeb66655 Revert "Add searchform partial and function to replace default WordPress functionality" 2018-09-06 19:12:32 -06:00
Matt Mirus
798e1a2ef1 Merge pull request #2108 from roots/unescape-language-attributes
Unescape get_language_attributes()
2018-09-06 11:44:57 -04:00
Matt Mirus
931ffd39c7 Unescape get_language_attributes() 2018-09-06 11:30:46 -04:00
Daniel Mejta
190e828cfd Revert "Final filter that renders template should have PHP_INT_MAX priority."
This reverts commit 68f8d9791d.
2018-09-05 00:46:31 +02:00
Daniel Mejta
b16e619da6 $comments_template fix 2018-09-03 08:43:51 +02:00
Ben Word
81925de598 Patreon 2018-08-30 13:36:35 -06:00
Daniel Mejta
68f8d9791d Final filter that renders template should have PHP_INT_MAX priority. 2018-08-28 07:23:58 +02:00
Daniel Mejta
fa1681dad9 Add data from controller to comments template 2018-08-28 07:19:59 +02:00
Ben Word
8a023b4307 Merge pull request #2099 from roots/9.0.2
9.0.2
2018-08-21 15:54:44 -06:00
Ben Word
d7acd3a04f 9.0.2 2018-08-21 15:48:26 -06:00
Ben Word
0d4b251130 Merge pull request #2095 from mejta/comments-template-fix
Comments template fix
2018-08-21 15:37:22 -06:00
Ben Word
907825ee88 Merge pull request #2025 from darrenjacoby/master
Upgrade to Controller 2.1.0
2018-08-21 15:35:49 -06:00
Ben Word
3377d94f69 Merge pull request #2098 from roots/update-deps
Update dependencies
2018-08-21 15:33:09 -06:00
Ben Word
53d67e1755 Merge branch 'master' into master 2018-08-21 15:30:05 -06:00
Ben Word
b298b969cc Merge pull request #2092 from LubomirGeorgiev/uglifyjs-es5
UglifyJs: Change the ecma option from 8 to 5
2018-08-21 15:26:17 -06:00
Ben Word
c2abb7f8d4 Update dependencies 2018-08-21 15:24:47 -06:00
Ben Word
351394fb2f Merge pull request #2097 from roots/bootstrap-4.1.3
Update to Bootstrap 4.1.3
2018-08-21 15:19:46 -06:00
Ben Word
7016fa48ed Update to Bootstrap 4.1.3 2018-08-21 15:13:27 -06:00
Ben Word
32ecc08e38 Merge pull request #2096 from roots/update-sage-installer
Bump sage-installer
2018-08-21 15:08:46 -06:00
Matt Mirus
5c947b2aff Bump sage-installer 2018-08-21 14:54:35 -04:00
Daniel Mejta
75a68059f8 Fix 2018-08-21 15:40:11 +02:00
Darren Jacoby
372415045f Update composer.json 2018-08-17 10:15:25 +02:00
Lubomir Georgiev
6280fc97db UglifyJs: Change the ecma option from 8 to 5 2018-08-14 17:23:15 +03:00
Nathan Knowler
157c97b6ae Use smartStrategy to replace loaders with preset (#2084)
Using `merge.smartStrategy` with `'module.loaders' = 'replace'` to load
the preset config allows presets to override the the default webpack
config. This is necessary for the coming Tailwind preset which requires
`resolve-url-loader` and source maps to be disabled.
2018-08-11 19:32:19 -07:00
Ben Word
165a38f4d4 Merge pull request #2081 from kukac7/patch-2
missing semicolon
2018-08-09 15:11:47 -06:00
Ben Word
21b578b593 Merge pull request #2089 from Log1x/patch-1
Change language_attributes() to get_language_attributes()
2018-08-09 15:11:20 -06:00
Ben Word
7d13888557 Merge pull request #2090 from MWDelaney/master
Add searchform partial and function to replace default WordPress functionality
2018-08-09 15:05:09 -06:00
Michael W. Delaney
c1bc6ef596 Update filters.php 2018-08-08 09:55:54 -04:00
Michael W. Delaney
d13e8fd9be Update filters.php 2018-08-08 08:51:00 -04:00
Ben
e898cf1f4d Extract logic from search form template
This removes all logic from the search form Blade template, and extracts
it to the "Controller" level via Sage's filter system. It also adds a
global 'app' filter to hook into, so that the search form data will be
served on every page.
2018-08-06 13:06:34 -07:00
MWDelaney
b41047f5a1 Add text domain 2018-08-05 21:15:08 -04:00
MWDelaney
d93964b9c4 Remove gross WPCS 2018-08-05 21:06:46 -04:00
MWDelaney
1ccc2eed76 Add searchform partial and function to replace (and maintain) default WordPress functionality 2018-08-05 12:07:32 -04:00
Brandon
e84108c44d Change language_attributes() to get_language_attributes() 2018-07-31 17:25:45 -05:00
Daniel Roe
a9312c0633 Fix missing comment-reply JS (#2085) 2018-07-18 16:37:51 -06:00
Nathan Knowler
61f923413a Add support for preset specific Webpack config (#2083) 2018-07-17 10:58:16 -07:00
béla
6325f11cd6 missing semicolon 2018-07-02 00:22:37 +02:00
Tor Morten Jensen
2d9b9d16bf Fix comma dangle lint error 2018-06-20 14:50:43 +02:00
Tor Morten Jensen
2af688c4f1 Rename to event 2018-06-20 14:48:28 +02:00
Tor Morten Jensen
8f039f1944 Dispatch event when firing routes
It is especially neat when importing the scripts from the parent theme in a child theme. In one of my themes I do it like this:

```js
// routes.js
import home from './routes/home'

export default {
    home: {
      init() {
        console.log('Home route fired.')
      }
    }
}
```

  ```js
// main.js
/**
 * Parent Themes Script
 */
import '../../../../core-theme/resources/assets/scripts/main';

/**
 * Internal modules
 */
import routes from './routes'

/**
 * Hook in to the parent themes router
 */
document.addEventListener('routed', e => {
  let route = e.detail.route,
    fn = e.detail.fn;

  if (routes[route] && typeof routes[route][fn] === 'function') {
    routes[route][fn]();
  }
});
```
2018-06-20 14:08:10 +02:00
Jason Baciulis
fd2a94fa1b Add uglifyjs plugin (#2070)
* Add uglifyjs plugin and replace -p flag with --env.production
* Add uglifyjs plugin
* Configure UglifyJsPlugin to drop console and prevent eslint error
* Turn off no-console rule because uglifyjs plugin drops it in prod
2018-06-16 08:33:41 -07:00
Ben Word
093b5a6500 Merge pull request #2078 from knowler/enable-sass-comments
Enable Sass comments and run prefixing before minification
2018-06-11 11:05:12 -06:00
Nathan Knowler
4a9094b12d Add missing trailing commas in 2f51b51
Forgot to lint.
2018-06-09 10:34:55 -06:00
Nathan Knowler
405aedfb13 Run autoprefixer before minification 2018-06-09 09:49:34 -06:00
Nathan Knowler
2f51b51c95 Enable source comments in Sass 2018-06-09 09:49:08 -06:00
Rhys Braunschweig
248c569bff Normalize and enforce single quotes in styles
- Replace stylelint property in package.json with .stylelintrc.js
- Add string-quotes stylelint rule
- Fix quotes
2018-05-29 12:12:21 +02:00
Rhys Braunschweig
9040a3dc75 Normalize and enforce single quotes in scripts
- Add quotes and semi rules to ESLint
- Fix quotes and semicolons
2018-05-29 12:11:44 +02:00
Ben Word
987a1d8bb2 Merge pull request #2075 from E-VANCE/master
Proposal: Set removeViewBox to 'false' in webpack's optimization settings
2018-05-28 19:20:06 -06:00
Henning Orth
9dd101f56c Fix travis CI build error (missing trailing comma) 2018-05-28 16:50:49 +02:00
Henning Orth
d1c8a2eee7 Tweaked SVGO settings
Disable removal of the SVG viewBox by default to improve compatibility. See this Discourse thread: https://discourse.roots.io/t/svg-size-change-upon-yarn-build-production/12320
2018-05-28 16:44:12 +02:00
Ben Word
ab3763856e Merge pull request #2068 from kimhf/template-admin-compatibility
Make template() compatible with wp admin
2018-05-10 09:02:30 -06:00
Kim Helge Frimanslund
9a4b81c43a Make template() compatible with wp admin 2018-05-06 13:42:31 +02:00
Ben Word
b1f645b825 Merge pull request #2066 from roots/9.0.1
9.0.1
2018-04-30 12:52:11 -06:00
Ben Word
b6f89bf652 9.0.1 2018-04-30 12:44:52 -06:00
Ben Word
29f4b2fc62 Merge pull request #2065 from roots/bootstrap-4.1.1
Update to Bootstrap 4.1.1
2018-04-30 12:42:32 -06:00
Ben Word
82618b7441 Update to Bootstrap 4.1.1 2018-04-30 12:33:53 -06:00
Ben Word
fa6e6f93a3 Merge pull request #2063 from valentinocossar/remove-whitespace
Remove useless whitespace
2018-04-30 08:11:51 -06:00
Valentino Cossar
b08db80c7b Remove useless whitespace 2018-04-27 15:50:26 +02:00
Ben Word
8d001c7571 Merge pull request #2062 from roots/auto-detect-proxyurl-scheme
Auto-detect proxyUrl scheme
2018-04-25 15:57:46 -06:00
Ben Word
922ed72ad9 Auto-detect scheme 2018-04-25 15:37:28 -06:00
Ben Word
571c49f698 Close #2028 - Increase priority on comments_template filter 2018-04-25 12:18:52 -06:00
Ben Word
061d3ad700 Merge pull request #1980 from dmgawel/patch-1
Update template hierarchy
2018-04-25 12:16:01 -06:00
Ben Word
8df602fb50 Remove Font Awesome reference [ci skip] 2018-04-25 12:09:14 -06:00
Ben Word
ef28dae253 Merge pull request #2032 from juniorgarcia/master
Added support to .otf fonts
2018-04-25 12:07:12 -06:00
Ben Word
9834098dd1 Merge pull request #2061 from roots/laravel-5.6
Bump to Laravel 5.6
2018-04-25 12:05:01 -06:00
Ben Word
5103f511c6 Bump sage-lib 2018-04-25 11:54:08 -06:00
Ben Word
77e7ce0c64 Close #1962 - Bump to Laravel 5.6 2018-04-25 11:50:58 -06:00
Ben Word
fb7dabe369 Merge pull request #2060 from ttamnedlog/remove-php-shorthand
Remove php blade shorthand
2018-04-22 22:11:56 -06:00
Matt Golden
d44a6b0332 Remove php blade shorthand 2018-04-18 19:20:06 -05:00
Ben Word
9d5de7db39 Stable vs dev install messaging, ref https://github.com/roots/docs/issues/140 [ci skip] 2018-04-12 20:10:43 -06:00
Ben Word
c60bf29dc2 Update some dependencies 2018-04-12 19:56:22 -06:00
Ben Word
8d8b158ad4 Merge pull request #2056 from roots/bootstrap-4.1.0
Bootstrap 4.1.0
2018-04-12 19:46:05 -06:00
Ben Word
de1796e1b6 Update CHANGELOG [ci skip] 2018-04-12 19:44:28 -06:00
Ben Word
cdc49cbf86 Bootstrap 4.1.0 2018-04-12 19:39:22 -06:00
Ben Word
8766826f17 Remove run 👀 [ci skip] 2018-04-12 19:27:31 -06:00
Ben Word
9947b1d591 Merge pull request #2055 from MWDelaney/master
New Sage primary purple
2018-04-12 19:08:59 -06:00
Michael W. Delaney
d3267f06d7 New Sage primary purple 2018-04-12 20:40:22 -04:00
Darren Jacoby
022c4aafcd Update Controller to 2.0.1 2018-04-03 21:41:19 +02:00
Ben Word
ffad63566a Merge pull request #2048 from chancestrickland/master
Update node-sass
2018-03-29 00:24:59 -06:00
Charalambos Poulikidis
be1b8887f4 changed inline @php directive to full form (#2042)
closes #2012
2018-03-27 15:38:28 -07:00
chance
c59b373c27 upgrade node-sass 2018-03-27 08:42:27 -05:00
Ben Word
f2c47cf41b Merge pull request #2044 from HJGreen/svgo-configuration
Fix default SVG optimisation configuration
2018-03-19 16:57:35 -06:00
Harry Green
0c11974859 Fix default SVG optimisation configuration 2018-03-19 21:42:47 +00:00
Ben Word
ea76b61cd5 Merge pull request #2037 from roots/php-7.1
PHP 7.1+ is now required
2018-03-13 22:47:56 -06:00
Ben Word
8088207e75 PHP 7.1.3+ [ci skip] 2018-03-13 22:47:14 -06:00
Ben Word
8096f74a7a PHP 7.1+ is now required 2018-03-06 18:40:13 -07:00
Ben Word
808e37a085 Force 5.4.27 version of illuminate/support 2018-03-06 15:31:05 -07:00
Ben Word
a4a19a5375 Force 5.4 versions of illuminate/support 2018-03-06 14:32:52 -07:00
Ben Word
c5a1782c50 Update Composer dependencies 2018-03-06 14:11:50 -07:00
Ben Word
0c53b57ffd Merge pull request #2033 from roots/sponsors
Add sponsors
2018-02-21 09:16:33 -07:00
Ben Word
a62cb8be04 Add sponsors [ci skip] 2018-02-20 19:33:41 -07:00
Júnior Garcia
393215507d Added support to .otf fonts 2018-02-19 21:35:58 -03:00
Ben Word
de27307b82 Merge pull request #2026 from nacm/patch-1
Update CHANGELOG.md
2018-02-07 22:36:06 -07:00
Ahmed Naseem
87560e7eed Update CHANGELOG.md 2018-02-08 12:59:05 +08:00
Darren Jacoby
e5edc8dd5f Controller 2.0.0 2018-02-07 19:05:00 +02:00
Ben Word
6e3d873784 Merge pull request #2024 from roots/9.0.0
9.0.0
2018-02-07 08:47:46 -07:00
Darren Jacoby
b3a0b7ff08 PSR4 loading for Controller 2.0.0 2018-02-07 17:43:50 +02:00
Darren Jacoby
11e37a5184 PSR4 loading for Controller 2.0.0 2018-02-07 17:43:24 +02:00
Darren Jacoby
4470c26ddd PSR4 loading for Controller 2.0.0 2018-02-07 17:39:35 +02:00
Ben Word
c46e073cf6 9.0.0 2018-02-07 08:28:33 -07:00
Ben Word
4981becae9 Update README [ci skip] 2018-02-06 12:08:02 -07:00
Ben Word
ffe2aa4cb3 Update CHANGELOG [ci skip] 2018-02-06 12:03:50 -07:00
Ben Word
f7b182df6d Merge pull request #2021 from roots/update-deps
Update dependencies
2018-02-06 11:53:45 -07:00
Ben Word
f6bfff16bd npm lockfile 2018-02-06 11:38:37 -07:00
Ben Word
77a601df68 Update dependencies 2018-02-06 11:33:57 -07:00
Ben Word
623217c524 Merge pull request #2015 from slackday/bootstrap4.0.0
Updated bootstrap to release version 4.0.0
2018-01-23 11:48:28 -07:00
Stefan Lindberg
62f86043e6 Updated bootstrap to release version 4.0.0
Updated popper.js to version 1.12.9
2018-01-23 14:39:29 +01:00
QWp6t
951274bb15 Add php-mbstring to list of requirements
Fixes #2013
2018-01-19 13:03:02 -08:00
Ben Word
42db9f9c99 Merge pull request #2008 from alwaysblank/allow-console-on-dev
Allow `no-console` development
2017-12-19 10:01:21 -07:00
Ben Martinez-Bateman
ca76f57316 Don't need this any more! :( 2017-12-18 11:55:42 -08:00
Ben Martinez-Bateman
789eec1a57 This moves our eslint config in .eslint.js, which allows us to use conditionals in the config file itself, significantly simpliying rule creation. For small-scale differences, this seems to be the simplest solution. 2017-12-18 11:51:12 -08:00
Ben Martinez-Bateman
ea2d4070aa Rename production eslint file from .eslintrcProd to .eslint.production.json as per suggestion from @swalkinshaw: https://github.com/roots/sage/pull/2008#issuecomment-352520506 2017-12-18 10:50:49 -08:00
Ben Martinez-Bateman
626c9e6535 Build process now allows console.log, except when the production flag is set on yarn build, in which case it will throw an error. 2017-12-18 10:37:32 -08:00
Ben Word
80a00245ab Delete .eslintrc
https://discourse.roots.io/t/console-log-sage-9-eslint/10316/6
2017-12-14 23:04:44 -07:00
Ben Word
bb840aa126 Merge pull request #2001 from raziraz/patch-1
Update README.md
2017-12-11 17:27:10 -07:00
Ben Word
f6d8c9fd6e Merge pull request #2003 from iamandrewluca/remove-bower-traces
Remove some Bower traces
2017-12-11 17:26:31 -07:00
Andrew Luca
985fb5e830 Remove some Bower traces 2017-12-11 13:32:32 +02:00
razitazi
6dbb3614b1 Update README.md
Added Bulma as a an installation option for css framework.
2017-12-01 12:05:53 +01:00
Ben Word
2cae6148d5 Merge pull request #1999 from roots/contributor-covenant
Add Code of Conduct
2017-11-27 17:18:31 -07:00
Ben Word
9073a29fd5 Add Code of Conduct [ci skip] 2017-11-27 17:03:24 -07:00
Ben Word
5c4c500716 Merge pull request #1995 from roots/dev-to-test
Change .dev to .test for default local dev TLD
2017-11-18 17:43:54 -07:00
Ben Word
52c08d1454 Change .dev to .test for default local dev TLD per https://github.com/roots/trellis/pull/923 2017-11-18 17:40:46 -07:00
Ben Word
2b53c6997f Merge pull request #1993 from MWDelaney/master
Move variables and Bootstrap lines to autoload
2017-11-13 15:04:55 -07:00
mwdelaney
412740e644 Bootstrap function in _variables.scss to play nice with other frameworks 2017-11-13 16:59:29 -05:00
Michael W. Delaney
7deb83faf2 Move variables and Bootstrap imports to autoload 2017-11-13 16:10:39 -05:00
Michael W. Delaney
e6b15b6e3b Remove explicit Bootstrap lines 2017-11-13 16:10:01 -05:00
Ben Word
db78e401e2 Merge pull request #1992 from MWDelaney/master
Adapt to use Bootstrap 4 Beta 2 functions and variables
2017-11-13 12:18:07 -07:00
mwdelaney
059a89e715 Example $theme-color 2017-11-13 12:44:54 -05:00
Michael W. Delaney
72bfc1ff57 Update main.scss 2017-11-13 12:29:54 -05:00
Ben Word
7e9744b377 Merge pull request #1986 from roots/update-controller-default-examples
Update controller examples
2017-11-01 10:24:35 -06:00
Ben Word
fe66ed52cd Update controller examples 2017-10-30 09:53:47 -06:00
Ben Word
59cd31540d Merge pull request #1981 from roots/bootstrap-4-beta-2
Update to Bootstrap 4 Beta 2
2017-10-20 16:08:35 -06:00
Ben Word
182a7d6595 Update dependencies 2017-10-19 14:06:04 -06:00
Ben Word
8bcd754d59 Update CHANGELOG [ci skip] 2017-10-19 13:46:50 -06:00
Ben Word
4b37859008 Bootstrap 4 Beta 2 2017-10-19 13:41:02 -06:00
Dawid Gaweł
3f9d31c19a Update template hierarchy
All sage/filter_templates/paths have now higher priority than stand-alone template files. Fixes #1979
2017-10-19 12:59:24 +02:00
Ben Word
b4421be269 Merge pull request #1964 from roots/retlehs-patch-1
Remove get_the_posts_navigation from 404
2017-09-12 16:04:32 -06:00
Ben Word
7bfe868afb Remove get_the_posts_navigation from 404 2017-09-12 16:04:15 -06:00
DieGOs
7ce252939c Update config.json (#1963)
Remove old watch path to controllers
2017-08-31 14:05:59 -07:00
Ben Word
c2a7b5edd0 Add friendly-errors-webpack-plugin (#1961) 2017-08-23 09:50:59 -07:00
Ben Word
ea7186b15b Merge pull request #1960 from greatislander/controller-readme
Move /controllers to app, remove app/lib/Sage in readme
2017-08-22 13:00:31 -06:00
Ned Zimmerman
219babfda5 Move /controllers to app, remove app/lib/Sage in readme. 2017-08-22 15:56:26 -03:00
Ben Word
d27ac38e93 Merge pull request #1959 from darrenjacoby/master
Controller 9.0.0-beta.4
2017-08-22 11:54:19 -06:00
Darren Jacoby
681ad997a2 Controller 9.0.0-beta.4 2017-08-22 19:49:09 +02:00
Ben Word
eb3164cb85 Merge pull request #1954 from darrenjacoby/master
Change default Controller path to app/controllers
2017-08-22 10:52:12 -06:00
Ben Word
739fac8131 Merge pull request #1955 from oxyc/followup-1950
Followup #1950: Fix lint:styles task with cmd.exe
2017-08-22 10:03:31 -06:00
Oskar Schöldström
2c777ec5f8 Followup #1950: Fix lint:styles task with cmd.exe 2017-08-20 12:36:19 -05:00
Darren Jacoby
dcbd5a7366 Change default Controller path to app/controllers 2017-08-20 19:14:46 +02:00
Ben Word
499f809c6e Merge pull request #1941 from kaisermann/fix-template-controller
Ensure templates filenames without path and extension.
2017-08-17 10:53:52 -06:00
Ben Word
e00eaf7e8f Merge pull request #1912 from kaisermann/title-on-controller
Moved title() helper to app.php controller
2017-08-16 21:24:52 -06:00
Ben Word
6022309d33 Merge pull request #1951 from oxyc/patch-1
Issue #1950: Fix lint:styles script not matching files in deep subdirectories
2017-08-16 21:20:20 -06:00
Ben Word
e9417b86cd Merge pull request #1949 from MWDelaney/master
Fix for plugins that don't enqueue their scripts properly
2017-08-16 21:19:57 -06:00
Oskar Schöldström
fb55b6464a Fix lint:styles script not matching files in deep subdirectories 2017-08-16 22:00:52 -05:00
Michael W. Delaney
6c472480d0 Update helpers.php 2017-08-14 11:18:40 -04:00
Ben Word
a031f8d17a Merge pull request #1937 from 9585999/patch-1
Update README.md
2017-08-13 19:12:45 -06:00
Michael W. Delaney
33776e9317 Update webpack.config.js (#1946) 2017-08-12 01:34:44 -07:00
Ben Word
79fb1ee5de Merge pull request #1943 from roots/bs4-beta
Bootstrap 4 Beta, Sage 9.0.0-beta.4
2017-08-11 18:18:34 -06:00
Ben Word
d208fa4b4e 👀 2017-08-11 18:12:25 -06:00
Ben Word
66c69063e2 Bump sage-installer 2017-08-11 18:07:12 -06:00
Ben Word
ce754b88df BS4 now requires Popper 2017-08-11 17:59:18 -06:00
Ben Word
05c853ea88 Bump sage-lib 2017-08-11 17:42:48 -06:00
Ben Word
505fa357a7 Bootstrap 4 Beta, Sage 9.0.0-beta.4 2017-08-11 17:36:19 -06:00
DieGOs
1813c82cc0 Update README.md 2017-08-05 12:40:12 +03:00
Christian Kaisermann
0283131d00 Removed comment 2017-07-05 11:37:06 -03:00
Christian Kaisermann
d956e54c85 Moved title() helper to app.php controller 2017-06-23 13:03:35 -03:00
200 changed files with 28555 additions and 19666 deletions

View File

@@ -1,17 +1,25 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
quote_type = single
[*.md]
trim_trailing_whitespace = false
[*.php]
indent_size = 4
[*.blade.php]
indent_size = 2
[resources/views/**.php]
indent_size = 2
[index.php]
indent_size = 2

3
.gitattributes vendored
View File

@@ -1,3 +1,2 @@
/.github export-ignore
/.gitattributes export-ignore
/.travis.yml export-ignore
/.github export-ignore

View File

@@ -1 +0,0 @@
Please read [Contributing to Roots Projects](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md)

View File

@@ -1,62 +0,0 @@
## Submit a feature request or bug report
- [ ] I've read the [guidelines for Contributing to Roots Projects](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md)
- [ ] This is a feature request
- [ ] This is a bug report
- [ ] This request isn't a duplicate of an [existing issue](https://github.com/roots/sage/issues)
- [ ] I've read the [docs](https://roots.io/sage/docs) and [NPM Debugging Guidelines post](https://discourse.roots.io/t/npm-debugging-guidelines-failed-npm-install-bower-install-or-gulp-build-read-this/3060) and followed them (if applicable)
- [ ] This is not a personal support request that should be posted on the [Roots Discourse](https://discourse.roots.io/c/sage) forums
<!-- Replace any `X` with your information. -->
---
**What is the current behavior?**
X
**What is the expected or desired behavior?**
X
---
## Bug report
<!-- (delete this section if not applicable) -->
**Please provide steps to reproduce, including full log output:**
X
**Please describe your local environment:**
WordPress version: X
OS: X
NPM/Node version: X
**Where did the bug happen? Development or remote servers?**
X
**Is there a related [Discourse](https://discourse.roots.io/) thread or were any utilized (please link them)?**
X
---
## Feature Request
<!-- (delete this section if not applicable) -->
**Please provide use cases for changing the current behavior:**
X
**Other relevant information:**
X

23
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
build:
- changed-files:
- any-glob-to-any-file:
- vite.config.js
dependencies:
- changed-files:
- any-glob-to-any-file:
- package-lock.json
javascript:
- changed-files:
- any-glob-to-any-file:
- resources/js/**/*.js
php:
- changed-files:
- any-glob-to-any-file:
- functions.php
- app/**/*.php
- resources/views/**/*.php
views:
- changed-files:
- any-glob-to-any-file:
- index.php
- resources/views/**/*.php

23
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,23 @@
{
"baseBranches": [
"main"
],
"commitMessageAction": "⬆️ Bump",
"commitMessageTopic": "{{depName}}",
"extends": [
"config:recommended",
"schedule:weekly"
],
"rangeStrategy": "bump",
"packageRules": [
{
"matchUpdateTypes": [
"minor",
"patch",
"pin"
],
"enabled": true
}
],
"timezone": "America/Detroit"
}

18
.github/workflows/discourse.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Post release topic on Discourse
on:
release:
types: [published]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: roots/discourse-topic-github-release-action@main
with:
discourse-api-key: ${{ secrets.DISCOURSE_RELEASES_API_KEY }}
discourse-base-url: ${{ secrets.DISCOURSE_BASE_URL }}
discourse-author-username: ben
discourse-category: 11
discourse-tags:
releases

11
.github/workflows/labeler.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

91
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,91 @@
name: Main
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
node:
name: Node ${{ matrix.node }}
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
strategy:
matrix:
node: ['20']
steps:
- name: Checkout the project
uses: actions/checkout@v4
- name: Setup the Node ${{ matrix.node }} environment on ${{ runner.os }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies using npm
run: npm install
- name: Build and compile assets
run: |
npm run build
cat public/build/manifest.json
- name: Validate theme.json
run: |
THEME_JSON="public/build/assets/theme.json"
if [ ! -f "$THEME_JSON" ]; then
echo "❌ theme.json not found"
exit 1
fi
jq -e '
(.settings.color.palette | length > 0) and
(.settings.typography.fontFamilies | length > 0) and
(.settings.typography.fontSizes | length > 0)
' "$THEME_JSON" 2>&1 || {
echo "❌ Invalid theme.json structure or missing required values"
exit 1
}
php:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
strategy:
matrix:
php: ['8.2']
steps:
- name: Checkout the project
uses: actions/checkout@v4
- name: Setup the PHP ${{ matrix.php }} environment on ${{ runner.os }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: xdebug
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore the Composer cache directory
id: composercache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-${{ matrix.php }}-composer-
- name: Install Composer dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader --no-suggest
- name: Run Pint
run: vendor/bin/pint --test

14
.gitignore vendored
View File

@@ -1,10 +1,6 @@
# Include your project-specific ignores in this file
# Read about how to use .gitignore: https://help.github.com/articles/ignoring-files
.cache-loader
dist
bower_components
node_modules
/node_modules
/vendor
/public/*
!/public/.gitkeep
.env
npm-debug.log
yarn-error.log
vendor
resources/assets/config-local.json

View File

@@ -1,40 +0,0 @@
language: php
sudo: false
dist: trusty
php:
- 7.1
- 7.0
- nightly
env:
- TRAVIS_NODE_VERSION="6"
- TRAVIS_NODE_VERSION="7"
matrix:
fast_finish: true
allow_failures:
- php: nightly
cache:
apt: true
directories:
- $HOME/.composer/cache
- $HOME/.yarn-cache
- vendor
before_install:
- composer self-update
- source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION && nvm use $TRAVIS_NODE_VERSION
- export PATH=$HOME/.yarn/bin:$PATH && travis_retry curl -o- -L https://yarnpkg.com/install.sh | bash
install:
- node -v && yarn -V
- travis_retry yarn
- composer install -o --prefer-dist --no-interaction
script:
- yarn run test
- yarn run build
- yarn run rmdist
- yarn run "build:production"
- composer test

View File

@@ -1,569 +0,0 @@
### HEAD
* Update dependencies, support `config-local.json`, implement autoload system for styles/scripts, use `roots/sage-installer`, use `roots/sage-lib` ([#1919](https://github.com/roots/sage/pull/1919))
* Add soberwp/controller ([#1903](https://github.com/roots/sage/pull/1903))
* Change syntax of template call to match other files in views ([#1908](https://github.com/roots/sage/pull/1908))
* Add Tachyons as a CSS framework option ([#1867](https://github.com/roots/sage/pull/1867))
* Remove post format reference in template call ([#1904](https://github.com/roots/sage/pull/1904))
* Update inline documentation to reflect correct theme file locations ([#1890](https://github.com/roots/sage/pull/1890))
* Optimize CSS Assets safe = true ([#1901](https://github.com/roots/sage/pull/1901))
* Update Autoprefixer and standardize browserlist location ([#1899](https://github.com/roots/sage/pull/1899))
* Do not redirect for WP-CLI ([#1891](https://github.com/roots/sage/pull/1891))
* Illuminate: container make with parameters ([#1888](https://github.com/roots/sage/pull/1888))
* Add Stylelint for linting stylesheets ([#1885](https://github.com/roots/sage/pull/1885))
### 9.0.0-beta.3: April 21st, 2017
* Move required theme files to `sage/resources` ([#1877](https://github.com/roots/sage/pull/1877))
* Move `src/` to `app/` ([#1868](https://github.com/roots/sage/pull/1868))
* Move `templates/` to `resources/views/`, move `assets/` to `resources/assets/`, rename `base.blade.php` to `app.blade.php` ([#1864](https://github.com/roots/sage/pull/1864))
* Add option to configure build settings ([#1822](https://github.com/roots/sage/pull/1822))
* Add support for HTML injection ([#1817](https://github.com/roots/sage/pull/1817))
* Add Tachyons as a CSS framework option ([#1867](https://github.com/roots/sage/pull/1867))
### 9.0.0-beta.2: January 19th, 2017
* Fix Browersync ([#1815](https://github.com/roots/sage/pull/1815))
* Add option to select CSS framework, add Foundation as an option ([#1813](https://github.com/roots/sage/pull/1813))
* Add option to add Font Awesome ([#1812](https://github.com/roots/sage/pull/1812))
* Add option to change theme file headers ([#1811](https://github.com/roots/sage/pull/1811))
* Add option to remove Bootstrap ([#1810](https://github.com/roots/sage/pull/1810))
* Remove Font Awesome ([#1809](https://github.com/roots/sage/pull/1809))
* Remove grid defaults ([#1808](https://github.com/roots/sage/pull/1808))
* Fix for `publicPath` ([#1806](https://github.com/roots/sage/pull/1806))
* Update clean task name ([#1800](https://github.com/roots/sage/pull/1800))
* Allow browser versions to be configured in `config.json` ([#1798](https://github.com/roots/sage/pull/1798))
* Use stock ESLint ([#1796](https://github.com/roots/sage/pull/1796))
### 9.0.0-beta.1: January 10th, 2017
* Update to Bootstrap 4 Alpha 6 ([#1792](https://github.com/roots/sage/pull/1792))
* Add Blade ([#1765](https://github.com/roots/sage/pull/1765) and [#1777](https://github.com/roots/sage/pull/1777))
* Remove sidebar defaults ([#1760](https://github.com/roots/sage/pull/1760))
* Remove post formats ([#1759](https://github.com/roots/sage/pull/1759))
### 9.0.0-alpha.4: November 16th, 2016
* Use new webpack api schema ([8ac5f15](https://github.com/roots/sage/commit/e6e60aa))
* Update dependencies ([70ebba7](https://github.com/roots/sage/commit/70ebba7))
* Variables organization ([8ac5f15](https://github.com/roots/sage/commit/8ac5f15))
* Use `$.fn.ready()` (reverts [724d550](https://github.com/roots/sage/commit/724d550)) ([e7fccbe](https://github.com/roots/sage/commit/e7fccbe))
* Theme activation updates 'stylesheet' option instead of 'template' ([fb19145](https://github.com/roots/sage/commit/fb19145))
* Reorganize and refactor build routine ([8c9ba05](https://github.com/roots/sage/commit/8c9ba05))
* Switch assets manifest plugin ([c1bb2b3](https://github.com/roots/sage/commit/c1bb2b3))
* Add images to assets manifest ([c49793c](https://github.com/roots/sage/commit/c49793c))
* Switch from babel to buble ([0d38ab8](https://github.com/roots/sage/commit/0d38ab8))
* Update dependencies & webpack compatibility ([eae52fd](https://github.com/roots/sage/commit/eae52fd))
* Use http by default (not https) to be consistent with Trellis ([e6f2f49](https://github.com/roots/sage/commit/e6f2f49))
### 9.0.0-alpha.3: September 11th, 2016
* Fix webpack HMR ([#1713](https://github.com/roots/sage/issues/1713))
* Remove minor edits from CHANGELOG.md ([3516629](https://github.com/roots/sage/commit/3516629))
### 9.0.0-alpha.2: September 4th, 2016
* Refactor build routine ([#1703](https://github.com/roots/sage/pull/1703))
* Update `_grid.scss` to use `@include make-col-ready()` mixin ([#1706](https://github.com/roots/sage/pull/1706))
### 9.0.0-alpha.1: August 30th, 2016
* Move assets found in `node_modules/` to `dist/vendor`, simpler `assets/config.json` ([#1697](https://github.com/roots/sage/pull/1697))
* Set dynamically absolute public path ([#1696](https://github.com/roots/sage/pull/1696))
* Load Tether ([#1686](https://github.com/roots/sage/pull/1686))
* Squash asset pipeline bugs ([4d58f88](https://github.com/roots/sage/commit/4d58f88))
* Update dependencies, incl Bootstrap 4 alpha 3 ([447c24d](https://github.com/roots/sage/commit/447c24d))
* Fix path to stylesheet in `add_editor_style` ([#1684](https://github.com/roots/sage/pull/1684))
* Update required Node.js version ([72b2d89](https://github.com/roots/sage/commit/72b2d89))
* Router doesn't require jQuery, use default params ([339cc8e](https://github.com/roots/sage/commit/339cc8e))
* Fix display of theme name in Customizer ([3425386](https://github.com/roots/sage/commit/3425386))
* Convert scripts to ES6 ([f34af48](https://github.com/roots/sage/commit/f34af48))
* Refactor functions.php ([eae36be](https://github.com/roots/sage/commit/eae36be))
* Rework template wrapper, bring back template_part() ([#1678](https://github.com/roots/sage/pull/1678))
* Remove unused static variable in Wrapper ([9bfdd5a](https://github.com/roots/sage/commit/9bfdd5a))
* Remove `path.extname()` check ([#1673](https://github.com/roots/sage/pull/1673))
* Updated to align with the Bootstrap 4 docs ([#1667](https://github.com/roots/sage/pull/1667))
* Add `npm prune` to Travis CI ([#1663](https://github.com/roots/sage/pull/1663))
* Bootstrap NPM ^4.0.0-alpha.2 ([#1650](https://github.com/roots/sage/pull/1650))
* Fix Bootstrap 4 styles ([#1642](https://github.com/roots/sage/pull/1642))
* Fix autoloader load order issue when including Sage 9 via composer.json in Bedrock ([#1628](https://github.com/roots/sage/pull/1628))
* `is_page_template()` requires the name of the subfolder ([#1626](https://github.com/roots/sage/pull/1626))
* Webpack config improvements ([#1629](https://github.com/roots/sage/pull/1629))
* Webpack implementation improvements ([#1627](https://github.com/roots/sage/pull/1627))
* Webpack implementation ([#1625](https://github.com/roots/sage/pull/1625))
* Fix BS4 grid after their grid updates ([5551dde](https://github.com/roots/sage/commit/5551dde))
* Pass the correct template ([856a482](https://github.com/roots/sage/commit/856a482))
* Optimize travis a bit ([b42c425](https://github.com/roots/sage/commit/b42c425))
* Move single-post loop to single.php, closes #1582 ([6efa099](https://github.com/roots/sage/commit/6efa099))
* All function braces need to be on new line ([b491f76](https://github.com/roots/sage/commit/b491f76))
* Fix issue with WP loading wrong index.php ([9e2917e](https://github.com/roots/sage/commit/9e2917e))
* Use 4 spaces for `src/*.php` ([fe659f4](https://github.com/roots/sage/commit/fe659f4))
* Use phpcs.xml for all rules ([246955c](https://github.com/roots/sage/commit/246955c))
* Conform to new rules ([6a4d3bd](https://github.com/roots/sage/commit/6a4d3bd))
* Create new phpcs rules ([2d02544](https://github.com/roots/sage/commit/2d02544))
* Remove Template class ([1df3fee](https://github.com/roots/sage/commit/1df3fee))
* Remove closure from sidebar registration ([12d6ac3](https://github.com/roots/sage/commit/12d6ac3))
* Remove sage.pot ([d4461fa](https://github.com/roots/sage/commit/d4461fa))
* Remove template_part, template_sidebar, temp sidebar fix ([abeea0f](https://github.com/roots/sage/commit/abeea0f))
* Update asset handles ([fa0e51f](https://github.com/roots/sage/commit/fa0e51f))
* Remove comment-reply JS ([d217ba6](https://github.com/roots/sage/commit/d217ba6))
* Update node in travis, remove unsupported php ([8712dc8](https://github.com/roots/sage/commit/8712dc8))
* Update dependencies, switch to eslint ([e51e41e](https://github.com/roots/sage/commit/e51e41e))
* Bootstrap 4 ([c9ef232](https://github.com/roots/sage/commit/c9ef232))
* Fix: page title not displaying ([9283bbb](https://github.com/roots/sage/commit/9283bbb))
* Rename interfaces, unset after unwrapping ([97906e9](https://github.com/roots/sage/commit/97906e9))
* Restructure theme, use autoloader ([9eaffa3](https://github.com/roots/sage/commit/9eaffa3a2d4df462dd8020a10551334208bd32a3))
### 8.5.0: September 20th, 2016
* Update installation instructions
* Update dependencies
* Update to Bootstrap 4.0.0-alpha.4 ([5eb01fd](https://github.com/roots/sage/commit/5eb01fd0319a7b6576e31579dc50e16b023abb74))
### 8.4.2: February 19th, 2016
* Add Composer vendor directory to gitignore ([#1618](https://github.com/roots/sage/issues/1618))
* Fix build test by removing trailing space ([#1617](https://github.com/roots/sage/issues/1617))
* Replace deprecated gulp-minify-css with gulp-cssnano ([#1610](https://github.com/roots/sage/issues/1610))
### 8.4.1: January 27th, 2016
* Add `composer.json` and update installation instructions ([#1583](https://github.com/roots/sage/issues/1583))
### 8.4.0: December 1st, 2015
* Update to Bootstrap 3.3.6 ([#1578](https://github.com/roots/sage/pull/1578))
* Remove unnecessary underscore ([#1577](https://github.com/roots/sage/pull/1577))
* Drop support for older browsers ([#1571](https://github.com/roots/sage/pull/1571))
* Add support for theme customizer ([#1573](https://github.com/roots/sage/pull/1573))
* Remove extraneous no-js ([#1562](https://github.com/roots/sage/pull/1562))
* Simplify/speed up editor style process ([#1560](https://github.com/roots/sage/pull/1560))
### 8.3.0: October 13th, 2015
* Setup organization ([#1558](https://github.com/roots/sage/pull/1558))
* Remove redundancy with WAI-ARIA in HTML ([#1557](https://github.com/roots/sage/pull/1557))
* Rename config.php to setup.php ([#1556](https://github.com/roots/sage/pull/1556))
* Move init.php to config.php ([#1555](https://github.com/roots/sage/pull/1555))
* Use Sass to style search form, remove search template ([#1545](https://github.com/roots/sage/pull/1545))
* Remove Modernizr ([#1541](https://github.com/roots/sage/pull/1541))
* Remove references to WP_ENV ([#1554](https://github.com/roots/sage/pull/1554))
* Use WP core's HTML5 gallery markup ([#1546](https://github.com/roots/sage/pull/1546))
* Use slash in handle names for theme CSS and JS ([#1537](https://github.com/roots/sage/pull/1537))
* Add compatibility with WooCommerce Multilingual plugin ([#1530](https://github.com/roots/sage/pull/1530))
* Remove ConditionalTagCheck class ([#1494](https://github.com/roots/sage/pull/1494))
* Add search templates ([#1459](https://github.com/roots/sage/issues/1459))
* Allow `debugger` statements in development JavaScript ([#1487](https://github.com/roots/sage/issues/1487))
### 8.2.1: May 7th, 2015
* Update BrowserSync ([#1457](https://github.com/roots/sage/issues/1457))
* Bump dependencies ([#1448](https://github.com/roots/sage/issues/1448))
* Allow revved files to resolve in development if they exist ([#1456](https://github.com/roots/sage/issues/1456))
* Disable advanced minification features to fix incorrect file path in compiled CSS ([#1452](https://github.com/roots/sage/issues/1452))
* Fix Glyphicon font path ([#1455](https://github.com/roots/sage/issues/1455))
### 8.2.0: April 29th, 2015
* Use Sass Bootstrap by default ([#1437](https://github.com/roots/sage/issues/1437))
* Remove nav walker and Bootstrap navbar ([#1427](https://github.com/roots/sage/issues/1427))
* Remove Bootstrap gallery ([#1421](https://github.com/roots/sage/issues/1421))
* Remove hardcoded feed link ([#1426](https://github.com/roots/sage/issues/1426))
* Move jQuery CDN feature to Soil ([#1422](https://github.com/roots/sage/issues/1422))
* Bump `gulp-load-plugins` to 0.10.0 ([#1419](https://github.com/roots/sage/issues/1419))
* Switch from [yargs](https://github.com/bcoe/yargs) to [minimist](https://github.com/substack/minimist) ([#1418](https://github.com/roots/sage/issues/1418))
* Remove `$content_width` ([#1417](https://github.com/roots/sage/issues/1417))
* Lowercase `X-UA-Compatible` ([#1409](https://github.com/roots/sage/issues/1409))
* Remove mention of Google Analytics from the config ([#1384](https://github.com/roots/sage/issues/1384))
### 8.1.1: March 31st, 2015
* Remove pleeease dependency in favor of vanilla gulp-autoprefixer and gulp-minify-css ([#1402](https://github.com/roots/sage/issues/1402))
* Fix `gulp --production` race condition ([#1398](https://github.com/roots/sage/issues/1398))
* Update to Bootstrap 3.3.4 ([#1387](https://github.com/roots/sage/issues/1387))
### 8.1.0: March 13th, 2015
* Move HTML5 Boilerplate's Google Analytics snippet to Soil ([#1382](https://github.com/roots/sage/issues/1382))
* Run `gulp build` if `bower.json` is changed ([#1378](https://github.com/roots/sage/issues/1378))
* Remove namespace from base.php ([#1372](https://github.com/roots/sage/issues/1372))
* Allow build directory to be customized ([#1352](https://github.com/roots/sage/issues/1352), [#1366](https://github.com/roots/sage/issues/1366))
* Update ConditionalTagCheck and usage docs ([#1365](https://github.com/roots/sage/issues/1365))
* Change default gallery columns to 3 ([#1364](https://github.com/roots/sage/issues/1364))
* Apply `script_loader_src` filter to jQuery fallback ([#1363](https://github.com/roots/sage/issues/1363))
### 8.0.1: February 26th, 2015
* Update asset-builder version to fix Windows compatibility ([#1351](https://github.com/roots/sage/issues/1351))
* Fix broken wiredep imports with main.scss.example ([Discussion](https://discourse.roots.io/t/issue-with-sage-sass-version/2962))
### 8.0.0: February 25th, 2015
* Change theme name from Roots to Sage
* Bump required PHP version to >=5.4
* Add coding standards based on PSR-2
* Add Travis CI
* Add namespace
* Use short array syntax
* Use short echo syntax
* Switch from Grunt to gulp, new front-end development workflow
* Switch from Livereload to [BrowserSync](http://www.browsersync.io/)
* Use wiredep for Sass and Less injection
* Implement JSON file based asset pipeline with [asset-builder](https://github.com/austinpray/asset-builder)
* Re-organize asset file structure
* Re-organize stylesheet file structure
* Add main.scss.example and instructions for using Sass
* Use the primary theme stylesheet for the editor stylesheet
* Remove theme activation, move to [wp-cli-theme-activation](https://github.com/roots/wp-cli-theme-activation)
* Simplify 404 page
* Convert Sidebar to ConditionalTagCheck
* Update to jQuery 1.11.2
* Use new core navigation template tag
* Update sidebar to fix default template check
* Update nav walker to correctly assign `active` classes for custom post types
* Better support for CPT templates
### 7.0.3: December 18th, 2014
* Use `get_the_archive_title`
* Remove `wp_title`, add title-tag theme support
* Remove `Roots_Nav_Walker` as default for all menus
* Update to Bootstrap 3.3.1
* Add some base comment styling
* Make search term `required` in search form
### 7.0.2: October 24th, 2014
* Simplify comments, use core comment form and list
* Remove HTML5 shiv from Modernizr build
* Move JavaScript to footer
* Update hEntry schema to use `updated` instead of `published`
* Move variables into `main.less`
* Add `roots_body_class` function that checks for page slug in `body_class`
* Move `wp_footer` from footer template into `base.php`
### 7.0.1: August 15th, 2014
* Move `<main>` and `.sidebar` markup out of PHP and into LESS
* Define `WP_ENV` if it is not already defined
* Only load Google Analytics in production environment
### 7.0.0: July 3rd, 2014
* Updated Grunt workflow
* Use grunt-modernizr to make a lean Modernizr build
* Use Bower for front-end package management
* Update to Bootstrap 3.2.0
* Update to Modernizr 2.8.2
* Update to jQuery 1.11.1
* Move clean up, relative URLs, and nice search to [Soil](https://github.com/roots/soil)
* Update LESS organization
* Move [community translations](https://github.com/roots/roots-translations) to separate repository
### 6.5.2: February 4th, 2014
* Update to Bootstrap 3.1.0
* Move DOM routing into an anonymous function to support jQuery noConflict
* Update to jQuery 1.11.0
* Add notice to theme activation, tidy activation table markup
* Remove changing media folder from theme activation (use [Bedrock](https://github.com/roots/bedrock) for clean URLs out of the box)
* Switch `div.main` to `main` element now that Modernizr uses the latest HTML5 Shiv
* Update to Modernizr 2.7.0
* Don't run JSHint on plugins (`assets/js/plugins/`)
* Disable warnings about undefined variables (JSHint)
* Merge in updates from HTML5 Boilerplate
* Add JS source map (disabled by default)
* Replace `grunt-recess` with `grunt-contrib-less`, add LESS source map support
### 6.5.1: November 5th, 2013
* Move clean URLs to a [plugin](https://github.com/roots/roots-rewrites)
* Update to Bootstrap 3.0.1
### 6.5.0: August 23rd, 2013
* Reference new site, [http://roots.io/](http://roots.io/)
* Remove bundled docs, reference [http://roots.io/docs/](http://roots.io/docs/)
* Use Bootstrap variables for media queries
* Update to Bootstrap 3.0.0
* Update to jQuery 1.10.2
* Change media directory from `/assets/` to `/media/`
* Update to Google Universal Analytics
* Show author display name for author archives
* Add Serbian translation
* Remove post tags from templates
* Remove TinyMCE valid elements tweaks (no longer necessary)
* Remove additional widget classes
* Move `/assets/css/less/` to `/assets/less/`
* Add wrapper templates filter
* Fix relative external URLs issue
### 6.4.0: May 1st, 2013
* Fix Theme Activation page issues
* Fix issues with root relative URLs and rewrites on non-standard setups
* Make sure rewrites are added to `.htaccess` immediately after activation
* Move HTML5 Boilerplate's `.htaccess` to a [plugin](https://github.com/roots/wp-h5bp-htaccess)
* Rename `page-custom.php` to `template-custom.php`
* Don't warn about unwritable htaccess if that option is disabled
* Add missing collapse class for top navbar
* Add comment template
* Update is_dropdown evaluation in nav walker
* Re-organize archives template
* Add missing comment ID
* hNews consistency with entry-title class
* Add `wp_title()` filter
* Fix missing closing div in comments
* Fix for navbar dropdowns
* Add option for using jQuery on Google CDN
* Correct logic in `roots_enable_root_relative_urls`
* Add Greek translation, update Brazilian Portuguese translation
* Update to Bootstrap 2.3.1
* Simplify alerts
* Remove disabled post nav links
* Use Bootstrap media object for listing comments
* Move Google Analytics to `lib/scripts.php`
* Static top navbar instead of fixed
### 6.3.0: February 8th, 2013
* Update to Bootstrap 2.3.0
* Update to jQuery 1.9.1
* Output author title with `get_the_author()`
* Add EditorConfig
* Update 404 template based on H5BP
* Update H5BP's included .htaccess
* Don't show comments on passworded posts
* Add `do_action('get_header')` for WooSidebars compatibility
* Simplify entry meta
* Allow `get_search_form()` to be called more than once per request
* Move plugins.js and main.js to footer
* JavaScript clean up (everything is now enqueued)
* Remove conditional feed
* Introduce `add_theme_support('bootstrap-gallery')`
* Rewrites organization (introduce `lib/rewrites.php`)
* Fix `add_editor_style` path
* Updated translations: French, Bulgarian, Turkish, Korean
* Enable `add_theme_support` for Nice Search
* Replace ID's with classes
* Add support for dynamic sidebar templates
* Fix PHP notice on search with no results
* Update to jQuery 1.9.0
### 6.2.0: January 13th, 2013
* Implement latest Nice Search
* Update [gallery] shortcode
* Add Simplified Chinese, Indonesian, Korean translations
* Move template title to `lib/utils.php`
* Update to Bootstrap 2.2.2
* Update to jQuery 1.8.3
* Use `entry-summary` class for excerpts per Readability's Article Publishing Guidelines
* Cleanup/refactor `lib/activation.php`
* Remove `lib/post-types.php` and `lib/metaboxes.php`
* Make sure Primary Navigation menu always gets created and has the location set upon activation, update activation permalink method
* Update to Bootstrap 2.2.1
* Update conditional feed method
* Update to Bootstrap 2.2.0
* Return instead of echo class names in `roots_main_class` and `roots_sidebar_class`
* Move nav customizations into `lib/nav.php`
### 6.1.0: October 2nd, 2012
* Change roots_sidebar into a more explicit configuration array
* Re-organize configuration/setup files
* Update to jQuery 1.8.2
* Refactor/simplify Roots vCard Widget
* Move custom entry_meta code into template
* Move Google Analytics code into footer template
* Add CONTRIBUTING.md to assist with the new GitHub UI
* Add nav walker support for CSS dividers and nav-header
### 6.0.0: September 16th, 2012
* Simplify nav walker and support 3rd level dropdowns
* Update to Bootstrap 2.1.1, jQuery 1.8.1, Modernizr 2.6.2
* Add bundled docs
* Update all templates to use [PHP Alternative Syntax](http://php.net/manual/en/control-structures.alternative-syntax.php)
* Add MIT License
* Implement scribu's [Theme Wrapper](http://scribu.net/wordpress/theme-wrappers.html) (see `base.php`)
* Move `css/`, `img/`, and `js/` folders within a new `assets/` folder
* Move templates, `comments.php`, and `searchform.php` to `templates/` folder
* Rename `inc/` to `lib/`
* Add placeholder `lib/post-types.php` and `lib/metaboxes.php` files
* Rename `loop-` files to `content-`
* Remove all hooks
* Use `templates/page-header.php` for page titles
* Use `head.php` for everything in `<head>`
### 5.2.0: August 18th, 2012
* Update to jQuery 1.8.0 and Modernizr 2.6.1
* Fix duplicate active class in `wp_nav_menu` items
* Merge `Roots_Navbar_Nav_Walker` into `Roots_Nav_Walker`
* Add and update code documentation
* Use `wp_get_theme()` to get the theme name on activation
* Use `<figure>` & `<figcaption>` for captions
* Wrap embedded media as suggested by Readability
* Remove unnecessary `remove_action`'s on `wp_head` as of WordPress 3.2.1
* Add updates from HTML5 Boilerplate
* Remove well class from sidebar
* Flush permalinks on activation to avoid 404s with clean URLs
* Show proper classes on additional `wp_nav_menu()`'s
* Clean up `inc/cleanup.php`
* Remove old admin notice for tagline
* Remove default tagline admin notice, hide from feed
* Fix for duplicated classes in widget markup
* Show title on custom post type archive template
* Fix for theme preview in WordPress 3.3.2
* Introduce `inc/config.php` with options for clean URLs, H5BP's `.htaccess`, root relative URLs, and Bootstrap features
* Allow custom CSS classes in menus, walker cleanup
* Remove WordPress version numbers from stylesheets
* Don't include HTML5 Boilerplate's `style.css` by default
* Allow `inc/htaccess.php` to work with Litespeed
* Update to Bootstrap 2.0.4
* Update Bulgarian translation
* Don't use clean URLs with default permalink structure
* Add translations for Catalan, Polish, Hungarian, Norwegian, Russian
### 5.1.0: April 14th, 2012
* Various bugfixes for scripts, stylesheets, root relative URLs, clean URLs, and htaccess issues
* Add a conditional feed link
* Temporarily remove Gravity Forms customizations
* Update to Bootstrap 2.0.2
* Update `roots.pot` for translations
* Add/update languages: Vietnamese, Swedish, Bulgarian, Turkish, Norwegian, Brazilian Portugese
* Change widgets to use `<section>` instead of `<article>`
* Add comment-reply.js
* Remove optimized robots.txt
* HTML5 Boilerplate, Modernizr, and jQuery updates
### 5.0.0: February 5th, 2012
* Remove all frameworks except Bootstrap
* Update to Bootstrap 2.0
* Remove `roots-options.php` and replaced with a more simple `roots-config.php`
* Now using Bootstrap markup on forms, page titles, image galleries, alerts and errors, post and comment navigation
* Remove Roots styles from `style.css` and introduced `app.css` for site-specific CSS
* Remove almost all previous default Roots styling
* Latest updates from HTML5 Boilerplate
### 4.1.0: February 1st, 2012
* Update translations
* HTML5 Boilerplate updates
* Fix for Server 500 errors
* Add `roots-scripts.php`, now using `wp_enqueue_script`
* Re-organize `roots-actions.php`
* Allow `<script>` tags in TinyMCE
* Add full width class and search form to 404 template
* Remove Blueprint CSS specific markup
* Use Roots Nav Walker as default
* Add author name and taxonomy name to archive template title
* Add Full Width CSS class options
### 4.0.0: January 4th, 2012
* Add theme activation options
* HTML5 Boilerplate updates
* Add CSS frameworks: Bootstrap, Foundation
* Add translations: Dutch, Italian, Macedonian, German, Finnish, Danish, Spanish, and Turkish
* Update jQuery
* Remove included jQuery plugins
* Clean up whitespace, switched to two spaces for tabs
* Clean up `body_class()` some more with `roots_body_class()`
* Post meta information is now displayed using a function (similar to Twenty Eleven)
* Bugfixes for 1140 options
* Add first and last classes to widgets
* Fix bug with initial options save
* Remove sitemap and listing subpages templates
* Child themes can now unregister sidebars
* Add fix for empty search query
* Update README
* Blocking access to readme.html and license.txt to hide WordPress version information
### 3.6.0: August 12th, 2011
* HTML5 Boilerplate 2.0 updates
* Cleaner output of enqueued styles and scripts
* Adde option for root relative URLs
* Small fixes to root relative URLs and clean assets
* Update included jQuery plugins
* Add French translation (thanks @johnraz)
* Add Brazilian Portuguese translation (thanks @weslly)
* Switch the logo to use `add_custom_image_header`
* Add a function that strips unnecessary self-closing tags
* Code cleanup and re-organization
### 3.5.0: July 30th, 2011
* Complete rewrite of theme options based on Twenty Eleven
* CSS frameworks: refactor code and add default classes for each framework
* CSS frameworks: add support for Adapt.js and LESS
* CSS frameworks: add option for None
* Add support for WPML and theme translation
* Add option for cleaner nav menu output
* Add option for FOUT-B-Gone
* Add authorship rel attribute to post author link
* Activation bugfix for pages being added multiple times
* Bugfixes to the root relative URL function
* Child themes will now load their CSS automatically and properly
* HTML5 Boilerplate updates (including Normalize.css, Modernizr 2.0, and Respond.js)
* Introduce cleaner way of including HTML5 Boilerplate's `.htaccess`
* Add hooks &amp; actions
* Rename `includes/` directory to `inc/`
* Add a blank `inc/roots-custom.php` file
### 3.2.4: May 19th, 2011
* Bugfixes
* Match latest changes to HTML5 Boilerplate and Blueprint CSS
* Update jQuery to 1.6.1
### 3.2.3: May 10th, 2011
* Bugfixes
* Add `language_attributes()` to `<html>`
* Match latest changes to HTML5 Boilerplate and Blueprint CSS
* Update jQuery to 1.6
### 3.2.2: April 24th, 2011
* Bugfixes
### 3.2.1: April 20th, 2011
* Add support for child themes
### 3.2.0: April 15th, 2011
* Add support for the 1140px Grid
* Update the conditional comment code to match latest changes to HTML5 Boilerplate
### 3.1.1: April 7th, 2011
* Fix relative path function to work correctly when WordPress is installed in a subdirectory
* Update jQuery to 1.5.2
* Fix comments to show avatars correctly
### 3.1.0: April 1st, 2011
* Add support for 960.gs thanks to John Liuti
* Add more onto the `.htaccess` from HTML5 Boilerplate
* Allow the theme directory and name to be renamable
### 3.0.0: March 28th, 2011
* Change name from BB to Roots and release to the public
* Update various areas to match the latest changes to HTML5 Boilerplate
* Change the theme markup based on hCard/Readability Guidelines and work by Jonathan Neal
* Create the navigation menus and automatically set their locations during theme activation
* Set permalink structure to `/%year%/%postname%/`
* Set uploads folder to `/assets/`
* Rewrite static folders in `/wp-content/themes/roots/` (`css/`, `js/`, `img/`) to the root (`/css/`, `/js/`, `/img/`)
* Rewrite `/wp-content/plugins/` to `/plugins/`
* Add more root relative URLs on WordPress functions
* Search results (`/?s=query`) rewrite to `/search/query/`
* `l10n.js` is deregistered
* Change [gallery] to output `<figure>` and `<figcaption>` and link to file by default
* Add more `loop.php` templates
* Made the HTML editor have a monospaced font
* Add `front-page.php`
* Update CSS for Gravity Forms 1.5
* Add `searchform.php template`
### 2.4.0: January 25th, 2011
* Add a notification when saving the theme settings
* Add support for navigation menus
* Create function that makes sure there is a Home page on theme activation
* Update various areas to match the latest changes to HTML5 Boilerplate
### 2.3.0: December 8th, 2010
* Logo is no longer an `<h1>`
* Add ARIA roles again
* Change `ul#nav` to `nav#nav-main`
* Add vCard to footer
* Made all URL's root relative
* Add Twitter and Facebook widgets to footer
* Add SEO optimized `robots.txt` from WordPress codex
### 2.2.0: September 20th, 2010
* Add asynchronous Google Analytics
* Update `.htaccess` with latest changes from HTML5 Boilerplate
### 2.1.0: August 19th, 2010
* Remove optimizeLegibility from headings
* Update jQuery to latest version
* Implement HTML5 Boilerplate `.htaccess`
### 2.0.1: August 2nd, 2010
* Add some presentational CSS classes
* Add footer widget
* Add more Gravity Forms default styling
### 2.0.0: July 19th, 2010
* Add HTML5 Boilerplate changes
* Implement `loop.php`
* wp_head cleanup
* Add `page-subpages.php` template
### 1.5.0: April 15th, 2010
* Integrate Paul Irish's frontend-pro-template (the original HTML5 Boilerplate)
### 1.0.0: December 18th, 2009
* Add Blueprint CSS to Starkers

View File

@@ -1,4 +1,4 @@
Copyright (c) Ben Word and Scott Walkinshaw
Copyright (c) Roots Software LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

137
README.md
View File

@@ -1,124 +1,31 @@
# [Sage](https://roots.io/sage/)
[![Packagist](https://img.shields.io/packagist/vpre/roots/sage.svg?style=flat-square)](https://packagist.org/packages/roots/sage)
[![devDependency Status](https://img.shields.io/david/dev/roots/sage.svg?style=flat-square)](https://david-dm.org/roots/sage#info=devDependencies)
[![Build Status](https://img.shields.io/travis/roots/sage.svg?style=flat-square)](https://travis-ci.org/roots/sage)
<p align="center">
<a href="https://roots.io/sage/"><img alt="Sage" src="https://cdn.roots.io/app/uploads/logo-sage.svg" height="100"></a>
</p>
Sage is a WordPress starter theme with a modern development workflow.
<p align="center">
<a href="https://packagist.org/packages/roots/sage"><img alt="Packagist Installs" src="https://img.shields.io/packagist/dt/roots/sage?label=projects%20created&colorB=2b3072&colorA=525ddc&style=flat-square"></a>
<a href="https://github.com/roots/sage/actions/workflows/main.yml"><img alt="Build Status" src="https://img.shields.io/github/actions/workflow/status/roots/sage/main.yml?branch=main&logo=github&label=CI&style=flat-square"></a>
<a href="https://bsky.app/profile/roots.dev"><img alt="Follow roots.dev on Bluesky" src="https://img.shields.io/badge/follow-@roots.dev-0085ff?logo=bluesky&style=flat-square"></a>
</p>
**Sage 9 is in active development and is currently in beta. The `master` branch tracks Sage 9 development. If you want a stable version, use the [latest Sage 8 release](https://github.com/roots/sage/releases/latest).**
# Sage
## Features
**Advanced hybrid WordPress starter theme with Laravel Blade and Tailwind CSS**
* Sass for stylesheets
* ES6 for JavaScript
* [Webpack](https://webpack.github.io/) for compiling assets, optimizing images, and concatenating and minifying files
* [Browsersync](http://www.browsersync.io/) for synchronized browser testing
* [Laravel Blade](https://laravel.com/docs/5.3/blade) as a templating engine
* [Controller](https://github.com/soberwp/controller) for passing data to Blade templates
* CSS framework options:
* [Bootstrap 4](http://getbootstrap.com/)
* [Foundation](http://foundation.zurb.com/)
* [Tachyons](http://tachyons.io/)
* None (blank slate)
* Font Awesome (optional)
- 🔧 Clean, efficient theme templating with Laravel Blade
- ⚡️ Modern front-end development workflow powered by Vite
- 🎨 Out of the box support for Tailwind CSS
- 🚀 Harness the power of Laravel with [Acorn integration](https://github.com/roots/acorn)
- 📦 Block editor support built-in
See a working example at [roots-example-project.com](https://roots-example-project.com/).
Sage brings proper PHP templating and modern JavaScript tooling to WordPress themes. Write organized, component-based code using Laravel Blade, enjoy instant builds and CSS hot-reloading with Vite, and leverage Laravel's robust feature set through Acorn.
## Requirements
[Read the docs to get started](https://roots.io/sage/docs/installation/)
Make sure all dependencies have been installed before moving on:
## Sponsors
* [WordPress](https://wordpress.org/) >= 4.7
* [PHP](http://php.net/manual/en/install.php) >= 7.0
* [Composer](https://getcomposer.org/download/)
* [Node.js](http://nodejs.org/) >= 6.9.x
* [Yarn](https://yarnpkg.com/en/docs/install)
Sage is an open source project and completely free to use. If you've benefited from our projects and would like to support our future endeavors, [please consider sponsoring us](https://github.com/sponsors/roots).
## Theme installation
Install Sage using Composer from your WordPress themes directory (replace `your-theme-name` below with the name of your theme):
```shell
# @ app/themes/ or wp-content/themes/
$ composer create-project roots/sage your-theme-name dev-master
```
During theme installation you will have the options to:
* Update theme headers (theme name, description, author, etc.)
* Select a CSS framework (Bootstrap, Foundation, Tachyons, none)
* Add Font Awesome
* Configure Browsersync (path to theme, local development URL)
## Theme structure
```shell
themes/your-theme-name/ # → Root of your Sage based theme
├── app/ # → Theme PHP
│ ├── lib/Sage/ # → Blade implementation, asset manifest
│ ├── admin.php # → Theme customizer setup
│ ├── filters.php # → Theme filters
│ ├── helpers.php # → Helper functions
│ └── setup.php # → Theme setup
├── composer.json # → Autoloading for `app/` files
├── composer.lock # → Composer lock file (never edit)
├── dist/ # → Built theme assets (never edit)
├── node_modules/ # → Node.js packages (never edit)
├── package.json # → Node.js dependencies and scripts
├── resources/ # → Theme assets and templates
│ ├── assets/ # → Front-end assets
│ │ ├── config.json # → Settings for compiled assets
│ │ ├── build/ # → Webpack and ESLint config
│ │ ├── fonts/ # → Theme fonts
│ │ ├── images/ # → Theme images
│ │ ├── scripts/ # → Theme JS
│ │ └── styles/ # → Theme stylesheets
│ ├── controllers/ # → Controller files
│ ├── functions.php # → Composer autoloader, theme includes
│ ├── index.php # → Never manually edit
│ ├── screenshot.png # → Theme screenshot for WP admin
│ ├── style.css # → Theme meta information
│ └── views/ # → Theme templates
│ ├── layouts/ # → Base templates
│ └── partials/ # → Partial templates
└── vendor/ # → Composer packages (never edit)
```
## Theme setup
Edit `app/setup.php` to enable or disable theme features, setup navigation menus, post thumbnail sizes, and sidebars.
## Theme development
* Run `yarn` from the theme directory to install dependencies
* Update `resources/assets/config.json` settings:
* `devUrl` should reflect your local development hostname
* `publicPath` should reflect your WordPress folder structure (`/wp-content/themes/sage` for non-[Bedrock](https://roots.io/bedrock/) installs)
### Build commands
* `yarn run start` — Compile assets when file changes are made, start Browsersync session
* `yarn run build` — Compile and optimize the files in your assets directory
* `yarn run build:production` — Compile assets for production
## Documentation
Sage 8 documentation is available at [https://roots.io/sage/docs/](https://roots.io/sage/docs/).
Sage 9 documentation is currently in progress and can be viewed at [https://github.com/roots/docs/tree/sage-9/sage](https://github.com/roots/docs/tree/sage-9/sage).
Controller documentation is available at [https://github.com/soberwp/controller#usage](https://github.com/soberwp/controller#usage).
## Contributing
Contributions are welcome from everyone. We have [contributing guidelines](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md) to help you get started.
## Community
Keep track of development and community news.
* Participate on the [Roots Discourse](https://discourse.roots.io/)
* Follow [@rootswp on Twitter](https://twitter.com/rootswp)
* Read and subscribe to the [Roots Blog](https://roots.io/blog/)
* Subscribe to the [Roots Newsletter](https://roots.io/subscribe/)
* Listen to the [Roots Radio podcast](https://roots.io/podcast/)
<div align="center">
<a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="120" height="90"></a> <a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="120" height="90"></a> <a href="https://worksitesafety.ca/careers/"><img src="https://cdn.roots.io/app/uploads/worksite-safety.svg" alt="Worksite Safety" width="120" height="90"></a> <a href="https://40q.agency/"><img src="https://cdn.roots.io/app/uploads/40q.svg" alt="40Q" width="120" height="90"></a> <a href="https://www.itineris.co.uk/"><img src="https://cdn.roots.io/app/uploads/itineris.svg" alt="Itineris" width="120" height="90"></a> <a href="https://bonsai.so/"><img src="https://cdn.roots.io/app/uploads/bonsai.svg" alt="Bonsai" width="120" height="90"></a>
</div>

158
app/ACF/Dynamic.php Normal file
View File

@@ -0,0 +1,158 @@
<?php
namespace App\ACF;
use ourcodeworld\NameThatColor\ColorInterpreter as NameThatColor;
use App\Utilities;
class Dynamic
{
public function __construct()
{
add_filter('acf/load_field/name=colour', [ $this, 'load_colours' ]);
add_filter('acf/load_field/name=bg_colour', [ $this, 'load_colours' ]);
add_filter('acf/load_field/name=tint', [ $this, 'load_tints' ]);
add_filter('acf/load_field/name=bg_tint', [ $this, 'load_tints' ]);
add_filter('acf/load_field/name=container_width', [ $this, 'container_width' ]);
add_filter('acf/load_field/name=fontawesome_regular', [ $this, 'load_fontawesome_regular_icons' ]);
add_filter('acf/load_field/name=fontawesome_solid', [ $this, 'load_fontawesome_solid_icons' ]);
add_filter('acf/load_field/name=fontawesome_brands', [ $this, 'load_fontawesome_brand_icons' ]);
add_action('acf/input/admin_footer', [ $this, 'colour_ui' ]);
}
public function load_colours( $field )
{
$colour = new Utilities\Colour;
$NameThatColour = new NameThatColor;
$colours = $colour->values();
$field['choices'] = [
'0' => __('None', 'badegg'),
];
foreach($colours as $slug => $hex):
$field['choices'][$slug] = '<i class="fas fa-circle" style="color: '. $hex .'"></i> ' . @$NameThatColour->name($hex)['name'];
endforeach;
return $field;
}
public function load_tints( $field )
{
$colour = new Utilities\Colour;
$tints = $colour->tints();
$field['choices'] = [];
foreach($tints as $slug => $hex):
if($slug):
$field['choices'][$slug] = ucfirst($slug);
else:
$field['choices'][0] = __('None', 'badegg');
endif;
endforeach;
return $field;
}
public function container_width( $field )
{
$field['choices'] = [
0 => 'Auto',
'narrow' => __('Narrow', 'badegg'),
'small' => __('Small', 'badegg'),
'medium' => __('Medium', 'badegg'),
'large' => __('Large', 'badegg'),
'full' => __('Edge to edge', 'badegg'),
];
return $field;
}
public function load_fontawesome_regular_icons( $field )
{
$field['choices'] = [];
$field['choices'] = $this->fontawesome_choices('regular');
return $field;
}
public function load_fontawesome_solid_icons( $field )
{
$field['choices'] = [];
$field['choices'] = $this->fontawesome_choices('solid');
return $field;
}
public function load_fontawesome_brand_icons( $field )
{
$field['choices'] = [];
$field['choices'] = $this->fontawesome_choices('brands');
return $field;
}
public function fontawesome_choices($set = 'solid')
{
$path = get_stylesheet_directory() . '/resources/json/font-awesome-' . $set . '.json';
$json = @file_get_contents($path);
if(!$json) return false;
$icons = json_decode($json, true);
$choices = [
'0' => '<i class="fa-solid"></i> <span>Please select an icon</span>',
];
foreach($icons as $slug => $props):
if(in_array($slug, range(0,9))) continue;
$choices[$slug] = '<i class="fa-'.$set.' fa-'.$slug.'" style="color: #2271b1;"></i> <span>' . (ucwords(str_replace('-', ' ', $slug))) . '</span>';
endforeach;
return $choices;
}
public function colour_ui()
{ ?>
<script type="text/javascript">
console.log("Script loaded from sage/app/ACF/Dynamic.php");
(function($) {
function my_custom_escaping_method( original_value){
return original_value;
}
acf.add_filter('select2_escape_markup', function( escaped_value, original_value, $select, settings, field, instance ){
console.log(field.data('name'));
const whitelist = [
'colour',
'bg_colour',
'angle_colour',
'fontawesome_brands',
];
// do something to the original_value to override the default escaping, then return it.
// this value should still have some kind of escaping for security, but you may wish to allow specific HTML.
if (whitelist.includes(field.data( 'name' ))) {
return my_custom_escaping_method( original_value );
}
// return
return escaped_value;
});
})(jQuery);
</script>
<?php }
}

25
app/ACF/JSON.php Normal file
View File

@@ -0,0 +1,25 @@
<?php
namespace App\ACF;
class JSON
{
public function __construct()
{
add_filter('acf/settings/save_json', [$this, 'save']);
add_filter('acf/settings/load_json', [$this, 'load']);
}
public function save( $path )
{
$path = get_stylesheet_directory() . '/resources/acf';
return $path;
}
public function load( $paths )
{
unset($paths[0]);
$paths[] = get_stylesheet_directory() . '/resources/acf';
return $paths;
}
}

23
app/ACF/Options.php Normal file
View File

@@ -0,0 +1,23 @@
<?php
namespace App\ACF;
class Options
{
public function __construct()
{
add_filter('acf/init', [$this, 'company']);
}
public function company()
{
acf_add_options_page([
'page_title' => __('Global Settings'),
'menu_title' => __('Global Settings'),
'menu_slug' => 'theme-global-settings',
'capability' => 'edit_others_posts',
'redirect' => false,
'icon_url' => 'dashicons-admin-site',
]);
}
}

67
app/Admin/Comments.php Normal file
View File

@@ -0,0 +1,67 @@
<?php
namespace App\Admin;
class Comments
{
public function __construct()
{
add_action('admin_init', [$this, 'commentstatusdiv']); // Disable comment status div meta box
add_action('wp_dashboard_setup', [$this, 'dashboard_activity']); // Remove the Activity widget
add_action('wp_before_admin_bar_render', [$this, 'remove_menu_item']); // Remove from admin bar
add_action('admin_menu', [$this, 'admin_menu']); // Remove from backend menu
add_action('wp_dashboard_setup', [$this, 'dashboard_recent_comments']); // Remove Dashboard Meta Box
add_filter('comments_rewrite_rules', '__return_empty_array'); // Remove comment rewrite rule
add_action('after_theme_setup', [$this, 'theme_support']); // Remove comment theme support
add_filter('rewrite_rules_array', [$this, 'rewrite']); // Clean up rewrite rule
}
public function commentstatusdiv()
{
remove_meta_box( 'commentstatusdiv', 'post', 'normal' );
remove_post_type_support( 'post', 'comments' );
remove_meta_box( 'commentstatusdiv', 'page', 'normal' );
remove_post_type_support( 'page', 'comments' );
}
public function dashboard_activity()
{
remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );
}
public function remove_menu_item()
{
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
}
public function admin_menu()
{
remove_menu_page( 'edit-comments.php' );
remove_submenu_page( 'options-general.php', 'options-discussion.php' );
}
public function dashboard_recent_comments()
{
remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
}
public function theme_support()
{
remove_theme_support('comments');
}
public function rewrite($rules)
{
foreach ($rules as $rule => $rewrite) {
if (preg_match('/.*(feed)/', $rule)) {
unset($rules[$rule]);
}
if (preg_match('/.*(comment-page)/', $rule)) {
unset($rules[$rule]);
}
}
return $rules;
}
}

27
app/Admin/DisablePost.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
namespace App\Admin;
class DisablePost
{
public function __construct()
{
// add_filter('register_post_type_args', [$this, 'args'], 0, 2);
// add_filter('register_taxonomy_args', [$this, 'args'], 0, 2);
}
public function args($args, $type)
{
$types = [
'post',
'post_tag',
'category',
];
if(in_array($type, $types)) {
$args['public'] = false;
}
return $args;
}
}

22
app/Admin/Enqueue.php Normal file
View File

@@ -0,0 +1,22 @@
<?php
namespace App\Admin;
class Enqueue
{
public function __construct()
{
add_action( 'admin_enqueue_scripts', [$this, 'fontawesome']);
}
public function fontawesome()
{
wp_enqueue_style(
'fontawesome',
'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css',
false,
'6.5.2',
'all'
);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Admin;
class Integrations
{
public function __construct()
{
add_action( 'wp_head', [$this, 'FathomAnalytics']);
}
public function FathomAnalytics()
{
$fathomID = get_field('badegg_integrations_fathom_id', 'option');
if($fathomID && WP_ENV == 'production'): ?>
<!-- Fathom - beautiful, simple website analytics -->
<script src="https://cdn.usefathom.com/script.js" data-site="<?= $fathomID ?>" defer></script>
<!-- / Fathom -->
<?php endif;
}
}

35
app/Admin/Theme.php Normal file
View File

@@ -0,0 +1,35 @@
<?php
namespace App\Admin;
use ourcodeworld\NameThatColor\ColorInterpreter as NameThatColor;
use App\Utilities;
class Theme
{
public function __construct()
{
add_action( 'after_setup_theme', [$this, 'DynamicPalette'] );
}
public function DynamicPalette()
{
$colour = new Utilities\Colour;
$NameThatColour = new NameThatColor;
$palette = [];
$colours = $colour->values();
foreach($colours as $slug => $hex) {
$palette[] = [
'name' => esc_html__(@$NameThatColour->name($hex)['name'], 'badegg'),
'slug' => $slug,
'color' => $hex,
];
}
if(!empty($colours)) {
add_theme_support('editor-color-palette', $palette);
}
}
}

57
app/PostTypes/Social.php Normal file
View File

@@ -0,0 +1,57 @@
<?php
namespace App\PostTypes;
class Social
{
public function __construct()
{
add_action('init', [$this, 'register']);
}
public function register()
{
$td = 'sage';
$postType = 'social';
register_extended_post_type(
$postType,
[
'menu_position' => 28,
'supports' => [
'title',
'page-attributes',
],
'menu_icon' => 'dashicons-share',
'rewrite' => false,
'has_archive' => false,
'publicly_queryable' => false,
'exclude_from_search' => true,
'capability_type' => 'page',
'show_in_nav_menus' => false,
'admin_cols' => [
'social_link' => [
'title' => __('Social Link', $td),
'meta_key' => 'fontawesome_brands',
'function' => function(){
$icon = get_field('fontawesome_brands');
$url = get_field('url');
if($icon): ?>
<a
href="<?= $url ?: '#' ?>"
class="fa-brands fa-<?= $icon ?>"
rel="nofollow noindex"
style="font-size: 2em;"
></a>
<?php endif;
},
],
],
],
);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Providers;
use Roots\Acorn\Sage\SageServiceProvider;
class ThemeServiceProvider extends SageServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
parent::register();
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
parent::boot();
}
}

173
app/Utilities/Colour.php Normal file
View File

@@ -0,0 +1,173 @@
<?php
namespace App\Utilities;
class Colour
{
public function name2hex($colour = null, $tint = null)
{
if(!$colour) return false;
if($colour == 'black'):
$hex = '#000000';
elseif($colour == 'grey'):
$hex = '#808080';
elseif($colour == 'white'):
$hex = '#FFFFFF';
else:
// TODO: replace company_info settings page and lookup function
$hex = $this->values()[(string)$colour];
endif;
if($tint):
$tints = $this->tints();
$hex = $this->adjustBrightness($hex, $tints[$tint]);
endif;
return $hex;
}
public function values()
{
$values = [];
if(function_exists('get_field')):
$colours = get_field('badegg_colours', 'option');
if($colours):
foreach($colours as $index => $props):
$index = $index + 1;
$hex = @$props['hex'];
if($hex) $values[$this->latinate($index)] = $hex;
endforeach;
endif;
endif;
$values['white'] = '#FFFFFF';
$values['grey'] = '#808080';
$values['black'] = '#000000';
return $values;
}
public function tints()
{
return [
'lightest' => 40,
'lighter' => 25,
'light' => 10,
'0' => 0,
'dark' => -10,
'darker' => -25,
'darkest' => -40,
];
}
public function is_dark($colour = '#FFFFF', $tint = null, $override = null)
{
if($override == 'light') return true;
if($override == 'dark') return false;
// https://css-tricks.com/snippets/php/convert-hex-to-rgb/
if($tint) $colour = $this->adjustBrightness($colour, $this->tints()[$tint]);
if ( @$colour[0] == '#' ) {
$colour = substr( $colour, 1 );
}
if ( strlen( $colour ) == 6 ) {
list( $r, $g, $b ) = [
$colour[0] . $colour[1],
$colour[2] . $colour[3],
$colour[4] . $colour[5],
];
} elseif ( strlen( $colour ) == 3 ) {
list( $r, $g, $b ) = [
$colour[0] . $colour[0],
$colour[1] . $colour[1],
$colour[2] . $colour[2],
];
} else {
return false;
}
$r = hexdec( $r );
$g = hexdec( $g );
$b = hexdec( $b );
// return array( 'red' => $r, 'green' => $g, 'blue' => $b );
$hsp = sqrt(
0.299 * ($r * $r) +
0.587 * ($g * $g) +
0.114 * ($b * $b)
);
if($hsp > 200) {
return false;
} else {
return true;
}
}
public function is_light($colour = '#000000', $tint = null)
{
if($this->is_dark($colour, $tint)) {
return false;
} else {
return true;
}
}
public function adjustBrightness($hex, $steps)
{
// Steps should be between -255 and 255. Negative = darker, positive = lighter
$steps = max(-255, min(255, $steps));
// Normalize into a six character long hex string
$hex = str_replace('#', '', $hex);
if (strlen($hex) == 3) {
$hex = str_repeat(substr($hex,0,1), 2).str_repeat(substr($hex,1,1), 2).str_repeat(substr($hex,2,1), 2);
}
// Split into three parts: R, G and B
$color_parts = str_split($hex, 2);
$return = '#';
foreach ($color_parts as $color) {
$color = hexdec($color); // Convert to decimal
$color = max(0,min(255,$color + $steps)); // Adjust color
$return .= str_pad(dechex($color), 2, '0', STR_PAD_LEFT); // Make two char hex code
}
return $return;
}
public function latinate($x = 0)
{
$latinate = [
1 => 'primary',
2 => 'secondary',
3 => 'tertiary',
4 => 'quaternary',
5 => 'quinary',
6 => 'senary',
7 => 'septenary',
8 => 'octonary',
9 => 'nonary',
10 => 'denary',
11 => 'undenary',
12 => 'duodenary',
];
if(array_key_exists($x, $latinate)):
return $latinate[$x];
else:
return 0;
endif;
}
}

View File

@@ -0,0 +1,144 @@
<?php
namespace App\Utilities;
class CssClasses {
public function section($props = [], $name = 'unnamed', $knockout = false)
{
$defaults = [
'padding_top' => null,
'padding_bottom' => null,
'bg_colour' => null,
'bg_tint' => null,
'contrast' => null,
'bg_image' => null,
];
$props = wp_parse_args($props, $defaults);
$Colour = new Colour;
$hex = $Colour->name2hex($props['bg_colour'], $props['bg_tint']);
$classes = [
'section',
'section-' . str_replace('/', '-', $name),
];
if($props['bg_colour'])
$classes[] = 'bg-' . $this->colourTint([
'colour' => $props['bg_colour'],
'tint' => $props['bg_tint'],
]);
if(($props['contrast'] && $knockout))
$classes[] = 'knockout';
if(!$props['padding_top'])
$classes[] = 'section-zero-top';
if(!$props['padding_bottom'])
$classes[] = 'section-zero-bottom';
if($props['bg_image'])
$classes[] = "has-bg-image";
return $classes;
}
public function container($args = [], $bg_props = [])
{
$args = wp_parse_args($args, [
'width' => null,
'location' => null,
'section' => false,
'align' => null,
'wysiwyg' => false,
]);
$bg_props = wp_parse_args($bg_props, [
'bg_colour' => null,
'bg_tint' => null,
'contrast' => null,
]);
$Colour = new Colour;
$hex = $Colour->name2hex($bg_props['bg_colour'], $bg_props['bg_tint']);
$classes = [
'container',
];
if($args['width'])
$classes[] = 'container-' . $args['width'];
if($args['location'])
$classes[] = $args['location'];
if($args['section'])
$classes[] = 'section';
if(str_contains($args['location'], 'intro'))
$classes[] = 'section-zero-top';
if(str_contains($args['location'], 'footer'))
$classes[] = 'section-zero-bottom';
if($args['wysiwyg'])
$classes[] = 'wysiwyg';
if($args['align'])
$classes[] = 'align-' . $args['align'];
if(($bg_props['contrast']))
$classes[] = 'knockout';
return $classes;
}
public function button($args = [])
{
$default_args = [
'colour' => null,
'style' => null,
];
$args = wp_parse_args($args, $default_args);
$classes = [
'button',
];
if($args['colour']) $classes[] = $args['colour'];
if($args['style']) $classes[] = $args['style'];
return $classes;
}
public function colourTint($props = [])
{
if(@$props['colour']):
$colour = $props['colour'];
if($props['colour'] != 'black' && @$props['tint']):
$colour .= '-' . $props['tint'];
endif;
else:
$colour = 'white';
endif;
return $colour;
}
public function is_knockout_block($name = null)
{
$blacklist = [
'badegg/acfdemo',
];
if(in_array($name, $blacklist)):
return false;
else:
return true;
endif;
}
}

View File

@@ -0,0 +1,124 @@
<?php
namespace App\Utilities;
class ImageSrcset
{
public function add($args = [])
{
$args = wp_parse_args($args, $this->default_args());
$multipliers = $this->multipliers();
if(is_null($args['height'])) $args['height'] = $args['width'];
if($args['sizes'] < 5) $multipliers = array_slice($multipliers, 0, $args['sizes']);
foreach ( $multipliers as $slug => $scale ):
add_image_size (
$args['name'] . '-' . $slug,
round((int)$args['width'] * $scale),
round((int)$args['height'] * $scale),
$args['crop']
);
endforeach;
}
public function default_args()
{
return [
'name' => 'hero',
'width' => 1920,
'height' => null,
'crop' => true,
'sizes' => 5,
];
}
public function multipliers()
{
return [
'xl' => 1,
'lg' => 0.75,
'md' => 0.52083333,
'sm' => 0.33333333,
'xs' => 0.20833333,
];
}
public function render($args = [])
{
global $_wp_additional_image_sizes;
$default_args = [
'name' => 'hero',
'image' => null,
'lazy' => true,
'sizes' => 5,
'class' => null,
];
$args = wp_parse_args($args, $default_args);
$name = $args['name'];
$image = ($args['image']) ? $args['image'] : get_post_thumbnail_id();
if(!$image) return false;
$properties = @$_wp_additional_image_sizes[$name . '-xl'];
$width = @$properties['width'];
$height = @$properties['height'];
$sizes = [
'xl' => 1,
'lg' => 0.75,
'md' => 0.52083333,
'sm' => 0.33333333,
'xs' => 0.20833333,
];
if($args['sizes'] < 5) $sizes = array_slice($sizes, 0, $args['sizes']);
$class = $name . '-image';
if($args['class']) $class .= ' ' . $args['class'];
ob_start();
$full = wp_get_attachment_image_src($image, $name . '-xl');
$lazy = wp_get_attachment_image_src($image, 'lazy');
$alt = get_post_meta( $image, '_wp_attachment_image_alt', true );
$srcsets = [];
foreach($sizes as $size => $multiplier) {
$file = wp_get_attachment_image_src($image, $name . '-' . $size);
$srcsets[] = $file[0] . ' ' . $file[1] . 'w';
}
$atts = [
'class' => $class,
'src' => $full[0],
'srcset' => implode(', ', $srcsets),
'width' => $width,
'height' => $height,
'alt' => $alt,
];
if($args['lazy']):
$atts['class'] .= ' lazy';
$atts['src'] = $lazy[0];
$atts['srcset'] = null;
$atts['data-src'] = $full[0];
$atts['data-srcset'] = implode(', ', $srcsets);
endif;
?>
<img
<?php foreach($atts as $att => $value):
if($value) echo $att . '="' . $value . '" ';
endforeach; ?>
/>
<?php
return ob_get_clean();
}
}

105
app/Utilities/RestAPI.php Normal file
View File

@@ -0,0 +1,105 @@
<?php
namespace App\Utilities;
use ourcodeworld\NameThatColor\ColorInterpreter as NameThatColor;
class RestAPI
{
public function __construct()
{
add_filter( 'wp_prepare_attachment_for_js', [$this, 'image_sizes'], 10, 3 );
add_action( 'rest_api_init', [$this, 'blocks']);
}
public function image_sizes( $response, $attachment, $meta )
{
if ( empty( $response['sizes'] ) || empty( $meta['sizes'] ) ) {
return $response;
}
$custom_sizes = [ 'hero', 'lazy' ];
foreach ( $custom_sizes as $size ) {
if ( ! empty( $meta['sizes'][ $size ] ) ) {
$response['sizes'][ $size ] = [
'url' => wp_get_attachment_image_url( $attachment->ID, $size ),
'width' => $meta['sizes'][ $size ]['width'],
'height' => $meta['sizes'][ $size ]['height'],
'orientation' =>
$meta['sizes'][ $size ]['height'] > $meta['sizes'][ $size ]['width']
? 'portrait'
: 'landscape',
];
}
}
return $response;
}
public function blocks( )
{
$restBase = 'badegg/v1';
register_rest_route($restBase, '/blocks/config', [
'methods' => 'GET',
'callback' => [ $this, 'config'],
'permission_callback' => function(){
return true;
},
]);
}
public function config()
{
return rest_ensure_response([
'container' => $this->containerWidths(),
'colours' => $this->colours(),
'tints' => $this->tints(),
]);
}
public function containerWidths()
{
return [
[ 'label' => __('Auto', 'badegg'), 'value' => 0 ],
[ 'label' => __('Narrow', 'badegg'), 'value' => 'narrow' ],
[ 'label' => __('Small', 'badegg'), 'value' => 'small' ],
[ 'label' => __('Medium', 'badegg'), 'value' => 'medium' ],
[ 'label' => __('Large', 'badegg'), 'value' => 'large' ],
[ 'label' => __('Edge to edge', 'badegg'), 'value' => 'full' ],
];
}
public function colours()
{
$colour = new Colour;
$NameThatColour = new NameThatColor;
$palette = [];
$colours = $colour->values();
foreach($colours as $slug => $hex) {
$palette[] = [
'name' => esc_html__(@$NameThatColour->name($hex)['name'], 'badegg'),
'slug' => $slug,
'color' => $hex,
];
}
return $palette;
}
public function tints()
{
return [
['label' => __('Lightest', 'badegg'), 'value' => 'lightest'],
['label' => __('Lighter', 'badegg'), 'value' => 'lighter' ],
['label' => __('Light', 'badegg'), 'value' => 'light' ],
['label' => __('None', 'badegg'), 'value' => 0 ],
['label' => __('Dark', 'badegg'), 'value' => 'dark' ],
['label' => __('Darker', 'badegg'), 'value' => 'darker' ],
['label' => __('Darkest', 'badegg'), 'value' => 'darkest' ],
];
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Utilities;
class VideoSrcset
{
public function sizes($video_srcset = [])
{
if(empty($video_srcset)) return false;
$sizes = [];
foreach($video_srcset as $size => $video):
if($video):
$sizes[$size] = $video['width'];
endif;
endforeach;
if(!empty($sizes)):
return json_encode($sizes);
else:
return false;
endif;
}
public function smallest($video_srcset = [])
{
if(empty($video_srcset)) return false;
$smallest = null;
foreach($video_srcset as $size => $video):
if($smallest) continue;
if($video) $smallest = $size;
endforeach;
return $smallest;
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\View\Composers;
use Roots\Acorn\View\Composer;
use App\Utilities;
class App extends Composer
{
/**
* List of views served by this composer.
*
* @var array
*/
protected static $views = [
'*',
];
/**
* Retrieve the site name.
*/
public function siteName(): string
{
return get_bloginfo('name', 'display');
}
public function with()
{
return [
'Colour' => new Utilities\Colour,
'VideoSrcset' => new Utilities\VideoSrcset,
'ImageSrcset' => new Utilities\ImageSrcset,
'siteName' => $this->siteName(),
];
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\View\Composers;
use Roots\Acorn\View\Composer;
use App\Utilities;
class Blocks extends Composer
{
/**
* List of views served by this composer.
*
* @var array
*/
protected static $views = [
'layouts.block-acf',
'partials.block-*',
];
/**
* Data to be passed to view before rendering.
*
* @return array
*/
public function with()
{
return [
'CssClasses' => new Utilities\CssClasses,
];
}
}

View File

@@ -0,0 +1,90 @@
<?php
namespace App\View\Composers;
use Roots\Acorn\View\Composer;
class Comments extends Composer
{
/**
* List of views served by this composer.
*
* @var array
*/
protected static $views = [
'partials.comments',
];
/**
* The comment title.
*/
public function title(): string
{
return sprintf(
/* translators: %1$s is replaced with the number of comments and %2$s with the post title */
_nx('%1$s response to &ldquo;%2$s&rdquo;', '%1$s responses to &ldquo;%2$s&rdquo;', get_comments_number(), 'comments title', 'sage'),
get_comments_number() === 1 ? _x('One', 'comments title', 'sage') : number_format_i18n(get_comments_number()),
get_the_title()
);
}
/**
* Retrieve the comments.
*/
public function responses(): ?string
{
if (! have_comments()) {
return null;
}
return wp_list_comments([
'style' => 'ol',
'short_ping' => true,
'echo' => false,
]);
}
/**
* The previous comments link.
*/
public function previous(): ?string
{
if (! get_previous_comments_link()) {
return null;
}
return get_previous_comments_link(
__('&larr; Older comments', 'sage')
);
}
/**
* The next comments link.
*/
public function next(): ?string
{
if (! get_next_comments_link()) {
return null;
}
return get_next_comments_link(
__('Newer comments &rarr;', 'sage')
);
}
/**
* Determine if the comments are paginated.
*/
public function paginated(): bool
{
return get_comment_pages_count() > 1 && get_option('page_comments');
}
/**
* Determine if the comments are closed.
*/
public function closed(): bool
{
return ! comments_open() && get_comments_number() != '0' && post_type_supports(get_post_type(), 'comments');
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace App\View\Composers;
use Roots\Acorn\View\Composer;
class Post extends Composer
{
/**
* List of views served by this composer.
*
* @var array
*/
protected static $views = [
'partials.page-header',
'partials.content',
'partials.content-*',
];
/**
* Retrieve the post title.
*/
public function title(): string
{
if ($this->view->name() !== 'partials.page-header') {
return get_the_title();
}
if (is_home()) {
if ($home = get_option('page_for_posts', true)) {
return get_the_title($home);
}
return __('Latest Posts', 'sage');
}
if (is_archive()) {
return get_the_archive_title();
}
if (is_search()) {
return sprintf(
/* translators: %s is replaced with the search query */
__('Search Results for %s', 'sage'),
get_search_query()
);
}
if (is_404()) {
return __('Not Found', 'sage');
}
return get_the_title();
}
/**
* Retrieve the pagination links.
*/
public function pagination(): string
{
return wp_link_pages([
'echo' => 0,
'before' => '<p>'.__('Pages:', 'sage'),
'after' => '</p>',
]);
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\View\Composers;
use Roots\Acorn\View\Composer;
class Socials extends Composer
{
/**
* List of views served by this composer.
*
* @var array
*/
protected static $views = [
'components.socials',
];
/**
* Data to be passed to view before rendering.
*
* @return array
*/
public function with()
{
return [
'socials' => get_posts([
'post_type' => 'social',
'order' => 'ASC',
'orderby' => 'menu_order name',
'posts_per_page' => -1,
'fields' => 'ids',
]),
];
}
}

View File

@@ -1,24 +0,0 @@
<?php
namespace App;
/**
* Theme customizer
*/
add_action('customize_register', function (\WP_Customize_Manager $wp_customize) {
// Add postMessage support
$wp_customize->get_setting('blogname')->transport = 'postMessage';
$wp_customize->selective_refresh->add_partial('blogname', [
'selector' => '.brand',
'render_callback' => function () {
bloginfo('name');
}
]);
});
/**
* Customizer JS
*/
add_action('customize_preview_init', function () {
wp_enqueue_script('sage/customizer.js', asset_path('scripts/customizer.js'), ['customize-preview'], null, true);
});

201
app/blocks.php Normal file
View File

@@ -0,0 +1,201 @@
<?php
/**
* Theme Blocks.
*/
namespace App\Blocks;
add_filter('block_type_metadata', function($metadata){
$name = $metadata['name'];
if (str_starts_with($name, 'core/') ) {
unset($metadata['supports']['color']);
unset($metadata['supports']['typography']);
}
return $metadata;
});
// Disable all core blocks except what we need as inner blocks
// resources/js/editor.js handles hiding the inner blocks at the top level
add_action('allowed_block_types_all', __NAMESPACE__ . '\\list_allowed', 100, 2);
// add blocks to the allowed list via filter
add_filter('badegg_block_types_allow', function($allowed){
return array_merge($allowed, [
// 'core/categories',
]);
});
// Add the badegg block category
add_filter( 'block_categories_all' , function ( $categories ) {
// Adding a new category.
$categories = array_merge([
[
'slug' => 'badegg',
'title' => __('Provided by Bad Egg Digital'),
],
], $categories);
return $categories;
});
// Auto register WP blocks
add_action('init', function () {
$blocks = glob(get_theme_file_path('resources/views/blocks/*/block.json'));
foreach ($blocks as $block_json) {
$json = json_decode(file_get_contents($block_json));
$slug = basename(dirname($block_json));
$blockPath = "resources/views/blocks/{$slug}";
$viewScript = "{$blockPath}/view.js";
$script = "{$blockPath}/script.js";
$editorCSS = "{$blockPath}/editor.scss";
$style = "{$blockPath}/style.scss";
// editorStyle
if (file_exists(get_theme_file_path($editorCSS))) {
wp_register_style(
"{$slug}-editor-style",
\Vite::asset($editorCSS),
[],
null
);
}
// script
if(file_exists(get_theme_file_path($script))) {
wp_register_script(
"{$slug}-script",
\Vite::asset($script),
[],
null,
true
);
}
// style
if (file_exists(get_theme_file_path($style))) {
wp_register_style(
"{$slug}-style",
\Vite::asset($style),
[],
null
);
}
// viewScript
if(file_exists(get_theme_file_path($viewScript))) {
wp_register_script(
"{$slug}-view-script",
\Vite::asset($viewScript),
[],
null,
true
);
}
$props = [
'editor_style' => "{$slug}-editor-style",
'style' => "{$slug}-style",
'script' => "{$slug}-script",
'view_script' => "{$slug}-view-script",
'attributes' => attributes(),
];
if(!property_exists($json, 'acf') && \Roots\view()->exists("blocks.{$slug}.render")) {
$props['render_callback'] = function ($attributes, $content, $block) {
$slug = basename($block->name);
return \Roots\view("blocks.{$slug}.render", [
'attributes' => $attributes,
'content' => $content,
'block' => $block,
]);
};
}
register_block_type($block_json, $props);
}
});
function list_inner()
{
$file = file_get_contents(get_theme_file_path("resources/json/block-core-whitelist.json"));
$json = json_decode($file);
return $json;
}
function attributes()
{
$file = file_get_contents(get_theme_file_path("resources/json/block-attributes.json"));
$json = json_decode($file, true);
return $json;
}
function list_all()
{
$blocks = array_map(function($block) {
$name = $block->name;
return $block->name;
}, \WP_Block_Type_Registry::get_instance()->get_all_registered());
return array_values($blocks);
}
function list_custom()
{
return array_filter(list_all(), function($value){
if (str_starts_with($value, 'acf/') || str_starts_with($value, 'badegg/')) return $value;
});
}
function list_allowed()
{
$add_allowed = [];
return array_merge(
list_custom(),
list_inner(),
apply_filters('badegg_block_types_allow', $add_allowed),
);
}
function render_acf($block, $content = '', $is_preview = false, $post_id = 0, $wp_block = false, $context = false) {
$slug = basename($block['name']);
$block['slug'] = $slug;
$blade = \Roots\view(
"blocks.{$slug}.render",
[
'block' => $block,
'content' => $content,
'is_preview' => $is_preview,
'post_id' => $post_id,
'wp_block' => $wp_block,
'context' => $context,
],
);
if($blade) {
echo $blade;
} else {
ob_start(); ?>
<section class="section bg-error knockout">
<div class="container container-small align-centre wysiwyg">
<h2>Missing Blade Template</h2>
<p>(resources/views/blocks/<?= $slug ?>/render.blade.php)</p>
</div>
</section>
<?php echo ob_get_clean();
}
}

View File

@@ -1,70 +1,16 @@
<?php
/**
* Theme filters.
*/
namespace App;
/**
* Add <body> classes
*/
add_filter('body_class', function (array $classes) {
/** Add page slug if it doesn't exist */
if (is_single() || is_page() && !is_front_page()) {
if (!in_array(basename(get_permalink()), $classes)) {
$classes[] = basename(get_permalink());
}
}
/** Add class if sidebar is active */
if (display_sidebar()) {
$classes[] = 'sidebar-primary';
}
/** Clean up class names for custom templates */
$classes = array_map(function ($class) {
return preg_replace(['/-blade(-php)?$/', '/^page-template-views/'], '', $class);
}, $classes);
return array_filter($classes);
});
/**
* Add "… Continued" to the excerpt
* Add "… Continued" to the excerpt.
*
* @return string
*/
add_filter('excerpt_more', function () {
return ' &hellip; <a href="' . get_permalink() . '">' . __('Continued', 'sage') . '</a>';
});
/**
* Template Hierarchy should search for .blade.php files
*/
collect([
'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date', 'home',
'frontpage', 'page', 'paged', 'search', 'single', 'singular', 'attachment'
])->map(function ($type) {
add_filter("{$type}_template_hierarchy", __NAMESPACE__.'\\filter_templates');
});
/**
* Render page using Blade
*/
add_filter('template_include', function ($template) {
$data = collect(get_body_class())->reduce(function ($data, $class) use ($template) {
return apply_filters("sage/template/{$class}/data", $data, $template);
}, []);
if ($template) {
echo template($template, $data);
return get_stylesheet_directory().'/index.php';
}
return $template;
}, PHP_INT_MAX);
/**
* Tell WordPress how to find the compiled path of comments.blade.php
*/
add_filter('comments_template', function ($comments_template) {
$comments_template = str_replace(
[get_stylesheet_directory(), get_template_directory()],
'',
$comments_template
);
return template_path(locate_template(["views/{$comments_template}", $comments_template]) ?: $comments_template);
return sprintf(' &hellip; <a href="%s">%s</a>', get_permalink(), __('Continued', 'sage'));
});

View File

@@ -1,160 +0,0 @@
<?php
namespace App;
use Roots\Sage\Container;
/**
* Get the sage container.
*
* @param string $abstract
* @param array $parameters
* @param Container $container
* @return Container|mixed
*/
function sage($abstract = null, $parameters = [], Container $container = null)
{
$container = $container ?: Container::getInstance();
if (!$abstract) {
return $container;
}
return $container->bound($abstract)
? $container->makeWith($abstract, $parameters)
: $container->makeWith("sage.{$abstract}", $parameters);
}
/**
* Get / set the specified configuration value.
*
* If an array is passed as the key, we will assume you want to set an array of values.
*
* @param array|string $key
* @param mixed $default
* @return mixed|\Roots\Sage\Config
* @copyright Taylor Otwell
* @link https://github.com/laravel/framework/blob/c0970285/src/Illuminate/Foundation/helpers.php#L254-L265
*/
function config($key = null, $default = null)
{
if (is_null($key)) {
return sage('config');
}
if (is_array($key)) {
return sage('config')->set($key);
}
return sage('config')->get($key, $default);
}
/**
* @param string $file
* @param array $data
* @return string
*/
function template($file, $data = [])
{
return sage('blade')->render($file, $data);
}
/**
* Retrieve path to a compiled blade view
* @param $file
* @param array $data
* @return string
*/
function template_path($file, $data = [])
{
return sage('blade')->compiledPath($file, $data);
}
/**
* @param $asset
* @return string
*/
function asset_path($asset)
{
return sage('assets')->getUri($asset);
}
/**
* @param string|string[] $templates Possible template files
* @return array
*/
function filter_templates($templates)
{
$paths = apply_filters('sage/filter_templates/paths', [
'views',
'resources/views'
]);
$paths_pattern = "#^(" . implode('|', $paths) . ")/#";
return collect($templates)
->map(function ($template) use ($paths_pattern) {
/** Remove .blade.php/.blade/.php from template names */
$template = preg_replace('#\.(blade\.?)?(php)?$#', '', ltrim($template));
/** Remove partial $paths from the beginning of template names */
if (strpos($template, '/')) {
$template = preg_replace($paths_pattern, '', $template);
}
return $template;
})
->flatMap(function ($template) use ($paths) {
return collect($paths)
->flatMap(function ($path) use ($template) {
return [
"{$path}/{$template}.blade.php",
"{$path}/{$template}.php",
"{$template}.blade.php",
"{$template}.php",
];
});
})
->filter()
->unique()
->all();
}
/**
* @param string|string[] $templates Relative path to possible template files
* @return string Location of the template
*/
function locate_template($templates)
{
return \locate_template(filter_templates($templates));
}
/**
* Determine whether to show the sidebar
* @return bool
*/
function display_sidebar()
{
static $display;
isset($display) || $display = apply_filters('sage/display_sidebar', false);
return $display;
}
/**
* Page titles
* @return string
*/
function title()
{
if (is_home()) {
if ($home = get_option('page_for_posts', true)) {
return get_the_title($home);
}
return __('Latest Posts', 'sage');
}
if (is_archive()) {
return get_the_archive_title();
}
if (is_search()) {
return sprintf(__('Search Results for %s', 'sage'), get_search_query());
}
if (is_404()) {
return __('Not Found', 'sage');
}
return get_the_title();
}

View File

@@ -1,128 +1,176 @@
<?php
/**
* Theme setup.
*/
namespace App;
use Roots\Sage\Container;
use Roots\Sage\Assets\JsonManifest;
use Roots\Sage\Template\Blade;
use Roots\Sage\Template\BladeProvider;
use Illuminate\Support\Facades\Vite;
/**
* Theme assets
* Inject styles into the block editor.
*
* @return array
*/
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('sage/main.css', asset_path('styles/main.css'), false, null);
wp_enqueue_script('sage/main.js', asset_path('scripts/main.js'), ['jquery'], null, true);
}, 100);
add_filter('block_editor_settings_all', function ($settings) {
$style = Vite::asset('resources/css/editor.scss');
$settings['styles'][] = [
'css' => "@import url('{$style}')",
];
return $settings;
});
/**
* Theme setup
* Inject scripts into the block editor.
*
* @return void
*/
add_filter('admin_head', function () {
if (! get_current_screen()?->is_block_editor()) {
return;
}
$dependencies = json_decode(Vite::content('editor.deps.json'));
foreach ($dependencies as $dependency) {
if (! wp_script_is($dependency)) {
wp_enqueue_script($dependency);
}
}
echo Vite::withEntryPoints([
'resources/js/editor.js',
])->toHtml();
});
/**
* Use the generated theme.json file.
*
* @return string
*/
add_filter('theme_file_path', function ($path, $file) {
return $file === 'theme.json'
? public_path('build/assets/theme.json')
: $path;
}, 10, 2);
/**
* Register the initial theme setup.
*
* @return void
*/
add_action('after_setup_theme', function () {
/**
* Enable features from Soil when plugin is activated
* @link https://roots.io/plugins/soil/
* Disable full-site editing support.
*
* @link https://wptavern.com/gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns
*/
add_theme_support('soil-clean-up');
add_theme_support('soil-jquery-cdn');
add_theme_support('soil-nav-walker');
add_theme_support('soil-nice-search');
add_theme_support('soil-relative-urls');
remove_theme_support('block-templates');
/**
* Enable plugins to manage the document title
* Register the navigation menus.
*
* @link https://developer.wordpress.org/reference/functions/register_nav_menus/
*/
register_nav_menus([
'primary_navigation' => __('Primary Navigation', 'sage'),
]);
/**
* Disable the default block patterns.
*
* @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#disabling-the-default-block-patterns
*/
remove_theme_support('core-block-patterns');
/**
* Enable plugins to manage the document title.
*
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#title-tag
*/
add_theme_support('title-tag');
/**
* Register navigation menus
* @link https://developer.wordpress.org/reference/functions/register_nav_menus/
*/
register_nav_menus([
'primary_navigation' => __('Primary Navigation', 'sage')
]);
/**
* Enable post thumbnails
* Enable post thumbnail support.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support('post-thumbnails');
/**
* Enable HTML5 markup support
* Enable responsive embed support.
*
* @link https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/#responsive-embedded-content
*/
add_theme_support('responsive-embeds');
/**
* Enable HTML5 markup support.
*
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#html5
*/
add_theme_support('html5', ['caption', 'comment-form', 'comment-list', 'gallery', 'search-form']);
add_theme_support('html5', [
'caption',
'comment-form',
'comment-list',
'gallery',
'search-form',
'script',
'style',
]);
/**
* Enable selective refresh for widgets in customizer
* @link https://developer.wordpress.org/themes/advanced-topics/customizer-api/#theme-support-in-sidebars
* Enable selective refresh for widgets in customizer.
*
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#customize-selective-refresh-widgets
*/
add_theme_support('customize-selective-refresh-widgets');
/**
* Use main stylesheet for visual editor
* @see resources/assets/styles/layouts/_tinymce.scss
*/
add_editor_style(asset_path('styles/main.css'));
}, 20);
/**
* Register sidebars
* Register the theme sidebars.
*
* @return void
*/
add_action('widgets_init', function () {
$config = [
'before_widget' => '<section class="widget %1$s %2$s">',
'after_widget' => '</section>',
'before_title' => '<h3>',
'after_title' => '</h3>'
'after_widget' => '</section>',
'before_title' => '<h3>',
'after_title' => '</h3>',
];
register_sidebar([
'name' => __('Primary', 'sage'),
'id' => 'sidebar-primary'
'name' => __('Primary', 'sage'),
'id' => 'sidebar-primary',
] + $config);
register_sidebar([
'name' => __('Footer', 'sage'),
'id' => 'sidebar-footer'
'name' => __('Footer', 'sage'),
'id' => 'sidebar-footer',
] + $config);
});
/**
* Updates the `$post` variable on each iteration of the loop.
* Note: updated value is only available for subsequently loaded views, such as partials
*/
add_action('the_post', function ($post) {
sage('blade')->share('post', $post);
add_filter('admin_post_thumbnail_size', function(){
return "medium";
});
/**
* Setup Sage options
*/
add_action('after_setup_theme', function () {
/**
* Add JsonManifest to Sage container
*/
sage()->singleton('sage.assets', function () {
return new JsonManifest(config('assets.manifest'), config('assets.uri'));
});
add_action( 'init', __NAMESPACE__ . '\\cors', 15 );
function cors() {
/**
* Add Blade to Sage container
*/
sage()->singleton('sage.blade', function (Container $app) {
$cachePath = config('view.compiled');
if (!file_exists($cachePath)) {
wp_mkdir_p($cachePath);
}
(new BladeProvider($app))->register();
return new Blade($app['view']);
});
if(WP_ENV == 'development'):
header( 'Access-Control-Allow-Origin: *' );
endif;
/**
* Create @asset() Blade directive
*/
sage('blade')->compiler()->directive('asset', function ($asset) {
return "<?= " . __NAMESPACE__ . "\\asset_path({$asset}); ?>";
});
}
add_action('after_setup_theme', function(){
$image_srcset = new Utilities\ImageSrcset;
$image_srcset->add(['name' => 'hero', 'width' => 1920, 'height' => 1080]);
add_image_size('lazy', 50, 50);
add_image_size('hero', 1920, 1080, true);
});

View File

@@ -14,9 +14,21 @@
"name": "Scott Walkinshaw",
"email": "scott.walkinshaw@gmail.com",
"homepage": "https://github.com/swalkinshaw"
},
{
"name": "QWp6t",
"email": "hi@qwp6t.me",
"homepage": "https://github.com/qwp6t"
},
{
"name": "Brandon Nifong",
"email": "brandon@tendency.me",
"homepage": "https://github.com/log1x"
}
],
"keywords": ["wordpress"],
"keywords": [
"wordpress"
],
"support": {
"issues": "https://github.com/roots/sage/issues",
"forum": "https://discourse.roots.io/"
@@ -27,20 +39,26 @@
}
},
"require": {
"php": ">=7",
"composer/installers": "~1.0",
"illuminate/support": "~5.4",
"roots/sage-lib": "~9.0.0-beta.3",
"soberwp/controller": "dev-master"
"php": ">=8.2",
"roots/acorn": "^5.0",
"ourcodeworld/name-that-color": "dev-master"
},
"require-dev": {
"squizlabs/php_codesniffer": "^2.8.0",
"roots/sage-installer": "~1.2"
"laravel/pint": "^1.20"
},
"suggest": {
"log1x/sage-directives": "A collection of useful Blade directives for WordPress and Sage (^1.0)."
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"test": ["phpcs"],
"post-create-project-cmd": [
"Roots\\Sage\\Installer\\ComposerScript::postCreateProject"
"post-autoload-dump": [
"Roots\\Acorn\\ComposerScripts::postAutoloadDump"
]
}
}

7056
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Assets Manifest
|--------------------------------------------------------------------------
|
| Your asset manifest is used by Sage to assist WordPress and your views
| with rendering the correct URLs for your assets. This is especially
| useful for statically referencing assets with dynamically changing names
| as in the case of cache-busting.
|
*/
'manifest' => get_theme_file_path().'/dist/assets.json',
/*
|--------------------------------------------------------------------------
| Assets Path URI
|--------------------------------------------------------------------------
|
| The asset manifest contains relative paths to your assets. This URI will
| be prepended when using Sage's asset management system. Change this if
| you are using a CDN.
|
*/
'uri' => get_theme_file_uri().'/dist',
];

View File

@@ -1,32 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Theme Directory
|--------------------------------------------------------------------------
|
| This is the absolute path to your theme directory.
|
| Example:
| /srv/www/example.com/current/web/app/themes/sage
|
*/
'dir' => get_theme_file_path(),
/*
|--------------------------------------------------------------------------
| Theme Directory URI
|--------------------------------------------------------------------------
|
| This is the web server URI to your theme directory.
|
| Example:
| https://example.com/app/themes/sage
|
*/
'uri' => get_theme_file_uri(),
];

View File

@@ -1,51 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| View Storage Paths
|--------------------------------------------------------------------------
|
| Most template systems load templates from disk. Here you may specify
| an array of paths that should be checked for your views.
|
*/
'paths' => [
get_theme_file_path().'/resources/views',
get_parent_theme_file_path().'/resources/views',
],
/*
|--------------------------------------------------------------------------
| Compiled View Path
|--------------------------------------------------------------------------
|
| This option determines where all the compiled Blade templates will be
| stored for your application. Typically, this is within the uploads
| directory. However, as usual, you are free to change this value.
|
*/
'compiled' => wp_upload_dir()['basedir'].'/cache',
/*
|--------------------------------------------------------------------------
| View Namespaces
|--------------------------------------------------------------------------
|
| Blade has an underutilized feature that allows developers to add
| supplemental view paths that may contain conflictingly named views.
| These paths are prefixed with a namespace to get around the conflicts.
| A use case might be including views from within a plugin folder.
|
*/
'namespaces' => [
/* Given the below example, in your views use something like: @include('WC::some.view.or.partial.here') */
// 'WC' => WP_PLUGIN_DIR.'/woocommerce/templates/',
],
];

82
functions.php Normal file
View File

@@ -0,0 +1,82 @@
<?php
use Roots\Acorn\Application;
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our theme. We will simply require it into the script here so that we
| don't have to worry about manually loading any of our classes later on.
|
*/
if (! file_exists($composer = __DIR__.'/vendor/autoload.php')) {
wp_die(__('Error locating autoloader. Please run <code>composer install</code>.', 'sage'));
}
require $composer;
/*
|--------------------------------------------------------------------------
| Register The Bootloader
|--------------------------------------------------------------------------
|
| The first thing we will do is schedule a new Acorn application container
| to boot when WordPress is finished loading the theme. The application
| serves as the "glue" for all the components of Laravel and is
| the IoC container for the system binding all of the various parts.
|
*/
Application::configure()
->withProviders([
App\Providers\ThemeServiceProvider::class,
])
->boot();
/*
|--------------------------------------------------------------------------
| Autoload PSR-4 files
|--------------------------------------------------------------------------
*/
function autoload_psr4($name) {
$path = __dir__ . '/app/' . $name . '/*.php';
$namespace = 'App\\' . $name;
foreach(glob($path) as $filename) {
$class = $namespace . '\\' . basename($filename, '.php');
new $class();
}
}
autoload_psr4('PostTypes');
autoload_psr4('ACF');
autoload_psr4('Utilities');
autoload_psr4('Admin');
/*
|--------------------------------------------------------------------------
| Register Sage Theme Files
|--------------------------------------------------------------------------
|
| Out of the box, Sage ships with categorically named theme files
| containing common functionality and setup to be bootstrapped with your
| theme. Simply add (or remove) files from the array below to change what
| is registered alongside Sage.
|
*/
collect(['setup', 'filters', 'blocks'])
->each(function ($file) {
if (! locate_template($file = "app/{$file}.php", true, true)) {
wp_die(
/* translators: %s is replaced with the relative file path */
sprintf(__('Error locating <code>%s</code> for inclusion.', 'sage'), $file)
);
}
});

3
index.php Normal file
View File

@@ -0,0 +1,3 @@
<?php
echo view(app('sage.view'), app('sage.data'))->render();

11861
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,132 +1,25 @@
{
"name": "sage",
"version": "9.0.0-beta.3",
"author": "Roots <team@roots.io>",
"homepage": "https://roots.io/sage/",
"private": true,
"repository": {
"type": "git",
"url": "git://github.com/roots/sage.git"
},
"bugs": {
"url": "https://github.com/roots/sage/issues"
},
"licenses": [
{
"type": "MIT",
"url": "http://opensource.org/licenses/MIT"
}
],
"browserslist": [
"last 2 versions",
"android 4",
"opera 12"
],
"eslintConfig": {
"root": true,
"extends": "eslint:recommended",
"globals": {
"wp": true
},
"env": {
"node": true,
"es6": true,
"amd": true,
"browser": true,
"jquery": true
},
"parserOptions": {
"ecmaFeatures": {
"globalReturn": true,
"generators": false,
"objectLiteralDuplicateProperties": false,
"experimentalObjectRestSpread": true
},
"ecmaVersion": 2017,
"sourceType": "module"
},
"plugins": [
"import"
],
"settings": {
"import/core-modules": [],
"import/ignore": [
"node_modules",
"\\.(coffee|scss|css|less|hbs|svg|json)$"
]
},
"rules": {
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "ignore"
}
]
}
},
"stylelint": {
"extends": "stylelint-config-standard",
"rules": {
"no-empty-source": null
}
},
"scripts": {
"build": "webpack --progress --config resources/assets/build/webpack.config.js",
"build:production": "webpack --progress -p --config resources/assets/build/webpack.config.js",
"build:profile": "webpack --progress --profile --json --config resources/assets/build/webpack.config.js",
"start": "webpack --hide-modules --watch --config resources/assets/build/webpack.config.js",
"rmdist": "rimraf dist",
"lint": "npm run -s lint:scripts && npm run -s lint:styles",
"lint:scripts": "eslint resources/assets/scripts resources/assets/build",
"lint:styles": "stylelint resources/assets/styles/**/*.{css,sass,scss,sss,less}",
"test": "npm run -s lint"
},
"engines": {
"node": ">= 6.9.4"
"node": ">=20.0.0"
},
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"translate": "npm run translate:pot && npm run translate:update",
"translate:pot": "wp i18n make-pot . ./resources/lang/sage.pot --include=\"theme.json,patterns,app,resources\"",
"translate:update": "for file in ./resources/lang/*.po; do wp i18n update-po ./resources/lang/sage.pot $file; done",
"translate:compile": "npm run translate:mo && npm run translate:js",
"translate:js": "wp i18n make-json ./resources/lang --pretty-print",
"translate:mo": "wp i18n make-mo ./resources/lang ./resources/lang"
},
"devDependencies": {
"autoprefixer": "~7.1",
"browser-sync": "~2.18",
"browsersync-webpack-plugin": "^0.6.0",
"bs-html-injector": "~3.0",
"buble-loader": "^0.4.1",
"cache-loader": "~1.0",
"clean-webpack-plugin": "^0.1.16",
"copy-globs-webpack-plugin": "^0.2.0",
"css-loader": "^0.28.4",
"cssnano": "~4.0.0-rc.1",
"eslint": "~4.2",
"eslint-loader": "~1.9",
"eslint-plugin-import": "~2.7",
"extract-text-webpack-plugin": "~3.0",
"file-loader": "^0.11.2",
"imagemin-mozjpeg": "~6.0",
"imagemin-webpack-plugin": "~1.5.0-beta.0",
"import-glob": "~1.5",
"node-sass": "~4.5",
"postcss-loader": "~2.0",
"postcss-safe-parser": "~3.0",
"resolve-url-loader": "~2.1",
"rimraf": "~2.6",
"sass-loader": "~6.0",
"style-loader": "^0.18.2",
"stylelint": "~7.12",
"stylelint-config-standard": "~16.0",
"stylelint-webpack-plugin": "^0.8.0",
"url-loader": "^0.5.9",
"webpack": "~3.3",
"webpack-assets-manifest": "^0.7.0",
"webpack-dev-middleware": "~1.11",
"webpack-hot-middleware": "~2.18",
"webpack-merge": "~4.1",
"yargs": "~8.0"
},
"dependencies": {
"bootstrap": "^4.0.0-alpha.6",
"jquery": "1.12.4 - 3"
"@roots/vite-plugin": "^1.0.2",
"fast-glob": "^3.3.3",
"laravel-vite-plugin": "^1.2.0",
"sass": "^1.93.2",
"vite": "^6.2.0"
}
}

View File

@@ -1,71 +0,0 @@
<?xml version="1.0"?>
<ruleset name="Roots">
<description>Roots Coding Standards</description>
<!-- Scan these files -->
<file>resources/functions.php</file>
<file>resources/index.php</file>
<file>app</file>
<file>resources/views</file>
<!-- Show colors in console -->
<arg value="-colors"/>
<!-- Show sniff codes in all reports -->
<arg value="s"/>
<!-- Use PSR-2 as a base -->
<rule ref="PSR2"/>
<!-- Exclusions below are for resources/views/ folder -->
<!-- Allow php files without any PHP in them -->
<rule ref="Internal.NoCodeFound">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Allow braces on same line for named functions -->
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Allow closing braces to be on the same line -->
<rule ref="Squiz.WhiteSpace.ScopeClosingBrace">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Disable newline after opening brace -->
<rule ref="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Allow multiple PHP statements in the same line -->
<rule ref="Generic.Formatting.DisallowMultipleStatements.SameLine">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Disable PSR-2 indentation rules that are buggy with 2 spaces -->
<rule ref="PSR2.ControlStructures.SwitchDeclaration.BreakIndent">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Don't require a blank line after the last `use` -->
<rule ref="PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Allow long lines -->
<rule ref="Generic.Files.LineLength.TooLong">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Ignore indentation rules -->
<rule ref="Generic.WhiteSpace.ScopeIndent">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
<!-- Allow PHP closing tags -->
<rule ref="PSR2.Files.ClosingTag.NotAllowed">
<exclude-pattern>resources/views</exclude-pattern>
</rule>
</ruleset>

View File

@@ -0,0 +1,131 @@
{
"key": "group_block_acfdemo",
"title": "Block: ACF Demo",
"fields": [
{
"key": "field_693d7783d862a",
"label": "Content",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 1,
"multi_expand": 1,
"endpoint": 0
},
{
"key": "field_693d779cd862b",
"label": "",
"name": "content",
"aria-label": "",
"type": "wysiwyg",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"allow_in_bindings": 0,
"tabs": "all",
"toolbar": "full",
"media_upload": 1,
"delay": 0
},
{
"key": "field_693d7764938f3",
"label": "Introduction",
"name": "block_intro",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_block_intro"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
},
{
"key": "field_6940187f74afb",
"label": "Footer",
"name": "block_footer",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_block_footer"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
},
{
"key": "field_693d776493992",
"label": "Settings",
"name": "block_settings",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_block_settings"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
}
],
"location": [
[
{
"param": "block",
"operator": "==",
"value": "badegg\/acfdemo"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"display_title": "",
"modified": 1765814950
}

View File

@@ -0,0 +1,109 @@
{
"key": "group_block_editor",
"title": "Block: Editor",
"fields": [
{
"key": "field_67659ad8dc795",
"label": "",
"name": "",
"aria-label": "",
"type": "message",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"message": "You can insert a variety of blocks inside of this one to build your page or post.",
"new_lines": "wpautop",
"esc_html": 0
},
{
"key": "field_67659a9bdc792",
"label": "Introduction",
"name": "introduction",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_block_intro"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
},
{
"key": "field_67659bca78cfa",
"label": "Footer",
"name": "footer",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_block_footer"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
},
{
"key": "field_67659ab5dc793",
"label": "Settings",
"name": "settings",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_block_settings"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
}
],
"location": [
[
{
"param": "block",
"operator": "==",
"value": "acf\/badegg-editor"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"modified": 1763915024
}

View File

@@ -0,0 +1,137 @@
{
"key": "group_clone_background_settings",
"title": "Clone: Background Settings",
"fields": [
{
"key": "field_67325dd23234e",
"label": "Colour",
"name": "bg_colour",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "50",
"class": "",
"id": ""
},
"choices": {
"0": "None",
"primary": "<i class=\"fas fa-circle\" style=\"color: #dd3333\"><\/i> Punch",
"secondary": "<i class=\"fas fa-circle\" style=\"color: #81d742\"><\/i> Atlantis",
"tertiary": "<i class=\"fas fa-circle\" style=\"color: #8224e3\"><\/i> Purple Heart",
"white": "<i class=\"fas fa-circle\" style=\"color: #FFFFFF\"><\/i> White",
"grey": "<i class=\"fas fa-circle\" style=\"color: #808080\"><\/i> Gray",
"black": "<i class=\"fas fa-circle\" style=\"color: #000000\"><\/i> Black"
},
"default_value": 0,
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 1,
"ui": 1,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_67325e213234f",
"label": "Tint",
"name": "bg_tint",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_67325dd23234e",
"operator": "!=",
"value": "0"
}
],
[
{
"field": "field_67325dd23234e",
"operator": "!=",
"value": "black"
}
],
[
{
"field": "field_67325dd23234e",
"operator": "!=",
"value": "white"
}
]
],
"wrapper": {
"width": "50",
"class": "",
"id": ""
},
"choices": {
"lightest": "Lightest",
"lighter": "Lighter",
"light": "Light",
"0": "None",
"dark": "Dark",
"darker": "Darker",
"darkest": "Darkest"
},
"default_value": 0,
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 1,
"ui": 1,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_67350f526abf1",
"label": "",
"name": "contrast",
"aria-label": "",
"type": "true_false",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"message": "Text Contrast",
"default_value": 0,
"allow_in_bindings": 0,
"ui_on_text": "Light",
"ui_off_text": "Dark",
"ui": 1
}
],
"location": [
[
{
"param": "widget",
"operator": "==",
"value": "rss"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"display_title": "",
"modified": 1767548180
}

View File

@@ -0,0 +1,210 @@
{
"key": "group_clone_block_footer",
"title": "Clone: Block Footer",
"fields": [
{
"key": "field_694016b164221",
"label": "Footer",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 0,
"endpoint": 0
},
{
"key": "field_694016b164272",
"label": "",
"name": "footer",
"aria-label": "",
"type": "group",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"layout": "block",
"sub_fields": [
{
"key": "field_694016b165315",
"label": "Blurb",
"name": "blurb",
"aria-label": "",
"type": "textarea",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"rows": 3,
"placeholder": "",
"new_lines": ""
},
{
"key": "field_69401a2f06555",
"label": "Links",
"name": "links",
"aria-label": "",
"type": "repeater",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"layout": "block",
"pagination": 0,
"min": 0,
"max": 0,
"collapsed": "",
"button_label": "Add Row",
"rows_per_page": 20,
"sub_fields": [
{
"key": "field_69401a4006556",
"label": "Link",
"name": "link",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_button"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0,
"parent_repeater": "field_69401a2f06555"
}
]
},
{
"key": "field_694016b165337",
"label": "Alignment",
"name": "align",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"left": "Left",
"centre": "Centre",
"right": "Right"
},
"default_value": "centre",
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 0,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_694016b16537f",
"label": "Container width",
"name": "container_width",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"0": "Auto",
"narrow": "Narrow",
"small": "Small",
"medium": "Medium",
"large": "Large",
"full": "Edge to edge"
},
"default_value": "narrow",
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 0,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
}
]
},
{
"key": "field_694016b1642c5",
"label": "Footer (end)",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 0,
"endpoint": 1
}
],
"location": [
[
{
"param": "widget",
"operator": "==",
"value": "rss"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"display_title": "",
"modified": 1765809897
}

View File

@@ -0,0 +1,184 @@
{
"key": "group_clone_block_intro",
"title": "Clone: Block Intro",
"fields": [
{
"key": "field_67659970db415",
"label": "Introduction",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 0,
"endpoint": 0
},
{
"key": "field_693f37ad7fa70",
"label": "",
"name": "intro",
"aria-label": "",
"type": "group",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"layout": "block",
"sub_fields": [
{
"key": "field_676599964d3cc",
"label": "Heading",
"name": "heading",
"aria-label": "",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "hfont",
"id": ""
},
"default_value": "",
"maxlength": "",
"allow_in_bindings": 0,
"placeholder": "",
"prepend": "",
"append": ""
},
{
"key": "field_6765999d4d3cd",
"label": "Blurb",
"name": "blurb",
"aria-label": "",
"type": "textarea",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"rows": 3,
"placeholder": "",
"new_lines": ""
},
{
"key": "field_69400cbafb964",
"label": "Alignment",
"name": "align",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"left": "Left",
"centre": "Centre",
"right": "Right"
},
"default_value": "centre",
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 0,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_693f3a7fae85e",
"label": "Container width",
"name": "container_width",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"0": "Auto",
"narrow": "Narrow",
"small": "Small",
"medium": "Medium",
"large": "Large",
"full": "Edge to edge"
},
"default_value": "narrow",
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 0,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
}
]
},
{
"key": "field_6828dae1d1bb0",
"label": "Intro (end)",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 0,
"endpoint": 1
}
],
"location": [
[
{
"param": "widget",
"operator": "==",
"value": "rss"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"display_title": "",
"modified": 1765809893
}

View File

@@ -0,0 +1,195 @@
{
"key": "group_clone_block_settings",
"title": "Clone: Block Settings",
"fields": [
{
"key": "field_69403228d2637",
"label": "Settings",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 1,
"endpoint": 0
},
{
"key": "field_694031b513e66",
"label": "",
"name": "settings",
"aria-label": "",
"type": "group",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"layout": "block",
"sub_fields": [
{
"key": "field_6800097e61765",
"label": "Container Width",
"name": "container_width",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"0": "Auto",
"narrow": "Narrow",
"small": "Small",
"medium": "Medium",
"large": "Large",
"full": "Edge to edge"
},
"default_value": 0,
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 1,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_67350eb62cdf9",
"label": "",
"name": "padding_top",
"aria-label": "",
"type": "true_false",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"message": "Top Padding",
"default_value": 1,
"allow_in_bindings": 0,
"ui_on_text": "On",
"ui_off_text": "Off",
"ui": 1
},
{
"key": "field_673510c1dc830",
"label": "",
"name": "padding_bottom",
"aria-label": "",
"type": "true_false",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"message": "Bottom Padding",
"default_value": 1,
"allow_in_bindings": 0,
"ui_on_text": "On",
"ui_off_text": "Off",
"ui": 1
},
{
"key": "field_695aa550e16d4",
"label": "Background",
"name": "",
"aria-label": "",
"type": "message",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"message": "",
"new_lines": "wpautop",
"esc_html": 0
},
{
"key": "field_67350aeb146ca",
"label": "Background",
"name": "background",
"aria-label": "",
"type": "clone",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"clone": [
"group_clone_background_settings"
],
"display": "seamless",
"layout": "block",
"prefix_label": 0,
"prefix_name": 0
}
]
},
{
"key": "field_69403239d2638",
"label": "Settings (end)",
"name": "",
"aria-label": "",
"type": "accordion",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"open": 0,
"multi_expand": 0,
"endpoint": 1
}
],
"location": [
[
{
"param": "widget",
"operator": "==",
"value": "rss"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"display_title": "",
"modified": 1767548583
}

View File

@@ -0,0 +1,151 @@
{
"key": "group_clone_button",
"title": "Clone: Button",
"fields": [
{
"key": "field_672d3d7b2c273",
"label": "Link",
"name": "link",
"aria-label": "",
"type": "link",
"instructions": "",
"required": 1,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "array",
"allow_in_bindings": 1
},
{
"key": "field_673529a2a37a1",
"label": "Class",
"name": "class",
"aria-label": "",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_672d3d7b2c273",
"operator": "!=empty"
}
]
],
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"allow_in_bindings": 1,
"placeholder": "",
"prepend": "",
"append": ""
},
{
"key": "field_672d3db22c274",
"label": "Colour",
"name": "colour",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_672d3d7b2c273",
"operator": "!=empty"
}
]
],
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"primary": "<i class=\"fas fa-circle\" style=\"color: #002448\"><\/i> Prussian Blue",
"secondary": "<i class=\"fas fa-circle\" style=\"color: #fc533e\"><\/i> Sunset Orange",
"tertiary": "<i class=\"fas fa-circle\" style=\"color: #fdd400\"><\/i> Gold",
"quaternary": "<i class=\"fas fa-circle\" style=\"color: #7d89d1\"><\/i> Moody Blue",
"quinary": "<i class=\"fas fa-circle\" style=\"color: #ffdab4\"><\/i> Frangipani",
"0": "<i class=\"fas fa-circle\" style=\"color: #FFFFFF\"><\/i> White",
"black": "<i class=\"fas fa-circle\" style=\"color: #000000\"><\/i> Black",
"quaternary-white": "<i class=\"fas fa-circle text-gradient text-gradient-quaternary-white\"><\/i> Moody Blue to White",
"quinary-white": "<i class=\"fas fa-circle text-gradient text-gradient-quinary-white\"><\/i> Frangipani to White",
"white-quaternary": "<i class=\"fas fa-circle text-gradient text-gradient-white-quaternary\"><\/i> White to Moody Blue",
"white-quinary": "<i class=\"fas fa-circle text-gradient text-gradient-white-quinary\"><\/i> White to Frangipani"
},
"default_value": "primary",
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 1,
"ui": 1,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_672d3dc52c275",
"label": "Style",
"name": "style",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_672d3d7b2c273",
"operator": "!=empty"
}
]
],
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"choices": {
"0": "Solid",
"outline": "Outline"
},
"default_value": 0,
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"allow_in_bindings": 1,
"ui": 0,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
}
],
"location": [
[
{
"param": "widget",
"operator": "==",
"value": "rss"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"modified": 1748001311
}

View File

@@ -0,0 +1,417 @@
{
"key": "group_options_global_settings",
"title": "Options: Global Settings",
"fields": [
{
"key": "field_67658e28aba4e",
"label": "Colours",
"name": "",
"aria-label": "",
"type": "tab",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"placement": "top",
"endpoint": 0
},
{
"key": "field_67658e49aba4f",
"label": "Brand Colours",
"name": "badegg_colours",
"aria-label": "",
"type": "repeater",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"layout": "block",
"pagination": 0,
"min": 0,
"max": 12,
"collapsed": "field_67658e96aba50",
"button_label": "Add Colour",
"rows_per_page": 20,
"sub_fields": [
{
"key": "field_67658e96aba50",
"label": "",
"name": "hex",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string",
"parent_repeater": "field_67658e49aba4f"
},
{
"key": "field_67658fba41889",
"label": "Tints",
"name": "tints",
"aria-label": "",
"type": "radio",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_67658e49aba4f",
"operator": "!=empty"
},
{
"field": "field_67658e49aba4f",
"operator": "==empty"
}
]
],
"wrapper": {
"width": "15",
"class": "",
"id": ""
},
"choices": [
"Auto",
"Manual"
],
"default_value": 0,
"return_format": "value",
"allow_null": 0,
"other_choice": 0,
"layout": "horizontal",
"save_other_choice": 0,
"parent_repeater": "field_67658e49aba4f"
},
{
"key": "field_67658fe84188a",
"label": "Tint Selection",
"name": "",
"aria-label": "",
"type": "message",
"instructions": "",
"required": 0,
"conditional_logic": [
[
{
"field": "field_67658fba41889",
"operator": "==",
"value": "0"
}
],
[
{
"field": "field_67658e49aba4f",
"operator": "!=empty"
},
{
"field": "field_67658e49aba4f",
"operator": "==empty"
}
]
],
"wrapper": {
"width": "70",
"class": "",
"id": ""
},
"message": "Colour tints are automatically set by mathematically adjusting the brightness.",
"new_lines": "wpautop",
"esc_html": 0,
"parent_repeater": "field_67658e49aba4f"
},
{
"key": "field_6765902f4188b",
"label": "Tint Selection",
"name": "tints",
"aria-label": "",
"type": "group",
"instructions": "Colour tints are automatically set by mathematically adjusting the brightness. Specify manual overrides here:",
"required": 0,
"conditional_logic": [
[
{
"field": "field_67658fba41889",
"operator": "==",
"value": "1"
}
],
[
{
"field": "field_67658e49aba4f",
"operator": "!=empty"
},
{
"field": "field_67658e49aba4f",
"operator": "==empty"
}
]
],
"wrapper": {
"width": "70",
"class": "",
"id": ""
},
"layout": "block",
"sub_fields": [
{
"key": "field_676590414188c",
"label": "Lightest",
"name": "lightest",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
},
{
"key": "field_676590684188d",
"label": "Lighter",
"name": "lighter",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
},
{
"key": "field_6765907f4188e",
"label": "Light",
"name": "light",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
},
{
"key": "field_676590924188f",
"label": "Dark",
"name": "dark",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
},
{
"key": "field_6765909941890",
"label": "Darker",
"name": "darker",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
},
{
"key": "field_6765909f41891",
"label": "Darkest",
"name": "darkest",
"aria-label": "",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "16.66",
"class": "",
"id": ""
},
"default_value": "",
"enable_opacity": 0,
"return_format": "string"
}
],
"parent_repeater": "field_67658e49aba4f"
}
]
},
{
"key": "field_67659ca28081d",
"label": "Company",
"name": "",
"aria-label": "",
"type": "tab",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"placement": "top",
"endpoint": 0
},
{
"key": "field_67659cb08081e",
"label": "Legal Name",
"name": "badegg_company_legal",
"aria-label": "",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"placeholder": "",
"prepend": "",
"append": ""
},
{
"key": "field_67659cf08081f",
"label": "Telephone",
"name": "badegg_company_tel",
"aria-label": "",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "50",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"placeholder": "",
"prepend": "",
"append": ""
},
{
"key": "field_67659d0780820",
"label": "Email",
"name": "badegg_company_email",
"aria-label": "",
"type": "email",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "50",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": "",
"prepend": "",
"append": ""
},
{
"key": "field_676594565ead1",
"label": "Integrations",
"name": "",
"aria-label": "",
"type": "tab",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"placement": "top",
"endpoint": 0
},
{
"key": "field_676594615ead2",
"label": "Fathom Analytics ID",
"name": "badegg_integrations_fathom_id",
"aria-label": "",
"type": "text",
"instructions": "A Google Analytics alternative thats simple & privacy-first. <a href=\"https:\/\/usefathom.com\" target=\"_blank\" rel=\"noopener nofollow noindex\">Visit website<\/a>",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"maxlength": "",
"placeholder": "",
"prepend": "",
"append": ""
}
],
"location": [
[
{
"param": "options_page",
"operator": "==",
"value": "theme-global-settings"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "seamless",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"modified": 1734712625
}

View File

@@ -0,0 +1,536 @@
{
"key": "group_post_social",
"title": "Social Channel Settings",
"fields": [
{
"key": "field_664c658853f1b",
"label": "Icon",
"name": "fontawesome_brands",
"aria-label": "",
"type": "select",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "20",
"class": "",
"id": ""
},
"choices": {
"0": "<i class=\"fa-solid\"><\/i> <span>Please select an icon<\/span>",
"monero": "<i class=\"fa-brands fa-monero\" style=\"color: #2271b1;\"><\/i> <span>Monero<\/span>",
"hooli": "<i class=\"fa-brands fa-hooli\" style=\"color: #2271b1;\"><\/i> <span>Hooli<\/span>",
"yelp": "<i class=\"fa-brands fa-yelp\" style=\"color: #2271b1;\"><\/i> <span>Yelp<\/span>",
"cc-visa": "<i class=\"fa-brands fa-cc-visa\" style=\"color: #2271b1;\"><\/i> <span>Cc Visa<\/span>",
"lastfm": "<i class=\"fa-brands fa-lastfm\" style=\"color: #2271b1;\"><\/i> <span>Lastfm<\/span>",
"shopware": "<i class=\"fa-brands fa-shopware\" style=\"color: #2271b1;\"><\/i> <span>Shopware<\/span>",
"creative-commons-nc": "<i class=\"fa-brands fa-creative-commons-nc\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Nc<\/span>",
"aws": "<i class=\"fa-brands fa-aws\" style=\"color: #2271b1;\"><\/i> <span>Aws<\/span>",
"redhat": "<i class=\"fa-brands fa-redhat\" style=\"color: #2271b1;\"><\/i> <span>Redhat<\/span>",
"yoast": "<i class=\"fa-brands fa-yoast\" style=\"color: #2271b1;\"><\/i> <span>Yoast<\/span>",
"cloudflare": "<i class=\"fa-brands fa-cloudflare\" style=\"color: #2271b1;\"><\/i> <span>Cloudflare<\/span>",
"ups": "<i class=\"fa-brands fa-ups\" style=\"color: #2271b1;\"><\/i> <span>Ups<\/span>",
"wpexplorer": "<i class=\"fa-brands fa-wpexplorer\" style=\"color: #2271b1;\"><\/i> <span>Wpexplorer<\/span>",
"dyalog": "<i class=\"fa-brands fa-dyalog\" style=\"color: #2271b1;\"><\/i> <span>Dyalog<\/span>",
"bity": "<i class=\"fa-brands fa-bity\" style=\"color: #2271b1;\"><\/i> <span>Bity<\/span>",
"stackpath": "<i class=\"fa-brands fa-stackpath\" style=\"color: #2271b1;\"><\/i> <span>Stackpath<\/span>",
"buysellads": "<i class=\"fa-brands fa-buysellads\" style=\"color: #2271b1;\"><\/i> <span>Buysellads<\/span>",
"first-order": "<i class=\"fa-brands fa-first-order\" style=\"color: #2271b1;\"><\/i> <span>First Order<\/span>",
"modx": "<i class=\"fa-brands fa-modx\" style=\"color: #2271b1;\"><\/i> <span>Modx<\/span>",
"guilded": "<i class=\"fa-brands fa-guilded\" style=\"color: #2271b1;\"><\/i> <span>Guilded<\/span>",
"vnv": "<i class=\"fa-brands fa-vnv\" style=\"color: #2271b1;\"><\/i> <span>Vnv<\/span>",
"square-js": "<i class=\"fa-brands fa-square-js\" style=\"color: #2271b1;\"><\/i> <span>Square Js<\/span>",
"microsoft": "<i class=\"fa-brands fa-microsoft\" style=\"color: #2271b1;\"><\/i> <span>Microsoft<\/span>",
"qq": "<i class=\"fa-brands fa-qq\" style=\"color: #2271b1;\"><\/i> <span>Qq<\/span>",
"orcid": "<i class=\"fa-brands fa-orcid\" style=\"color: #2271b1;\"><\/i> <span>Orcid<\/span>",
"java": "<i class=\"fa-brands fa-java\" style=\"color: #2271b1;\"><\/i> <span>Java<\/span>",
"invision": "<i class=\"fa-brands fa-invision\" style=\"color: #2271b1;\"><\/i> <span>Invision<\/span>",
"creative-commons-pd-alt": "<i class=\"fa-brands fa-creative-commons-pd-alt\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Pd Alt<\/span>",
"centercode": "<i class=\"fa-brands fa-centercode\" style=\"color: #2271b1;\"><\/i> <span>Centercode<\/span>",
"glide-g": "<i class=\"fa-brands fa-glide-g\" style=\"color: #2271b1;\"><\/i> <span>Glide G<\/span>",
"drupal": "<i class=\"fa-brands fa-drupal\" style=\"color: #2271b1;\"><\/i> <span>Drupal<\/span>",
"hire-a-helper": "<i class=\"fa-brands fa-hire-a-helper\" style=\"color: #2271b1;\"><\/i> <span>Hire A Helper<\/span>",
"creative-commons-by": "<i class=\"fa-brands fa-creative-commons-by\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons By<\/span>",
"unity": "<i class=\"fa-brands fa-unity\" style=\"color: #2271b1;\"><\/i> <span>Unity<\/span>",
"whmcs": "<i class=\"fa-brands fa-whmcs\" style=\"color: #2271b1;\"><\/i> <span>Whmcs<\/span>",
"rocketchat": "<i class=\"fa-brands fa-rocketchat\" style=\"color: #2271b1;\"><\/i> <span>Rocketchat<\/span>",
"vk": "<i class=\"fa-brands fa-vk\" style=\"color: #2271b1;\"><\/i> <span>Vk<\/span>",
"untappd": "<i class=\"fa-brands fa-untappd\" style=\"color: #2271b1;\"><\/i> <span>Untappd<\/span>",
"mailchimp": "<i class=\"fa-brands fa-mailchimp\" style=\"color: #2271b1;\"><\/i> <span>Mailchimp<\/span>",
"css3-alt": "<i class=\"fa-brands fa-css3-alt\" style=\"color: #2271b1;\"><\/i> <span>Css3 Alt<\/span>",
"square-reddit": "<i class=\"fa-brands fa-square-reddit\" style=\"color: #2271b1;\"><\/i> <span>Square Reddit<\/span>",
"vimeo-v": "<i class=\"fa-brands fa-vimeo-v\" style=\"color: #2271b1;\"><\/i> <span>Vimeo V<\/span>",
"contao": "<i class=\"fa-brands fa-contao\" style=\"color: #2271b1;\"><\/i> <span>Contao<\/span>",
"square-font-awesome": "<i class=\"fa-brands fa-square-font-awesome\" style=\"color: #2271b1;\"><\/i> <span>Square Font Awesome<\/span>",
"deskpro": "<i class=\"fa-brands fa-deskpro\" style=\"color: #2271b1;\"><\/i> <span>Deskpro<\/span>",
"sistrix": "<i class=\"fa-brands fa-sistrix\" style=\"color: #2271b1;\"><\/i> <span>Sistrix<\/span>",
"square-instagram": "<i class=\"fa-brands fa-square-instagram\" style=\"color: #2271b1;\"><\/i> <span>Square Instagram<\/span>",
"battle-net": "<i class=\"fa-brands fa-battle-net\" style=\"color: #2271b1;\"><\/i> <span>Battle Net<\/span>",
"the-red-yeti": "<i class=\"fa-brands fa-the-red-yeti\" style=\"color: #2271b1;\"><\/i> <span>The Red Yeti<\/span>",
"square-hacker-news": "<i class=\"fa-brands fa-square-hacker-news\" style=\"color: #2271b1;\"><\/i> <span>Square Hacker News<\/span>",
"edge": "<i class=\"fa-brands fa-edge\" style=\"color: #2271b1;\"><\/i> <span>Edge<\/span>",
"napster": "<i class=\"fa-brands fa-napster\" style=\"color: #2271b1;\"><\/i> <span>Napster<\/span>",
"square-snapchat": "<i class=\"fa-brands fa-square-snapchat\" style=\"color: #2271b1;\"><\/i> <span>Square Snapchat<\/span>",
"google-plus-g": "<i class=\"fa-brands fa-google-plus-g\" style=\"color: #2271b1;\"><\/i> <span>Google Plus G<\/span>",
"artstation": "<i class=\"fa-brands fa-artstation\" style=\"color: #2271b1;\"><\/i> <span>Artstation<\/span>",
"markdown": "<i class=\"fa-brands fa-markdown\" style=\"color: #2271b1;\"><\/i> <span>Markdown<\/span>",
"sourcetree": "<i class=\"fa-brands fa-sourcetree\" style=\"color: #2271b1;\"><\/i> <span>Sourcetree<\/span>",
"google-plus": "<i class=\"fa-brands fa-google-plus\" style=\"color: #2271b1;\"><\/i> <span>Google Plus<\/span>",
"diaspora": "<i class=\"fa-brands fa-diaspora\" style=\"color: #2271b1;\"><\/i> <span>Diaspora<\/span>",
"foursquare": "<i class=\"fa-brands fa-foursquare\" style=\"color: #2271b1;\"><\/i> <span>Foursquare<\/span>",
"stack-overflow": "<i class=\"fa-brands fa-stack-overflow\" style=\"color: #2271b1;\"><\/i> <span>Stack Overflow<\/span>",
"github-alt": "<i class=\"fa-brands fa-github-alt\" style=\"color: #2271b1;\"><\/i> <span>Github Alt<\/span>",
"phoenix-squadron": "<i class=\"fa-brands fa-phoenix-squadron\" style=\"color: #2271b1;\"><\/i> <span>Phoenix Squadron<\/span>",
"pagelines": "<i class=\"fa-brands fa-pagelines\" style=\"color: #2271b1;\"><\/i> <span>Pagelines<\/span>",
"algolia": "<i class=\"fa-brands fa-algolia\" style=\"color: #2271b1;\"><\/i> <span>Algolia<\/span>",
"red-river": "<i class=\"fa-brands fa-red-river\" style=\"color: #2271b1;\"><\/i> <span>Red River<\/span>",
"creative-commons-sa": "<i class=\"fa-brands fa-creative-commons-sa\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Sa<\/span>",
"safari": "<i class=\"fa-brands fa-safari\" style=\"color: #2271b1;\"><\/i> <span>Safari<\/span>",
"google": "<i class=\"fa-brands fa-google\" style=\"color: #2271b1;\"><\/i> <span>Google<\/span>",
"square-font-awesome-stroke": "<i class=\"fa-brands fa-square-font-awesome-stroke\" style=\"color: #2271b1;\"><\/i> <span>Square Font Awesome Stroke<\/span>",
"atlassian": "<i class=\"fa-brands fa-atlassian\" style=\"color: #2271b1;\"><\/i> <span>Atlassian<\/span>",
"linkedin-in": "<i class=\"fa-brands fa-linkedin-in\" style=\"color: #2271b1;\"><\/i> <span>Linkedin In<\/span>",
"digital-ocean": "<i class=\"fa-brands fa-digital-ocean\" style=\"color: #2271b1;\"><\/i> <span>Digital Ocean<\/span>",
"nimblr": "<i class=\"fa-brands fa-nimblr\" style=\"color: #2271b1;\"><\/i> <span>Nimblr<\/span>",
"chromecast": "<i class=\"fa-brands fa-chromecast\" style=\"color: #2271b1;\"><\/i> <span>Chromecast<\/span>",
"evernote": "<i class=\"fa-brands fa-evernote\" style=\"color: #2271b1;\"><\/i> <span>Evernote<\/span>",
"hacker-news": "<i class=\"fa-brands fa-hacker-news\" style=\"color: #2271b1;\"><\/i> <span>Hacker News<\/span>",
"creative-commons-sampling": "<i class=\"fa-brands fa-creative-commons-sampling\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Sampling<\/span>",
"adversal": "<i class=\"fa-brands fa-adversal\" style=\"color: #2271b1;\"><\/i> <span>Adversal<\/span>",
"creative-commons": "<i class=\"fa-brands fa-creative-commons\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons<\/span>",
"watchman-monitoring": "<i class=\"fa-brands fa-watchman-monitoring\" style=\"color: #2271b1;\"><\/i> <span>Watchman Monitoring<\/span>",
"fonticons": "<i class=\"fa-brands fa-fonticons\" style=\"color: #2271b1;\"><\/i> <span>Fonticons<\/span>",
"weixin": "<i class=\"fa-brands fa-weixin\" style=\"color: #2271b1;\"><\/i> <span>Weixin<\/span>",
"shirtsinbulk": "<i class=\"fa-brands fa-shirtsinbulk\" style=\"color: #2271b1;\"><\/i> <span>Shirtsinbulk<\/span>",
"codepen": "<i class=\"fa-brands fa-codepen\" style=\"color: #2271b1;\"><\/i> <span>Codepen<\/span>",
"git-alt": "<i class=\"fa-brands fa-git-alt\" style=\"color: #2271b1;\"><\/i> <span>Git Alt<\/span>",
"lyft": "<i class=\"fa-brands fa-lyft\" style=\"color: #2271b1;\"><\/i> <span>Lyft<\/span>",
"rev": "<i class=\"fa-brands fa-rev\" style=\"color: #2271b1;\"><\/i> <span>Rev<\/span>",
"windows": "<i class=\"fa-brands fa-windows\" style=\"color: #2271b1;\"><\/i> <span>Windows<\/span>",
"wizards-of-the-coast": "<i class=\"fa-brands fa-wizards-of-the-coast\" style=\"color: #2271b1;\"><\/i> <span>Wizards Of The Coast<\/span>",
"square-viadeo": "<i class=\"fa-brands fa-square-viadeo\" style=\"color: #2271b1;\"><\/i> <span>Square Viadeo<\/span>",
"meetup": "<i class=\"fa-brands fa-meetup\" style=\"color: #2271b1;\"><\/i> <span>Meetup<\/span>",
"centos": "<i class=\"fa-brands fa-centos\" style=\"color: #2271b1;\"><\/i> <span>Centos<\/span>",
"adn": "<i class=\"fa-brands fa-adn\" style=\"color: #2271b1;\"><\/i> <span>Adn<\/span>",
"cloudsmith": "<i class=\"fa-brands fa-cloudsmith\" style=\"color: #2271b1;\"><\/i> <span>Cloudsmith<\/span>",
"pied-piper-alt": "<i class=\"fa-brands fa-pied-piper-alt\" style=\"color: #2271b1;\"><\/i> <span>Pied Piper Alt<\/span>",
"square-dribbble": "<i class=\"fa-brands fa-square-dribbble\" style=\"color: #2271b1;\"><\/i> <span>Square Dribbble<\/span>",
"codiepie": "<i class=\"fa-brands fa-codiepie\" style=\"color: #2271b1;\"><\/i> <span>Codiepie<\/span>",
"node": "<i class=\"fa-brands fa-node\" style=\"color: #2271b1;\"><\/i> <span>Node<\/span>",
"mix": "<i class=\"fa-brands fa-mix\" style=\"color: #2271b1;\"><\/i> <span>Mix<\/span>",
"steam": "<i class=\"fa-brands fa-steam\" style=\"color: #2271b1;\"><\/i> <span>Steam<\/span>",
"cc-apple-pay": "<i class=\"fa-brands fa-cc-apple-pay\" style=\"color: #2271b1;\"><\/i> <span>Cc Apple Pay<\/span>",
"scribd": "<i class=\"fa-brands fa-scribd\" style=\"color: #2271b1;\"><\/i> <span>Scribd<\/span>",
"openid": "<i class=\"fa-brands fa-openid\" style=\"color: #2271b1;\"><\/i> <span>Openid<\/span>",
"instalod": "<i class=\"fa-brands fa-instalod\" style=\"color: #2271b1;\"><\/i> <span>Instalod<\/span>",
"expeditedssl": "<i class=\"fa-brands fa-expeditedssl\" style=\"color: #2271b1;\"><\/i> <span>Expeditedssl<\/span>",
"sellcast": "<i class=\"fa-brands fa-sellcast\" style=\"color: #2271b1;\"><\/i> <span>Sellcast<\/span>",
"square-twitter": "<i class=\"fa-brands fa-square-twitter\" style=\"color: #2271b1;\"><\/i> <span>Square Twitter<\/span>",
"r-project": "<i class=\"fa-brands fa-r-project\" style=\"color: #2271b1;\"><\/i> <span>R Project<\/span>",
"delicious": "<i class=\"fa-brands fa-delicious\" style=\"color: #2271b1;\"><\/i> <span>Delicious<\/span>",
"freebsd": "<i class=\"fa-brands fa-freebsd\" style=\"color: #2271b1;\"><\/i> <span>Freebsd<\/span>",
"vuejs": "<i class=\"fa-brands fa-vuejs\" style=\"color: #2271b1;\"><\/i> <span>Vuejs<\/span>",
"accusoft": "<i class=\"fa-brands fa-accusoft\" style=\"color: #2271b1;\"><\/i> <span>Accusoft<\/span>",
"ioxhost": "<i class=\"fa-brands fa-ioxhost\" style=\"color: #2271b1;\"><\/i> <span>Ioxhost<\/span>",
"fonticons-fi": "<i class=\"fa-brands fa-fonticons-fi\" style=\"color: #2271b1;\"><\/i> <span>Fonticons Fi<\/span>",
"app-store": "<i class=\"fa-brands fa-app-store\" style=\"color: #2271b1;\"><\/i> <span>App Store<\/span>",
"cc-mastercard": "<i class=\"fa-brands fa-cc-mastercard\" style=\"color: #2271b1;\"><\/i> <span>Cc Mastercard<\/span>",
"itunes-note": "<i class=\"fa-brands fa-itunes-note\" style=\"color: #2271b1;\"><\/i> <span>Itunes Note<\/span>",
"golang": "<i class=\"fa-brands fa-golang\" style=\"color: #2271b1;\"><\/i> <span>Golang<\/span>",
"kickstarter": "<i class=\"fa-brands fa-kickstarter\" style=\"color: #2271b1;\"><\/i> <span>Kickstarter<\/span>",
"grav": "<i class=\"fa-brands fa-grav\" style=\"color: #2271b1;\"><\/i> <span>Grav<\/span>",
"weibo": "<i class=\"fa-brands fa-weibo\" style=\"color: #2271b1;\"><\/i> <span>Weibo<\/span>",
"uncharted": "<i class=\"fa-brands fa-uncharted\" style=\"color: #2271b1;\"><\/i> <span>Uncharted<\/span>",
"firstdraft": "<i class=\"fa-brands fa-firstdraft\" style=\"color: #2271b1;\"><\/i> <span>Firstdraft<\/span>",
"square-youtube": "<i class=\"fa-brands fa-square-youtube\" style=\"color: #2271b1;\"><\/i> <span>Square Youtube<\/span>",
"wikipedia-w": "<i class=\"fa-brands fa-wikipedia-w\" style=\"color: #2271b1;\"><\/i> <span>Wikipedia W<\/span>",
"wpressr": "<i class=\"fa-brands fa-wpressr\" style=\"color: #2271b1;\"><\/i> <span>Wpressr<\/span>",
"angellist": "<i class=\"fa-brands fa-angellist\" style=\"color: #2271b1;\"><\/i> <span>Angellist<\/span>",
"galactic-republic": "<i class=\"fa-brands fa-galactic-republic\" style=\"color: #2271b1;\"><\/i> <span>Galactic Republic<\/span>",
"nfc-directional": "<i class=\"fa-brands fa-nfc-directional\" style=\"color: #2271b1;\"><\/i> <span>Nfc Directional<\/span>",
"skype": "<i class=\"fa-brands fa-skype\" style=\"color: #2271b1;\"><\/i> <span>Skype<\/span>",
"joget": "<i class=\"fa-brands fa-joget\" style=\"color: #2271b1;\"><\/i> <span>Joget<\/span>",
"fedora": "<i class=\"fa-brands fa-fedora\" style=\"color: #2271b1;\"><\/i> <span>Fedora<\/span>",
"stripe-s": "<i class=\"fa-brands fa-stripe-s\" style=\"color: #2271b1;\"><\/i> <span>Stripe S<\/span>",
"meta": "<i class=\"fa-brands fa-meta\" style=\"color: #2271b1;\"><\/i> <span>Meta<\/span>",
"laravel": "<i class=\"fa-brands fa-laravel\" style=\"color: #2271b1;\"><\/i> <span>Laravel<\/span>",
"hotjar": "<i class=\"fa-brands fa-hotjar\" style=\"color: #2271b1;\"><\/i> <span>Hotjar<\/span>",
"bluetooth-b": "<i class=\"fa-brands fa-bluetooth-b\" style=\"color: #2271b1;\"><\/i> <span>Bluetooth B<\/span>",
"sticker-mule": "<i class=\"fa-brands fa-sticker-mule\" style=\"color: #2271b1;\"><\/i> <span>Sticker Mule<\/span>",
"creative-commons-zero": "<i class=\"fa-brands fa-creative-commons-zero\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Zero<\/span>",
"hips": "<i class=\"fa-brands fa-hips\" style=\"color: #2271b1;\"><\/i> <span>Hips<\/span>",
"behance": "<i class=\"fa-brands fa-behance\" style=\"color: #2271b1;\"><\/i> <span>Behance<\/span>",
"reddit": "<i class=\"fa-brands fa-reddit\" style=\"color: #2271b1;\"><\/i> <span>Reddit<\/span>",
"discord": "<i class=\"fa-brands fa-discord\" style=\"color: #2271b1;\"><\/i> <span>Discord<\/span>",
"chrome": "<i class=\"fa-brands fa-chrome\" style=\"color: #2271b1;\"><\/i> <span>Chrome<\/span>",
"app-store-ios": "<i class=\"fa-brands fa-app-store-ios\" style=\"color: #2271b1;\"><\/i> <span>App Store Ios<\/span>",
"cc-discover": "<i class=\"fa-brands fa-cc-discover\" style=\"color: #2271b1;\"><\/i> <span>Cc Discover<\/span>",
"wpbeginner": "<i class=\"fa-brands fa-wpbeginner\" style=\"color: #2271b1;\"><\/i> <span>Wpbeginner<\/span>",
"confluence": "<i class=\"fa-brands fa-confluence\" style=\"color: #2271b1;\"><\/i> <span>Confluence<\/span>",
"mdb": "<i class=\"fa-brands fa-mdb\" style=\"color: #2271b1;\"><\/i> <span>Mdb<\/span>",
"dochub": "<i class=\"fa-brands fa-dochub\" style=\"color: #2271b1;\"><\/i> <span>Dochub<\/span>",
"accessible-icon": "<i class=\"fa-brands fa-accessible-icon\" style=\"color: #2271b1;\"><\/i> <span>Accessible Icon<\/span>",
"ebay": "<i class=\"fa-brands fa-ebay\" style=\"color: #2271b1;\"><\/i> <span>Ebay<\/span>",
"amazon": "<i class=\"fa-brands fa-amazon\" style=\"color: #2271b1;\"><\/i> <span>Amazon<\/span>",
"unsplash": "<i class=\"fa-brands fa-unsplash\" style=\"color: #2271b1;\"><\/i> <span>Unsplash<\/span>",
"yarn": "<i class=\"fa-brands fa-yarn\" style=\"color: #2271b1;\"><\/i> <span>Yarn<\/span>",
"square-steam": "<i class=\"fa-brands fa-square-steam\" style=\"color: #2271b1;\"><\/i> <span>Square Steam<\/span>",
"500px": "<i class=\"fa-brands fa-500px\" style=\"color: #2271b1;\"><\/i> <span>500px<\/span>",
"square-vimeo": "<i class=\"fa-brands fa-square-vimeo\" style=\"color: #2271b1;\"><\/i> <span>Square Vimeo<\/span>",
"asymmetrik": "<i class=\"fa-brands fa-asymmetrik\" style=\"color: #2271b1;\"><\/i> <span>Asymmetrik<\/span>",
"font-awesome": "<i class=\"fa-brands fa-font-awesome\" style=\"color: #2271b1;\"><\/i> <span>Font Awesome<\/span>",
"gratipay": "<i class=\"fa-brands fa-gratipay\" style=\"color: #2271b1;\"><\/i> <span>Gratipay<\/span>",
"apple": "<i class=\"fa-brands fa-apple\" style=\"color: #2271b1;\"><\/i> <span>Apple<\/span>",
"hive": "<i class=\"fa-brands fa-hive\" style=\"color: #2271b1;\"><\/i> <span>Hive<\/span>",
"gitkraken": "<i class=\"fa-brands fa-gitkraken\" style=\"color: #2271b1;\"><\/i> <span>Gitkraken<\/span>",
"keybase": "<i class=\"fa-brands fa-keybase\" style=\"color: #2271b1;\"><\/i> <span>Keybase<\/span>",
"apple-pay": "<i class=\"fa-brands fa-apple-pay\" style=\"color: #2271b1;\"><\/i> <span>Apple Pay<\/span>",
"padlet": "<i class=\"fa-brands fa-padlet\" style=\"color: #2271b1;\"><\/i> <span>Padlet<\/span>",
"amazon-pay": "<i class=\"fa-brands fa-amazon-pay\" style=\"color: #2271b1;\"><\/i> <span>Amazon Pay<\/span>",
"square-github": "<i class=\"fa-brands fa-square-github\" style=\"color: #2271b1;\"><\/i> <span>Square Github<\/span>",
"stumbleupon": "<i class=\"fa-brands fa-stumbleupon\" style=\"color: #2271b1;\"><\/i> <span>Stumbleupon<\/span>",
"fedex": "<i class=\"fa-brands fa-fedex\" style=\"color: #2271b1;\"><\/i> <span>Fedex<\/span>",
"phoenix-framework": "<i class=\"fa-brands fa-phoenix-framework\" style=\"color: #2271b1;\"><\/i> <span>Phoenix Framework<\/span>",
"shopify": "<i class=\"fa-brands fa-shopify\" style=\"color: #2271b1;\"><\/i> <span>Shopify<\/span>",
"neos": "<i class=\"fa-brands fa-neos\" style=\"color: #2271b1;\"><\/i> <span>Neos<\/span>",
"hackerrank": "<i class=\"fa-brands fa-hackerrank\" style=\"color: #2271b1;\"><\/i> <span>Hackerrank<\/span>",
"researchgate": "<i class=\"fa-brands fa-researchgate\" style=\"color: #2271b1;\"><\/i> <span>Researchgate<\/span>",
"swift": "<i class=\"fa-brands fa-swift\" style=\"color: #2271b1;\"><\/i> <span>Swift<\/span>",
"angular": "<i class=\"fa-brands fa-angular\" style=\"color: #2271b1;\"><\/i> <span>Angular<\/span>",
"speakap": "<i class=\"fa-brands fa-speakap\" style=\"color: #2271b1;\"><\/i> <span>Speakap<\/span>",
"angrycreative": "<i class=\"fa-brands fa-angrycreative\" style=\"color: #2271b1;\"><\/i> <span>Angrycreative<\/span>",
"y-combinator": "<i class=\"fa-brands fa-y-combinator\" style=\"color: #2271b1;\"><\/i> <span>Y Combinator<\/span>",
"empire": "<i class=\"fa-brands fa-empire\" style=\"color: #2271b1;\"><\/i> <span>Empire<\/span>",
"envira": "<i class=\"fa-brands fa-envira\" style=\"color: #2271b1;\"><\/i> <span>Envira<\/span>",
"square-gitlab": "<i class=\"fa-brands fa-square-gitlab\" style=\"color: #2271b1;\"><\/i> <span>Square Gitlab<\/span>",
"studiovinari": "<i class=\"fa-brands fa-studiovinari\" style=\"color: #2271b1;\"><\/i> <span>Studiovinari<\/span>",
"pied-piper": "<i class=\"fa-brands fa-pied-piper\" style=\"color: #2271b1;\"><\/i> <span>Pied Piper<\/span>",
"wordpress": "<i class=\"fa-brands fa-wordpress\" style=\"color: #2271b1;\"><\/i> <span>Wordpress<\/span>",
"product-hunt": "<i class=\"fa-brands fa-product-hunt\" style=\"color: #2271b1;\"><\/i> <span>Product Hunt<\/span>",
"firefox": "<i class=\"fa-brands fa-firefox\" style=\"color: #2271b1;\"><\/i> <span>Firefox<\/span>",
"linode": "<i class=\"fa-brands fa-linode\" style=\"color: #2271b1;\"><\/i> <span>Linode<\/span>",
"goodreads": "<i class=\"fa-brands fa-goodreads\" style=\"color: #2271b1;\"><\/i> <span>Goodreads<\/span>",
"square-odnoklassniki": "<i class=\"fa-brands fa-square-odnoklassniki\" style=\"color: #2271b1;\"><\/i> <span>Square Odnoklassniki<\/span>",
"jsfiddle": "<i class=\"fa-brands fa-jsfiddle\" style=\"color: #2271b1;\"><\/i> <span>Jsfiddle<\/span>",
"sith": "<i class=\"fa-brands fa-sith\" style=\"color: #2271b1;\"><\/i> <span>Sith<\/span>",
"themeisle": "<i class=\"fa-brands fa-themeisle\" style=\"color: #2271b1;\"><\/i> <span>Themeisle<\/span>",
"page4": "<i class=\"fa-brands fa-page4\" style=\"color: #2271b1;\"><\/i> <span>Page4<\/span>",
"hashnode": "<i class=\"fa-brands fa-hashnode\" style=\"color: #2271b1;\"><\/i> <span>Hashnode<\/span>",
"react": "<i class=\"fa-brands fa-react\" style=\"color: #2271b1;\"><\/i> <span>React<\/span>",
"cc-paypal": "<i class=\"fa-brands fa-cc-paypal\" style=\"color: #2271b1;\"><\/i> <span>Cc Paypal<\/span>",
"squarespace": "<i class=\"fa-brands fa-squarespace\" style=\"color: #2271b1;\"><\/i> <span>Squarespace<\/span>",
"cc-stripe": "<i class=\"fa-brands fa-cc-stripe\" style=\"color: #2271b1;\"><\/i> <span>Cc Stripe<\/span>",
"creative-commons-share": "<i class=\"fa-brands fa-creative-commons-share\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Share<\/span>",
"bitcoin": "<i class=\"fa-brands fa-bitcoin\" style=\"color: #2271b1;\"><\/i> <span>Bitcoin<\/span>",
"keycdn": "<i class=\"fa-brands fa-keycdn\" style=\"color: #2271b1;\"><\/i> <span>Keycdn<\/span>",
"opera": "<i class=\"fa-brands fa-opera\" style=\"color: #2271b1;\"><\/i> <span>Opera<\/span>",
"itch-io": "<i class=\"fa-brands fa-itch-io\" style=\"color: #2271b1;\"><\/i> <span>Itch Io<\/span>",
"umbraco": "<i class=\"fa-brands fa-umbraco\" style=\"color: #2271b1;\"><\/i> <span>Umbraco<\/span>",
"galactic-senate": "<i class=\"fa-brands fa-galactic-senate\" style=\"color: #2271b1;\"><\/i> <span>Galactic Senate<\/span>",
"ubuntu": "<i class=\"fa-brands fa-ubuntu\" style=\"color: #2271b1;\"><\/i> <span>Ubuntu<\/span>",
"draft2digital": "<i class=\"fa-brands fa-draft2digital\" style=\"color: #2271b1;\"><\/i> <span>Draft2digital<\/span>",
"stripe": "<i class=\"fa-brands fa-stripe\" style=\"color: #2271b1;\"><\/i> <span>Stripe<\/span>",
"houzz": "<i class=\"fa-brands fa-houzz\" style=\"color: #2271b1;\"><\/i> <span>Houzz<\/span>",
"gg": "<i class=\"fa-brands fa-gg\" style=\"color: #2271b1;\"><\/i> <span>Gg<\/span>",
"dhl": "<i class=\"fa-brands fa-dhl\" style=\"color: #2271b1;\"><\/i> <span>Dhl<\/span>",
"square-pinterest": "<i class=\"fa-brands fa-square-pinterest\" style=\"color: #2271b1;\"><\/i> <span>Square Pinterest<\/span>",
"xing": "<i class=\"fa-brands fa-xing\" style=\"color: #2271b1;\"><\/i> <span>Xing<\/span>",
"blackberry": "<i class=\"fa-brands fa-blackberry\" style=\"color: #2271b1;\"><\/i> <span>Blackberry<\/span>",
"creative-commons-pd": "<i class=\"fa-brands fa-creative-commons-pd\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Pd<\/span>",
"playstation": "<i class=\"fa-brands fa-playstation\" style=\"color: #2271b1;\"><\/i> <span>Playstation<\/span>",
"quinscape": "<i class=\"fa-brands fa-quinscape\" style=\"color: #2271b1;\"><\/i> <span>Quinscape<\/span>",
"less": "<i class=\"fa-brands fa-less\" style=\"color: #2271b1;\"><\/i> <span>Less<\/span>",
"blogger-b": "<i class=\"fa-brands fa-blogger-b\" style=\"color: #2271b1;\"><\/i> <span>Blogger B<\/span>",
"opencart": "<i class=\"fa-brands fa-opencart\" style=\"color: #2271b1;\"><\/i> <span>Opencart<\/span>",
"vine": "<i class=\"fa-brands fa-vine\" style=\"color: #2271b1;\"><\/i> <span>Vine<\/span>",
"paypal": "<i class=\"fa-brands fa-paypal\" style=\"color: #2271b1;\"><\/i> <span>Paypal<\/span>",
"gitlab": "<i class=\"fa-brands fa-gitlab\" style=\"color: #2271b1;\"><\/i> <span>Gitlab<\/span>",
"typo3": "<i class=\"fa-brands fa-typo3\" style=\"color: #2271b1;\"><\/i> <span>Typo3<\/span>",
"reddit-alien": "<i class=\"fa-brands fa-reddit-alien\" style=\"color: #2271b1;\"><\/i> <span>Reddit Alien<\/span>",
"yahoo": "<i class=\"fa-brands fa-yahoo\" style=\"color: #2271b1;\"><\/i> <span>Yahoo<\/span>",
"dailymotion": "<i class=\"fa-brands fa-dailymotion\" style=\"color: #2271b1;\"><\/i> <span>Dailymotion<\/span>",
"affiliatetheme": "<i class=\"fa-brands fa-affiliatetheme\" style=\"color: #2271b1;\"><\/i> <span>Affiliatetheme<\/span>",
"pied-piper-pp": "<i class=\"fa-brands fa-pied-piper-pp\" style=\"color: #2271b1;\"><\/i> <span>Pied Piper Pp<\/span>",
"bootstrap": "<i class=\"fa-brands fa-bootstrap\" style=\"color: #2271b1;\"><\/i> <span>Bootstrap<\/span>",
"odnoklassniki": "<i class=\"fa-brands fa-odnoklassniki\" style=\"color: #2271b1;\"><\/i> <span>Odnoklassniki<\/span>",
"nfc-symbol": "<i class=\"fa-brands fa-nfc-symbol\" style=\"color: #2271b1;\"><\/i> <span>Nfc Symbol<\/span>",
"ethereum": "<i class=\"fa-brands fa-ethereum\" style=\"color: #2271b1;\"><\/i> <span>Ethereum<\/span>",
"speaker-deck": "<i class=\"fa-brands fa-speaker-deck\" style=\"color: #2271b1;\"><\/i> <span>Speaker Deck<\/span>",
"creative-commons-nc-eu": "<i class=\"fa-brands fa-creative-commons-nc-eu\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Nc Eu<\/span>",
"patreon": "<i class=\"fa-brands fa-patreon\" style=\"color: #2271b1;\"><\/i> <span>Patreon<\/span>",
"avianex": "<i class=\"fa-brands fa-avianex\" style=\"color: #2271b1;\"><\/i> <span>Avianex<\/span>",
"ello": "<i class=\"fa-brands fa-ello\" style=\"color: #2271b1;\"><\/i> <span>Ello<\/span>",
"gofore": "<i class=\"fa-brands fa-gofore\" style=\"color: #2271b1;\"><\/i> <span>Gofore<\/span>",
"bimobject": "<i class=\"fa-brands fa-bimobject\" style=\"color: #2271b1;\"><\/i> <span>Bimobject<\/span>",
"facebook-f": "<i class=\"fa-brands fa-facebook-f\" style=\"color: #2271b1;\"><\/i> <span>Facebook F<\/span>",
"square-google-plus": "<i class=\"fa-brands fa-square-google-plus\" style=\"color: #2271b1;\"><\/i> <span>Square Google Plus<\/span>",
"mandalorian": "<i class=\"fa-brands fa-mandalorian\" style=\"color: #2271b1;\"><\/i> <span>Mandalorian<\/span>",
"first-order-alt": "<i class=\"fa-brands fa-first-order-alt\" style=\"color: #2271b1;\"><\/i> <span>First Order Alt<\/span>",
"osi": "<i class=\"fa-brands fa-osi\" style=\"color: #2271b1;\"><\/i> <span>Osi<\/span>",
"google-wallet": "<i class=\"fa-brands fa-google-wallet\" style=\"color: #2271b1;\"><\/i> <span>Google Wallet<\/span>",
"d-and-d-beyond": "<i class=\"fa-brands fa-d-and-d-beyond\" style=\"color: #2271b1;\"><\/i> <span>D And D Beyond<\/span>",
"periscope": "<i class=\"fa-brands fa-periscope\" style=\"color: #2271b1;\"><\/i> <span>Periscope<\/span>",
"fulcrum": "<i class=\"fa-brands fa-fulcrum\" style=\"color: #2271b1;\"><\/i> <span>Fulcrum<\/span>",
"cloudscale": "<i class=\"fa-brands fa-cloudscale\" style=\"color: #2271b1;\"><\/i> <span>Cloudscale<\/span>",
"forumbee": "<i class=\"fa-brands fa-forumbee\" style=\"color: #2271b1;\"><\/i> <span>Forumbee<\/span>",
"mizuni": "<i class=\"fa-brands fa-mizuni\" style=\"color: #2271b1;\"><\/i> <span>Mizuni<\/span>",
"schlix": "<i class=\"fa-brands fa-schlix\" style=\"color: #2271b1;\"><\/i> <span>Schlix<\/span>",
"square-xing": "<i class=\"fa-brands fa-square-xing\" style=\"color: #2271b1;\"><\/i> <span>Square Xing<\/span>",
"bandcamp": "<i class=\"fa-brands fa-bandcamp\" style=\"color: #2271b1;\"><\/i> <span>Bandcamp<\/span>",
"wpforms": "<i class=\"fa-brands fa-wpforms\" style=\"color: #2271b1;\"><\/i> <span>Wpforms<\/span>",
"cloudversify": "<i class=\"fa-brands fa-cloudversify\" style=\"color: #2271b1;\"><\/i> <span>Cloudversify<\/span>",
"usps": "<i class=\"fa-brands fa-usps\" style=\"color: #2271b1;\"><\/i> <span>Usps<\/span>",
"megaport": "<i class=\"fa-brands fa-megaport\" style=\"color: #2271b1;\"><\/i> <span>Megaport<\/span>",
"magento": "<i class=\"fa-brands fa-magento\" style=\"color: #2271b1;\"><\/i> <span>Magento<\/span>",
"spotify": "<i class=\"fa-brands fa-spotify\" style=\"color: #2271b1;\"><\/i> <span>Spotify<\/span>",
"optin-monster": "<i class=\"fa-brands fa-optin-monster\" style=\"color: #2271b1;\"><\/i> <span>Optin Monster<\/span>",
"fly": "<i class=\"fa-brands fa-fly\" style=\"color: #2271b1;\"><\/i> <span>Fly<\/span>",
"aviato": "<i class=\"fa-brands fa-aviato\" style=\"color: #2271b1;\"><\/i> <span>Aviato<\/span>",
"itunes": "<i class=\"fa-brands fa-itunes\" style=\"color: #2271b1;\"><\/i> <span>Itunes<\/span>",
"cuttlefish": "<i class=\"fa-brands fa-cuttlefish\" style=\"color: #2271b1;\"><\/i> <span>Cuttlefish<\/span>",
"blogger": "<i class=\"fa-brands fa-blogger\" style=\"color: #2271b1;\"><\/i> <span>Blogger<\/span>",
"flickr": "<i class=\"fa-brands fa-flickr\" style=\"color: #2271b1;\"><\/i> <span>Flickr<\/span>",
"viber": "<i class=\"fa-brands fa-viber\" style=\"color: #2271b1;\"><\/i> <span>Viber<\/span>",
"soundcloud": "<i class=\"fa-brands fa-soundcloud\" style=\"color: #2271b1;\"><\/i> <span>Soundcloud<\/span>",
"digg": "<i class=\"fa-brands fa-digg\" style=\"color: #2271b1;\"><\/i> <span>Digg<\/span>",
"tencent-weibo": "<i class=\"fa-brands fa-tencent-weibo\" style=\"color: #2271b1;\"><\/i> <span>Tencent Weibo<\/span>",
"symfony": "<i class=\"fa-brands fa-symfony\" style=\"color: #2271b1;\"><\/i> <span>Symfony<\/span>",
"maxcdn": "<i class=\"fa-brands fa-maxcdn\" style=\"color: #2271b1;\"><\/i> <span>Maxcdn<\/span>",
"etsy": "<i class=\"fa-brands fa-etsy\" style=\"color: #2271b1;\"><\/i> <span>Etsy<\/span>",
"facebook-messenger": "<i class=\"fa-brands fa-facebook-messenger\" style=\"color: #2271b1;\"><\/i> <span>Facebook Messenger<\/span>",
"audible": "<i class=\"fa-brands fa-audible\" style=\"color: #2271b1;\"><\/i> <span>Audible<\/span>",
"think-peaks": "<i class=\"fa-brands fa-think-peaks\" style=\"color: #2271b1;\"><\/i> <span>Think Peaks<\/span>",
"bilibili": "<i class=\"fa-brands fa-bilibili\" style=\"color: #2271b1;\"><\/i> <span>Bilibili<\/span>",
"erlang": "<i class=\"fa-brands fa-erlang\" style=\"color: #2271b1;\"><\/i> <span>Erlang<\/span>",
"cotton-bureau": "<i class=\"fa-brands fa-cotton-bureau\" style=\"color: #2271b1;\"><\/i> <span>Cotton Bureau<\/span>",
"dashcube": "<i class=\"fa-brands fa-dashcube\" style=\"color: #2271b1;\"><\/i> <span>Dashcube<\/span>",
"42-group": "<i class=\"fa-brands fa-42-group\" style=\"color: #2271b1;\"><\/i> <span>42 Group<\/span>",
"stack-exchange": "<i class=\"fa-brands fa-stack-exchange\" style=\"color: #2271b1;\"><\/i> <span>Stack Exchange<\/span>",
"elementor": "<i class=\"fa-brands fa-elementor\" style=\"color: #2271b1;\"><\/i> <span>Elementor<\/span>",
"square-pied-piper": "<i class=\"fa-brands fa-square-pied-piper\" style=\"color: #2271b1;\"><\/i> <span>Square Pied Piper<\/span>",
"creative-commons-nd": "<i class=\"fa-brands fa-creative-commons-nd\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Nd<\/span>",
"palfed": "<i class=\"fa-brands fa-palfed\" style=\"color: #2271b1;\"><\/i> <span>Palfed<\/span>",
"superpowers": "<i class=\"fa-brands fa-superpowers\" style=\"color: #2271b1;\"><\/i> <span>Superpowers<\/span>",
"resolving": "<i class=\"fa-brands fa-resolving\" style=\"color: #2271b1;\"><\/i> <span>Resolving<\/span>",
"xbox": "<i class=\"fa-brands fa-xbox\" style=\"color: #2271b1;\"><\/i> <span>Xbox<\/span>",
"searchengin": "<i class=\"fa-brands fa-searchengin\" style=\"color: #2271b1;\"><\/i> <span>Searchengin<\/span>",
"tiktok": "<i class=\"fa-brands fa-tiktok\" style=\"color: #2271b1;\"><\/i> <span>Tiktok<\/span>",
"square-facebook": "<i class=\"fa-brands fa-square-facebook\" style=\"color: #2271b1;\"><\/i> <span>Square Facebook<\/span>",
"renren": "<i class=\"fa-brands fa-renren\" style=\"color: #2271b1;\"><\/i> <span>Renren<\/span>",
"linux": "<i class=\"fa-brands fa-linux\" style=\"color: #2271b1;\"><\/i> <span>Linux<\/span>",
"glide": "<i class=\"fa-brands fa-glide\" style=\"color: #2271b1;\"><\/i> <span>Glide<\/span>",
"linkedin": "<i class=\"fa-brands fa-linkedin\" style=\"color: #2271b1;\"><\/i> <span>Linkedin<\/span>",
"hubspot": "<i class=\"fa-brands fa-hubspot\" style=\"color: #2271b1;\"><\/i> <span>Hubspot<\/span>",
"deploydog": "<i class=\"fa-brands fa-deploydog\" style=\"color: #2271b1;\"><\/i> <span>Deploydog<\/span>",
"twitch": "<i class=\"fa-brands fa-twitch\" style=\"color: #2271b1;\"><\/i> <span>Twitch<\/span>",
"ravelry": "<i class=\"fa-brands fa-ravelry\" style=\"color: #2271b1;\"><\/i> <span>Ravelry<\/span>",
"mixer": "<i class=\"fa-brands fa-mixer\" style=\"color: #2271b1;\"><\/i> <span>Mixer<\/span>",
"square-lastfm": "<i class=\"fa-brands fa-square-lastfm\" style=\"color: #2271b1;\"><\/i> <span>Square Lastfm<\/span>",
"vimeo": "<i class=\"fa-brands fa-vimeo\" style=\"color: #2271b1;\"><\/i> <span>Vimeo<\/span>",
"mendeley": "<i class=\"fa-brands fa-mendeley\" style=\"color: #2271b1;\"><\/i> <span>Mendeley<\/span>",
"uniregistry": "<i class=\"fa-brands fa-uniregistry\" style=\"color: #2271b1;\"><\/i> <span>Uniregistry<\/span>",
"figma": "<i class=\"fa-brands fa-figma\" style=\"color: #2271b1;\"><\/i> <span>Figma<\/span>",
"creative-commons-remix": "<i class=\"fa-brands fa-creative-commons-remix\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Remix<\/span>",
"cc-amazon-pay": "<i class=\"fa-brands fa-cc-amazon-pay\" style=\"color: #2271b1;\"><\/i> <span>Cc Amazon Pay<\/span>",
"dropbox": "<i class=\"fa-brands fa-dropbox\" style=\"color: #2271b1;\"><\/i> <span>Dropbox<\/span>",
"instagram": "<i class=\"fa-brands fa-instagram\" style=\"color: #2271b1;\"><\/i> <span>Instagram<\/span>",
"cmplid": "<i class=\"fa-brands fa-cmplid\" style=\"color: #2271b1;\"><\/i> <span>Cmplid<\/span>",
"facebook": "<i class=\"fa-brands fa-facebook\" style=\"color: #2271b1;\"><\/i> <span>Facebook<\/span>",
"gripfire": "<i class=\"fa-brands fa-gripfire\" style=\"color: #2271b1;\"><\/i> <span>Gripfire<\/span>",
"jedi-order": "<i class=\"fa-brands fa-jedi-order\" style=\"color: #2271b1;\"><\/i> <span>Jedi Order<\/span>",
"uikit": "<i class=\"fa-brands fa-uikit\" style=\"color: #2271b1;\"><\/i> <span>Uikit<\/span>",
"fort-awesome-alt": "<i class=\"fa-brands fa-fort-awesome-alt\" style=\"color: #2271b1;\"><\/i> <span>Fort Awesome Alt<\/span>",
"phabricator": "<i class=\"fa-brands fa-phabricator\" style=\"color: #2271b1;\"><\/i> <span>Phabricator<\/span>",
"ussunnah": "<i class=\"fa-brands fa-ussunnah\" style=\"color: #2271b1;\"><\/i> <span>Ussunnah<\/span>",
"earlybirds": "<i class=\"fa-brands fa-earlybirds\" style=\"color: #2271b1;\"><\/i> <span>Earlybirds<\/span>",
"trade-federation": "<i class=\"fa-brands fa-trade-federation\" style=\"color: #2271b1;\"><\/i> <span>Trade Federation<\/span>",
"autoprefixer": "<i class=\"fa-brands fa-autoprefixer\" style=\"color: #2271b1;\"><\/i> <span>Autoprefixer<\/span>",
"whatsapp": "<i class=\"fa-brands fa-whatsapp\" style=\"color: #2271b1;\"><\/i> <span>Whatsapp<\/span>",
"slideshare": "<i class=\"fa-brands fa-slideshare\" style=\"color: #2271b1;\"><\/i> <span>Slideshare<\/span>",
"google-play": "<i class=\"fa-brands fa-google-play\" style=\"color: #2271b1;\"><\/i> <span>Google Play<\/span>",
"viadeo": "<i class=\"fa-brands fa-viadeo\" style=\"color: #2271b1;\"><\/i> <span>Viadeo<\/span>",
"line": "<i class=\"fa-brands fa-line\" style=\"color: #2271b1;\"><\/i> <span>Line<\/span>",
"google-drive": "<i class=\"fa-brands fa-google-drive\" style=\"color: #2271b1;\"><\/i> <span>Google Drive<\/span>",
"servicestack": "<i class=\"fa-brands fa-servicestack\" style=\"color: #2271b1;\"><\/i> <span>Servicestack<\/span>",
"simplybuilt": "<i class=\"fa-brands fa-simplybuilt\" style=\"color: #2271b1;\"><\/i> <span>Simplybuilt<\/span>",
"bitbucket": "<i class=\"fa-brands fa-bitbucket\" style=\"color: #2271b1;\"><\/i> <span>Bitbucket<\/span>",
"imdb": "<i class=\"fa-brands fa-imdb\" style=\"color: #2271b1;\"><\/i> <span>Imdb<\/span>",
"deezer": "<i class=\"fa-brands fa-deezer\" style=\"color: #2271b1;\"><\/i> <span>Deezer<\/span>",
"raspberry-pi": "<i class=\"fa-brands fa-raspberry-pi\" style=\"color: #2271b1;\"><\/i> <span>Raspberry Pi<\/span>",
"jira": "<i class=\"fa-brands fa-jira\" style=\"color: #2271b1;\"><\/i> <span>Jira<\/span>",
"docker": "<i class=\"fa-brands fa-docker\" style=\"color: #2271b1;\"><\/i> <span>Docker<\/span>",
"screenpal": "<i class=\"fa-brands fa-screenpal\" style=\"color: #2271b1;\"><\/i> <span>Screenpal<\/span>",
"bluetooth": "<i class=\"fa-brands fa-bluetooth\" style=\"color: #2271b1;\"><\/i> <span>Bluetooth<\/span>",
"gitter": "<i class=\"fa-brands fa-gitter\" style=\"color: #2271b1;\"><\/i> <span>Gitter<\/span>",
"d-and-d": "<i class=\"fa-brands fa-d-and-d\" style=\"color: #2271b1;\"><\/i> <span>D And D<\/span>",
"microblog": "<i class=\"fa-brands fa-microblog\" style=\"color: #2271b1;\"><\/i> <span>Microblog<\/span>",
"cc-diners-club": "<i class=\"fa-brands fa-cc-diners-club\" style=\"color: #2271b1;\"><\/i> <span>Cc Diners Club<\/span>",
"gg-circle": "<i class=\"fa-brands fa-gg-circle\" style=\"color: #2271b1;\"><\/i> <span>Gg Circle<\/span>",
"pied-piper-hat": "<i class=\"fa-brands fa-pied-piper-hat\" style=\"color: #2271b1;\"><\/i> <span>Pied Piper Hat<\/span>",
"kickstarter-k": "<i class=\"fa-brands fa-kickstarter-k\" style=\"color: #2271b1;\"><\/i> <span>Kickstarter K<\/span>",
"yandex": "<i class=\"fa-brands fa-yandex\" style=\"color: #2271b1;\"><\/i> <span>Yandex<\/span>",
"readme": "<i class=\"fa-brands fa-readme\" style=\"color: #2271b1;\"><\/i> <span>Readme<\/span>",
"html5": "<i class=\"fa-brands fa-html5\" style=\"color: #2271b1;\"><\/i> <span>Html5<\/span>",
"sellsy": "<i class=\"fa-brands fa-sellsy\" style=\"color: #2271b1;\"><\/i> <span>Sellsy<\/span>",
"sass": "<i class=\"fa-brands fa-sass\" style=\"color: #2271b1;\"><\/i> <span>Sass<\/span>",
"wirsindhandwerk": "<i class=\"fa-brands fa-wirsindhandwerk\" style=\"color: #2271b1;\"><\/i> <span>Wirsindhandwerk<\/span>",
"buromobelexperte": "<i class=\"fa-brands fa-buromobelexperte\" style=\"color: #2271b1;\"><\/i> <span>Buromobelexperte<\/span>",
"salesforce": "<i class=\"fa-brands fa-salesforce\" style=\"color: #2271b1;\"><\/i> <span>Salesforce<\/span>",
"octopus-deploy": "<i class=\"fa-brands fa-octopus-deploy\" style=\"color: #2271b1;\"><\/i> <span>Octopus Deploy<\/span>",
"medapps": "<i class=\"fa-brands fa-medapps\" style=\"color: #2271b1;\"><\/i> <span>Medapps<\/span>",
"ns8": "<i class=\"fa-brands fa-ns8\" style=\"color: #2271b1;\"><\/i> <span>Ns8<\/span>",
"pinterest-p": "<i class=\"fa-brands fa-pinterest-p\" style=\"color: #2271b1;\"><\/i> <span>Pinterest P<\/span>",
"apper": "<i class=\"fa-brands fa-apper\" style=\"color: #2271b1;\"><\/i> <span>Apper<\/span>",
"fort-awesome": "<i class=\"fa-brands fa-fort-awesome\" style=\"color: #2271b1;\"><\/i> <span>Fort Awesome<\/span>",
"waze": "<i class=\"fa-brands fa-waze\" style=\"color: #2271b1;\"><\/i> <span>Waze<\/span>",
"cc-jcb": "<i class=\"fa-brands fa-cc-jcb\" style=\"color: #2271b1;\"><\/i> <span>Cc Jcb<\/span>",
"snapchat": "<i class=\"fa-brands fa-snapchat\" style=\"color: #2271b1;\"><\/i> <span>Snapchat<\/span>",
"fantasy-flight-games": "<i class=\"fa-brands fa-fantasy-flight-games\" style=\"color: #2271b1;\"><\/i> <span>Fantasy Flight Games<\/span>",
"rust": "<i class=\"fa-brands fa-rust\" style=\"color: #2271b1;\"><\/i> <span>Rust<\/span>",
"wix": "<i class=\"fa-brands fa-wix\" style=\"color: #2271b1;\"><\/i> <span>Wix<\/span>",
"square-behance": "<i class=\"fa-brands fa-square-behance\" style=\"color: #2271b1;\"><\/i> <span>Square Behance<\/span>",
"supple": "<i class=\"fa-brands fa-supple\" style=\"color: #2271b1;\"><\/i> <span>Supple<\/span>",
"rebel": "<i class=\"fa-brands fa-rebel\" style=\"color: #2271b1;\"><\/i> <span>Rebel<\/span>",
"css3": "<i class=\"fa-brands fa-css3\" style=\"color: #2271b1;\"><\/i> <span>Css3<\/span>",
"staylinked": "<i class=\"fa-brands fa-staylinked\" style=\"color: #2271b1;\"><\/i> <span>Staylinked<\/span>",
"kaggle": "<i class=\"fa-brands fa-kaggle\" style=\"color: #2271b1;\"><\/i> <span>Kaggle<\/span>",
"space-awesome": "<i class=\"fa-brands fa-space-awesome\" style=\"color: #2271b1;\"><\/i> <span>Space Awesome<\/span>",
"deviantart": "<i class=\"fa-brands fa-deviantart\" style=\"color: #2271b1;\"><\/i> <span>Deviantart<\/span>",
"cpanel": "<i class=\"fa-brands fa-cpanel\" style=\"color: #2271b1;\"><\/i> <span>Cpanel<\/span>",
"goodreads-g": "<i class=\"fa-brands fa-goodreads-g\" style=\"color: #2271b1;\"><\/i> <span>Goodreads G<\/span>",
"square-git": "<i class=\"fa-brands fa-square-git\" style=\"color: #2271b1;\"><\/i> <span>Square Git<\/span>",
"square-tumblr": "<i class=\"fa-brands fa-square-tumblr\" style=\"color: #2271b1;\"><\/i> <span>Square Tumblr<\/span>",
"trello": "<i class=\"fa-brands fa-trello\" style=\"color: #2271b1;\"><\/i> <span>Trello<\/span>",
"creative-commons-nc-jp": "<i class=\"fa-brands fa-creative-commons-nc-jp\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Nc Jp<\/span>",
"get-pocket": "<i class=\"fa-brands fa-get-pocket\" style=\"color: #2271b1;\"><\/i> <span>Get Pocket<\/span>",
"perbyte": "<i class=\"fa-brands fa-perbyte\" style=\"color: #2271b1;\"><\/i> <span>Perbyte<\/span>",
"grunt": "<i class=\"fa-brands fa-grunt\" style=\"color: #2271b1;\"><\/i> <span>Grunt<\/span>",
"weebly": "<i class=\"fa-brands fa-weebly\" style=\"color: #2271b1;\"><\/i> <span>Weebly<\/span>",
"connectdevelop": "<i class=\"fa-brands fa-connectdevelop\" style=\"color: #2271b1;\"><\/i> <span>Connectdevelop<\/span>",
"leanpub": "<i class=\"fa-brands fa-leanpub\" style=\"color: #2271b1;\"><\/i> <span>Leanpub<\/span>",
"black-tie": "<i class=\"fa-brands fa-black-tie\" style=\"color: #2271b1;\"><\/i> <span>Black Tie<\/span>",
"themeco": "<i class=\"fa-brands fa-themeco\" style=\"color: #2271b1;\"><\/i> <span>Themeco<\/span>",
"python": "<i class=\"fa-brands fa-python\" style=\"color: #2271b1;\"><\/i> <span>Python<\/span>",
"android": "<i class=\"fa-brands fa-android\" style=\"color: #2271b1;\"><\/i> <span>Android<\/span>",
"bots": "<i class=\"fa-brands fa-bots\" style=\"color: #2271b1;\"><\/i> <span>Bots<\/span>",
"free-code-camp": "<i class=\"fa-brands fa-free-code-camp\" style=\"color: #2271b1;\"><\/i> <span>Free Code Camp<\/span>",
"hornbill": "<i class=\"fa-brands fa-hornbill\" style=\"color: #2271b1;\"><\/i> <span>Hornbill<\/span>",
"js": "<i class=\"fa-brands fa-js\" style=\"color: #2271b1;\"><\/i> <span>Js<\/span>",
"ideal": "<i class=\"fa-brands fa-ideal\" style=\"color: #2271b1;\"><\/i> <span>Ideal<\/span>",
"git": "<i class=\"fa-brands fa-git\" style=\"color: #2271b1;\"><\/i> <span>Git<\/span>",
"dev": "<i class=\"fa-brands fa-dev\" style=\"color: #2271b1;\"><\/i> <span>Dev<\/span>",
"sketch": "<i class=\"fa-brands fa-sketch\" style=\"color: #2271b1;\"><\/i> <span>Sketch<\/span>",
"yandex-international": "<i class=\"fa-brands fa-yandex-international\" style=\"color: #2271b1;\"><\/i> <span>Yandex International<\/span>",
"cc-amex": "<i class=\"fa-brands fa-cc-amex\" style=\"color: #2271b1;\"><\/i> <span>Cc Amex<\/span>",
"uber": "<i class=\"fa-brands fa-uber\" style=\"color: #2271b1;\"><\/i> <span>Uber<\/span>",
"github": "<i class=\"fa-brands fa-github\" style=\"color: #2271b1;\"><\/i> <span>Github<\/span>",
"php": "<i class=\"fa-brands fa-php\" style=\"color: #2271b1;\"><\/i> <span>Php<\/span>",
"alipay": "<i class=\"fa-brands fa-alipay\" style=\"color: #2271b1;\"><\/i> <span>Alipay<\/span>",
"youtube": "<i class=\"fa-brands fa-youtube\" style=\"color: #2271b1;\"><\/i> <span>Youtube<\/span>",
"skyatlas": "<i class=\"fa-brands fa-skyatlas\" style=\"color: #2271b1;\"><\/i> <span>Skyatlas<\/span>",
"firefox-browser": "<i class=\"fa-brands fa-firefox-browser\" style=\"color: #2271b1;\"><\/i> <span>Firefox Browser<\/span>",
"replyd": "<i class=\"fa-brands fa-replyd\" style=\"color: #2271b1;\"><\/i> <span>Replyd<\/span>",
"suse": "<i class=\"fa-brands fa-suse\" style=\"color: #2271b1;\"><\/i> <span>Suse<\/span>",
"jenkins": "<i class=\"fa-brands fa-jenkins\" style=\"color: #2271b1;\"><\/i> <span>Jenkins<\/span>",
"twitter": "<i class=\"fa-brands fa-twitter\" style=\"color: #2271b1;\"><\/i> <span>Twitter<\/span>",
"rockrms": "<i class=\"fa-brands fa-rockrms\" style=\"color: #2271b1;\"><\/i> <span>Rockrms<\/span>",
"pinterest": "<i class=\"fa-brands fa-pinterest\" style=\"color: #2271b1;\"><\/i> <span>Pinterest<\/span>",
"buffer": "<i class=\"fa-brands fa-buffer\" style=\"color: #2271b1;\"><\/i> <span>Buffer<\/span>",
"npm": "<i class=\"fa-brands fa-npm\" style=\"color: #2271b1;\"><\/i> <span>Npm<\/span>",
"yammer": "<i class=\"fa-brands fa-yammer\" style=\"color: #2271b1;\"><\/i> <span>Yammer<\/span>",
"btc": "<i class=\"fa-brands fa-btc\" style=\"color: #2271b1;\"><\/i> <span>Btc<\/span>",
"dribbble": "<i class=\"fa-brands fa-dribbble\" style=\"color: #2271b1;\"><\/i> <span>Dribbble<\/span>",
"stumbleupon-circle": "<i class=\"fa-brands fa-stumbleupon-circle\" style=\"color: #2271b1;\"><\/i> <span>Stumbleupon Circle<\/span>",
"internet-explorer": "<i class=\"fa-brands fa-internet-explorer\" style=\"color: #2271b1;\"><\/i> <span>Internet Explorer<\/span>",
"stubber": "<i class=\"fa-brands fa-stubber\" style=\"color: #2271b1;\"><\/i> <span>Stubber<\/span>",
"telegram": "<i class=\"fa-brands fa-telegram\" style=\"color: #2271b1;\"><\/i> <span>Telegram<\/span>",
"old-republic": "<i class=\"fa-brands fa-old-republic\" style=\"color: #2271b1;\"><\/i> <span>Old Republic<\/span>",
"odysee": "<i class=\"fa-brands fa-odysee\" style=\"color: #2271b1;\"><\/i> <span>Odysee<\/span>",
"square-whatsapp": "<i class=\"fa-brands fa-square-whatsapp\" style=\"color: #2271b1;\"><\/i> <span>Square Whatsapp<\/span>",
"node-js": "<i class=\"fa-brands fa-node-js\" style=\"color: #2271b1;\"><\/i> <span>Node Js<\/span>",
"edge-legacy": "<i class=\"fa-brands fa-edge-legacy\" style=\"color: #2271b1;\"><\/i> <span>Edge Legacy<\/span>",
"slack": "<i class=\"fa-brands fa-slack\" style=\"color: #2271b1;\"><\/i> <span>Slack<\/span>",
"medrt": "<i class=\"fa-brands fa-medrt\" style=\"color: #2271b1;\"><\/i> <span>Medrt<\/span>",
"usb": "<i class=\"fa-brands fa-usb\" style=\"color: #2271b1;\"><\/i> <span>Usb<\/span>",
"tumblr": "<i class=\"fa-brands fa-tumblr\" style=\"color: #2271b1;\"><\/i> <span>Tumblr<\/span>",
"vaadin": "<i class=\"fa-brands fa-vaadin\" style=\"color: #2271b1;\"><\/i> <span>Vaadin<\/span>",
"quora": "<i class=\"fa-brands fa-quora\" style=\"color: #2271b1;\"><\/i> <span>Quora<\/span>",
"reacteurope": "<i class=\"fa-brands fa-reacteurope\" style=\"color: #2271b1;\"><\/i> <span>Reacteurope<\/span>",
"medium": "<i class=\"fa-brands fa-medium\" style=\"color: #2271b1;\"><\/i> <span>Medium<\/span>",
"amilia": "<i class=\"fa-brands fa-amilia\" style=\"color: #2271b1;\"><\/i> <span>Amilia<\/span>",
"mixcloud": "<i class=\"fa-brands fa-mixcloud\" style=\"color: #2271b1;\"><\/i> <span>Mixcloud<\/span>",
"flipboard": "<i class=\"fa-brands fa-flipboard\" style=\"color: #2271b1;\"><\/i> <span>Flipboard<\/span>",
"viacoin": "<i class=\"fa-brands fa-viacoin\" style=\"color: #2271b1;\"><\/i> <span>Viacoin<\/span>",
"critical-role": "<i class=\"fa-brands fa-critical-role\" style=\"color: #2271b1;\"><\/i> <span>Critical Role<\/span>",
"sitrox": "<i class=\"fa-brands fa-sitrox\" style=\"color: #2271b1;\"><\/i> <span>Sitrox<\/span>",
"discourse": "<i class=\"fa-brands fa-discourse\" style=\"color: #2271b1;\"><\/i> <span>Discourse<\/span>",
"joomla": "<i class=\"fa-brands fa-joomla\" style=\"color: #2271b1;\"><\/i> <span>Joomla<\/span>",
"mastodon": "<i class=\"fa-brands fa-mastodon\" style=\"color: #2271b1;\"><\/i> <span>Mastodon<\/span>",
"airbnb": "<i class=\"fa-brands fa-airbnb\" style=\"color: #2271b1;\"><\/i> <span>Airbnb<\/span>",
"wolf-pack-battalion": "<i class=\"fa-brands fa-wolf-pack-battalion\" style=\"color: #2271b1;\"><\/i> <span>Wolf Pack Battalion<\/span>",
"buy-n-large": "<i class=\"fa-brands fa-buy-n-large\" style=\"color: #2271b1;\"><\/i> <span>Buy N Large<\/span>",
"gulp": "<i class=\"fa-brands fa-gulp\" style=\"color: #2271b1;\"><\/i> <span>Gulp<\/span>",
"creative-commons-sampling-plus": "<i class=\"fa-brands fa-creative-commons-sampling-plus\" style=\"color: #2271b1;\"><\/i> <span>Creative Commons Sampling Plus<\/span>",
"strava": "<i class=\"fa-brands fa-strava\" style=\"color: #2271b1;\"><\/i> <span>Strava<\/span>",
"ember": "<i class=\"fa-brands fa-ember\" style=\"color: #2271b1;\"><\/i> <span>Ember<\/span>",
"canadian-maple-leaf": "<i class=\"fa-brands fa-canadian-maple-leaf\" style=\"color: #2271b1;\"><\/i> <span>Canadian Maple Leaf<\/span>",
"teamspeak": "<i class=\"fa-brands fa-teamspeak\" style=\"color: #2271b1;\"><\/i> <span>Teamspeak<\/span>",
"pushed": "<i class=\"fa-brands fa-pushed\" style=\"color: #2271b1;\"><\/i> <span>Pushed<\/span>",
"wordpress-simple": "<i class=\"fa-brands fa-wordpress-simple\" style=\"color: #2271b1;\"><\/i> <span>Wordpress Simple<\/span>",
"nutritionix": "<i class=\"fa-brands fa-nutritionix\" style=\"color: #2271b1;\"><\/i> <span>Nutritionix<\/span>",
"wodu": "<i class=\"fa-brands fa-wodu\" style=\"color: #2271b1;\"><\/i> <span>Wodu<\/span>",
"google-pay": "<i class=\"fa-brands fa-google-pay\" style=\"color: #2271b1;\"><\/i> <span>Google Pay<\/span>",
"intercom": "<i class=\"fa-brands fa-intercom\" style=\"color: #2271b1;\"><\/i> <span>Intercom<\/span>",
"zhihu": "<i class=\"fa-brands fa-zhihu\" style=\"color: #2271b1;\"><\/i> <span>Zhihu<\/span>",
"korvue": "<i class=\"fa-brands fa-korvue\" style=\"color: #2271b1;\"><\/i> <span>Korvue<\/span>",
"pix": "<i class=\"fa-brands fa-pix\" style=\"color: #2271b1;\"><\/i> <span>Pix<\/span>",
"steam-symbol": "<i class=\"fa-brands fa-steam-symbol\" style=\"color: #2271b1;\"><\/i> <span>Steam Symbol<\/span>"
},
"default_value": false,
"return_format": "value",
"multiple": 0,
"allow_null": 0,
"ui": 1,
"ajax": 0,
"placeholder": "",
"create_options": 0,
"save_options": 0
},
{
"key": "field_664c65c653f1c",
"label": "URL",
"name": "url",
"aria-label": "",
"type": "url",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "80",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": ""
}
],
"location": [
[
{
"param": "post_type",
"operator": "==",
"value": "social"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"modified": 1764224435
}

View File

@@ -1,14 +0,0 @@
{
"root": false,
"rules": {
"import/no-extraneous-dependencies": 0,
"prefer-rest-params": 0,
"comma-dangle": ["error", {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "ignore"
}]
}
}

View File

@@ -1,60 +0,0 @@
const path = require('path');
const { argv } = require('yargs');
const merge = require('webpack-merge');
const desire = require('./util/desire');
const userConfig = merge(desire(`${__dirname}/../config`), desire(`${__dirname}/../config-local`));
const isProduction = !!((argv.env && argv.env.production) || argv.p);
const rootPath = (userConfig.paths && userConfig.paths.root)
? userConfig.paths.root
: process.cwd();
const config = merge({
open: true,
copy: 'images/**/*',
proxyUrl: 'http://localhost:3000',
cacheBusting: '[name]_[hash]',
paths: {
root: rootPath,
assets: path.join(rootPath, 'resources/assets'),
dist: path.join(rootPath, 'dist'),
},
enabled: {
sourceMaps: !isProduction,
optimize: isProduction,
cacheBusting: isProduction,
watcher: !!argv.watch,
},
watch: [],
}, userConfig);
module.exports = merge(config, {
env: Object.assign({ production: isProduction, development: !isProduction }, argv.env),
publicPath: `${config.publicPath}/${path.basename(config.paths.dist)}/`,
manifest: {},
});
if (process.env.NODE_ENV === undefined) {
process.env.NODE_ENV = isProduction ? 'production' : 'development';
}
/**
* If your publicPath differs between environments, but you know it at compile time,
* then set SAGE_DIST_PATH as an environment variable before compiling.
* Example:
* SAGE_DIST_PATH=/wp-content/themes/sage/dist yarn build:production
*/
if (process.env.SAGE_DIST_PATH) {
module.exports.publicPath = process.env.SAGE_DIST_PATH;
}
/**
* If you don't know your publicPath at compile time, then uncomment the lines
* below and use WordPress's wp_localize_script() to set SAGE_DIST_PATH global.
* Example:
* wp_localize_script('sage/main.js', 'SAGE_DIST_PATH', get_theme_file_uri('dist/'))
*/
// Object.keys(module.exports.entry).forEach(id =>
// module.exports.entry[id].unshift(path.join(__dirname, 'helpers/public-path.js')));

View File

@@ -1,7 +0,0 @@
const hotMiddlewareScript = require('webpack-hot-middleware/client?noInfo=true&timeout=20000&reload=true');
hotMiddlewareScript.subscribe(event => {
if (event.action === 'reload') {
window.location.reload();
}
});

View File

@@ -1,7 +0,0 @@
/* eslint-env browser */
/* globals SAGE_DIST_PATH */
/** Dynamically set absolute public path from current protocol and host */
if (SAGE_DIST_PATH) {
__webpack_public_path__ = SAGE_DIST_PATH; // eslint-disable-line no-undef, camelcase
}

View File

@@ -1,15 +0,0 @@
/* eslint-disable */
const cssnanoConfig = {
preset: ['default', { discardComments: { removeAll: true } }]
};
module.exports = ({ file, options }) => {
return {
parser: options.enabled.optimize ? 'postcss-safe-parser' : undefined,
plugins: {
cssnano: options.enabled.optimize ? cssnanoConfig : false,
autoprefixer: true,
},
};
};

View File

@@ -1,15 +0,0 @@
/**
* Loop through webpack entry
* and add the hot middleware
* @param {Object} entry webpack entry
* @return {Object} entry with hot middleware
*/
module.exports = (entry) => {
const results = {};
Object.keys(entry).forEach((name) => {
results[name] = Array.isArray(entry[name]) ? entry[name].slice(0) : [entry[name]];
results[name].unshift(`${__dirname}/../helpers/hmr-client.js`);
});
return results;
};

View File

@@ -1,34 +0,0 @@
const path = require('path');
module.exports = (key, value) => {
if (typeof value === 'string') {
return value;
}
const manifest = value;
/**
* Hack to prepend scripts/ or styles/ to manifest keys
*
* This might need to be reworked at some point.
*
* Before:
* {
* "main.js": "scripts/main_abcdef.js"
* "main.css": "styles/main_abcdef.css"
* }
* After:
* {
* "scripts/main.js": "scripts/main_abcdef.js"
* "styles/main.css": "styles/main_abcdef.css"
* }
*/
Object.keys(manifest).forEach((src) => {
const sourcePath = path.basename(path.dirname(src));
const targetPath = path.basename(path.dirname(manifest[src]));
if (sourcePath === targetPath) {
return;
}
manifest[`${targetPath}/${src}`] = manifest[src];
delete manifest[src];
});
return manifest;
};

View File

@@ -1,14 +0,0 @@
/**
* @export
* @param {string} dependency
* @param {any} [fallback]
* @return {any}
*/
module.exports = (dependency, fallback) => {
try {
require.resolve(dependency);
} catch (err) {
return fallback;
}
return require(dependency); // eslint-disable-line import/no-dynamic-require
};

View File

@@ -1,211 +0,0 @@
'use strict'; // eslint-disable-line
const webpack = require('webpack');
const merge = require('webpack-merge');
const CleanPlugin = require('clean-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const StyleLintPlugin = require('stylelint-webpack-plugin');
const CopyGlobsPlugin = require('copy-globs-webpack-plugin');
const config = require('./config');
const assetsFilenames = (config.enabled.cacheBusting) ? config.cacheBusting : '[name]';
let webpackConfig = {
context: config.paths.assets,
entry: config.entry,
devtool: (config.enabled.sourceMaps ? '#source-map' : undefined),
output: {
path: config.paths.dist,
publicPath: config.publicPath,
filename: `scripts/${assetsFilenames}.js`,
},
stats: {
hash: false,
version: false,
timings: false,
children: false,
errors: false,
errorDetails: false,
warnings: false,
chunks: false,
modules: false,
reasons: false,
source: false,
publicPath: false,
},
module: {
rules: [
{
enforce: 'pre',
test: /\.js$/,
include: config.paths.assets,
use: 'eslint',
},
{
enforce: 'pre',
test: /\.(js|s?[ca]ss)$/,
include: config.paths.assets,
loader: 'import-glob',
},
{
test: /\.js$/,
exclude: [/(node_modules|bower_components)(?![/|\\](bootstrap|foundation-sites))/],
use: [
{ loader: 'cache' },
{ loader: 'buble', options: { objectAssign: 'Object.assign' } },
],
},
{
test: /\.css$/,
include: config.paths.assets,
use: ExtractTextPlugin.extract({
fallback: 'style',
use: [
{ loader: 'cache' },
{ loader: 'css', options: { sourceMap: config.enabled.sourceMaps } },
{
loader: 'postcss', options: {
config: { path: __dirname, ctx: config },
sourceMap: config.enabled.sourceMaps,
},
},
],
}),
},
{
test: /\.scss$/,
include: config.paths.assets,
use: ExtractTextPlugin.extract({
fallback: 'style',
use: [
{ loader: 'cache' },
{ loader: 'css', options: { sourceMap: config.enabled.sourceMaps } },
{
loader: 'postcss', options: {
config: { path: __dirname, ctx: config },
sourceMap: config.enabled.sourceMaps,
},
},
{ loader: 'resolve-url', options: { sourceMap: config.enabled.sourceMaps } },
{ loader: 'sass', options: { sourceMap: config.enabled.sourceMaps } },
],
}),
},
{
test: /\.(ttf|eot|woff2?|png|jpe?g|gif|svg|ico)$/,
include: config.paths.assets,
loader: 'url',
options: {
limit: 4096,
name: `[path]${assetsFilenames}.[ext]`,
},
},
{
test: /\.(ttf|eot|woff2?|png|jpe?g|gif|svg|ico)$/,
include: /node_modules|bower_components/,
loader: 'url',
options: {
limit: 4096,
outputPath: 'vendor/',
name: `${config.cacheBusting}.[ext]`,
},
},
],
},
resolve: {
modules: [
config.paths.assets,
'node_modules',
'bower_components',
],
enforceExtension: false,
},
resolveLoader: {
moduleExtensions: ['-loader'],
},
externals: {
jquery: 'jQuery',
},
plugins: [
new CleanPlugin([config.paths.dist], {
root: config.paths.root,
verbose: false,
}),
/**
* It would be nice to switch to copy-webpack-plugin, but
* unfortunately it doesn't provide a reliable way of
* tracking the before/after file names
*/
new CopyGlobsPlugin({
pattern: config.copy,
output: `[path]${assetsFilenames}.[ext]`,
manifest: config.manifest,
}),
new ExtractTextPlugin({
filename: `styles/${assetsFilenames}.css`,
allChunks: true,
disable: (config.enabled.watcher),
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
Tether: 'tether',
'window.Tether': 'tether',
}),
new webpack.LoaderOptionsPlugin({
minimize: config.enabled.optimize,
debug: config.enabled.watcher,
stats: { colors: true },
}),
new webpack.LoaderOptionsPlugin({
test: /\.s?css$/,
options: {
output: { path: config.paths.dist },
context: config.paths.assets,
},
}),
new webpack.LoaderOptionsPlugin({
test: /\.js$/,
options: {
eslint: { failOnWarning: false, failOnError: true },
},
}),
new StyleLintPlugin({
failOnError: !config.enabled.watcher,
syntax: 'scss',
}),
],
};
/* eslint-disable global-require */ /** Let's only load dependencies as needed */
if (config.enabled.optimize) {
webpackConfig = merge(webpackConfig, require('./webpack.config.optimize'));
}
if (config.env.production) {
webpackConfig.plugins.push(new webpack.NoEmitOnErrorsPlugin());
}
if (config.enabled.cacheBusting) {
const WebpackAssetsManifest = require('webpack-assets-manifest');
webpackConfig.plugins.push(
new WebpackAssetsManifest({
output: 'assets.json',
space: 2,
writeToDisk: false,
assets: config.manifest,
replacer: require('./util/assetManifestsFormatter'),
})
);
}
if (config.enabled.watcher) {
webpackConfig.entry = require('./util/addHotMiddleware')(webpackConfig.entry);
webpackConfig = merge(webpackConfig, require('./webpack.config.watch'));
}
module.exports = webpackConfig;

View File

@@ -1,19 +0,0 @@
'use strict'; // eslint-disable-line
const { default: ImageminPlugin } = require('imagemin-webpack-plugin');
const imageminMozjpeg = require('imagemin-mozjpeg');
const config = require('./config');
module.exports = {
plugins: [
new ImageminPlugin({
optipng: { optimizationLevel: 7 },
gifsicle: { optimizationLevel: 3 },
pngquant: { quality: '65-90', speed: 4 },
svgo: { removeUnknownsAndDefaults: false, cleanupIDs: false },
plugins: [imageminMozjpeg({ quality: 75 })],
disable: (config.enabled.watcher),
}),
],
};

View File

@@ -1,35 +0,0 @@
const url = require('url');
const webpack = require('webpack');
const BrowserSyncPlugin = require('browsersync-webpack-plugin');
const config = require('./config');
const target = process.env.DEVURL || config.devUrl;
/**
* We do this to enable injection over SSL.
*/
if (url.parse(target).protocol === 'https:') {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
}
module.exports = {
output: {
pathinfo: true,
publicPath: config.proxyUrl + config.publicPath,
},
devtool: '#cheap-module-source-map',
stats: false,
plugins: [
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
new BrowserSyncPlugin({
target,
open: config.open,
proxyUrl: config.proxyUrl,
watch: config.watch,
delay: 500,
}),
],
};

View File

@@ -1,21 +0,0 @@
{
"entry": {
"main": [
"./scripts/main.js",
"./styles/main.scss"
],
"customizer": [
"./scripts/customizer.js"
]
},
"publicPath": "/app/themes/sage",
"devUrl": "http://example.dev",
"proxyUrl": "http://localhost:3000",
"cacheBusting": "[name]_[hash:8]",
"watch": [
"app/**/*.php",
"config/**/*.php",
"resources/controllers/**/*.php",
"resources/views/**/*.php"
]
}

View File

@@ -1 +0,0 @@
import 'bootstrap';

View File

@@ -1,5 +0,0 @@
import $ from 'jquery';
wp.customize('blogname', (value) => {
value.bind(to => $('.brand').text(to));
});

View File

@@ -1,24 +0,0 @@
// import external dependencies
import 'jquery';
// Import everything from autoload
import "./autoload/**/*"
// import local dependencies
import Router from './util/Router';
import common from './routes/common';
import home from './routes/home';
import aboutUs from './routes/about';
/** Populate Router instance with DOM routes */
const routes = new Router({
// All pages
common,
// Home page
home,
// About Us page, note the change from about-us to aboutUs.
aboutUs,
});
// Load Events
jQuery(document).ready(() => routes.loadEvents());

View File

@@ -1,5 +0,0 @@
export default {
init() {
// JavaScript to be fired on the about us page
},
};

View File

@@ -1,8 +0,0 @@
export default {
init() {
// JavaScript to be fired on all pages
},
finalize() {
// JavaScript to be fired on all pages, after page specific JS is fired
},
};

View File

@@ -1,8 +0,0 @@
export default {
init() {
// JavaScript to be fired on the home page
},
finalize() {
// JavaScript to be fired on the home page, after the init JS
},
};

View File

@@ -1,63 +0,0 @@
import camelCase from './camelCase';
/**
* DOM-based Routing
*
* Based on {@link http://goo.gl/EUTi53|Markup-based Unobtrusive Comprehensive DOM-ready Execution} by Paul Irish
*
* The routing fires all common scripts, followed by the page specific scripts.
* Add additional events for more control over timing e.g. a finalize event
*/
class Router {
/**
* Create a new Router
* @param {Object} routes
*/
constructor(routes) {
this.routes = routes;
}
/**
* Fire Router events
* @param {string} route DOM-based route derived from body classes (`<body class="...">`)
* @param {string} [event] Events on the route. By default, `init` and `finalize` events are called.
* @param {string} [arg] Any custom argument to be passed to the event.
*/
fire(route, event = 'init', arg) {
const fire = route !== '' && this.routes[route] && typeof this.routes[route][event] === 'function';
if (fire) {
this.routes[route][event](arg);
}
}
/**
* Automatically load and fire Router events
*
* Events are fired in the following order:
* * common init
* * page-specific init
* * page-specific finalize
* * common finalize
*/
loadEvents() {
// Fire common init JS
this.fire('common');
// Fire page-specific init JS, and then finalize JS
document.body.className
.toLowerCase()
.replace(/-/g, '_')
.split(/\s+/)
.map(camelCase)
.forEach((className) => {
this.fire(className);
this.fire(className, 'finalize');
});
// Fire common finalize JS
this.fire('common', 'finalize');
}
}
export default Router

View File

@@ -1,9 +0,0 @@
/**
* the most terrible camelizer on the internet, guaranteed!
* @param {string} str String that isn't camel-case, e.g., CAMeL_CaSEiS-harD
* @return {string} String converted to camel-case, e.g., camelCaseIsHard
*/
export default str => `${str.charAt(0).toLowerCase()}${str.replace(/[\W_]/g, '|').split('|')
.map(part => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)
.join('')
.slice(1)}`;

View File

@@ -1 +0,0 @@
@import "~bootstrap/scss/bootstrap";

View File

@@ -1,2 +0,0 @@
/** Colors */
$brand-primary: #27ae60;

View File

@@ -1,23 +0,0 @@
.comment-list {
@extend .list-unstyled;
}
.comment-list ol {
list-style: none;
}
.comment-form p {
@extend .form-group;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
@extend .form-control;
}
.comment-form input[type="submit"] {
@extend .btn;
@extend .btn-secondary;
}

View File

@@ -1,19 +0,0 @@
/** Search form */
.search-form {
@extend .form-inline;
}
.search-form label {
@extend .form-group;
font-weight: normal;
}
.search-form .search-field {
@extend .form-control;
}
.search-form .search-submit {
@extend .btn;
@extend .btn-secondary;
}

View File

@@ -1,56 +0,0 @@
/**
* WordPress Generated Classes
* @see http://codex.wordpress.org/CSS#WordPress_Generated_Classes
*/
/** Media alignment */
.alignnone {
margin-left: 0;
margin-right: 0;
max-width: 100%;
height: auto;
}
.aligncenter {
display: block;
margin: ($spacer / 2) auto;
height: auto;
}
.alignleft,
.alignright {
margin-bottom: ($spacer / 2);
height: auto;
}
@include media-breakpoint-up(sm) {
.alignleft {
float: left;
margin-right: ($spacer / 2);
}
.alignright {
float: right;
margin-left: ($spacer / 2);
}
}
/** Captions */
.wp-caption {
@extend .figure;
}
.wp-caption img {
@extend .figure-img;
@extend .img-fluid;
}
.wp-caption-text {
@extend .figure-caption;
}
/** Text meant only for screen readers */
.screen-reader-text {
@extend .sr-only;
@extend .sr-only-focusable;
}

View File

@@ -1,7 +0,0 @@
.banner .nav li {
@extend .nav-item;
}
.banner .nav a {
@extend .nav-link;
}

View File

@@ -1,3 +0,0 @@
body#tinymce {
margin: 12px !important;
}

View File

@@ -1,25 +0,0 @@
@import "common/variables";
/** Import everything from autoload */
@import "./autoload/**/*";
/**
* Import npm dependencies
*
* Prefix your imports with `~` to grab from node_modules/
* @see https://github.com/webpack-contrib/sass-loader#imports
*/
// @import "~some-node-module";
/** Import theme styles */
@import "common/global";
@import "components/buttons";
@import "components/comments";
@import "components/forms";
@import "components/wp-classes";
@import "layouts/header";
@import "layouts/sidebar";
@import "layouts/footer";
@import "layouts/pages";
@import "layouts/posts";
@import "layouts/tinymce";

View File

@@ -1,10 +0,0 @@
<?php
namespace App;
use Sober\Controller\Controller;
class About extends Controller
{
}

View File

@@ -1,13 +0,0 @@
<?php
namespace App;
use Sober\Controller\Controller;
class App extends Controller
{
public function siteName()
{
return get_bloginfo('name');
}
}

View File

@@ -1,10 +0,0 @@
<?php
namespace App;
use Sober\Controller\Controller;
class Home extends Controller
{
}

24
resources/css/app.scss Normal file
View File

@@ -0,0 +1,24 @@
// Global Variables, Mixins, and Framework
@use "global/variables";
@use "global/mixins";
@use "global/fonts";
@use "global/typography";
@use "global/framework";
// Third Party Plugins
@use "plugins/contact-form-7";
@use "plugins/mce";
// Sections
@use "sections/header";
@use "sections/footer";
// Components
@use "components/block";
@use "components/forms";
@use "components/button";
@use "components/card";
// Page Styles
@use "views/page";

View File

@@ -0,0 +1,15 @@
.has-bg-image {
position: relative;
>.container {
position: relative;
z-index: 1;
}
.badegg-block-background {
position: absolute;
inset: 0;
}
}

View File

@@ -0,0 +1,111 @@
@use "../global/fonts";
@use "../global/variables/colours";
button {
&%block,
&.block {
background-color: transparent;
border: none;
font-size: 1em;
padding: 0;
}
}
button,
input[type="submit"] {
&.btn {
appearance: none;
}
}
%button,
.btn {
display: inline-block;
padding: 0.5em 1.25em;
border: 0.125em solid colours.$black;
border-radius: 0.25em;
background-color: colours.$black;
color: colours.$white;
font-family: fonts.$font;
font-weight: 700;
text-decoration: none;
white-space: normal;
cursor: pointer;
transition: 300ms ease all;
.knockout & {
background-color: colours.$white;
border-color: colours.$white;
color: currentcolor;
}
&:hover,
&:focus {
color: colours.$white;
text-decoration: none;
background-color: rgba(colours.$black, 0.5);
border-color: rgba(colours.$black, 0.5);
.knockout & {
background-color: rgba(colours.$white, 0.5);
border-color: rgba(colours.$white, 0.5);
color: currentcolor;
}
}
&.outline {
border-color: colours.$black;
background-color: transparent;
color: colours.$black;
&:hover,
&:focus {
background-color: colours.$black;
color: colours.$white;
}
.knockout & {
@media screen {
border-color: colours.$white;
color: colours.$white;
&:hover,
&:focus {
background-color: colours.$white;
color: colours.$black;
}
}
}
}
&.wide {
padding-right: 3em;
padding-left: 3em;
}
&.thin {
padding-top: 0.5em;
padding-bottom: 0.5em;
}
&.full {
display: block;
width: 100%;
padding-right: 0.625em;
padding-left: 0.625em;
text-align: center;
}
&.small { font-size: 1em; }
&.smaller { font-size: 0.875em; }
&.big { font-size: 1.25em; }
&.bigger { font-size: 1.5em; }
}
.btn-wrap {
margin: 1.5em -0.25em -0.25em;
.btn {
margin: 0.25em;
}
}

View File

@@ -0,0 +1,13 @@
.card {
position: relative;
margin: 0.5em;
flex: 0 0 calc(100% - 1em);
&-wrap {
display: flex;
flex-wrap: wrap;
margin: -0.5em;
}
}

View File

@@ -0,0 +1,286 @@
@use "../global/fonts";
@use "../global/variables/breakpoints";
@use "../global/variables/colours";
input,
textarea {
color: colours.$grey;
background: white;
font-weight: 400;
font-size: 1em;
font-family: fonts.$font;
width: 100%;
padding: 0.875em 1em;
margin: 0 0 1em;
// border-radius: 0.125em;
border: 0.0625em solid rgba(colours.$black, 0.1);
outline: none;
transition: all 300ms ease;
&::placeholder {
color: colours.$grey-light;
}
&:focus {
box-shadow: 0 0.25em 0.5em rgba(colours.$black, 0.1);
}
}
input[type="radio"],
input[type="checkbox"] {
padding: 0;
margin: 0;
width: auto;
&:focus {
box-shadow: none;
}
}
select {
width: 100%;
}
.field-wrap {
flex: 1 1 calc(100% - 1em);
margin: 0 0.5em;
transition: all 300ms ease;
p {
display: flex;
flex-wrap: wrap;
}
label {
flex: 0 0 100%;
max-width: 100%;
width: 100%;
order: -1;
margin: 0;
}
textarea,
input {
flex: 1 1 100%;
margin: 0;
}
/* stylelint-disable selector-class-pattern */
.mce_inline_error {
flex: 0 0 100%;
max-width: 100%;
width: 100%;
margin: 0;
font-family: fonts.$font;
}
/* stylelint-enable selector-class-pattern */
@media (min-width: breakpoints.$screen-sm) {
&.half {
flex: 0 0 calc(50% - 1em);
max-width: calc(50% - 1em);
width: calc(50% - 1em);
}
}
}
.form-footer {
p {
margin: 0;
line-height: 1.2;
}
button,
.button,
input[type="submit"] {
margin: 0;
}
.wpcf7-list-item {
margin: 0;
user-select: none;
}
.form-footer-button {
flex: 1 1 100%;
display: block;
margin: 2em 0 0;
}
@media (min-width: breakpoints.$screen-sm) {
display: flex;
flex-wrap: wrap;
.form-footer-button {
flex: 0 0 8.5em;
max-width: 8.5em;
width: 8.5em;
margin: 0 0 0 2em;
text-align: right;
}
.form-footer-text {
flex: 1 1 5em;
margin: auto;
p {
display: block;
}
}
}
}
.section-form {
button {
margin: 1em 0 0;
}
span.label {
font-weight: 700;
}
.textarea-wrap {
span.label {
display: none;
}
}
form {
display: flex;
flex-wrap: wrap;
margin: 1em -0.5em 0;
position: relative;
.wpcf7 {
.screen-reader-response {
display: none;
}
&-spinner {
position: absolute;
z-index: 1;
top: calc(50% - 12px);
left: calc(50% - 12px);
}
&-not-valid-tip {
background: colours.$error;
color: colours.$white;
padding: 0.5em 1em;
border-radius: 0 0 0.5em 0.5em;
font-weight: 700;
}
&-response-output {
margin: 1em 0.5em 0;
max-width: calc(100% - 1em);
width: calc(100% - 1em);
flex: 0 0 calc(100% - 1em);
text-align: center;
color: colours.$white;
font-family: fonts.$font;
font-weight: 700;
background: colours.$black;
border: 0.125em solid colours.$white;
padding: 0.5em 1em;
border-radius: 0.5em;
}
&-display-none {
display: none;
}
&-checkbox {
label {
display: block;
padding: 0 0 0 1.75em;
margin: 0;
font-weight: 700;
}
input[type="checkbox"] {
position: absolute;
z-index: 1;
top: 0;
left: 0;
appearance: none;
display: block;
width: 1.25em;
height: 1.25em;
border: 0.125em solid colours.$black;
background: transparent;
color: currentcolor;
&::before {
content: "\f00c";
position: absolute;
z-index: 1;
top: 0;
left: 0.125em;
font-family: "Font Awesome 6 Free", serif;
font-weight: 900;
opacity: 0;
transition: all 300ms ease;
}
&:checked {
&::before {
opacity: 1;
}
}
}
}
}
&.submitting {
.field-wrap:not(.form-footer) {
opacity: 0.1;
}
.form-footer {
.form-footer-text {
opacity: 0.1;
}
.form-footer-button input {
opacity: 0.1;
}
}
}
&.sent {
.wpcf7-response-output {
background: colours.$success;
border-color: colours.$white;
}
}
&.invalid {
.wpcf7-response-output {
background: colours.$error;
border-color: colours.$white;
}
}
.ajax-loader {
position: absolute;
z-index: 1;
top: calc(50% - 12px);
right: calc(50% - 12px);
display: block;
margin: 0;
}
}
&.knockout {
form {
.wpcf7 {
&-checkbox {
input[type="checkbox"] {
border-color: colours.$white;
}
}
}
}
}
}

73
resources/css/editor.scss Normal file
View File

@@ -0,0 +1,73 @@
@use "app";
@use "global/variables/colours";
html :where(.wp-block) {
max-width: none;
}
.block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable=true]) {
&:hover:after {
content: '';
outline: 2px solid colours.$wpblue;
position: absolute;
inset: 0;
}
&:focus:after {
outline-style: dashed;
}
}
.editor-styles-wrapper {
padding: 0;
background: transparent;
}
.editor-visual-editor {
&__post-title-wrapper {
position: sticky;
top: 0;
z-index: 100;
padding: 1rem;
margin: 0 !important;
background: white;
box-shadow: 0 0.5rem 1rem rgba(black, 0.15);
}
}
.editor-styles-wrapper {
background: colours.$grey-lightest;
.block-list-appender {
width: 350px;
max-width: 90%;
margin: 1em auto;
}
}
.wp-block-post-title {
position: relative;
padding: 0.5rem;
border: 1px solid rgba(black, 0.3);
margin: 0;
&::before {
content: 'Page Title';
position: absolute;
top: -0.5rem;
left: 0.5rem;
color: rgba(black, 0.3);
font-size: 0.8rem;
display: block;
padding: 0 0.5rem;
margin: 0;
background: white;
line-height: 1;
font-weight: 400;
}
}
.is-root-container > .wp-block:not(.block-list-appender) {
max-width: none;
margin: 0;
}

View File

@@ -0,0 +1,56 @@
$font: "Ubuntu", Helvetica, Arial, sans-serif;
/*
* Roots Fonts Setup
* https://roots.io/sage/docs/fonts-setup/
*
* Self-Hosted Google Fonts (Ubuntu Demo)
* https://gwfh.mranftl.com/fonts/ubuntu?subsets=latin
*
* Add the font to your Tailwind config
* tailwind.config.cjs
*
* Configure theme.json to use the font with Bud
*/
/* stylelint-disable */
/* ubuntu-regular - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Ubuntu';
font-style: normal;
font-weight: 400;
src: url('../fonts/ubuntu-v20-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
url('../fonts/ubuntu-v20-latin-regular.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* ubuntu-italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Ubuntu';
font-style: italic;
font-weight: 400;
src: url('../fonts/ubuntu-v20-latin-italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
url('../fonts/ubuntu-v20-latin-italic.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* ubuntu-700 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Ubuntu';
font-style: normal;
font-weight: 700;
src: url('../fonts/ubuntu-v20-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
url('../fonts/ubuntu-v20-latin-700.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* ubuntu-700italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Ubuntu';
font-style: italic;
font-weight: 700;
src: url('../fonts/ubuntu-v20-latin-700italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
url('../fonts/ubuntu-v20-latin-700italic.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

View File

@@ -0,0 +1,4 @@
@use "framework/breakpoints";
@use "framework/normalise";
@use "framework/colours";
@use "framework/spacing";

View File

@@ -0,0 +1,4 @@
@use "mixins/linear-gradient";
@use "mixins/text-contrast";
@use "mixins/generate-colour-classes";
@use "mixins/generate-button-classes";

View File

@@ -0,0 +1,148 @@
@use "fonts";
@use "variables/breakpoints";
@use "variables/colours";
@use "variables/spacing";
.wysiwyg {
*:first-child {
margin-top: 0;
}
*:last-child {
margin-bottom: 0;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: colours.$primary;
font-weight: 700;
font-family: fonts.$font;
line-height: 1.1em;
margin: 1.5em 0 0.25em;
padding: 0;
&.section-title {
margin-top: 0;
}
@media screen {
.knockout & {
color: colours.$white;
}
}
}
h1 {
font-size: 1.75em;
margin-top: 0;
}
h2 { font-size: 1.5em; }
h3 { font-size: 1.25em; }
h4,
h5 { font-size: 1.15em; }
@media (min-width: breakpoints.$screen-sm) {
h1 { font-size: 2.5em; }
h2 { font-size: 2em; }
h3 { font-size: 1.5em; }
h4,
h5 {
font-size: 1.25em;
}
}
p,
li,
td,
label {
color: colours.$grey-darker;
font-family: fonts.$font;
font-weight: 400;
line-height: 1.5em;
margin: 0 0 0.8em;
padding: 0;
@media screen {
.knockout & {
color: colours.$white;
}
}
}
a {
color: colours.$primary;
text-decoration: none;
outline: none;
transition: all 300ms ease;
&:hover,
&:focus {
color: colours.$primary-dark;
text-decoration: none;
}
@media screen {
.knockout & {
color: colours.$white;
&:hover,
&:focus {
color: colours.$primary-light;
}
}
}
}
strong { font-weight: 700; }
small { font-size: 0.8em; }
li {
margin: 0.125em 0;
line-height: 1.5em;
}
ul,
ol {
margin: 0 0 0.7em;
padding: 0 0 0 1.2em;
text-align: left;
}
.nolist {
margin: 0;
padding: 0;
text-align: inherit;
list-style: none;
li {
margin: 0;
padding: 0;
}
}
hr {
margin: 1.5em auto 2em;
height: 0;
border: 0 solid colours.$grey-light;
border-width: spacing.$borderThin 0 0;
@media screen {
.knockout & {
border-color: colours.$white;
}
}
}
.align {
&-left { text-align: left; }
&-centre, &-center { text-align: center; }
&-right { text-align: right; }
}

Some files were not shown because too many files have changed in this diff Show More