├── .editorconfig ├── .env.example ├── .gitattributes ├── .gitignore ├── README.md ├── app ├── Actions │ └── RetrieveReleases.php ├── Console │ └── Commands │ │ └── DeleteLivewireTemporaryUpload.php ├── Enums │ ├── Example.php │ └── Examples │ │ ├── V1 │ │ ├── Alpine.php │ │ ├── Command.php │ │ ├── Configuration.php │ │ ├── Contribution.php │ │ ├── Form │ │ │ ├── Checkbox.php │ │ │ ├── Color.php │ │ │ ├── Date.php │ │ │ ├── Input.php │ │ │ ├── Number.php │ │ │ ├── Password.php │ │ │ ├── Pin.php │ │ │ ├── Radio.php │ │ │ ├── Range.php │ │ │ ├── Select.php │ │ │ ├── Tag.php │ │ │ ├── Textarea.php │ │ │ ├── Time.php │ │ │ ├── Toggle.php │ │ │ └── Upload.php │ │ ├── Helpers │ │ │ ├── DarkTheme.php │ │ │ └── DebugMode.php │ │ ├── Installation.php │ │ ├── Interactions │ │ │ ├── Dialog.php │ │ │ └── Toast.php │ │ ├── Personalization │ │ │ ├── Color.php │ │ │ ├── Deep.php │ │ │ └── Soft.php │ │ ├── SummerRelease.php │ │ ├── Translation.php │ │ ├── Troubleshooting.php │ │ ├── Ui │ │ │ ├── Alert.php │ │ │ ├── Avatar.php │ │ │ ├── Badge.php │ │ │ ├── Banner.php │ │ │ ├── Boolean.php │ │ │ ├── Button.php │ │ │ ├── Card.php │ │ │ ├── Clipboard.php │ │ │ ├── Dropdown.php │ │ │ ├── Error.php │ │ │ ├── Icon.php │ │ │ ├── Link.php │ │ │ ├── Loading.php │ │ │ ├── Modal.php │ │ │ ├── Progress.php │ │ │ ├── Rating.php │ │ │ ├── Reaction.php │ │ │ ├── Slide.php │ │ │ ├── Stats.php │ │ │ ├── Step.php │ │ │ ├── Tab.php │ │ │ ├── Table.php │ │ │ ├── ThemeSwitch.php │ │ │ └── Tooltip.php │ │ ├── Updates.php │ │ ├── Welcome.php │ │ └── WithoutLivewire.php │ │ └── V2 │ │ ├── Alpine.php │ │ ├── Command.php │ │ ├── ComponentPrefix.php │ │ ├── Configuration.php │ │ ├── Contribution.php │ │ ├── Form │ │ ├── Checkbox.php │ │ ├── Color.php │ │ ├── Currency.php │ │ ├── Date.php │ │ ├── Input.php │ │ ├── Number.php │ │ ├── Password.php │ │ ├── Pin.php │ │ ├── Radio.php │ │ ├── Range.php │ │ ├── Select.php │ │ ├── Tag.php │ │ ├── Textarea.php │ │ ├── Time.php │ │ ├── Toggle.php │ │ └── Upload.php │ │ ├── Helpers │ │ ├── DarkTheme.php │ │ ├── DebugMode.php │ │ └── EnvBar.php │ │ ├── Installation.php │ │ ├── Interactions │ │ ├── Dialog.php │ │ └── Toast.php │ │ ├── Personalization │ │ ├── Color.php │ │ ├── Deep.php │ │ └── Soft.php │ │ ├── StarterKit.php │ │ ├── Translation.php │ │ ├── Troubleshooting.php │ │ ├── Ui │ │ ├── Alert.php │ │ ├── Avatar.php │ │ ├── Badge.php │ │ ├── Banner.php │ │ ├── Boolean.php │ │ ├── Button.php │ │ ├── Card.php │ │ ├── Carousel.php │ │ ├── Clipboard.php │ │ ├── Dropdown.php │ │ ├── Environment.php │ │ ├── Error.php │ │ ├── Icon.php │ │ ├── KeyValue.php │ │ ├── Layout.php │ │ ├── Link.php │ │ ├── Loading.php │ │ ├── Modal.php │ │ ├── Progress.php │ │ ├── Rating.php │ │ ├── Reaction.php │ │ ├── Signature.php │ │ ├── Slide.php │ │ ├── Stats.php │ │ ├── Step.php │ │ ├── Tab.php │ │ ├── Table.php │ │ ├── ThemeSwitch.php │ │ └── Tooltip.php │ │ ├── Updates.php │ │ ├── UpgradeGuide.php │ │ ├── Welcome.php │ │ └── WithoutLivewire.php ├── Exceptions │ └── Handler.php ├── Http │ ├── Controllers │ │ └── PageController.php │ └── Middleware │ │ └── ShareVersionVariable.php ├── Models │ └── User.php ├── Providers │ ├── AppServiceProvider.php │ └── VoltServiceProvider.php ├── Traits │ └── VersionDiscovery.php ├── View │ └── Components │ │ └── Layout.php └── helpers.php ├── artisan ├── arts └── tallstackui.svg ├── bootstrap ├── app.php ├── cache │ └── .gitignore └── providers.php ├── composer.json ├── composer.lock ├── config ├── livewire.php ├── services.php └── torchlight.php ├── contents ├── v1.yaml └── v2.yaml ├── database ├── .gitignore ├── factories │ └── UserFactory.php ├── migrations │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ └── 2019_12_14_000001_create_personal_access_tokens_table.php └── seeders │ ├── CreateUserSeeder.php │ └── DatabaseSeeder.php ├── ide.json ├── package-lock.json ├── package.json ├── phpunit.xml ├── pint.json ├── public ├── .htaccess ├── assets │ ├── demo │ │ ├── laravel.png │ │ ├── livewire.png │ │ └── tallstackui.png │ ├── images │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── araxis.png │ │ ├── background.svg │ │ ├── env-bar.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── find-component-output.png │ │ ├── og.png │ │ ├── site.webmanifest │ │ └── wallpapers │ │ │ ├── 1.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ └── 4.jpg │ └── videos │ │ └── tsui-starter-kit-preview.mp4 ├── favicon.ico ├── index.php └── robots.txt ├── resources ├── css │ ├── app.css │ ├── search.css │ └── torchlight.css ├── js │ ├── app.js │ ├── bootstrap.js │ └── modules │ │ └── clipboard.js └── views │ ├── components │ ├── available-configuration.blade.php │ ├── back-to-top.blade.php │ ├── block.blade.php │ ├── code.blade.php │ ├── copy-code.blade.php │ ├── custom-table │ │ ├── index.blade.php │ │ ├── tbody.blade.php │ │ ├── td.blade.php │ │ ├── th.blade.php │ │ ├── thead.blade.php │ │ └── tr.blade.php │ ├── github.blade.php │ ├── google-analytics.blade.php │ ├── internals-warning.blade.php │ ├── layout │ │ ├── banner.blade.php │ │ ├── header.blade.php │ │ ├── menu-badge-new.blade.php │ │ ├── navigation │ │ │ ├── link.blade.php │ │ │ ├── version.blade.php │ │ │ └── version │ │ │ │ ├── v1.blade.php │ │ │ │ └── v2.blade.php │ │ └── sidebar │ │ │ ├── index │ │ │ ├── index.blade.php │ │ │ └── item.blade.php │ │ │ ├── left.blade.php │ │ │ └── right.blade.php │ ├── old-version-warning.blade.php │ ├── on-this-page.blade.php │ ├── outdated-contente-tooltip.blade.php │ ├── preview.blade.php │ ├── section.blade.php │ ├── separator.blade.php │ ├── svg │ │ ├── banner.blade.php │ │ ├── sponsors │ │ │ ├── araxis.blade.php │ │ │ ├── dothnews.blade.php │ │ │ └── jb.blade.php │ │ ├── tallstackui-light.blade.php │ │ └── tallstackui.blade.php │ ├── top-bar.blade.php │ ├── v2-beta-warning.blade.php │ └── warning.blade.php │ ├── documentation │ ├── v1 │ │ ├── command.blade.php │ │ ├── configuration.blade.php │ │ ├── contribution.blade.php │ │ ├── faq.blade.php │ │ ├── form │ │ │ ├── checkbox.blade.php │ │ │ ├── color.blade.php │ │ │ ├── date.blade.php │ │ │ ├── input.blade.php │ │ │ ├── number.blade.php │ │ │ ├── password.blade.php │ │ │ ├── pin.blade.php │ │ │ ├── radio.blade.php │ │ │ ├── range.blade.php │ │ │ ├── select.blade.php │ │ │ ├── tag.blade.php │ │ │ ├── textarea.blade.php │ │ │ ├── time.blade.php │ │ │ ├── toggle.blade.php │ │ │ └── upload.blade.php │ │ ├── getting-started.blade.php │ │ ├── helpers │ │ │ ├── dark-theme.blade.php │ │ │ └── debug-mode.blade.php │ │ ├── installation.blade.php │ │ ├── integrations │ │ │ └── alpine.blade.php │ │ ├── interactions │ │ │ ├── dialog.blade.php │ │ │ └── toast.blade.php │ │ ├── internal │ │ │ ├── error.blade.php │ │ │ ├── floating.blade.php │ │ │ ├── hint.blade.php │ │ │ ├── label.blade.php │ │ │ └── wrapper.blade.php │ │ ├── personalization │ │ │ ├── color.blade.php │ │ │ ├── concept.blade.php │ │ │ ├── deep.blade.php │ │ │ └── soft.blade.php │ │ ├── summer-release.blade.php │ │ ├── translation.blade.php │ │ ├── troubleshooting.blade.php │ │ ├── ui │ │ │ ├── alert.blade.php │ │ │ ├── avatar.blade.php │ │ │ ├── badge.blade.php │ │ │ ├── banner.blade.php │ │ │ ├── boolean.blade.php │ │ │ ├── button.blade.php │ │ │ ├── card.blade.php │ │ │ ├── clipboard.blade.php │ │ │ ├── dropdown.blade.php │ │ │ ├── error.blade.php │ │ │ ├── icon.blade.php │ │ │ ├── link.blade.php │ │ │ ├── loading.blade.php │ │ │ ├── modal.blade.php │ │ │ ├── progress.blade.php │ │ │ ├── rating.blade.php │ │ │ ├── reaction.blade.php │ │ │ ├── slide.blade.php │ │ │ ├── stats.blade.php │ │ │ ├── step.blade.php │ │ │ ├── tab.blade.php │ │ │ ├── table.blade.php │ │ │ ├── theme-switch.blade.php │ │ │ └── tooltip.blade.php │ │ ├── updates.blade.php │ │ └── without-livewire.blade.php │ └── v2 │ │ ├── alpine.blade.php │ │ ├── command.blade.php │ │ ├── component-prefix.blade.php │ │ ├── configuration.blade.php │ │ ├── contribution.blade.php │ │ ├── documentation.blade.php │ │ ├── form │ │ ├── checkbox.blade.php │ │ ├── color.blade.php │ │ ├── currency.blade.php │ │ ├── date.blade.php │ │ ├── input.blade.php │ │ ├── number.blade.php │ │ ├── password.blade.php │ │ ├── pin.blade.php │ │ ├── radio.blade.php │ │ ├── range.blade.php │ │ ├── select.blade.php │ │ ├── tag.blade.php │ │ ├── textarea.blade.php │ │ ├── time.blade.php │ │ ├── toggle.blade.php │ │ └── upload.blade.php │ │ ├── helpers │ │ ├── dark-theme.blade.php │ │ ├── debug-mode.blade.php │ │ └── env-bar.blade.php │ │ ├── installation.blade.php │ │ ├── integrations │ │ └── alpine.blade.php │ │ ├── interactions │ │ ├── dialog.blade.php │ │ └── toast.blade.php │ │ ├── internal │ │ ├── error.blade.php │ │ ├── floating.blade.php │ │ ├── hint.blade.php │ │ ├── label.blade.php │ │ └── wrapper.blade.php │ │ ├── personalization │ │ ├── color.blade.php │ │ ├── concept.blade.php │ │ ├── deep.blade.php │ │ └── soft.blade.php │ │ ├── starter-kit.blade.php │ │ ├── translation.blade.php │ │ ├── troubleshooting.blade.php │ │ ├── ui │ │ ├── alert.blade.php │ │ ├── avatar.blade.php │ │ ├── badge.blade.php │ │ ├── banner.blade.php │ │ ├── boolean.blade.php │ │ ├── button.blade.php │ │ ├── card.blade.php │ │ ├── carousel.blade.php │ │ ├── clipboard.blade.php │ │ ├── dropdown.blade.php │ │ ├── environment.blade.php │ │ ├── error.blade.php │ │ ├── icon.blade.php │ │ ├── key-value.blade.php │ │ ├── layout.blade.php │ │ ├── link.blade.php │ │ ├── loading.blade.php │ │ ├── modal.blade.php │ │ ├── progress.blade.php │ │ ├── rating.blade.php │ │ ├── reaction.blade.php │ │ ├── signature.blade.php │ │ ├── slide.blade.php │ │ ├── stats.blade.php │ │ ├── step.blade.php │ │ ├── tab.blade.php │ │ ├── table.blade.php │ │ ├── theme-switch.blade.php │ │ └── tooltip.blade.php │ │ ├── upgrade-guide.blade.php │ │ └── without-livewire.blade.php │ ├── layouts │ └── app.blade.php │ ├── livewire │ ├── documentation-settings.blade.php │ ├── documentation │ │ ├── form │ │ │ ├── currency.blade.php │ │ │ ├── pin.blade.php │ │ │ └── upload │ │ │ │ ├── static.blade.php │ │ │ │ └── upload.blade.php │ │ ├── helpers │ │ │ └── debug.blade.php │ │ ├── interactions │ │ │ ├── banner │ │ │ │ └── examples.blade.php │ │ │ ├── dialog │ │ │ │ ├── confirmation.blade.php │ │ │ │ ├── events.blade.php │ │ │ │ └── examples.blade.php │ │ │ └── toast │ │ │ │ ├── confirmation.blade.php │ │ │ │ ├── events.blade.php │ │ │ │ ├── examples.blade.php │ │ │ │ ├── expandable.blade.php │ │ │ │ ├── persistent.blade.php │ │ │ │ ├── position.blade.php │ │ │ │ └── timeout.blade.php │ │ ├── modal │ │ │ ├── customentangle.blade.php │ │ │ └── entangle.blade.php │ │ ├── releases.blade.php │ │ ├── slide │ │ │ ├── customentangle.blade.php │ │ │ └── entangle.blade.php │ │ └── ui │ │ │ ├── boolean.blade.php │ │ │ ├── button.blade.php │ │ │ ├── errors.blade.php │ │ │ ├── key-value.blade.php │ │ │ ├── loading.blade.php │ │ │ ├── rating.blade.php │ │ │ ├── reaction.blade.php │ │ │ ├── signature.blade.php │ │ │ ├── step.blade.php │ │ │ ├── table.blade.php │ │ │ └── tabs.blade.php │ ├── personalization.blade.php │ ├── version-selector.blade.php │ └── welcome │ │ ├── form.blade.php │ │ └── table.blade.php │ └── welcome.blade.php ├── routes ├── api.php ├── console.php └── web.php ├── storage ├── app │ ├── .gitignore │ └── public │ │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ ├── .gitignore │ │ └── data │ │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ ├── testing │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── tests ├── CreatesApplication.php ├── Feature │ └── StructureTest.php ├── Pest.php └── TestCase.php └── vite.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME="TallStackUI, TALL Stack Components." 2 | APP_ENV=local 3 | APP_KEY= 4 | APP_DEBUG=true 5 | APP_TIMEZONE=UTC 6 | APP_URL=http://localhost 7 | 8 | APP_LOCALE=en 9 | APP_FALLBACK_LOCALE=en 10 | APP_FAKER_LOCALE=en_US 11 | 12 | APP_MAINTENANCE_DRIVER=file 13 | APP_MAINTENANCE_STORE=database 14 | 15 | BCRYPT_ROUNDS=12 16 | 17 | LOG_CHANNEL=stack 18 | LOG_STACK=single 19 | LOG_DEPRECATIONS_CHANNEL=null 20 | LOG_LEVEL=debug 21 | 22 | DB_CONNECTION=sqlite 23 | # DB_HOST=127.0.0.1 24 | # DB_PORT=3306 25 | # DB_DATABASE=laravel 26 | # DB_USERNAME=root 27 | # DB_PASSWORD= 28 | 29 | SESSION_DRIVER=file 30 | SESSION_LIFETIME=120 31 | SESSION_ENCRYPT=false 32 | SESSION_PATH=/ 33 | SESSION_DOMAIN=null 34 | 35 | BROADCAST_CONNECTION=log 36 | FILESYSTEM_DISK=local 37 | QUEUE_CONNECTION=database 38 | 39 | CACHE_STORE=file 40 | CACHE_PREFIX= 41 | 42 | MEMCACHED_HOST=127.0.0.1 43 | 44 | REDIS_CLIENT=phpredis 45 | REDIS_HOST=127.0.0.1 46 | REDIS_PASSWORD=null 47 | REDIS_PORT=6379 48 | 49 | MAIL_MAILER=log 50 | MAIL_HOST=127.0.0.1 51 | MAIL_PORT=2525 52 | MAIL_USERNAME=null 53 | MAIL_PASSWORD=null 54 | MAIL_ENCRYPTION=null 55 | MAIL_FROM_ADDRESS="hello@example.com" 56 | MAIL_FROM_NAME="${APP_NAME}" 57 | 58 | AWS_ACCESS_KEY_ID= 59 | AWS_SECRET_ACCESS_KEY= 60 | AWS_DEFAULT_REGION=us-east-1 61 | AWS_BUCKET= 62 | AWS_USE_PATH_STYLE_ENDPOINT=false 63 | 64 | VITE_APP_NAME="${APP_NAME}" 65 | 66 | # Customs 67 | 68 | TORCHLIGHT_TOKEN= 69 | 70 | GITHUB_TOKEN= 71 | 72 | TALLSTACKUI_AVOID_LAYOUT_REGISTRATION=true 73 | 74 | ALGOLIA_APP_ID= 75 | ALGOLIA_SECRET= 76 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.phpunit.cache 2 | /node_modules 3 | /public/build 4 | /public/hot 5 | /public/storage 6 | /storage/*.key 7 | /vendor 8 | .env 9 | .env.backup 10 | .env.production 11 | .phpunit.result.cache 12 | Homestead.json 13 | Homestead.yaml 14 | auth.json 15 | npm-debug.log 16 | yarn-error.log 17 | /.fleet 18 | /.idea 19 | /.vscode 20 | Envoy.blade.php 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TallStackUi 2 | 3 |
4 | 5 | 11 | 12 | ## Introduction 13 | 14 | [TallStackUi](https://tallstackui.com/) is a powerful suite of Blade components for TALL Stack apps. 15 | 16 | ## Documentation 17 | 18 | [Visit our website to see the documentation](https://tallstackui.com/docs) 19 | 20 | ## Need Help? 21 | 22 | 🐞 If you spot a bug, please [submit a detailed issue.](https://github.com/tallstackui/tallstackui/issues/new/choose) 23 | 24 | 💬 If you love chatting, [we have a Discord server dedicated to the TallStackUI community.](https://discord.gg/sfr66WXh4A) 25 | 26 | ## Contributing 27 | 28 | Thank you for wanting to be part of our team! 👋 [Click here to learn more.](https://tallstackui.com/docs/contribution) 29 | -------------------------------------------------------------------------------- /app/Actions/RetrieveReleases.php: -------------------------------------------------------------------------------- 1 | get('services.github.token'); 14 | 15 | if (! $token) { 16 | return collect(); 17 | } 18 | 19 | if ($cache = Cache::get('releases')) { 20 | return $cache; 21 | } 22 | 23 | $response = Http::withToken($token)->get('https://api.github.com/repos/tallstackui/tallstackui/releases'); 24 | 25 | if ($response->failed()) { 26 | return collect(); 27 | } 28 | 29 | return Cache::remember( 30 | 'releases', 31 | now()->addDay(), 32 | fn () => $response->collect() 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Console/Commands/DeleteLivewireTemporaryUpload.php: -------------------------------------------------------------------------------- 1 | isProduction()) { 19 | return; 20 | } 21 | 22 | $this->components->info('The temporary upload folder of Livewire has been deleted.'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Enums/Examples/V1/Alpine.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |