diff --git a/app/Enums/Examples/Ai.php b/app/Enums/Examples/Ai.php index 62541c8f..fec22098 100644 --- a/app/Enums/Examples/Ai.php +++ b/app/Enums/Examples/Ai.php @@ -33,29 +33,4 @@ class Ai } } HTML; - - public const string CURSOR_PROJECT = <<<'HTML' - { - "mcpServers": { - "tallstackui": { - "type": "http", - "url": "https://tallstackui.com/mcp/tallstackui" - } - } - } - HTML; - - public const string GEMINI_CLI = <<<'HTML' - gemini mcp add --transport http tallstackui https://tallstackui.com/mcp/tallstackui - HTML; - - public const string GEMINI_SETTINGS = <<<'HTML' - { - "mcpServers": { - "tallstackui": { - "httpUrl": "https://tallstackui.com/mcp/tallstackui" - } - } - } - HTML; } diff --git a/app/Enums/Examples/Form/Checkbox.php b/app/Enums/Examples/Form/Checkbox.php index afdedb92..4bde4c58 100644 --- a/app/Enums/Examples/Form/Checkbox.php +++ b/app/Enums/Examples/Form/Checkbox.php @@ -98,10 +98,6 @@ class Checkbox ]" /> HTML; - public const string GROUP_PROPERTY = <<<'PHP' - public array $features = []; - PHP; - public const string GROUP_VARIATIONS = <<<'HTML' diff --git a/app/Enums/Examples/Form/Date.php b/app/Enums/Examples/Form/Date.php index 55dc5b9a..3d104151 100644 --- a/app/Enums/Examples/Form/Date.php +++ b/app/Enums/Examples/Form/Date.php @@ -36,13 +36,25 @@ class Date $date; // 2024-02-20 HTML; + public const string TYPEABLE = <<<'HTML' + + HTML; + + public const string TYPEABLE_FORMAT = <<<'HTML' + + HTML; + + public const string TYPEABLE_MIN_DATE = <<<'HTML' + + + + HTML; + public const string HELPERS = <<<'HTML' HTML; public const string MIN_MAX_DATES = <<<'HTML' - - HTML; diff --git a/app/Enums/Examples/Form/Range.php b/app/Enums/Examples/Form/Range.php index 93444683..43d8be2d 100644 --- a/app/Enums/Examples/Form/Range.php +++ b/app/Enums/Examples/Form/Range.php @@ -14,6 +14,14 @@ class Range HTML; + public const string DUAL = <<<'HTML' + + HTML; + + public const string DUAL_TOOLTIP = <<<'HTML' + + HTML; + public const string READONLY_DISABLED = <<<'HTML' diff --git a/app/Enums/Examples/Form/Upload.php b/app/Enums/Examples/Form/Upload.php index 99878cf2..f411fa6b 100644 --- a/app/Enums/Examples/Form/Upload.php +++ b/app/Enums/Examples/Form/Upload.php @@ -130,6 +130,30 @@ public function updatedPhotos(): void {} // [tl! remove] public function updatedFiles(): void {} // [tl! add] HTML; + public const string EDITOR = <<<'HTML' + + HTML; + + public const string EDITOR_ASPECT = <<<'HTML' + + HTML; + + public const string EDITOR_MODES = <<<'HTML' + + + + + + HTML; + + public const string EDITOR_MULTIPLE = <<<'HTML' + + HTML; + + public const string EDITOR_DISABLED = <<<'HTML' + + HTML; + public const string ACCEPT = <<<'HTML' HTML; diff --git a/app/Enums/Examples/Form/UploadAsync.php b/app/Enums/Examples/Form/UploadAsync.php index 44738098..7da7b40f 100644 --- a/app/Enums/Examples/Form/UploadAsync.php +++ b/app/Enums/Examples/Form/UploadAsync.php @@ -81,6 +81,30 @@ public function store(Request $request) HTML; + public const string EDITOR = <<<'HTML' + + HTML; + + public const string EDITOR_MANUAL = <<<'HTML' + + + + + + + + HTML; + public const string STORE = <<<'PHP' return $this->upload($request, [ 'disk' => 'public', diff --git a/app/Enums/Examples/Ui/Button.php b/app/Enums/Examples/Ui/Button.php index 6f1b315b..56d57daa 100644 --- a/app/Enums/Examples/Ui/Button.php +++ b/app/Enums/Examples/Ui/Button.php @@ -412,11 +412,95 @@ class Button HTML; + public const string SUBTLE = <<<'HTML' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HTML; + + public const string SUBTLE_TINTED = <<<'HTML' + + + + + + HTML; + public const string UNFOCUS = <<<'HTML' HTML; + public const string UNFOCUS_CONFIG = <<<'HTML' + + + + + HTML; + + public const string CIRCLE_SUBTLE = <<<'HTML' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HTML; + + public const string CIRCLE_SUBTLE_TINTED = <<<'HTML' + + + HTML; + public const string CIRCLE_UNFOCUS = <<<'HTML' @@ -450,6 +534,14 @@ class Button ->block('block', 'classes'); HTML; + public const string GROUP_SHADOWLESS = <<<'HTML' + + + + + + HTML; + public const string CUSTOMIZATION_GROUP = <<<'HTML' TallStackUi::customize() ->button('group') diff --git a/app/Enums/Examples/Ui/Carousel.php b/app/Enums/Examples/Ui/Carousel.php index 25315881..850cff2b 100644 --- a/app/Enums/Examples/Ui/Carousel.php +++ b/app/Enums/Examples/Ui/Carousel.php @@ -30,8 +30,6 @@ class Carousel ]" round /> + + + + + HTML; + public const string EVENTS = <<<'HTML' HTML; - public const string LIVEWIRE = <<<'HTML' - - - HTML; - public const string SCOPES = <<<'PHP' // The two dialogs are instances under a fixed scope TallStackUi::customize('modal', scope: 'editor.modal.link') diff --git a/app/Enums/Examples/Ui/Gallery.php b/app/Enums/Examples/Ui/Gallery.php index 3c4bf5ed..6c2c0963 100644 --- a/app/Enums/Examples/Ui/Gallery.php +++ b/app/Enums/Examples/Ui/Gallery.php @@ -98,12 +98,6 @@ class="max-w-md" /> x-on:previous="console.log($event.detail.current)" /> HTML; - public const string PERFORMANCE = <<<'HTML' - TallStackUi::customize() - ->gallery() - ->block('tile.performance', ''); - HTML; - public const string CUSTOMIZATION = <<<'HTML' TallStackUi::customize() ->gallery() diff --git a/composer.json b/composer.json index c2328cf3..37ccfe85 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "livewire/livewire": "^4.0", "sentry/sentry-laravel": "^4.27", "symfony/yaml": "^7.2", - "tallstackui/tallstackui": "^4.0", + "tallstackui/tallstackui": "4.x-dev", "torchlight/torchlight-laravel": "^0.6" }, "require-dev": { @@ -85,5 +85,11 @@ } }, "minimum-stability": "stable", - "prefer-stable": true + "prefer-stable": true, + "repositories": [ + { + "type": "path", + "url": "/Users/aj/Workspace/tallstack/tallstackui" + } + ] } diff --git a/composer.lock b/composer.lock index 3f15795c..dc203bba 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": "df25224656c575076a007fe483d70f6e", + "content-hash": "965dc16c4c1c22e5a15b9a0ccf8a91b4", "packages": [ { "name": "brick/math", @@ -1119,16 +1119,16 @@ }, { "name": "laravel/framework", - "version": "v13.27.0", + "version": "v13.30.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "f3fa8f3591fa2e8f0b7dedfffc3fc324d2aad31b" + "reference": "9c008e7c9a64a8ea6d6e4f1683bd569acc10bf9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/f3fa8f3591fa2e8f0b7dedfffc3fc324d2aad31b", - "reference": "f3fa8f3591fa2e8f0b7dedfffc3fc324d2aad31b", + "url": "https://api.github.com/repos/laravel/framework/zipball/9c008e7c9a64a8ea6d6e4f1683bd569acc10bf9e", + "reference": "9c008e7c9a64a8ea6d6e4f1683bd569acc10bf9e", "shasum": "" }, "require": { @@ -1342,7 +1342,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-08-25T14:16:00+00:00" + "time": "2026-09-01T13:19:00+00:00" }, { "name": "laravel/mcp", @@ -2167,16 +2167,16 @@ }, { "name": "livewire/livewire", - "version": "v4.4.2", + "version": "v4.4.3", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "4a030935e6c255c89a114b00ece66326f78157c0" + "reference": "92f1427022714b34024459167aa6a85d4fb4af44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/4a030935e6c255c89a114b00ece66326f78157c0", - "reference": "4a030935e6c255c89a114b00ece66326f78157c0", + "url": "https://api.github.com/repos/livewire/livewire/zipball/92f1427022714b34024459167aa6a85d4fb4af44", + "reference": "92f1427022714b34024459167aa6a85d4fb4af44", "shasum": "" }, "require": { @@ -2231,7 +2231,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v4.4.2" + "source": "https://github.com/livewire/livewire/tree/v4.4.3" }, "funding": [ { @@ -2239,7 +2239,7 @@ "type": "github" } ], - "time": "2026-08-24T15:02:06+00:00" + "time": "2026-08-31T15:40:58+00:00" }, { "name": "monolog/monolog", @@ -3595,16 +3595,16 @@ }, { "name": "sentry/sentry", - "version": "4.30.0", + "version": "4.31.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "95a26e7c946651cacd69d1ded95a8190f952a3ae" + "reference": "39d9f86bd56c6cc6ae7b64c2b849f7f046d38394" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/95a26e7c946651cacd69d1ded95a8190f952a3ae", - "reference": "95a26e7c946651cacd69d1ded95a8190f952a3ae", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/39d9f86bd56c6cc6ae7b64c2b849f7f046d38394", + "reference": "39d9f86bd56c6cc6ae7b64c2b849f7f046d38394", "shasum": "" }, "require": { @@ -3675,7 +3675,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.30.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.31.0" }, "funding": [ { @@ -3687,7 +3687,7 @@ "type": "custom" } ], - "time": "2026-08-05T14:54:26+00:00" + "time": "2026-08-27T12:59:01+00:00" }, { "name": "sentry/sentry-laravel", @@ -3860,16 +3860,16 @@ }, { "name": "symfony/console", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d07c06839e33047e2c894a6793248f3fb66c8129" + "reference": "eb7d9957d66739649e931ce7a9d05dab69f8abac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d07c06839e33047e2c894a6793248f3fb66c8129", - "reference": "d07c06839e33047e2c894a6793248f3fb66c8129", + "url": "https://api.github.com/repos/symfony/console/zipball/eb7d9957d66739649e931ce7a9d05dab69f8abac", + "reference": "eb7d9957d66739649e931ce7a9d05dab69f8abac", "shasum": "" }, "require": { @@ -3936,7 +3936,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v8.1.5" + "source": "https://github.com/symfony/console/tree/v8.1.6" }, "funding": [ { @@ -3956,20 +3956,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T14:29:57+00:00" + "time": "2026-08-25T14:18:42+00:00" }, { "name": "symfony/css-selector", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "a291fb5adb65f52a4bb315db2d803698315dc64d" + "reference": "08e2905152a39cf3fd1745d83f8c483e258887d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/a291fb5adb65f52a4bb315db2d803698315dc64d", - "reference": "a291fb5adb65f52a4bb315db2d803698315dc64d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/08e2905152a39cf3fd1745d83f8c483e258887d9", + "reference": "08e2905152a39cf3fd1745d83f8c483e258887d9", "shasum": "" }, "require": { @@ -4005,7 +4005,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v8.1.5" + "source": "https://github.com/symfony/css-selector/tree/v8.1.6" }, "funding": [ { @@ -4025,7 +4025,7 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:47:34+00:00" + "time": "2026-08-23T10:06:25+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4415,16 +4415,16 @@ }, { "name": "symfony/http-foundation", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ee16f97e95cfa011a742714d7c8c8f70fe7423f4" + "reference": "093b78326f649c3a9db922b9f17123b6aeb3b8fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ee16f97e95cfa011a742714d7c8c8f70fe7423f4", - "reference": "ee16f97e95cfa011a742714d7c8c8f70fe7423f4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/093b78326f649c3a9db922b9f17123b6aeb3b8fb", + "reference": "093b78326f649c3a9db922b9f17123b6aeb3b8fb", "shasum": "" }, "require": { @@ -4472,7 +4472,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v8.1.5" + "source": "https://github.com/symfony/http-foundation/tree/v8.1.6" }, "funding": [ { @@ -4492,20 +4492,20 @@ "type": "tidelift" } ], - "time": "2026-08-20T09:59:12+00:00" + "time": "2026-08-30T20:10:55+00:00" }, { "name": "symfony/http-kernel", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "0306e1e65b90023fe40de6c6be95d06396bcb2e6" + "reference": "2f73beb7c6f1a97d2c17bbf4dbd59da8cc18b355" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/0306e1e65b90023fe40de6c6be95d06396bcb2e6", - "reference": "0306e1e65b90023fe40de6c6be95d06396bcb2e6", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2f73beb7c6f1a97d2c17bbf4dbd59da8cc18b355", + "reference": "2f73beb7c6f1a97d2c17bbf4dbd59da8cc18b355", "shasum": "" }, "require": { @@ -4582,7 +4582,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/v8.1.5" + "source": "https://github.com/symfony/http-kernel/tree/v8.1.6" }, "funding": [ { @@ -4602,7 +4602,7 @@ "type": "tidelift" } ], - "time": "2026-08-22T13:45:00+00:00" + "time": "2026-08-30T21:40:49+00:00" }, { "name": "symfony/mailer", @@ -4686,7 +4686,7 @@ }, { "name": "symfony/mime", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", @@ -4748,7 +4748,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v8.1.5" + "source": "https://github.com/symfony/mime/tree/v8.1.6" }, "funding": [ { @@ -5672,7 +5672,7 @@ }, { "name": "symfony/process", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -5713,7 +5713,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v8.1.5" + "source": "https://github.com/symfony/process/tree/v8.1.6" }, "funding": [ { @@ -5824,7 +5824,7 @@ }, { "name": "symfony/routing", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", @@ -5880,7 +5880,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v8.1.5" + "source": "https://github.com/symfony/routing/tree/v8.1.6" }, "funding": [ { @@ -5904,16 +5904,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.7.1", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -5967,7 +5967,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -5987,7 +5987,7 @@ "type": "tidelift" } ], - "time": "2026-06-16T09:55:08+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", @@ -6334,16 +6334,16 @@ }, { "name": "symfony/var-dumper", - "version": "v8.1.5", + "version": "v8.1.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "61743d9bc7ab23b194527ca1be2fafd7dc93b74a" + "reference": "3783365b58972f4779254d98372af80fbf15e170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/61743d9bc7ab23b194527ca1be2fafd7dc93b74a", - "reference": "61743d9bc7ab23b194527ca1be2fafd7dc93b74a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3783365b58972f4779254d98372af80fbf15e170", + "reference": "3783365b58972f4779254d98372af80fbf15e170", "shasum": "" }, "require": { @@ -6397,7 +6397,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v8.1.5" + "source": "https://github.com/symfony/var-dumper/tree/v8.1.6" }, "funding": [ { @@ -6417,20 +6417,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T12:16:08+00:00" + "time": "2026-08-30T20:10:55+00:00" }, { "name": "symfony/yaml", - "version": "v7.4.17", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "0b040d7b66ceb10b7bb24c8e6656257932693a12" + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0b040d7b66ceb10b7bb24c8e6656257932693a12", - "reference": "0b040d7b66ceb10b7bb24c8e6656257932693a12", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { @@ -6473,7 +6473,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.17" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -6493,21 +6493,15 @@ "type": "tidelift" } ], - "time": "2026-08-21T12:09:28+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { "name": "tallstackui/tallstackui", - "version": "v4.1.0", - "source": { - "type": "git", - "url": "https://github.com/tallstackui/tallstackui.git", - "reference": "8bc2d5ea42a7df23c6e1db30555d5de5382e1a5f" - }, + "version": "4.x-dev", "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tallstackui/tallstackui/zipball/8bc2d5ea42a7df23c6e1db30555d5de5382e1a5f", - "reference": "8bc2d5ea42a7df23c6e1db30555d5de5382e1a5f", - "shasum": "" + "type": "path", + "url": "/Users/aj/Workspace/tallstack/tallstackui", + "reference": "d8c85af694721b41e4dd9a35eb6c1d29d2e6613f" }, "require": { "ext-zip": "*", @@ -6532,27 +6526,72 @@ "type": "library", "extra": { "laravel": { - "aliases": { - "TallStackUi": "TallStackUi\\Facades\\TallStackUi" - }, "providers": [ "TallStackUi\\TallStackUiServiceProvider" - ] + ], + "aliases": { + "TallStackUi": "TallStackUi\\Facades\\TallStackUi" + } } }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { "TallStackUi\\": "src/" }, + "files": [ + "src/helpers.php" + ], "exclude-from-classmap": [ "src/**/*FeatureTest.php", "src/**/*BrowserTest.php" ] }, - "notification-url": "https://packagist.org/downloads/", + "autoload-dev": { + "psr-4": { + "App\\": "vendor/orchestra/testbench-core/laravel/app", + "Tests\\": "tests/" + } + }, + "scripts": { + "test": [ + "./vendor/bin/pest" + ], + "bench": [ + "./vendor/bin/testbench" + ], + "type": [ + "./vendor/bin/pest --type-coverage" + ], + "test:browser:setup": [ + "./vendor/bin/dusk-updater detect --auto-update" + ], + "ci": [ + "composer run analyse", + "composer run type", + "./vendor/bin/pint --parallel --test", + "@php scripts/find-unused-customization-blocks.php", + "@php scripts/check-html-escaped-tailwind-variants.php", + "composer run test:feature", + "composer run test:browser" + ], + "format": [ + "./vendor/bin/pint --parallel", + "npm run lint:fix", + "npm run format" + ], + "test:feature": [ + "vendor/bin/testbench view:clear", + "CI=true ./vendor/bin/pest --filter=Feature --parallel" + ], + "test:browser": [ + "Composer\\Config::disableProcessTimeout", + "./vendor/bin/testbench view:clear", + "CI=true ./vendor/bin/pest --filter=Browser" + ], + "analyse": [ + "./vendor/bin/phpstan analyse --memory-limit=2G" + ] + }, "license": [ "MIT" ], @@ -6563,17 +6602,9 @@ } ], "description": "TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.", - "support": { - "issues": "https://github.com/tallstackui/tallstackui/issues", - "source": "https://github.com/tallstackui/tallstackui/tree/v4.1.0" - }, - "funding": [ - { - "url": "https://github.com/devajmeireles", - "type": "github" - } - ], - "time": "2026-08-21T17:31:28+00:00" + "transport-options": { + "relative": false + } }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -7635,16 +7666,16 @@ }, { "name": "pestphp/pest", - "version": "v5.1.2", + "version": "v5.1.3", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "627092ecfc467d9263c750b966c7b341f7a21874" + "reference": "20a5aacaca4fce9116922f42d2942b3f9f5bbfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/627092ecfc467d9263c750b966c7b341f7a21874", - "reference": "627092ecfc467d9263c750b966c7b341f7a21874", + "url": "https://api.github.com/repos/pestphp/pest/zipball/20a5aacaca4fce9116922f42d2942b3f9f5bbfc6", + "reference": "20a5aacaca4fce9116922f42d2942b3f9f5bbfc6", "shasum": "" }, "require": { @@ -7661,6 +7692,7 @@ }, "conflict": { "filp/whoops": "<2.18.3", + "laravel/boost": "<2.6.0", "phpunit/phpunit": ">13.3.1", "sebastian/exporter": "<7.0.0", "webmozart/assert": "<1.11.0" @@ -7738,7 +7770,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v5.1.2" + "source": "https://github.com/pestphp/pest/tree/v5.1.3" }, "funding": [ { @@ -7750,7 +7782,7 @@ "type": "github" } ], - "time": "2026-08-24T13:06:57+00:00" + "time": "2026-08-25T18:15:02+00:00" }, { "name": "pestphp/pest-plugin", @@ -8531,16 +8563,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.3", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -8572,17 +8604,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2026-07-08T07:01:06+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { "name": "phpstan/phpstan", - "version": "2.2.9", + "version": "2.2.12", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/13d6b4f347bad222da436580c8304fa6f83e6bd0", - "reference": "13d6b4f347bad222da436580c8304fa6f83e6bd0", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/174b0d88710f00a42598886504dd7a146f91ace5", + "reference": "174b0d88710f00a42598886504dd7a146f91ace5", "shasum": "" }, "require": { @@ -8638,7 +8670,7 @@ "type": "github" } ], - "time": "2026-08-22T07:38:16+00:00" + "time": "2026-08-31T19:09:43+00:00" }, { "name": "phpunit/php-code-coverage", @@ -10823,16 +10855,16 @@ }, { "name": "tomasvotruba/type-coverage", - "version": "2.3.4", + "version": "2.3.6", "source": { "type": "git", "url": "https://github.com/TomasVotruba/type-coverage.git", - "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0" + "reference": "bb2e1d115bfc38b2b29c98ea64762d70607a684f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/7b4aec57af15514dac9a3c5a9671da501444ecd0", - "reference": "7b4aec57af15514dac9a3c5a9671da501444ecd0", + "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/bb2e1d115bfc38b2b29c98ea64762d70607a684f", + "reference": "bb2e1d115bfc38b2b29c98ea64762d70607a684f", "shasum": "" }, "require": { @@ -10878,7 +10910,7 @@ ], "support": { "issues": "https://github.com/TomasVotruba/type-coverage/issues", - "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.4" + "source": "https://github.com/TomasVotruba/type-coverage/tree/2.3.6" }, "funding": [ { @@ -10890,7 +10922,7 @@ "type": "github" } ], - "time": "2026-08-18T07:48:32+00:00" + "time": "2026-08-29T08:21:40+00:00" }, { "name": "webmozart/assert", @@ -11169,7 +11201,9 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "tallstackui/tallstackui": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/contents/documentation.yaml b/contents/documentation.yaml index 12869f04..c05a9f67 100644 --- a/contents/documentation.yaml +++ b/contents/documentation.yaml @@ -210,6 +210,7 @@ form: range: - Basic Usage - Label & Hint + - Dual Mode - Readonly & Disabled - Size Variations - Color Variations @@ -235,6 +236,7 @@ form: - Validation Error - Delete - Multiple + - Image Editor - Restricting File Types - Footer Slot - Validate Before Upload @@ -251,6 +253,7 @@ form: - Basic Usage - Multiple - Manual + - Image Editor - Uploader Trait - Taking Over Persistence - Authorization @@ -264,6 +267,7 @@ form: - Label & Hint - Readonly & Disabled - Available Formats + - Typeable - Helpers - Min & Max Dates - Min & Max Years @@ -444,6 +448,7 @@ ui: - Light Variations - Outline Variations - Flat Variations + - Subtle Variations - Unfocus Circle: contents: @@ -459,12 +464,14 @@ ui: - Light Variations - Outline Variations - Flat Variations + - Subtle Variations - Unfocus Group: contents: - Concept - Basic Usage - Vertical Orientation + - Shadowless boolean: - Concept - Basic Usage @@ -504,6 +511,7 @@ ui: - Autoplay, Stop on Hover - Autoplay, Without Loop - Without Indicators + - Thumbnails - Image Title & Description - Clickable - Clickable Caption diff --git a/resources/views/components/layout/navigation/tree.blade.php b/resources/views/components/layout/navigation/tree.blade.php index 0f10b8b1..da2a1bf7 100644 --- a/resources/views/components/layout/navigation/tree.blade.php +++ b/resources/views/components/layout/navigation/tree.blade.php @@ -92,6 +92,7 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -116,7 +117,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -129,13 +129,13 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -148,7 +148,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -173,6 +172,7 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -180,6 +180,7 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[ :href="route('documentation', ['form', 'upload-async'])" text="Upload Async" new + changed />
  • @@ -207,7 +208,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -257,13 +257,13 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -295,7 +295,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -303,13 +302,13 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[ :href="route('documentation', ['ui', 'editor'])" text="Editor" new + changed />
  • @@ -329,21 +328,18 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -356,28 +352,24 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -397,7 +389,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -410,14 +401,12 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -431,14 +420,12 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -452,14 +439,12 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -478,7 +463,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -494,14 +478,12 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -576,7 +558,6 @@ class="dark:text-dark-500 font-mono text-[0.65rem] font-semibold tracking-[0.16e
  • @@ -596,7 +577,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • @@ -615,7 +595,6 @@ class="dark:text-dark-500 mt-6 font-mono text-[0.65rem] font-semibold tracking-[
  • diff --git a/resources/views/documentation/ai.blade.php b/resources/views/documentation/ai.blade.php index 9e520ecc..1d773f26 100644 --- a/resources/views/documentation/ai.blade.php +++ b/resources/views/documentation/ai.blade.php @@ -175,7 +175,7 @@ class="underline" - +

    The quickest way to connect the MCP server to diff --git a/resources/views/documentation/form/autocomplete.blade.php b/resources/views/documentation/form/autocomplete.blade.php index 94862c8a..c2406aba 100644 --- a/resources/views/documentation/form/autocomplete.blade.php +++ b/resources/views/documentation/form/autocomplete.blade.php @@ -93,6 +93,7 @@ @@ -104,6 +105,7 @@

    diff --git a/resources/views/documentation/form/checkbox.blade.php b/resources/views/documentation/form/checkbox.blade.php index 7d86988f..ec4dd90a 100644 --- a/resources/views/documentation/form/checkbox.blade.php +++ b/resources/views/documentation/form/checkbox.blade.php @@ -235,7 +235,7 @@ /> - + +

    + + + +

    + The input becomes a regular text field with an auto-formatting + mask derived from the + format + tokens: + YYYY + takes four digits, + MM + and + DD + take two, and any other character is inserted as the user types. + Clicking the input no longer opens the picker, but the calendar + icon still does. +

    + + + +

    + On blur the typed value is parsed against the format and + validated by the same rules as the picker: min and max dates, + disabled dates, weekdays, weekends and + only + . An invalid, impossible or out-of-range date, like + 31/02/2020 + , restores the previous value, while clearing the field and + leaving empties the model. +

    + + + + + The + format + must contain the + YYYY + , + MM + and + DD + tokens for the mask to make sense. + typeable + cannot be combined with + range + , + multiple + or + month-year-only + , and combining them throws. + +
    + diff --git a/resources/views/documentation/form/radio.blade.php b/resources/views/documentation/form/radio.blade.php index 2d5cf4fa..8201ff5f 100644 --- a/resources/views/documentation/form/radio.blade.php +++ b/resources/views/documentation/form/radio.blade.php @@ -212,7 +212,7 @@ /> - + +
    + + + +

    + Unlike the single mode, the bound property is always an indexed + pair, + [start, end] + . When the bound value is blank the pair starts at + [min, max] + . In dual mode + min + , + max + and + step + default to + 0 + , + 100 + and + 1 + . The segment between the thumbs is painted with the component + color + . +

    +

    + The thumbs never cross. Dragging the starting thumb past the + ending one stops it at that value, and the other way around. + Both landing on the same value is allowed, and while they + overlap the one that still has room to move stays on top, so + neither gets stuck. +

    + + + +

    + Use + tooltip + to show the value of the thumb being dragged, hidden on release. + The bubble is the same balloon the + tooltip + component renders, anchored on an invisible marker kept over the + thumb, so it follows the balloon color, scale and styling set + for every tooltip and has no color or size settings of its own. + The pair reaches the server when the thumb is released rather + than on every intermediate value, so a drag costs a single round + trip, + wire:model.live + included. +

    + + tooltip + and an array + value + both require + dual + and throw otherwise. In dual mode the component also throws when + min + is not below + max + , when + step + is zero, negative or wider than the distance between the + boundaries, or when the bound value is not a numeric pair inside + those boundaries with the first value below the second. + +
    +
    diff --git a/resources/views/documentation/form/upload-async.blade.php b/resources/views/documentation/form/upload-async.blade.php index 5ee53424..6ae52ec9 100644 --- a/resources/views/documentation/form/upload-async.blade.php +++ b/resources/views/documentation/form/upload-async.blade.php @@ -121,9 +121,55 @@ + +
    + + + +

    + Images open a crop and rotate dialog before the first chunk is + sent; the edited file is what gets chunked, validated and + stored. Documents go straight to the upload, and cancelling the + dialog drops the file. With + multiple + the dialog opens once per image, in sequence. +

    + + + +

    + In + manual + mode the edited file waits in the grid until + send() + . The + editor + and + aspect + attributes accept the same values as the + upload component + : + true + , + crop + , + rotate + or + false + for the editor and a + width:height + ratio for the aspect. +

    +
    +

    diff --git a/resources/views/documentation/form/upload.blade.php b/resources/views/documentation/form/upload.blade.php index b7d1cb72..89de3258 100644 --- a/resources/views/documentation/form/upload.blade.php +++ b/resources/views/documentation/form/upload.blade.php @@ -125,6 +125,100 @@ class="underline"

    + +
    + + + +

    + The editor runs at intake, between picking the file and sending + it. What reaches Livewire is the edited file; the original never + leaves the browser. Only images open the editor: documents and + SVGs go straight to the upload. Cancelling, Escape, the backdrop + or the close button drop the file, so nothing is uploaded. Files + already uploaded cannot be edited again. +

    + + + +

    + aspect + locks the crop box to a + width:height + ratio, like + 1:1 + , + 4:3 + or + 16:9 + . The box starts as the largest centered rectangle of that ratio + and every handle keeps it. Without it the box is free. +

    + + + +

    + A bare + editor + offers the crop box and the rotation buttons. + editor="crop" + keeps the crop box only and + editor="rotate" + keeps the rotation buttons only, in which case + aspect + has no effect. +

    + + + +

    + With + multiple + the editor opens once per image, in sequence. Cancelling one + removes only that one from the batch. +

    + +

    + The EXIF orientation is applied on load, images larger than + 4096px on their longest side are downscaled to that, and an + animated GIF is flattened to a PNG frame. The output file name + follows the resulting format, so + photo.gif + becomes + photo.png + . The dialog is a + modal + that behaves as a bottom sheet below the + md + breakpoint and is centered above it. +

    + + editor + must be + true + , + false + , + crop + or + rotate + , and + aspect + must follow the + width:height + format with positive integers. Anything else throws. + +
    +
    - +
    @@ -205,7 +299,7 @@ class="underline" benefit of this usage format is that it allows people to view files, including preview images, and can choose to delete them. - +
    • diff --git a/resources/views/documentation/internal/floating.blade.php b/resources/views/documentation/internal/floating.blade.php index 1d4719d1..c4da5c7a 100644 --- a/resources/views/documentation/internal/floating.blade.php +++ b/resources/views/documentation/internal/floating.blade.php @@ -63,9 +63,10 @@ title="Scroll Lock" new description="An option to block the overflow when the floating is opened." + disable-copy >
      - + Nested and stacked popups share a single lock, counted by reference, so the first popup to open takes it and the last to diff --git a/resources/views/documentation/ui/avatar.blade.php b/resources/views/documentation/ui/avatar.blade.php index c3b7323c..62a9a045 100644 --- a/resources/views/documentation/ui/avatar.blade.php +++ b/resources/views/documentation/ui/avatar.blade.php @@ -207,6 +207,7 @@ anchor="gravatar-from-another-column" new description="An option to use a different property to generate the gravatar" + disable-copy > diff --git a/resources/views/documentation/ui/banner.blade.php b/resources/views/documentation/ui/banner.blade.php index 2cca6bc0..ae00ed54 100644 --- a/resources/views/documentation/ui/banner.blade.php +++ b/resources/views/documentation/ui/banner.blade.php @@ -197,6 +197,7 @@

      @@ -206,7 +207,7 @@ but yes stored temporarily in the session and displayed in the next request when you redirect to another page.

      - +
      diff --git a/resources/views/documentation/ui/button.blade.php b/resources/views/documentation/ui/button.blade.php index e82428f4..9671a262 100644 --- a/resources/views/documentation/ui/button.blade.php +++ b/resources/views/documentation/ui/button.blade.php @@ -340,17 +340,98 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif
      + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +

      + subtle + borrows the border and background of the + input + and hovers in gray whatever the color. Add + tinted + to tint the hover with the color instead: +

      + +
      + + +
      +
      + + tinted + is a modifier of + subtle + and throws on its own. + +
      +
      - -
      - - -
      -
      +
      + +
      + + +
      +
      + + + You can set + unfocus + for every button in the + configuration file. + The key is shared with the circle button. The inline attribute + always wins, so + :unfocus="false" + keeps a single button focusable by click. + +
      @@ -559,6 +640,60 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + +
    +
    + + tinted + is a modifier of + subtle + and throws on its own. + +
    +
    + + The circle button reads the same + unfocus + key of the + configuration file. + The inline attribute always wins. + @@ -626,4 +768,42 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif + +
    + + + + + + + +

    + The wrapper carries a + shadow-xs + of its own. Use + shadowless + with + subtle + children, which have no shadow of their own. +

    + + The + shadow-xs + moved out of + wrapper.base + into + wrapper.shadow + . A customization that removed it from + wrapper.base + should target + wrapper.shadow + instead, or use the attribute. + +
    +
    diff --git a/resources/views/documentation/ui/carousel.blade.php b/resources/views/documentation/ui/carousel.blade.php index eea302c9..99614b9a 100644 --- a/resources/views/documentation/ui/carousel.blade.php +++ b/resources/views/documentation/ui/carousel.blade.php @@ -125,6 +125,159 @@ /> + +
    + + + +

    + Clicking a tile moves the carousel to that slide and restarts + the autoplay timer, exactly like the dot indicators. The tile of + the current slide carries a primary ring and + aria-current="true" + , the other tiles carry a subtle gray ring. The strip already + shows the position, so + thumbnails + implies + without-indicators + . The tiles follow the + shuffle + order and + round + applies to them the same way it applies to the slides. +

    + + + +

    + limit + caps the number of tiles, six by default. When the carousel + holds more images than the limit, the last tile keeps its image + under a + +N + overlay counting the images left out of the strip. Clicking it + moves to that image and the arrows keep going from there. While + the current slide sits beyond the visible tiles, the last tile + keeps the highlight. +

    + + + +

    + without-highlight + drops the primary ring, so every tile shares the inactive look + while + aria-current + keeps marking the current slide for assistive technology. +

    + + + +

    + Click a thumbnail to jump to that photo. +

    + +
    +
    +

    + The strip sits between the slides and the + footer + slot. +

    + + limit + and + without-highlight + require + thumbnails + , and + limit + must be at least + 2 + + + You can turn the strip on for every carousel, and set the + default + limit + and + without-highlight + , in the + configuration file. + The inline attributes always win, so + :thumbnails="false" + hides the strip on a single carousel. + without-highlight + is only read when the strip renders, so a carousel without + thumbnails + ignores it instead of throwing. + + +
    +
    - +

    There are a few things that can be configured using the configuration file. @@ -510,6 +510,7 @@ +

    The @@ -240,6 +240,7 @@ class offers two response types: redirect the user to a page @@ -252,7 +253,7 @@ class offers two response types: redirect the user to a page configuration. When set to true, the command palette will be centered on mobile devices. - +

    By default, the command palette renders a dimmed overlay behind diff --git a/resources/views/documentation/ui/editor.blade.php b/resources/views/documentation/ui/editor.blade.php index c017885b..532b0192 100644 --- a/resources/views/documentation/ui/editor.blade.php +++ b/resources/views/documentation/ui/editor.blade.php @@ -269,6 +269,7 @@ class on every element. Learn more about it below.

    @@ -333,9 +336,40 @@ class on every element. Learn more about it below. is used to handle the uploaded image and return the URL of the image. +

    + With + upload-editor + the picked image opens a crop and rotate dialog on top of the + image dialog before it is uploaded. It accepts the same values + as the + upload component + : + true + for the crop box and the rotation buttons, + crop + or + rotate + for one of them, and + false + to turn it off whatever the configuration says. + upload-aspect + locks the crop box to a + width:height + ratio. +

    + +

    + Cancelling the editor returns to the image dialog with no URL. + Images pasted by URL never go through it. The editor is only + active when both + upload-property + and + upload-method + are set. +

    - +
    - +

    @@ -409,7 +444,7 @@ class on every element. Learn more about it below.

    - +

    There are a lot things that can be configured using the configuration file. @@ -432,6 +467,22 @@ class on every element. Learn more about it below. in the configuration file.

    +

    + The image editor of the upload can also be enabled for every editor + through the + upload + key, with the same + editor + , + aspect + , + quality + and + format + settings of the + upload component + . The inline attributes always win. +

    diff --git a/resources/views/documentation/ui/environment.blade.php b/resources/views/documentation/ui/environment.blade.php index d0531586..bf981a47 100644 --- a/resources/views/documentation/ui/environment.blade.php +++ b/resources/views/documentation/ui/environment.blade.php @@ -15,7 +15,7 @@ - +

    With the example above you should realize that the environment @@ -62,7 +62,7 @@ - +

    Internally TallStackUI uses a simple algorithm to get the @@ -80,7 +80,7 @@

    - +

    You may have noticed that there is no way to define component diff --git a/resources/views/documentation/ui/gallery.blade.php b/resources/views/documentation/ui/gallery.blade.php index cf0331e3..b8168449 100644 --- a/resources/views/documentation/ui/gallery.blade.php +++ b/resources/views/documentation/ui/gallery.blade.php @@ -131,7 +131,7 @@ class="max-w-xl" - +

    - + @@ -431,6 +432,7 @@ class="mt-4"
    diff --git a/resources/views/documentation/ui/slide.blade.php b/resources/views/documentation/ui/slide.blade.php index f5413e82..7dffe00f 100644 --- a/resources/views/documentation/ui/slide.blade.php +++ b/resources/views/documentation/ui/slide.blade.php @@ -198,6 +198,7 @@ class="mt-4" @@ -252,6 +253,7 @@ class="mt-4"
    diff --git a/resources/views/documentation/ui/tab.blade.php b/resources/views/documentation/ui/tab.blade.php index fb70006e..f39026a4 100644 --- a/resources/views/documentation/ui/tab.blade.php +++ b/resources/views/documentation/ui/tab.blade.php @@ -79,7 +79,7 @@ - +

    Tabs can be associated with URLs using the diff --git a/resources/views/documentation/ui/table.blade.php b/resources/views/documentation/ui/table.blade.php index 4830d9f1..99b2864a 100644 --- a/resources/views/documentation/ui/table.blade.php +++ b/resources/views/documentation/ui/table.blade.php @@ -269,6 +269,7 @@ class="underline"

    diff --git a/resources/views/documentation/ui/tooltip.blade.php b/resources/views/documentation/ui/tooltip.blade.php index 7bdb05a4..9af4db89 100644 --- a/resources/views/documentation/ui/tooltip.blade.php +++ b/resources/views/documentation/ui/tooltip.blade.php @@ -201,6 +201,7 @@ class="cursor-help underline" title="Styling the Balloon" new description="The balloon is created by JavaScript and shared by anchors that have no component behind them." + disable-copy > diff --git a/resources/views/livewire/documentation/form/range.blade.php b/resources/views/livewire/documentation/form/range.blade.php new file mode 100644 index 00000000..7d916175 --- /dev/null +++ b/resources/views/livewire/documentation/form/range.blade.php @@ -0,0 +1,45 @@ + + +
    + @if ($mode === 1) +
    + +

    + Bound value: + {{ $price[0] }} + to + {{ $price[1] }} +

    +
    + @elseif ($mode === 2) + + @endif +
    diff --git a/resources/views/livewire/documentation/form/upload/async.blade.php b/resources/views/livewire/documentation/form/upload/async.blade.php index cd6ba1f1..67e2af82 100644 --- a/resources/views/livewire/documentation/form/upload/async.blade.php +++ b/resources/views/livewire/documentation/form/upload/async.blade.php @@ -12,6 +12,10 @@ public array $gallery = []; public array $files = []; + + public array $photos = []; + + public array $covers = []; }; ?> @@ -62,6 +66,53 @@ class="mt-3 flex items-center justify-between" class="text-xs text-gray-500" > +
    + + Abort & Clear + + + Upload Now + +
    +
    + + + @elseif ($mode === 4) + + @elseif ($mode === 5) + + +
    + +
    Abort & Clear diff --git a/resources/views/livewire/documentation/form/upload/upload.blade.php b/resources/views/livewire/documentation/form/upload/upload.blade.php index db3004bc..0f9ff094 100644 --- a/resources/views/livewire/documentation/form/upload/upload.blade.php +++ b/resources/views/livewire/documentation/form/upload/upload.blade.php @@ -25,6 +25,14 @@ public $photo7; + public $photo8; + + public $photo9; + + public $photo10; + + public $photo11 = []; + #[Validate(["file", "extensions:dat"])] public $validate; @@ -109,5 +117,26 @@ public function deleteUpload(array $content): void
    + @elseif ($model === 11) + + @elseif ($model === 12) + + @elseif ($model === 13) +
    + + +
    + @elseif ($model === 14) + @endif