diff --git a/composer.json b/composer.json index 8f919ac..d828577 100644 --- a/composer.json +++ b/composer.json @@ -35,6 +35,7 @@ "php": ">=8.2", "composer/installers": "^2.2", "johnbillion/user-switching": "^1.11", + "log1x/navi": "^3.1", "log1x/poet": "^2.0", "lukasbesch/bedrock-plugin-disabler": "^1.4", "oscarotero/env": "^2.1", diff --git a/composer.lock b/composer.lock index ec9a110..2c8607b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "98675c2db56bc4158c1fc3f8bb1d6248", + "content-hash": "9469c5d99bfe5c83eaf5ae80b5780ac3", "packages": [ { "name": "bordoni/phpass", @@ -4343,16 +4343,16 @@ }, { "name": "league/flysystem", - "version": "3.31.0", + "version": "3.32.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725", + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725", "shasum": "" }, "require": { @@ -4420,9 +4420,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.32.0" }, - "time": "2026-01-23T15:38:47+00:00" + "time": "2026-02-25T17:01:41+00:00" }, { "name": "league/flysystem-local", @@ -4529,6 +4529,71 @@ ], "time": "2024-09-21T08:32:55+00:00" }, + { + "name": "log1x/navi", + "version": "v3.1.2", + "source": { + "type": "git", + "url": "https://github.com/Log1x/navi.git", + "reference": "3af8ff59fc233cba214e6a358586a47279c43f94" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Log1x/navi/zipball/3af8ff59fc233cba214e6a358586a47279c43f94", + "reference": "3af8ff59fc233cba214e6a358586a47279c43f94", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "laravel/pint": "^1.14", + "roots/acorn": "^4.3" + }, + "type": "package", + "extra": { + "acorn": { + "aliases": { + "Navi": "Log1x\\Navi\\Facades\\Navi" + }, + "providers": [ + "Log1x\\Navi\\Providers\\NaviServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Log1x\\Navi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brandon Nifong", + "email": "brandon@tendency.me" + } + ], + "description": "A developer-friendly alternative to the WordPress NavWalker.", + "keywords": [ + "navwalker", + "wordpress", + "wordpress-plugin" + ], + "support": { + "issues": "https://github.com/log1x/navi/issues", + "source": "https://github.com/Log1x/navi/tree/v3.1.2" + }, + "funding": [ + { + "url": "https://github.com/Log1x", + "type": "github" + } + ], + "time": "2026-02-21T00:32:22+00:00" + }, { "name": "log1x/poet", "version": "v2.1.0", @@ -7225,23 +7290,23 @@ }, { "name": "sentry/sentry-laravel", - "version": "4.20.1", + "version": "4.21.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "503853fa7ee74b34b64e76f1373db86cd11afe72" + "reference": "4b939116c2d3c5de328f23a5f1dfb97b40e0c17b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/503853fa7ee74b34b64e76f1373db86cd11afe72", - "reference": "503853fa7ee74b34b64e76f1373db86cd11afe72", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/4b939116c2d3c5de328f23a5f1dfb97b40e0c17b", + "reference": "4b939116c2d3c5de328f23a5f1dfb97b40e0c17b", "shasum": "" }, "require": { "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0", "nyholm/psr7": "^1.0", "php": "^7.2 | ^8.0", - "sentry/sentry": "^4.19.0", + "sentry/sentry": "^4.21.0", "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0 | ^8.0" }, "require-dev": { @@ -7254,7 +7319,7 @@ "mockery/mockery": "^1.3", "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.4 | ^9.3 | ^10.4 | ^11.5" + "phpunit/phpunit": "^8.5 | ^9.6 | ^10.4 | ^11.5" }, "type": "library", "extra": { @@ -7299,7 +7364,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.20.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.21.0" }, "funding": [ { @@ -7311,7 +7376,7 @@ "type": "custom" } ], - "time": "2026-01-07T08:53:19+00:00" + "time": "2026-02-26T16:08:52+00:00" }, { "name": "spatie/backtrace", @@ -7687,20 +7752,20 @@ }, { "name": "spatie/laravel-data", - "version": "4.19.1", + "version": "4.20.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-data.git", - "reference": "41ed0472250676f19440fb24d7b62a8d43abdb89" + "reference": "05b792ab0e059d26eca15d47d199ba6f4c96054e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-data/zipball/41ed0472250676f19440fb24d7b62a8d43abdb89", - "reference": "41ed0472250676f19440fb24d7b62a8d43abdb89", + "url": "https://api.github.com/repos/spatie/laravel-data/zipball/05b792ab0e059d26eca15d47d199ba6f4c96054e", + "reference": "05b792ab0e059d26eca15d47d199ba6f4c96054e", "shasum": "" }, "require": { - "illuminate/contracts": "^10.0|^11.0|^12.0", + "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0", "php": "^8.1", "phpdocumentor/reflection": "^6.0", "spatie/laravel-package-tools": "^1.9.0", @@ -7710,10 +7775,10 @@ "fakerphp/faker": "^1.14", "friendsofphp/php-cs-fixer": "^3.0", "inertiajs/inertia-laravel": "^2.0", - "livewire/livewire": "^3.0", + "livewire/livewire": "^3.0|^4.0", "mockery/mockery": "^1.6", "nesbot/carbon": "^2.63|^3.0", - "orchestra/testbench": "^8.37.0|^9.16|^10.9", + "orchestra/testbench": "^8.37.0|^9.16|^10.9|^11.0", "pestphp/pest": "^2.36|^3.8|^4.3", "pestphp/pest-plugin-laravel": "^2.4|^3.0|^4.0", "pestphp/pest-plugin-livewire": "^2.1|^3.0|^4.0", @@ -7757,7 +7822,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-data/issues", - "source": "https://github.com/spatie/laravel-data/tree/4.19.1" + "source": "https://github.com/spatie/laravel-data/tree/4.20.0" }, "funding": [ { @@ -7765,7 +7830,7 @@ "type": "github" } ], - "time": "2026-01-28T13:10:20+00:00" + "time": "2026-02-25T16:18:18+00:00" }, { "name": "spatie/laravel-google-fonts", @@ -8084,16 +8149,16 @@ }, { "name": "symfony/console", - "version": "v6.4.32", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3" + "reference": "7b1f1c37eff5910ddda2831345467e593a5120ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", - "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", + "url": "https://api.github.com/repos/symfony/console/zipball/7b1f1c37eff5910ddda2831345467e593a5120ad", + "reference": "7b1f1c37eff5910ddda2831345467e593a5120ad", "shasum": "" }, "require": { @@ -8158,7 +8223,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.32" + "source": "https://github.com/symfony/console/tree/v6.4.34" }, "funding": [ { @@ -8178,7 +8243,7 @@ "type": "tidelift" } ], - "time": "2026-01-13T08:45:59+00:00" + "time": "2026-02-23T15:42:15+00:00" }, { "name": "symfony/deprecation-contracts", @@ -8489,16 +8554,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.4.0", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e", + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e", "shasum": "" }, "require": { @@ -8535,7 +8600,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + "source": "https://github.com/symfony/filesystem/tree/v7.4.6" }, "funding": [ { @@ -8555,20 +8620,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/finder", - "version": "v6.4.33", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "24965ca011dac87431729640feef8bcf7b5523e0" + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0", - "reference": "24965ca011dac87431729640feef8bcf7b5523e0", + "url": "https://api.github.com/repos/symfony/finder/zipball/9590e86be1d1c57bfbb16d0dd040345378c20896", + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896", "shasum": "" }, "require": { @@ -8603,7 +8668,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.33" + "source": "https://github.com/symfony/finder/tree/v6.4.34" }, "funding": [ { @@ -8623,20 +8688,20 @@ "type": "tidelift" } ], - "time": "2026-01-26T13:03:48+00:00" + "time": "2026-01-28T15:16:37+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.33", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f1a490cc9d595ba7ebe684220e625d1e472ad278" + "reference": "5bb346d1b4b2a616e5c3d99b3ee4d5810735c535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f1a490cc9d595ba7ebe684220e625d1e472ad278", - "reference": "f1a490cc9d595ba7ebe684220e625d1e472ad278", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5bb346d1b4b2a616e5c3d99b3ee4d5810735c535", + "reference": "5bb346d1b4b2a616e5c3d99b3ee4d5810735c535", "shasum": "" }, "require": { @@ -8684,7 +8749,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.33" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.34" }, "funding": [ { @@ -8704,20 +8769,20 @@ "type": "tidelift" } ], - "time": "2026-01-27T15:04:55+00:00" + "time": "2026-02-21T15:48:41+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.33", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "73fa5c999d7f741ca544a97d3c791cc97890ae4d" + "reference": "006a49fc4f41ee21a6ca61e69caed1c30b29f07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/73fa5c999d7f741ca544a97d3c791cc97890ae4d", - "reference": "73fa5c999d7f741ca544a97d3c791cc97890ae4d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/006a49fc4f41ee21a6ca61e69caed1c30b29f07c", + "reference": "006a49fc4f41ee21a6ca61e69caed1c30b29f07c", "shasum": "" }, "require": { @@ -8758,7 +8823,7 @@ "symfony/config": "^6.1|^7.0", "symfony/console": "^5.4|^6.0|^7.0", "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4.1|^7.0.1", "symfony/dom-crawler": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", @@ -8802,7 +8867,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.33" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.34" }, "funding": [ { @@ -8822,20 +8887,20 @@ "type": "tidelift" } ], - "time": "2026-01-28T10:02:13+00:00" + "time": "2026-02-26T08:27:11+00:00" }, { "name": "symfony/mime", - "version": "v6.4.32", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7409686879ca36c09fc970a5fa8ff6e93504dba4" + "reference": "2b32fbbe10b36a8379efab6e702ad8b917151839" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7409686879ca36c09fc970a5fa8ff6e93504dba4", - "reference": "7409686879ca36c09fc970a5fa8ff6e93504dba4", + "url": "https://api.github.com/repos/symfony/mime/zipball/2b32fbbe10b36a8379efab6e702ad8b917151839", + "reference": "2b32fbbe10b36a8379efab6e702ad8b917151839", "shasum": "" }, "require": { @@ -8891,7 +8956,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.32" + "source": "https://github.com/symfony/mime/tree/v6.4.34" }, "funding": [ { @@ -8911,7 +8976,7 @@ "type": "tidelift" } ], - "time": "2026-01-04T11:53:14+00:00" + "time": "2026-02-02T17:01:23+00:00" }, { "name": "symfony/options-resolver", @@ -9965,16 +10030,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.32", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0dc6253e864e71b486e8ba4970a56ab849106ebe" + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0dc6253e864e71b486e8ba4970a56ab849106ebe", - "reference": "0dc6253e864e71b486e8ba4970a56ab849106ebe", + "url": "https://api.github.com/repos/symfony/routing/zipball/5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", "shasum": "" }, "require": { @@ -10028,7 +10093,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.32" + "source": "https://github.com/symfony/routing/tree/v6.4.34" }, "funding": [ { @@ -10048,7 +10113,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T08:31:19+00:00" + "time": "2026-02-24T17:34:50+00:00" }, { "name": "symfony/service-contracts", @@ -10139,16 +10204,16 @@ }, { "name": "symfony/string", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", + "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b", + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b", "shasum": "" }, "require": { @@ -10206,7 +10271,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.4" + "source": "https://github.com/symfony/string/tree/v7.4.6" }, "funding": [ { @@ -10226,20 +10291,20 @@ "type": "tidelift" } ], - "time": "2026-01-12T10:54:30+00:00" + "time": "2026-02-09T09:33:46+00:00" }, { "name": "symfony/translation", - "version": "v6.4.32", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc" + "reference": "d07d117db41341511671b0a1a2be48f2772189ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc", - "reference": "d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc", + "url": "https://api.github.com/repos/symfony/translation/zipball/d07d117db41341511671b0a1a2be48f2772189ce", + "reference": "d07d117db41341511671b0a1a2be48f2772189ce", "shasum": "" }, "require": { @@ -10305,7 +10370,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.32" + "source": "https://github.com/symfony/translation/tree/v6.4.34" }, "funding": [ { @@ -10325,7 +10390,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T19:15:33+00:00" + "time": "2026-02-16T20:44:03+00:00" }, { "name": "symfony/translation-contracts", @@ -12732,12 +12797,12 @@ "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "dc880193b6f20673fae82acf07ffcb4ce32465a9" + "reference": "505476fc68bae72df382ea2f9f7632e79d80a12f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/dc880193b6f20673fae82acf07ffcb4ce32465a9", - "reference": "dc880193b6f20673fae82acf07ffcb4ce32465a9", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/505476fc68bae72df382ea2f9f7632e79d80a12f", + "reference": "505476fc68bae72df382ea2f9f7632e79d80a12f", "shasum": "" }, "require": { @@ -12808,7 +12873,7 @@ "issues": "https://github.com/wp-cli/wp-cli/issues", "source": "https://github.com/wp-cli/wp-cli" }, - "time": "2026-02-23T09:56:13+00:00" + "time": "2026-02-26T21:31:44+00:00" }, { "name": "wp-cli/wp-cli-bundle", @@ -12970,15 +13035,15 @@ }, { "name": "wpackagist-plugin/gravity-forms-zero-spam", - "version": "1.4.6", + "version": "1.6.0", "source": { "type": "svn", "url": "https://plugins.svn.wordpress.org/gravity-forms-zero-spam/", - "reference": "tags/1.4.6" + "reference": "tags/1.6.0" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/plugin/gravity-forms-zero-spam.1.4.6.zip" + "url": "https://downloads.wordpress.org/plugin/gravity-forms-zero-spam.1.6.0.zip" }, "require": { "composer/installers": "^1.0 || ^2.0" @@ -13131,20 +13196,20 @@ }, { "name": "yard/brave-csp", - "version": "v1.3.1", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/yardinternet/brave-csp.git", - "reference": "a901924ad397bbab9b26c789b778406c2b584122" + "reference": "48f6e3cd3cb5a8f6b22a2e14fded9f1a3283cde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yardinternet/brave-csp/zipball/a901924ad397bbab9b26c789b778406c2b584122", - "reference": "a901924ad397bbab9b26c789b778406c2b584122", + "url": "https://api.github.com/repos/yardinternet/brave-csp/zipball/48f6e3cd3cb5a8f6b22a2e14fded9f1a3283cde4", + "reference": "48f6e3cd3cb5a8f6b22a2e14fded9f1a3283cde4", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spatie/laravel-csp": "^2.0" }, "require-dev": { @@ -13163,9 +13228,9 @@ "description": "Content Security Policy for Brave sites", "support": { "issues": "https://github.com/yardinternet/brave-csp/issues", - "source": "https://github.com/yardinternet/brave-csp/tree/v1.3.1" + "source": "https://github.com/yardinternet/brave-csp/tree/v1.3.2" }, - "time": "2026-01-12T15:52:27+00:00" + "time": "2026-02-27T13:22:56+00:00" }, { "name": "yard/brave-hooks", @@ -13803,16 +13868,16 @@ "packages-dev": [ { "name": "captainhook/captainhook", - "version": "5.28.3", + "version": "5.28.5", "source": { "type": "git", "url": "https://github.com/captainhook-git/captainhook.git", - "reference": "5d35b249f3843ef36ead119f4347e649278ad6d8" + "reference": "2a7316bf4ba4c3b11b3544c063788622d3520ee1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/captainhook-git/captainhook/zipball/5d35b249f3843ef36ead119f4347e649278ad6d8", - "reference": "5d35b249f3843ef36ead119f4347e649278ad6d8", + "url": "https://api.github.com/repos/captainhook-git/captainhook/zipball/2a7316bf4ba4c3b11b3544c063788622d3520ee1", + "reference": "2a7316bf4ba4c3b11b3544c063788622d3520ee1", "shasum": "" }, "require": { @@ -13875,7 +13940,7 @@ ], "support": { "issues": "https://github.com/captainhook-git/captainhook/issues", - "source": "https://github.com/captainhook-git/captainhook/tree/5.28.3" + "source": "https://github.com/captainhook-git/captainhook/tree/5.28.5" }, "funding": [ { @@ -13883,7 +13948,7 @@ "type": "github" } ], - "time": "2026-02-16T14:08:58+00:00" + "time": "2026-02-28T08:59:22+00:00" }, { "name": "captainhook/hook-installer", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b233a7..7d00fa0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@yardinternet/brave-frontend-kit': link:../../../../Packages/brave-frontend-kit + importers: .: @@ -12,8 +15,8 @@ importers: specifier: ^1.2.12 version: 1.2.12 '@yardinternet/brave-frontend-kit': - specifier: ^0.7.3 - version: 0.7.3 + specifier: link:../../../../Packages/brave-frontend-kit + version: link:../../../../Packages/brave-frontend-kit '@yardinternet/gutenberg-components': specifier: ^1.3.2 version: 1.3.2 @@ -1928,9 +1931,6 @@ packages: resolution: {integrity: sha512-xhB3UHhJovKUAf7Ld8RlzMYDmnVacg3Z1C3G3WtvLZC/I2DpGxTdEzBbmA8/CF1j35qZkfW0aX+ZZGI+AXDIzA==, tarball: https://npm.pkg.github.com/download/@yardinternet/a11y-cookie-yes/1.2.12/f248a525d4ba32a5e9545f1dace0f43c6921f711} engines: {node: '>=18'} - '@yardinternet/brave-frontend-kit@0.7.3': - resolution: {integrity: sha512-9Wi/YQkkBdi7DYtwmACQS0EMZRDMK4V0CnC2B5llS1lQ5p/kV/Rk6H5PDDhJgDSKb678fKNHeWqGNNyR83Ma7Q==, tarball: https://npm.pkg.github.com/download/@yardinternet/brave-frontend-kit/0.7.3/a28722f941973d230f995f4c73ccf501d23d0af8} - '@yardinternet/eslint-config@1.2.0': resolution: {integrity: sha512-IR1N8/GvJ3NLFHRXfIT/gOutREoTHIC1N65aaNP8yMLmywXXAgLLYBcZ6F3Rj9ZbalO3X3/B3AvyV/5fcHnr3A==, tarball: https://npm.pkg.github.com/download/@yardinternet/eslint-config/1.2.0/dd7e7e1f848fb96b1f9bac1619098be7e2a8e4f3} @@ -1967,9 +1967,6 @@ packages: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - accordion-js@3.4.1: - resolution: {integrity: sha512-jPXDsRsulM3rwqgeTtAD9JCFYBD3Fl4MIHcHcj7UvCTwbgn/wD1Gi78gSb11rwTxOhylHMOM5QpoPKn+Ex2TKA==} - acorn-import-phases@1.0.4: resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -2147,9 +2144,6 @@ packages: engines: {node: '>= 14.0.0'} hasBin: true - body-scroll-lock@4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -2903,9 +2897,6 @@ packages: header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - headroom.js@0.12.0: - resolution: {integrity: sha512-iXnAafUm3FdzfJ91uixLws2hkKI1jC8bAKK/pt7XYr8Ie1jO7xbK48Ycpl9tUPyBgkzuj1p/PhJS0fy4E/5anA==} - hermes-estree@0.25.1: resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} @@ -6409,15 +6400,6 @@ snapshots: dependencies: focus-trap: 7.8.0 - '@yardinternet/brave-frontend-kit@0.7.3': - dependencies: - accordion-js: 3.4.1 - body-scroll-lock: 4.0.0-beta.0 - focus-trap: 7.8.0 - headroom.js: 0.12.0 - optionalDependencies: - '@rollup/rollup-linux-arm64-gnu': 4.57.1 - '@yardinternet/eslint-config@1.2.0(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/parser@6.21.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(prettier@3.6.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@17.3.0(typescript@5.9.3))(typescript@5.9.3)': dependencies: '@babel/preset-react': 7.28.5(@babel/core@7.29.0) @@ -6615,8 +6597,6 @@ snapshots: abbrev@2.0.0: {} - accordion-js@3.4.1: {} - acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: acorn: 8.16.0 @@ -6825,8 +6805,6 @@ snapshots: - tsx - yaml - body-scroll-lock@4.0.0-beta.0: {} - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -7794,8 +7772,6 @@ snapshots: capital-case: 1.0.4 tslib: 2.8.1 - headroom.js@0.12.0: {} - hermes-estree@0.25.1: {} hermes-parser@0.25.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1570199..26b01a6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,8 +1,10 @@ -# Hoist these packages to the node_modules root for formatting and linting +overrides: + '@yardinternet/brave-frontend-kit': link:../../../../Packages/brave-frontend-kit + publicHoistPattern: - - prettier - - stylelint - - eslint - - stylelint-config-recommended - - stylelint-config-idiomatic-order - - '@babel/preset-react' + - prettier + - stylelint + - eslint + - stylelint-config-recommended + - stylelint-config-idiomatic-order + - '@babel/preset-react' diff --git a/web/app/themes/sage/app/View/Composers/NaviComposer.php b/web/app/themes/sage/app/View/Composers/NaviComposer.php new file mode 100644 index 0000000..01a9b49 --- /dev/null +++ b/web/app/themes/sage/app/View/Composers/NaviComposer.php @@ -0,0 +1,48 @@ + $this->footerNavigation(), + 'primaryNavigation' => $this->primaryNavigation(), + 'topBarNavigation' => $this->topBarNavigation(), + ]; + } + + public function footerNavigation(): Navi + { + return Navi::make()->build('footer_navigation'); + } + + public function primaryNavigation(): Navi + { + return Navi::make()->build('primary_navigation'); + } + + public function topBarNavigation(): Navi + { + return Navi::make()->build('top_bar_navigation'); + } +} diff --git a/web/app/themes/sage/config/view.php b/web/app/themes/sage/config/view.php index de557cf..fb6854b 100644 --- a/web/app/themes/sage/config/view.php +++ b/web/app/themes/sage/config/view.php @@ -86,6 +86,7 @@ 'app' => App\View\Composers\App::class, 'postDataCollection' => App\View\Composers\PostDataCollectionComposer::class, 'postData' => App\View\Composers\PostDataComposer::class, + 'navi' => App\View\Composers\NaviComposer::class, ], /* diff --git a/web/app/themes/sage/resources/scripts/frontend/frontend.js b/web/app/themes/sage/resources/scripts/frontend/frontend.js index 88a2972..6c1f7f5 100644 --- a/web/app/themes/sage/resources/scripts/frontend/frontend.js +++ b/web/app/themes/sage/resources/scripts/frontend/frontend.js @@ -5,11 +5,10 @@ import A11yCookieYes from '@yardinternet/a11y-cookie-yes'; import { A11yCards, A11yFacetWP, - A11yMobileMenu, Accordion, + BraveNavigationManager, DialogManager, FocusStyle, - Navigation, WebShareApi, } from '@yardinternet/brave-frontend-kit'; @@ -20,10 +19,9 @@ window.addEventListener( 'DOMContentLoaded', () => { new A11yCards(); A11yCookieYes.getInstance(); new A11yFacetWP(); - new A11yMobileMenu(); new Accordion(); + new BraveNavigationManager(); new DialogManager(); new FocusStyle(); - new Navigation(); new WebShareApi(); } ); diff --git a/web/app/themes/sage/resources/styles/base/base.css b/web/app/themes/sage/resources/styles/base/base.css index ccff228..e67aeb4 100644 --- a/web/app/themes/sage/resources/styles/base/base.css +++ b/web/app/themes/sage/resources/styles/base/base.css @@ -58,10 +58,10 @@ p { } a { - @apply text-primary-600 underline; + @apply text-primary underline; @variant hocus { - @apply text-primary-700; + @apply text-primary-600; } /* Hide links if they are empty. Easy fix for some Gutenberg and a11y issues. */ diff --git a/web/app/themes/sage/resources/styles/base/utilities.css b/web/app/themes/sage/resources/styles/base/utilities.css index 03624e4..015ee87 100644 --- a/web/app/themes/sage/resources/styles/base/utilities.css +++ b/web/app/themes/sage/resources/styles/base/utilities.css @@ -193,3 +193,7 @@ minmax( min( 100%, var( --min, 30ch ) ), 1fr ) ); } + +@utility list-reset { + @apply mb-0 list-none pl-0; +} diff --git a/web/app/themes/sage/resources/styles/base/variables.css b/web/app/themes/sage/resources/styles/base/variables.css index b9e3ca8..605e694 100644 --- a/web/app/themes/sage/resources/styles/base/variables.css +++ b/web/app/themes/sage/resources/styles/base/variables.css @@ -38,8 +38,16 @@ /* Navigation */ --wp-admin-bar-height: var( --wp-admin--admin-bar--height, 0px ); --nav-bar-height: 80px; - --top-bar-height: 40px; - --combined-bar-height: var( --nav-bar-height ); /* Altered in top-bar.css */ + --top-bar-height: 0px; + --combined-bar-height: calc( + var( --nav-bar-height ) + var( --top-bar-height ) + ); + + @variant lg { + &:has( .top-bar ) { + --top-bar-height: 40px; + } + } /* Container size */ --container-padding: 1rem; diff --git a/web/app/themes/sage/resources/styles/components/mobile-menu.css b/web/app/themes/sage/resources/styles/components/mobile-menu.css deleted file mode 100644 index 6832e5d..0000000 --- a/web/app/themes/sage/resources/styles/components/mobile-menu.css +++ /dev/null @@ -1,53 +0,0 @@ -.mobile-menu-navigation { - > .menu-item { - &:last-child { - @apply mb-6; - } - - a { - @apply block py-3 !text-base text-black no-underline; - } - } - - .menu-item-has-children > a::after { - @apply fontawesome inline-flex px-2 transition-all; - --fa-icon: '\f107'; - } - - .current-menu-ancestor, - .current_page_item { - > a { - @apply text-primary underline; - } - } - - > .menu-item.js-brave-show-sub-menu { - > a::after { - @apply rotate-180; - } - - .sub-menu { - @apply block; - } - } - - .sub-menu { - @apply mb-2 hidden list-none px-3; - - .menu-item { - &.current-menu-item > a { - @apply text-primary underline; - } - - a { - @apply p-2 !text-sm text-gray-700; - } - } - } -} - -.mobile-menu-top-bar { - > .menu-item a { - @apply py-1 !text-sm text-gray-700; - } -} diff --git a/web/app/themes/sage/resources/styles/components/nav.css b/web/app/themes/sage/resources/styles/components/nav.css deleted file mode 100644 index 89c572f..0000000 --- a/web/app/themes/sage/resources/styles/components/nav.css +++ /dev/null @@ -1,73 +0,0 @@ -.nav { - > .menu-item { - @apply relative h-full; - - &::before { - @apply content invisible absolute bottom-0 left-2 h-1 w-[calc(100%_-_1rem)] scale-0 bg-primary duration-300 ease-base xl:left-4 xl:w-[calc(100%_-_2rem)]; - } - - @variant hocus { - &::before { - @apply visible scale-100; - } - } - - a { - @apply flex h-full items-center px-2 text-center text-sm leading-snug text-black no-underline xl:px-4 xl:text-base xl:leading-snug; - - @variant hocus { - @apply text-primary; - } - } - } - - .current-menu-ancestor, - .current-menu-item { - &::before { - @apply visible scale-100; - } - - > a { - @apply text-primary; - } - } - - .menu-item-has-children { - > a::after { - @apply fontawesome pt-1 pl-2 transition-all ease-base; - --fa-icon: '\f107'; - } - - /* Handles opened and closed state */ - &.js-brave-show-sub-menu { - > a::after { - @apply translate-y-1; - } - - > .sub-menu { - @apply visible translate-y-0 opacity-100 transition; - } - } - } - - .sub-menu { - @apply invisible absolute mb-0 min-w-max -translate-y-3 list-none bg-white pl-0 opacity-0 shadow-md transition-all ease-base; - - .menu-item { - a { - @apply min-w-48 px-6 py-3; - - &::after { - @apply fontawesome ml-auto pl-4 transition-all ease-base; - --fa-icon: '\f105'; - } - - @variant hocus { - &::after { - @apply translate-x-1; - } - } - } - } - } -} diff --git a/web/app/themes/sage/resources/styles/components/top-bar.css b/web/app/themes/sage/resources/styles/components/top-bar.css deleted file mode 100644 index 06af43d..0000000 --- a/web/app/themes/sage/resources/styles/components/top-bar.css +++ /dev/null @@ -1,21 +0,0 @@ -.top-bar { - .menu-item > a { - @apply text-inherit no-underline; - - @variant hocus { - @apply underline; - } - } - - .current-menu-item > a { - @apply text-primary-600 underline; - } -} - -:root:has( .has-top-bar ) { - @variant lg { - --combined-bar-height: calc( - var( --nav-bar-height ) + var( --top-bar-height ) - ); - } -} diff --git a/web/app/themes/sage/resources/styles/frontend.css b/web/app/themes/sage/resources/styles/frontend.css index 8bd5d29..68ab670 100644 --- a/web/app/themes/sage/resources/styles/frontend.css +++ b/web/app/themes/sage/resources/styles/frontend.css @@ -13,9 +13,6 @@ @import './components/facetwp'; @import './components/footer'; @import './components/gravity-forms'; -@import './components/mobile-menu'; -@import './components/nav'; -@import './components/top-bar'; /* Elements */ @import './elements/forms'; diff --git a/web/app/themes/sage/resources/views/components/header/mobile-menu.blade.php b/web/app/themes/sage/resources/views/components/header/mobile-menu.blade.php index b680096..8220a4d 100644 --- a/web/app/themes/sage/resources/views/components/header/mobile-menu.blade.php +++ b/web/app/themes/sage/resources/views/components/header/mobile-menu.blade.php @@ -1,9 +1,18 @@ +@php + /** + * @var Log1x\Navi\Navi $primaryNavigation + * @var Log1x\Navi\Navi $topBarNavigation + */ + + use Log1x\Navi\Navi; +@endphp + @props([ 'dialogId' => 'js-brave-mobile-menu', 'label' => __('Menu', 'sage'), ]) - + -
+

{{ $label }}

- + Sluit menu
- @php - if (has_nav_menu('primary_navigation')) { - wp_nav_menu([ - 'container' => '', - 'depth' => 2, - 'id' => '', - 'menu_class' => 'mobile-menu-navigation w-full mb-0 list-none px-4', - 'theme_location' => 'primary_navigation', - ]); - } + + @if ($primaryNavigation->isNotEmpty()) + + @foreach ($primaryNavigation->all() as $item) + + + {!! $item->label !!} + @if ($item->children) + + @endif + + @if ($item->children) + + @endif + + @endforeach + + @endif - if (has_nav_menu('top_bar_navigation')) { - wp_nav_menu([ - 'container' => '', - 'depth' => 1, - 'id' => '', - 'menu_class' => 'mobile-menu-navigation mobile-menu-top-bar w-full mb-0 list-none px-4', - 'theme_location' => 'top_bar_navigation', - ]); - } - @endphp + @if ($topBarNavigation->isNotEmpty()) + + @foreach ($topBarNavigation->all() as $item) + + + {{ $item->label }} + + + @endforeach + + @endif +
diff --git a/web/app/themes/sage/resources/views/components/header/navigation.blade.php b/web/app/themes/sage/resources/views/components/header/navigation.blade.php index 314d332..4ab1ddf 100644 --- a/web/app/themes/sage/resources/views/components/header/navigation.blade.php +++ b/web/app/themes/sage/resources/views/components/header/navigation.blade.php @@ -1,13 +1,51 @@ -@if (has_nav_menu('primary_navigation')) - +@php + /** + * @var Log1x\Navi\Navi $primaryNavigation + */ +@endphp + +@if ($primaryNavigation->isNotEmpty()) + @endif diff --git a/web/app/themes/sage/resources/views/components/header/top-bar.blade.php b/web/app/themes/sage/resources/views/components/header/top-bar.blade.php index 930a6f4..7eedd89 100644 --- a/web/app/themes/sage/resources/views/components/header/top-bar.blade.php +++ b/web/app/themes/sage/resources/views/components/header/top-bar.blade.php @@ -1,18 +1,23 @@ -@if (has_nav_menu('top_bar_navigation')) - diff --git a/web/app/themes/sage/resources/views/sections/footer.blade.php b/web/app/themes/sage/resources/views/sections/footer.blade.php index dc3deb2..43d95a9 100644 --- a/web/app/themes/sage/resources/views/sections/footer.blade.php +++ b/web/app/themes/sage/resources/views/sections/footer.blade.php @@ -1,25 +1,32 @@ +@php + /** + * @var Log1x\Navi\Navi $footerNavigation + */ +@endphp +