├── .editorconfig
├── .env.example
├── .gitattributes
├── .gitignore
├── .vscode
├── extensions.json
└── settings.json
├── README.md
├── app
├── Http
│ └── Controllers
│ │ └── Controller.php
├── Models
│ └── User.php
└── Providers
│ └── AppServiceProvider.php
├── artisan
├── bootstrap
├── app.php
├── cache
│ └── .gitignore
└── providers.php
├── composer.json
├── composer.lock
├── config
├── app.php
├── auth.php
├── cache.php
├── database.php
├── filesystems.php
├── logging.php
├── mail.php
├── queue.php
├── services.php
└── session.php
├── database
├── .gitignore
├── factories
│ └── UserFactory.php
├── migrations
│ ├── 0001_01_01_000000_create_users_table.php
│ ├── 0001_01_01_000001_create_cache_table.php
│ └── 0001_01_01_000002_create_jobs_table.php
└── seeders
│ └── DatabaseSeeder.php
├── package-lock.json
├── package.json
├── phpunit.xml
├── public
├── .htaccess
├── favicon.ico
├── favicon.png
├── favicon.svg
├── index.php
└── robots.txt
├── resources
├── css
│ └── tailkit.css
├── js
│ ├── app.js
│ └── bootstrap.js
└── views
│ └── welcome.blade.php
├── routes
├── console.php
└── web.php
├── storage
├── app
│ ├── .gitignore
│ └── public
│ │ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ ├── .gitignore
│ │ └── data
│ │ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ ├── testing
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
├── tests
├── Feature
│ └── ExampleTest.php
├── TestCase.php
└── Unit
│ └── ExampleTest.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 | [*.blade.php]
12 | indent_size = 2
13 |
14 | [*.js]
15 | indent_size = 2
16 |
17 | [*.json]
18 | indent_size = 2
19 |
20 | [*.css]
21 | indent_size = 2
22 |
23 | [*.md]
24 | trim_trailing_whitespace = false
25 |
26 | [*.{yml,yaml}]
27 | indent_size = 2
28 |
29 | [docker-compose.yml]
30 | indent_size = 4
31 |
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | APP_NAME=tailkit-starter-kit-laravel
2 | APP_ENV=local
3 | APP_KEY=
4 | APP_DEBUG=true
5 | APP_URL=http://localhost:8000
6 |
7 | APP_LOCALE=en
8 | APP_FALLBACK_LOCALE=en
9 | APP_FAKER_LOCALE=en_US
10 |
11 | APP_MAINTENANCE_DRIVER=file
12 | # APP_MAINTENANCE_STORE=database
13 |
14 | PHP_CLI_SERVER_WORKERS=4
15 |
16 | BCRYPT_ROUNDS=12
17 |
18 | LOG_CHANNEL=stack
19 | LOG_STACK=single
20 | LOG_DEPRECATIONS_CHANNEL=null
21 | LOG_LEVEL=debug
22 |
23 | DB_CONNECTION=sqlite
24 | # DB_HOST=127.0.0.1
25 | # DB_PORT=3306
26 | # DB_DATABASE=laravel
27 | # DB_USERNAME=root
28 | # DB_PASSWORD=
29 |
30 | SESSION_DRIVER=database
31 | SESSION_LIFETIME=120
32 | SESSION_ENCRYPT=false
33 | SESSION_PATH=/
34 | SESSION_DOMAIN=null
35 |
36 | BROADCAST_CONNECTION=log
37 | FILESYSTEM_DISK=local
38 | QUEUE_CONNECTION=database
39 |
40 | CACHE_STORE=database
41 | # CACHE_PREFIX=
42 |
43 | MEMCACHED_HOST=127.0.0.1
44 |
45 | REDIS_CLIENT=phpredis
46 | REDIS_HOST=127.0.0.1
47 | REDIS_PASSWORD=null
48 | REDIS_PORT=6379
49 |
50 | MAIL_MAILER=log
51 | MAIL_SCHEME=null
52 | MAIL_HOST=127.0.0.1
53 | MAIL_PORT=2525
54 | MAIL_USERNAME=null
55 | MAIL_PASSWORD=null
56 | MAIL_FROM_ADDRESS="hello@example.com"
57 | MAIL_FROM_NAME="${APP_NAME}"
58 |
59 | AWS_ACCESS_KEY_ID=
60 | AWS_SECRET_ACCESS_KEY=
61 | AWS_DEFAULT_REGION=us-east-1
62 | AWS_BUCKET=
63 | AWS_USE_PATH_STYLE_ENDPOINT=false
64 |
65 | VITE_APP_NAME="${APP_NAME}"
66 |
--------------------------------------------------------------------------------
/.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 | /storage/pail
8 | /vendor
9 | .env
10 | .env.backup
11 | .env.production
12 | .phpunit.result.cache
13 | Homestead.json
14 | Homestead.yaml
15 | auth.json
16 | npm-debug.log
17 | yarn-error.log
18 | /.fleet
19 | /.idea
20 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["esbenp.prettier-vscode", "onecentlin.laravel-blade"]
3 | }
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": true,
3 | "editor.defaultFormatter": "esbenp.prettier-vscode",
4 | "[css]": {
5 | "editor.defaultFormatter": "esbenp.prettier-vscode"
6 | },
7 | "[javascript]": {
8 | "editor.defaultFormatter": "esbenp.prettier-vscode"
9 | },
10 | "[blade]": {
11 | "editor.defaultFormatter": "esbenp.prettier-vscode"
12 | },
13 | "prettier.documentSelectors": ["**/*.blade.php"]
14 | }
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tailkit - Starter Kit - Laravel
2 |
3 | This is a Laravel Starter Kit for using Tailkit - https://tailkit.com UI components out of the box in your project.
4 |
5 | ```
6 | Requirements: node.js, composer, php ≥ 8.2
7 |
8 | Installation: create an .env from the .env.example and then run 'composer install && npm install && php artisan key:generate'
9 |
10 | Development: composer run dev
11 | Production: npm run build
12 | ```
13 |
14 |

15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | ## About Laravel
24 |
25 | Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
26 |
27 | - [Simple, fast routing engine](https://laravel.com/docs/routing).
28 | - [Powerful dependency injection container](https://laravel.com/docs/container).
29 | - Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
30 | - Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
31 | - Database agnostic [schema migrations](https://laravel.com/docs/migrations).
32 | - [Robust background job processing](https://laravel.com/docs/queues).
33 | - [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
34 |
35 | Laravel is accessible, powerful, and provides tools required for large, robust applications.
36 |
37 | ## Learning Laravel
38 |
39 | Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
40 |
41 | You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.
42 |
43 | If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
44 |
45 | ## Laravel Sponsors
46 |
47 | We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
48 |
49 | ### Premium Partners
50 |
51 | - **[Vehikl](https://vehikl.com/)**
52 | - **[Tighten Co.](https://tighten.co)**
53 | - **[WebReinvent](https://webreinvent.com/)**
54 | - **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
55 | - **[64 Robots](https://64robots.com)**
56 | - **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
57 | - **[Cyber-Duck](https://cyber-duck.co.uk)**
58 | - **[DevSquad](https://devsquad.com/hire-laravel-developers)**
59 | - **[Jump24](https://jump24.co.uk)**
60 | - **[Redberry](https://redberry.international/laravel/)**
61 | - **[Active Logic](https://activelogic.com)**
62 | - **[byte5](https://byte5.de)**
63 | - **[OP.GG](https://op.gg)**
64 |
65 | ## Contributing
66 |
67 | Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
68 |
69 | ## Code of Conduct
70 |
71 | In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
72 |
73 | ## Security Vulnerabilities
74 |
75 | If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
76 |
77 | ## License
78 |
79 | The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
80 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | */
13 | use HasFactory, Notifiable;
14 |
15 | /**
16 | * The attributes that are mass assignable.
17 | *
18 | * @var list
19 | */
20 | protected $fillable = [
21 | 'name',
22 | 'email',
23 | 'password',
24 | ];
25 |
26 | /**
27 | * The attributes that should be hidden for serialization.
28 | *
29 | * @var list
30 | */
31 | protected $hidden = [
32 | 'password',
33 | 'remember_token',
34 | ];
35 |
36 | /**
37 | * Get the attributes that should be cast.
38 | *
39 | * @return array
40 | */
41 | protected function casts(): array
42 | {
43 | return [
44 | 'email_verified_at' => 'datetime',
45 | 'password' => 'hashed',
46 | ];
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/Providers/AppServiceProvider.php:
--------------------------------------------------------------------------------
1 | handleCommand(new ArgvInput);
14 |
15 | exit($status);
16 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | withRouting(
9 | web: __DIR__.'/../routes/web.php',
10 | commands: __DIR__.'/../routes/console.php',
11 | health: '/up',
12 | )
13 | ->withMiddleware(function (Middleware $middleware) {
14 | //
15 | })
16 | ->withExceptions(function (Exceptions $exceptions) {
17 | //
18 | })->create();
19 |
--------------------------------------------------------------------------------
/bootstrap/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/bootstrap/providers.php:
--------------------------------------------------------------------------------
1 | env('APP_NAME', 'Laravel'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Application Environment
21 | |--------------------------------------------------------------------------
22 | |
23 | | This value determines the "environment" your application is currently
24 | | running in. This may determine how you prefer to configure various
25 | | services the application utilizes. Set this in your ".env" file.
26 | |
27 | */
28 |
29 | 'env' => env('APP_ENV', 'production'),
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Application Debug Mode
34 | |--------------------------------------------------------------------------
35 | |
36 | | When your application is in debug mode, detailed error messages with
37 | | stack traces will be shown on every error that occurs within your
38 | | application. If disabled, a simple generic error page is shown.
39 | |
40 | */
41 |
42 | 'debug' => (bool) env('APP_DEBUG', false),
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Application URL
47 | |--------------------------------------------------------------------------
48 | |
49 | | This URL is used by the console to properly generate URLs when using
50 | | the Artisan command line tool. You should set this to the root of
51 | | the application so that it's available within Artisan commands.
52 | |
53 | */
54 |
55 | 'url' => env('APP_URL', 'http://localhost'),
56 |
57 | /*
58 | |--------------------------------------------------------------------------
59 | | Application Timezone
60 | |--------------------------------------------------------------------------
61 | |
62 | | Here you may specify the default timezone for your application, which
63 | | will be used by the PHP date and date-time functions. The timezone
64 | | is set to "UTC" by default as it is suitable for most use cases.
65 | |
66 | */
67 |
68 | 'timezone' => 'UTC',
69 |
70 | /*
71 | |--------------------------------------------------------------------------
72 | | Application Locale Configuration
73 | |--------------------------------------------------------------------------
74 | |
75 | | The application locale determines the default locale that will be used
76 | | by Laravel's translation / localization methods. This option can be
77 | | set to any locale for which you plan to have translation strings.
78 | |
79 | */
80 |
81 | 'locale' => env('APP_LOCALE', 'en'),
82 |
83 | 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
84 |
85 | 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
86 |
87 | /*
88 | |--------------------------------------------------------------------------
89 | | Encryption Key
90 | |--------------------------------------------------------------------------
91 | |
92 | | This key is utilized by Laravel's encryption services and should be set
93 | | to a random, 32 character string to ensure that all encrypted values
94 | | are secure. You should do this prior to deploying the application.
95 | |
96 | */
97 |
98 | 'cipher' => 'AES-256-CBC',
99 |
100 | 'key' => env('APP_KEY'),
101 |
102 | 'previous_keys' => [
103 | ...array_filter(
104 | explode(',', env('APP_PREVIOUS_KEYS', ''))
105 | ),
106 | ],
107 |
108 | /*
109 | |--------------------------------------------------------------------------
110 | | Maintenance Mode Driver
111 | |--------------------------------------------------------------------------
112 | |
113 | | These configuration options determine the driver used to determine and
114 | | manage Laravel's "maintenance mode" status. The "cache" driver will
115 | | allow maintenance mode to be controlled across multiple machines.
116 | |
117 | | Supported drivers: "file", "cache"
118 | |
119 | */
120 |
121 | 'maintenance' => [
122 | 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'),
123 | 'store' => env('APP_MAINTENANCE_STORE', 'database'),
124 | ],
125 |
126 | ];
127 |
--------------------------------------------------------------------------------
/config/auth.php:
--------------------------------------------------------------------------------
1 | [
17 | 'guard' => env('AUTH_GUARD', 'web'),
18 | 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
19 | ],
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Authentication Guards
24 | |--------------------------------------------------------------------------
25 | |
26 | | Next, you may define every authentication guard for your application.
27 | | Of course, a great default configuration has been defined for you
28 | | which utilizes session storage plus the Eloquent user provider.
29 | |
30 | | All authentication guards have a user provider, which defines how the
31 | | users are actually retrieved out of your database or other storage
32 | | system used by the application. Typically, Eloquent is utilized.
33 | |
34 | | Supported: "session"
35 | |
36 | */
37 |
38 | 'guards' => [
39 | 'web' => [
40 | 'driver' => 'session',
41 | 'provider' => 'users',
42 | ],
43 | ],
44 |
45 | /*
46 | |--------------------------------------------------------------------------
47 | | User Providers
48 | |--------------------------------------------------------------------------
49 | |
50 | | All authentication guards have a user provider, which defines how the
51 | | users are actually retrieved out of your database or other storage
52 | | system used by the application. Typically, Eloquent is utilized.
53 | |
54 | | If you have multiple user tables or models you may configure multiple
55 | | providers to represent the model / table. These providers may then
56 | | be assigned to any extra authentication guards you have defined.
57 | |
58 | | Supported: "database", "eloquent"
59 | |
60 | */
61 |
62 | 'providers' => [
63 | 'users' => [
64 | 'driver' => 'eloquent',
65 | 'model' => env('AUTH_MODEL', App\Models\User::class),
66 | ],
67 |
68 | // 'users' => [
69 | // 'driver' => 'database',
70 | // 'table' => 'users',
71 | // ],
72 | ],
73 |
74 | /*
75 | |--------------------------------------------------------------------------
76 | | Resetting Passwords
77 | |--------------------------------------------------------------------------
78 | |
79 | | These configuration options specify the behavior of Laravel's password
80 | | reset functionality, including the table utilized for token storage
81 | | and the user provider that is invoked to actually retrieve users.
82 | |
83 | | The expiry time is the number of minutes that each reset token will be
84 | | considered valid. This security feature keeps tokens short-lived so
85 | | they have less time to be guessed. You may change this as needed.
86 | |
87 | | The throttle setting is the number of seconds a user must wait before
88 | | generating more password reset tokens. This prevents the user from
89 | | quickly generating a very large amount of password reset tokens.
90 | |
91 | */
92 |
93 | 'passwords' => [
94 | 'users' => [
95 | 'provider' => 'users',
96 | 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'),
97 | 'expire' => 60,
98 | 'throttle' => 60,
99 | ],
100 | ],
101 |
102 | /*
103 | |--------------------------------------------------------------------------
104 | | Password Confirmation Timeout
105 | |--------------------------------------------------------------------------
106 | |
107 | | Here you may define the amount of seconds before a password confirmation
108 | | window expires and users are asked to re-enter their password via the
109 | | confirmation screen. By default, the timeout lasts for three hours.
110 | |
111 | */
112 |
113 | 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800),
114 |
115 | ];
116 |
--------------------------------------------------------------------------------
/config/cache.php:
--------------------------------------------------------------------------------
1 | env('CACHE_STORE', 'database'),
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Cache Stores
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may define all of the cache "stores" for your application as
26 | | well as their drivers. You may even define multiple stores for the
27 | | same cache driver to group types of items stored in your caches.
28 | |
29 | | Supported drivers: "array", "database", "file", "memcached",
30 | | "redis", "dynamodb", "octane", "null"
31 | |
32 | */
33 |
34 | 'stores' => [
35 |
36 | 'array' => [
37 | 'driver' => 'array',
38 | 'serialize' => false,
39 | ],
40 |
41 | 'database' => [
42 | 'driver' => 'database',
43 | 'connection' => env('DB_CACHE_CONNECTION'),
44 | 'table' => env('DB_CACHE_TABLE', 'cache'),
45 | 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
46 | 'lock_table' => env('DB_CACHE_LOCK_TABLE'),
47 | ],
48 |
49 | 'file' => [
50 | 'driver' => 'file',
51 | 'path' => storage_path('framework/cache/data'),
52 | 'lock_path' => storage_path('framework/cache/data'),
53 | ],
54 |
55 | 'memcached' => [
56 | 'driver' => 'memcached',
57 | 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
58 | 'sasl' => [
59 | env('MEMCACHED_USERNAME'),
60 | env('MEMCACHED_PASSWORD'),
61 | ],
62 | 'options' => [
63 | // Memcached::OPT_CONNECT_TIMEOUT => 2000,
64 | ],
65 | 'servers' => [
66 | [
67 | 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
68 | 'port' => env('MEMCACHED_PORT', 11211),
69 | 'weight' => 100,
70 | ],
71 | ],
72 | ],
73 |
74 | 'redis' => [
75 | 'driver' => 'redis',
76 | 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
77 | 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
78 | ],
79 |
80 | 'dynamodb' => [
81 | 'driver' => 'dynamodb',
82 | 'key' => env('AWS_ACCESS_KEY_ID'),
83 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
84 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
85 | 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
86 | 'endpoint' => env('DYNAMODB_ENDPOINT'),
87 | ],
88 |
89 | 'octane' => [
90 | 'driver' => 'octane',
91 | ],
92 |
93 | ],
94 |
95 | /*
96 | |--------------------------------------------------------------------------
97 | | Cache Key Prefix
98 | |--------------------------------------------------------------------------
99 | |
100 | | When utilizing the APC, database, memcached, Redis, and DynamoDB cache
101 | | stores, there might be other applications using the same cache. For
102 | | that reason, you may prefix every cache key to avoid collisions.
103 | |
104 | */
105 |
106 | 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
107 |
108 | ];
109 |
--------------------------------------------------------------------------------
/config/database.php:
--------------------------------------------------------------------------------
1 | env('DB_CONNECTION', 'sqlite'),
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Database Connections
24 | |--------------------------------------------------------------------------
25 | |
26 | | Below are all of the database connections defined for your application.
27 | | An example configuration is provided for each database system which
28 | | is supported by Laravel. You're free to add / remove connections.
29 | |
30 | */
31 |
32 | 'connections' => [
33 |
34 | 'sqlite' => [
35 | 'driver' => 'sqlite',
36 | 'url' => env('DB_URL'),
37 | 'database' => env('DB_DATABASE', database_path('database.sqlite')),
38 | 'prefix' => '',
39 | 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
40 | 'busy_timeout' => null,
41 | 'journal_mode' => null,
42 | 'synchronous' => null,
43 | ],
44 |
45 | 'mysql' => [
46 | 'driver' => 'mysql',
47 | 'url' => env('DB_URL'),
48 | 'host' => env('DB_HOST', '127.0.0.1'),
49 | 'port' => env('DB_PORT', '3306'),
50 | 'database' => env('DB_DATABASE', 'laravel'),
51 | 'username' => env('DB_USERNAME', 'root'),
52 | 'password' => env('DB_PASSWORD', ''),
53 | 'unix_socket' => env('DB_SOCKET', ''),
54 | 'charset' => env('DB_CHARSET', 'utf8mb4'),
55 | 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
56 | 'prefix' => '',
57 | 'prefix_indexes' => true,
58 | 'strict' => true,
59 | 'engine' => null,
60 | 'options' => extension_loaded('pdo_mysql') ? array_filter([
61 | PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
62 | ]) : [],
63 | ],
64 |
65 | 'mariadb' => [
66 | 'driver' => 'mariadb',
67 | 'url' => env('DB_URL'),
68 | 'host' => env('DB_HOST', '127.0.0.1'),
69 | 'port' => env('DB_PORT', '3306'),
70 | 'database' => env('DB_DATABASE', 'laravel'),
71 | 'username' => env('DB_USERNAME', 'root'),
72 | 'password' => env('DB_PASSWORD', ''),
73 | 'unix_socket' => env('DB_SOCKET', ''),
74 | 'charset' => env('DB_CHARSET', 'utf8mb4'),
75 | 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
76 | 'prefix' => '',
77 | 'prefix_indexes' => true,
78 | 'strict' => true,
79 | 'engine' => null,
80 | 'options' => extension_loaded('pdo_mysql') ? array_filter([
81 | PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
82 | ]) : [],
83 | ],
84 |
85 | 'pgsql' => [
86 | 'driver' => 'pgsql',
87 | 'url' => env('DB_URL'),
88 | 'host' => env('DB_HOST', '127.0.0.1'),
89 | 'port' => env('DB_PORT', '5432'),
90 | 'database' => env('DB_DATABASE', 'laravel'),
91 | 'username' => env('DB_USERNAME', 'root'),
92 | 'password' => env('DB_PASSWORD', ''),
93 | 'charset' => env('DB_CHARSET', 'utf8'),
94 | 'prefix' => '',
95 | 'prefix_indexes' => true,
96 | 'search_path' => 'public',
97 | 'sslmode' => 'prefer',
98 | ],
99 |
100 | 'sqlsrv' => [
101 | 'driver' => 'sqlsrv',
102 | 'url' => env('DB_URL'),
103 | 'host' => env('DB_HOST', 'localhost'),
104 | 'port' => env('DB_PORT', '1433'),
105 | 'database' => env('DB_DATABASE', 'laravel'),
106 | 'username' => env('DB_USERNAME', 'root'),
107 | 'password' => env('DB_PASSWORD', ''),
108 | 'charset' => env('DB_CHARSET', 'utf8'),
109 | 'prefix' => '',
110 | 'prefix_indexes' => true,
111 | // 'encrypt' => env('DB_ENCRYPT', 'yes'),
112 | // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
113 | ],
114 |
115 | ],
116 |
117 | /*
118 | |--------------------------------------------------------------------------
119 | | Migration Repository Table
120 | |--------------------------------------------------------------------------
121 | |
122 | | This table keeps track of all the migrations that have already run for
123 | | your application. Using this information, we can determine which of
124 | | the migrations on disk haven't actually been run on the database.
125 | |
126 | */
127 |
128 | 'migrations' => [
129 | 'table' => 'migrations',
130 | 'update_date_on_publish' => true,
131 | ],
132 |
133 | /*
134 | |--------------------------------------------------------------------------
135 | | Redis Databases
136 | |--------------------------------------------------------------------------
137 | |
138 | | Redis is an open source, fast, and advanced key-value store that also
139 | | provides a richer body of commands than a typical key-value system
140 | | such as Memcached. You may define your connection settings here.
141 | |
142 | */
143 |
144 | 'redis' => [
145 |
146 | 'client' => env('REDIS_CLIENT', 'phpredis'),
147 |
148 | 'options' => [
149 | 'cluster' => env('REDIS_CLUSTER', 'redis'),
150 | 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
151 | 'persistent' => env('REDIS_PERSISTENT', false),
152 | ],
153 |
154 | 'default' => [
155 | 'url' => env('REDIS_URL'),
156 | 'host' => env('REDIS_HOST', '127.0.0.1'),
157 | 'username' => env('REDIS_USERNAME'),
158 | 'password' => env('REDIS_PASSWORD'),
159 | 'port' => env('REDIS_PORT', '6379'),
160 | 'database' => env('REDIS_DB', '0'),
161 | ],
162 |
163 | 'cache' => [
164 | 'url' => env('REDIS_URL'),
165 | 'host' => env('REDIS_HOST', '127.0.0.1'),
166 | 'username' => env('REDIS_USERNAME'),
167 | 'password' => env('REDIS_PASSWORD'),
168 | 'port' => env('REDIS_PORT', '6379'),
169 | 'database' => env('REDIS_CACHE_DB', '1'),
170 | ],
171 |
172 | ],
173 |
174 | ];
175 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | env('FILESYSTEM_DISK', 'local'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Filesystem Disks
21 | |--------------------------------------------------------------------------
22 | |
23 | | Below you may configure as many filesystem disks as necessary, and you
24 | | may even configure multiple disks for the same driver. Examples for
25 | | most supported storage drivers are configured here for reference.
26 | |
27 | | Supported drivers: "local", "ftp", "sftp", "s3"
28 | |
29 | */
30 |
31 | 'disks' => [
32 |
33 | 'local' => [
34 | 'driver' => 'local',
35 | 'root' => storage_path('app/private'),
36 | 'serve' => true,
37 | 'throw' => false,
38 | 'report' => false,
39 | ],
40 |
41 | 'public' => [
42 | 'driver' => 'local',
43 | 'root' => storage_path('app/public'),
44 | 'url' => env('APP_URL').'/storage',
45 | 'visibility' => 'public',
46 | 'throw' => false,
47 | 'report' => false,
48 | ],
49 |
50 | 's3' => [
51 | 'driver' => 's3',
52 | 'key' => env('AWS_ACCESS_KEY_ID'),
53 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
54 | 'region' => env('AWS_DEFAULT_REGION'),
55 | 'bucket' => env('AWS_BUCKET'),
56 | 'url' => env('AWS_URL'),
57 | 'endpoint' => env('AWS_ENDPOINT'),
58 | 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
59 | 'throw' => false,
60 | 'report' => false,
61 | ],
62 |
63 | ],
64 |
65 | /*
66 | |--------------------------------------------------------------------------
67 | | Symbolic Links
68 | |--------------------------------------------------------------------------
69 | |
70 | | Here you may configure the symbolic links that will be created when the
71 | | `storage:link` Artisan command is executed. The array keys should be
72 | | the locations of the links and the values should be their targets.
73 | |
74 | */
75 |
76 | 'links' => [
77 | public_path('storage') => storage_path('app/public'),
78 | ],
79 |
80 | ];
81 |
--------------------------------------------------------------------------------
/config/logging.php:
--------------------------------------------------------------------------------
1 | env('LOG_CHANNEL', 'stack'),
22 |
23 | /*
24 | |--------------------------------------------------------------------------
25 | | Deprecations Log Channel
26 | |--------------------------------------------------------------------------
27 | |
28 | | This option controls the log channel that should be used to log warnings
29 | | regarding deprecated PHP and library features. This allows you to get
30 | | your application ready for upcoming major versions of dependencies.
31 | |
32 | */
33 |
34 | 'deprecations' => [
35 | 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
36 | 'trace' => env('LOG_DEPRECATIONS_TRACE', false),
37 | ],
38 |
39 | /*
40 | |--------------------------------------------------------------------------
41 | | Log Channels
42 | |--------------------------------------------------------------------------
43 | |
44 | | Here you may configure the log channels for your application. Laravel
45 | | utilizes the Monolog PHP logging library, which includes a variety
46 | | of powerful log handlers and formatters that you're free to use.
47 | |
48 | | Available drivers: "single", "daily", "slack", "syslog",
49 | | "errorlog", "monolog", "custom", "stack"
50 | |
51 | */
52 |
53 | 'channels' => [
54 |
55 | 'stack' => [
56 | 'driver' => 'stack',
57 | 'channels' => explode(',', env('LOG_STACK', 'single')),
58 | 'ignore_exceptions' => false,
59 | ],
60 |
61 | 'single' => [
62 | 'driver' => 'single',
63 | 'path' => storage_path('logs/laravel.log'),
64 | 'level' => env('LOG_LEVEL', 'debug'),
65 | 'replace_placeholders' => true,
66 | ],
67 |
68 | 'daily' => [
69 | 'driver' => 'daily',
70 | 'path' => storage_path('logs/laravel.log'),
71 | 'level' => env('LOG_LEVEL', 'debug'),
72 | 'days' => env('LOG_DAILY_DAYS', 14),
73 | 'replace_placeholders' => true,
74 | ],
75 |
76 | 'slack' => [
77 | 'driver' => 'slack',
78 | 'url' => env('LOG_SLACK_WEBHOOK_URL'),
79 | 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'),
80 | 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'),
81 | 'level' => env('LOG_LEVEL', 'critical'),
82 | 'replace_placeholders' => true,
83 | ],
84 |
85 | 'papertrail' => [
86 | 'driver' => 'monolog',
87 | 'level' => env('LOG_LEVEL', 'debug'),
88 | 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
89 | 'handler_with' => [
90 | 'host' => env('PAPERTRAIL_URL'),
91 | 'port' => env('PAPERTRAIL_PORT'),
92 | 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
93 | ],
94 | 'processors' => [PsrLogMessageProcessor::class],
95 | ],
96 |
97 | 'stderr' => [
98 | 'driver' => 'monolog',
99 | 'level' => env('LOG_LEVEL', 'debug'),
100 | 'handler' => StreamHandler::class,
101 | 'formatter' => env('LOG_STDERR_FORMATTER'),
102 | 'with' => [
103 | 'stream' => 'php://stderr',
104 | ],
105 | 'processors' => [PsrLogMessageProcessor::class],
106 | ],
107 |
108 | 'syslog' => [
109 | 'driver' => 'syslog',
110 | 'level' => env('LOG_LEVEL', 'debug'),
111 | 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER),
112 | 'replace_placeholders' => true,
113 | ],
114 |
115 | 'errorlog' => [
116 | 'driver' => 'errorlog',
117 | 'level' => env('LOG_LEVEL', 'debug'),
118 | 'replace_placeholders' => true,
119 | ],
120 |
121 | 'null' => [
122 | 'driver' => 'monolog',
123 | 'handler' => NullHandler::class,
124 | ],
125 |
126 | 'emergency' => [
127 | 'path' => storage_path('logs/laravel.log'),
128 | ],
129 |
130 | ],
131 |
132 | ];
133 |
--------------------------------------------------------------------------------
/config/mail.php:
--------------------------------------------------------------------------------
1 | env('MAIL_MAILER', 'log'),
18 |
19 | /*
20 | |--------------------------------------------------------------------------
21 | | Mailer Configurations
22 | |--------------------------------------------------------------------------
23 | |
24 | | Here you may configure all of the mailers used by your application plus
25 | | their respective settings. Several examples have been configured for
26 | | you and you are free to add your own as your application requires.
27 | |
28 | | Laravel supports a variety of mail "transport" drivers that can be used
29 | | when delivering an email. You may specify which one you're using for
30 | | your mailers below. You may also add additional mailers if needed.
31 | |
32 | | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
33 | | "postmark", "resend", "log", "array",
34 | | "failover", "roundrobin"
35 | |
36 | */
37 |
38 | 'mailers' => [
39 |
40 | 'smtp' => [
41 | 'transport' => 'smtp',
42 | 'scheme' => env('MAIL_SCHEME'),
43 | 'url' => env('MAIL_URL'),
44 | 'host' => env('MAIL_HOST', '127.0.0.1'),
45 | 'port' => env('MAIL_PORT', 2525),
46 | 'username' => env('MAIL_USERNAME'),
47 | 'password' => env('MAIL_PASSWORD'),
48 | 'timeout' => null,
49 | 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
50 | ],
51 |
52 | 'ses' => [
53 | 'transport' => 'ses',
54 | ],
55 |
56 | 'postmark' => [
57 | 'transport' => 'postmark',
58 | // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'),
59 | // 'client' => [
60 | // 'timeout' => 5,
61 | // ],
62 | ],
63 |
64 | 'resend' => [
65 | 'transport' => 'resend',
66 | ],
67 |
68 | 'sendmail' => [
69 | 'transport' => 'sendmail',
70 | 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
71 | ],
72 |
73 | 'log' => [
74 | 'transport' => 'log',
75 | 'channel' => env('MAIL_LOG_CHANNEL'),
76 | ],
77 |
78 | 'array' => [
79 | 'transport' => 'array',
80 | ],
81 |
82 | 'failover' => [
83 | 'transport' => 'failover',
84 | 'mailers' => [
85 | 'smtp',
86 | 'log',
87 | ],
88 | ],
89 |
90 | 'roundrobin' => [
91 | 'transport' => 'roundrobin',
92 | 'mailers' => [
93 | 'ses',
94 | 'postmark',
95 | ],
96 | ],
97 |
98 | ],
99 |
100 | /*
101 | |--------------------------------------------------------------------------
102 | | Global "From" Address
103 | |--------------------------------------------------------------------------
104 | |
105 | | You may wish for all emails sent by your application to be sent from
106 | | the same address. Here you may specify a name and address that is
107 | | used globally for all emails that are sent by your application.
108 | |
109 | */
110 |
111 | 'from' => [
112 | 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
113 | 'name' => env('MAIL_FROM_NAME', 'Example'),
114 | ],
115 |
116 | ];
117 |
--------------------------------------------------------------------------------
/config/queue.php:
--------------------------------------------------------------------------------
1 | env('QUEUE_CONNECTION', 'database'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Queue Connections
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may configure the connection options for every queue backend
24 | | used by your application. An example configuration is provided for
25 | | each backend supported by Laravel. You're also free to add more.
26 | |
27 | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
28 | |
29 | */
30 |
31 | 'connections' => [
32 |
33 | 'sync' => [
34 | 'driver' => 'sync',
35 | ],
36 |
37 | 'database' => [
38 | 'driver' => 'database',
39 | 'connection' => env('DB_QUEUE_CONNECTION'),
40 | 'table' => env('DB_QUEUE_TABLE', 'jobs'),
41 | 'queue' => env('DB_QUEUE', 'default'),
42 | 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90),
43 | 'after_commit' => false,
44 | ],
45 |
46 | 'beanstalkd' => [
47 | 'driver' => 'beanstalkd',
48 | 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
49 | 'queue' => env('BEANSTALKD_QUEUE', 'default'),
50 | 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
51 | 'block_for' => 0,
52 | 'after_commit' => false,
53 | ],
54 |
55 | 'sqs' => [
56 | 'driver' => 'sqs',
57 | 'key' => env('AWS_ACCESS_KEY_ID'),
58 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
59 | 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
60 | 'queue' => env('SQS_QUEUE', 'default'),
61 | 'suffix' => env('SQS_SUFFIX'),
62 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
63 | 'after_commit' => false,
64 | ],
65 |
66 | 'redis' => [
67 | 'driver' => 'redis',
68 | 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
69 | 'queue' => env('REDIS_QUEUE', 'default'),
70 | 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90),
71 | 'block_for' => null,
72 | 'after_commit' => false,
73 | ],
74 |
75 | ],
76 |
77 | /*
78 | |--------------------------------------------------------------------------
79 | | Job Batching
80 | |--------------------------------------------------------------------------
81 | |
82 | | The following options configure the database and table that store job
83 | | batching information. These options can be updated to any database
84 | | connection and table which has been defined by your application.
85 | |
86 | */
87 |
88 | 'batching' => [
89 | 'database' => env('DB_CONNECTION', 'sqlite'),
90 | 'table' => 'job_batches',
91 | ],
92 |
93 | /*
94 | |--------------------------------------------------------------------------
95 | | Failed Queue Jobs
96 | |--------------------------------------------------------------------------
97 | |
98 | | These options configure the behavior of failed queue job logging so you
99 | | can control how and where failed jobs are stored. Laravel ships with
100 | | support for storing failed jobs in a simple file or in a database.
101 | |
102 | | Supported drivers: "database-uuids", "dynamodb", "file", "null"
103 | |
104 | */
105 |
106 | 'failed' => [
107 | 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
108 | 'database' => env('DB_CONNECTION', 'sqlite'),
109 | 'table' => 'failed_jobs',
110 | ],
111 |
112 | ];
113 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'token' => env('POSTMARK_TOKEN'),
19 | ],
20 |
21 | 'ses' => [
22 | 'key' => env('AWS_ACCESS_KEY_ID'),
23 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
24 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
25 | ],
26 |
27 | 'resend' => [
28 | 'key' => env('RESEND_KEY'),
29 | ],
30 |
31 | 'slack' => [
32 | 'notifications' => [
33 | 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
34 | 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'),
35 | ],
36 | ],
37 |
38 | ];
39 |
--------------------------------------------------------------------------------
/config/session.php:
--------------------------------------------------------------------------------
1 | env('SESSION_DRIVER', 'database'),
22 |
23 | /*
24 | |--------------------------------------------------------------------------
25 | | Session Lifetime
26 | |--------------------------------------------------------------------------
27 | |
28 | | Here you may specify the number of minutes that you wish the session
29 | | to be allowed to remain idle before it expires. If you want them
30 | | to expire immediately when the browser is closed then you may
31 | | indicate that via the expire_on_close configuration option.
32 | |
33 | */
34 |
35 | 'lifetime' => (int) env('SESSION_LIFETIME', 120),
36 |
37 | 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
38 |
39 | /*
40 | |--------------------------------------------------------------------------
41 | | Session Encryption
42 | |--------------------------------------------------------------------------
43 | |
44 | | This option allows you to easily specify that all of your session data
45 | | should be encrypted before it's stored. All encryption is performed
46 | | automatically by Laravel and you may use the session like normal.
47 | |
48 | */
49 |
50 | 'encrypt' => env('SESSION_ENCRYPT', false),
51 |
52 | /*
53 | |--------------------------------------------------------------------------
54 | | Session File Location
55 | |--------------------------------------------------------------------------
56 | |
57 | | When utilizing the "file" session driver, the session files are placed
58 | | on disk. The default storage location is defined here; however, you
59 | | are free to provide another location where they should be stored.
60 | |
61 | */
62 |
63 | 'files' => storage_path('framework/sessions'),
64 |
65 | /*
66 | |--------------------------------------------------------------------------
67 | | Session Database Connection
68 | |--------------------------------------------------------------------------
69 | |
70 | | When using the "database" or "redis" session drivers, you may specify a
71 | | connection that should be used to manage these sessions. This should
72 | | correspond to a connection in your database configuration options.
73 | |
74 | */
75 |
76 | 'connection' => env('SESSION_CONNECTION'),
77 |
78 | /*
79 | |--------------------------------------------------------------------------
80 | | Session Database Table
81 | |--------------------------------------------------------------------------
82 | |
83 | | When using the "database" session driver, you may specify the table to
84 | | be used to store sessions. Of course, a sensible default is defined
85 | | for you; however, you're welcome to change this to another table.
86 | |
87 | */
88 |
89 | 'table' => env('SESSION_TABLE', 'sessions'),
90 |
91 | /*
92 | |--------------------------------------------------------------------------
93 | | Session Cache Store
94 | |--------------------------------------------------------------------------
95 | |
96 | | When using one of the framework's cache driven session backends, you may
97 | | define the cache store which should be used to store the session data
98 | | between requests. This must match one of your defined cache stores.
99 | |
100 | | Affects: "apc", "dynamodb", "memcached", "redis"
101 | |
102 | */
103 |
104 | 'store' => env('SESSION_STORE'),
105 |
106 | /*
107 | |--------------------------------------------------------------------------
108 | | Session Sweeping Lottery
109 | |--------------------------------------------------------------------------
110 | |
111 | | Some session drivers must manually sweep their storage location to get
112 | | rid of old sessions from storage. Here are the chances that it will
113 | | happen on a given request. By default, the odds are 2 out of 100.
114 | |
115 | */
116 |
117 | 'lottery' => [2, 100],
118 |
119 | /*
120 | |--------------------------------------------------------------------------
121 | | Session Cookie Name
122 | |--------------------------------------------------------------------------
123 | |
124 | | Here you may change the name of the session cookie that is created by
125 | | the framework. Typically, you should not need to change this value
126 | | since doing so does not grant a meaningful security improvement.
127 | |
128 | */
129 |
130 | 'cookie' => env(
131 | 'SESSION_COOKIE',
132 | Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
133 | ),
134 |
135 | /*
136 | |--------------------------------------------------------------------------
137 | | Session Cookie Path
138 | |--------------------------------------------------------------------------
139 | |
140 | | The session cookie path determines the path for which the cookie will
141 | | be regarded as available. Typically, this will be the root path of
142 | | your application, but you're free to change this when necessary.
143 | |
144 | */
145 |
146 | 'path' => env('SESSION_PATH', '/'),
147 |
148 | /*
149 | |--------------------------------------------------------------------------
150 | | Session Cookie Domain
151 | |--------------------------------------------------------------------------
152 | |
153 | | This value determines the domain and subdomains the session cookie is
154 | | available to. By default, the cookie will be available to the root
155 | | domain and all subdomains. Typically, this shouldn't be changed.
156 | |
157 | */
158 |
159 | 'domain' => env('SESSION_DOMAIN'),
160 |
161 | /*
162 | |--------------------------------------------------------------------------
163 | | HTTPS Only Cookies
164 | |--------------------------------------------------------------------------
165 | |
166 | | By setting this option to true, session cookies will only be sent back
167 | | to the server if the browser has a HTTPS connection. This will keep
168 | | the cookie from being sent to you when it can't be done securely.
169 | |
170 | */
171 |
172 | 'secure' => env('SESSION_SECURE_COOKIE'),
173 |
174 | /*
175 | |--------------------------------------------------------------------------
176 | | HTTP Access Only
177 | |--------------------------------------------------------------------------
178 | |
179 | | Setting this value to true will prevent JavaScript from accessing the
180 | | value of the cookie and the cookie will only be accessible through
181 | | the HTTP protocol. It's unlikely you should disable this option.
182 | |
183 | */
184 |
185 | 'http_only' => env('SESSION_HTTP_ONLY', true),
186 |
187 | /*
188 | |--------------------------------------------------------------------------
189 | | Same-Site Cookies
190 | |--------------------------------------------------------------------------
191 | |
192 | | This option determines how your cookies behave when cross-site requests
193 | | take place, and can be used to mitigate CSRF attacks. By default, we
194 | | will set this value to "lax" to permit secure cross-site requests.
195 | |
196 | | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
197 | |
198 | | Supported: "lax", "strict", "none", null
199 | |
200 | */
201 |
202 | 'same_site' => env('SESSION_SAME_SITE', 'lax'),
203 |
204 | /*
205 | |--------------------------------------------------------------------------
206 | | Partitioned Cookies
207 | |--------------------------------------------------------------------------
208 | |
209 | | Setting this value to true will tie the cookie to the top-level site for
210 | | a cross-site context. Partitioned cookies are accepted by the browser
211 | | when flagged "secure" and the Same-Site attribute is set to "none".
212 | |
213 | */
214 |
215 | 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
216 |
217 | ];
218 |
--------------------------------------------------------------------------------
/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite*
2 |
--------------------------------------------------------------------------------
/database/factories/UserFactory.php:
--------------------------------------------------------------------------------
1 |
11 | */
12 | class UserFactory extends Factory
13 | {
14 | /**
15 | * The current password being used by the factory.
16 | */
17 | protected static ?string $password;
18 |
19 | /**
20 | * Define the model's default state.
21 | *
22 | * @return array
23 | */
24 | public function definition(): array
25 | {
26 | return [
27 | 'name' => fake()->name(),
28 | 'email' => fake()->unique()->safeEmail(),
29 | 'email_verified_at' => now(),
30 | 'password' => static::$password ??= Hash::make('password'),
31 | 'remember_token' => Str::random(10),
32 | ];
33 | }
34 |
35 | /**
36 | * Indicate that the model's email address should be unverified.
37 | */
38 | public function unverified(): static
39 | {
40 | return $this->state(fn (array $attributes) => [
41 | 'email_verified_at' => null,
42 | ]);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/database/migrations/0001_01_01_000000_create_users_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->string('name');
17 | $table->string('email')->unique();
18 | $table->timestamp('email_verified_at')->nullable();
19 | $table->string('password');
20 | $table->rememberToken();
21 | $table->timestamps();
22 | });
23 |
24 | Schema::create('password_reset_tokens', function (Blueprint $table) {
25 | $table->string('email')->primary();
26 | $table->string('token');
27 | $table->timestamp('created_at')->nullable();
28 | });
29 |
30 | Schema::create('sessions', function (Blueprint $table) {
31 | $table->string('id')->primary();
32 | $table->foreignId('user_id')->nullable()->index();
33 | $table->string('ip_address', 45)->nullable();
34 | $table->text('user_agent')->nullable();
35 | $table->longText('payload');
36 | $table->integer('last_activity')->index();
37 | });
38 | }
39 |
40 | /**
41 | * Reverse the migrations.
42 | */
43 | public function down(): void
44 | {
45 | Schema::dropIfExists('users');
46 | Schema::dropIfExists('password_reset_tokens');
47 | Schema::dropIfExists('sessions');
48 | }
49 | };
50 |
--------------------------------------------------------------------------------
/database/migrations/0001_01_01_000001_create_cache_table.php:
--------------------------------------------------------------------------------
1 | string('key')->primary();
16 | $table->mediumText('value');
17 | $table->integer('expiration');
18 | });
19 |
20 | Schema::create('cache_locks', function (Blueprint $table) {
21 | $table->string('key')->primary();
22 | $table->string('owner');
23 | $table->integer('expiration');
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | */
30 | public function down(): void
31 | {
32 | Schema::dropIfExists('cache');
33 | Schema::dropIfExists('cache_locks');
34 | }
35 | };
36 |
--------------------------------------------------------------------------------
/database/migrations/0001_01_01_000002_create_jobs_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->string('queue')->index();
17 | $table->longText('payload');
18 | $table->unsignedTinyInteger('attempts');
19 | $table->unsignedInteger('reserved_at')->nullable();
20 | $table->unsignedInteger('available_at');
21 | $table->unsignedInteger('created_at');
22 | });
23 |
24 | Schema::create('job_batches', function (Blueprint $table) {
25 | $table->string('id')->primary();
26 | $table->string('name');
27 | $table->integer('total_jobs');
28 | $table->integer('pending_jobs');
29 | $table->integer('failed_jobs');
30 | $table->longText('failed_job_ids');
31 | $table->mediumText('options')->nullable();
32 | $table->integer('cancelled_at')->nullable();
33 | $table->integer('created_at');
34 | $table->integer('finished_at')->nullable();
35 | });
36 |
37 | Schema::create('failed_jobs', function (Blueprint $table) {
38 | $table->id();
39 | $table->string('uuid')->unique();
40 | $table->text('connection');
41 | $table->text('queue');
42 | $table->longText('payload');
43 | $table->longText('exception');
44 | $table->timestamp('failed_at')->useCurrent();
45 | });
46 | }
47 |
48 | /**
49 | * Reverse the migrations.
50 | */
51 | public function down(): void
52 | {
53 | Schema::dropIfExists('jobs');
54 | Schema::dropIfExists('job_batches');
55 | Schema::dropIfExists('failed_jobs');
56 | }
57 | };
58 |
--------------------------------------------------------------------------------
/database/seeders/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | create();
17 |
18 | User::factory()->create([
19 | 'name' => 'Test User',
20 | 'email' => 'test@example.com',
21 | ]);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tailkit-starter-kit-laravel",
3 | "lockfileVersion": 3,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "devDependencies": {
8 | "@alpinejs/focus": "^3.14.9",
9 | "@tailwindcss/forms": "^0.5.10",
10 | "@tailwindcss/typography": "^0.5.16",
11 | "@tailwindcss/vite": "^4.1.6",
12 | "alpinejs": "^3.14.9",
13 | "axios": "^1.9.0",
14 | "laravel-vite-plugin": "^1.2.0",
15 | "prettier": "^3.5.3",
16 | "prettier-plugin-blade": "^2.1.21",
17 | "prettier-plugin-tailwindcss": "^0.6.11",
18 | "tailwindcss": "^4.0.0",
19 | "vite": "^6.3.5"
20 | }
21 | },
22 | "node_modules/@alpinejs/focus": {
23 | "version": "3.14.9",
24 | "resolved": "https://registry.npmjs.org/@alpinejs/focus/-/focus-3.14.9.tgz",
25 | "integrity": "sha512-+OMOcdkyEUr3gYWD0ZVqojLotI9D67F5BxGesDfZcPaGtNifXMoq0vt0UVDivGnXQXosOfNpO++GF4NzGrWE9Q==",
26 | "dev": true,
27 | "license": "MIT",
28 | "dependencies": {
29 | "focus-trap": "^6.9.4",
30 | "tabbable": "^5.3.3"
31 | }
32 | },
33 | "node_modules/@ampproject/remapping": {
34 | "version": "2.3.0",
35 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
36 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
37 | "dev": true,
38 | "license": "Apache-2.0",
39 | "dependencies": {
40 | "@jridgewell/gen-mapping": "^0.3.5",
41 | "@jridgewell/trace-mapping": "^0.3.24"
42 | },
43 | "engines": {
44 | "node": ">=6.0.0"
45 | }
46 | },
47 | "node_modules/@esbuild/aix-ppc64": {
48 | "version": "0.25.4",
49 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
50 | "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==",
51 | "cpu": [
52 | "ppc64"
53 | ],
54 | "dev": true,
55 | "license": "MIT",
56 | "optional": true,
57 | "os": [
58 | "aix"
59 | ],
60 | "engines": {
61 | "node": ">=18"
62 | }
63 | },
64 | "node_modules/@esbuild/android-arm": {
65 | "version": "0.25.4",
66 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz",
67 | "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==",
68 | "cpu": [
69 | "arm"
70 | ],
71 | "dev": true,
72 | "license": "MIT",
73 | "optional": true,
74 | "os": [
75 | "android"
76 | ],
77 | "engines": {
78 | "node": ">=18"
79 | }
80 | },
81 | "node_modules/@esbuild/android-arm64": {
82 | "version": "0.25.4",
83 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz",
84 | "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==",
85 | "cpu": [
86 | "arm64"
87 | ],
88 | "dev": true,
89 | "license": "MIT",
90 | "optional": true,
91 | "os": [
92 | "android"
93 | ],
94 | "engines": {
95 | "node": ">=18"
96 | }
97 | },
98 | "node_modules/@esbuild/android-x64": {
99 | "version": "0.25.4",
100 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz",
101 | "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==",
102 | "cpu": [
103 | "x64"
104 | ],
105 | "dev": true,
106 | "license": "MIT",
107 | "optional": true,
108 | "os": [
109 | "android"
110 | ],
111 | "engines": {
112 | "node": ">=18"
113 | }
114 | },
115 | "node_modules/@esbuild/darwin-arm64": {
116 | "version": "0.25.4",
117 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz",
118 | "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==",
119 | "cpu": [
120 | "arm64"
121 | ],
122 | "dev": true,
123 | "license": "MIT",
124 | "optional": true,
125 | "os": [
126 | "darwin"
127 | ],
128 | "engines": {
129 | "node": ">=18"
130 | }
131 | },
132 | "node_modules/@esbuild/darwin-x64": {
133 | "version": "0.25.4",
134 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz",
135 | "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==",
136 | "cpu": [
137 | "x64"
138 | ],
139 | "dev": true,
140 | "license": "MIT",
141 | "optional": true,
142 | "os": [
143 | "darwin"
144 | ],
145 | "engines": {
146 | "node": ">=18"
147 | }
148 | },
149 | "node_modules/@esbuild/freebsd-arm64": {
150 | "version": "0.25.4",
151 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz",
152 | "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==",
153 | "cpu": [
154 | "arm64"
155 | ],
156 | "dev": true,
157 | "license": "MIT",
158 | "optional": true,
159 | "os": [
160 | "freebsd"
161 | ],
162 | "engines": {
163 | "node": ">=18"
164 | }
165 | },
166 | "node_modules/@esbuild/freebsd-x64": {
167 | "version": "0.25.4",
168 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz",
169 | "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==",
170 | "cpu": [
171 | "x64"
172 | ],
173 | "dev": true,
174 | "license": "MIT",
175 | "optional": true,
176 | "os": [
177 | "freebsd"
178 | ],
179 | "engines": {
180 | "node": ">=18"
181 | }
182 | },
183 | "node_modules/@esbuild/linux-arm": {
184 | "version": "0.25.4",
185 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz",
186 | "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==",
187 | "cpu": [
188 | "arm"
189 | ],
190 | "dev": true,
191 | "license": "MIT",
192 | "optional": true,
193 | "os": [
194 | "linux"
195 | ],
196 | "engines": {
197 | "node": ">=18"
198 | }
199 | },
200 | "node_modules/@esbuild/linux-arm64": {
201 | "version": "0.25.4",
202 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz",
203 | "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==",
204 | "cpu": [
205 | "arm64"
206 | ],
207 | "dev": true,
208 | "license": "MIT",
209 | "optional": true,
210 | "os": [
211 | "linux"
212 | ],
213 | "engines": {
214 | "node": ">=18"
215 | }
216 | },
217 | "node_modules/@esbuild/linux-ia32": {
218 | "version": "0.25.4",
219 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz",
220 | "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==",
221 | "cpu": [
222 | "ia32"
223 | ],
224 | "dev": true,
225 | "license": "MIT",
226 | "optional": true,
227 | "os": [
228 | "linux"
229 | ],
230 | "engines": {
231 | "node": ">=18"
232 | }
233 | },
234 | "node_modules/@esbuild/linux-loong64": {
235 | "version": "0.25.4",
236 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz",
237 | "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==",
238 | "cpu": [
239 | "loong64"
240 | ],
241 | "dev": true,
242 | "license": "MIT",
243 | "optional": true,
244 | "os": [
245 | "linux"
246 | ],
247 | "engines": {
248 | "node": ">=18"
249 | }
250 | },
251 | "node_modules/@esbuild/linux-mips64el": {
252 | "version": "0.25.4",
253 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz",
254 | "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==",
255 | "cpu": [
256 | "mips64el"
257 | ],
258 | "dev": true,
259 | "license": "MIT",
260 | "optional": true,
261 | "os": [
262 | "linux"
263 | ],
264 | "engines": {
265 | "node": ">=18"
266 | }
267 | },
268 | "node_modules/@esbuild/linux-ppc64": {
269 | "version": "0.25.4",
270 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz",
271 | "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==",
272 | "cpu": [
273 | "ppc64"
274 | ],
275 | "dev": true,
276 | "license": "MIT",
277 | "optional": true,
278 | "os": [
279 | "linux"
280 | ],
281 | "engines": {
282 | "node": ">=18"
283 | }
284 | },
285 | "node_modules/@esbuild/linux-riscv64": {
286 | "version": "0.25.4",
287 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz",
288 | "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==",
289 | "cpu": [
290 | "riscv64"
291 | ],
292 | "dev": true,
293 | "license": "MIT",
294 | "optional": true,
295 | "os": [
296 | "linux"
297 | ],
298 | "engines": {
299 | "node": ">=18"
300 | }
301 | },
302 | "node_modules/@esbuild/linux-s390x": {
303 | "version": "0.25.4",
304 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz",
305 | "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==",
306 | "cpu": [
307 | "s390x"
308 | ],
309 | "dev": true,
310 | "license": "MIT",
311 | "optional": true,
312 | "os": [
313 | "linux"
314 | ],
315 | "engines": {
316 | "node": ">=18"
317 | }
318 | },
319 | "node_modules/@esbuild/linux-x64": {
320 | "version": "0.25.4",
321 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz",
322 | "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==",
323 | "cpu": [
324 | "x64"
325 | ],
326 | "dev": true,
327 | "license": "MIT",
328 | "optional": true,
329 | "os": [
330 | "linux"
331 | ],
332 | "engines": {
333 | "node": ">=18"
334 | }
335 | },
336 | "node_modules/@esbuild/netbsd-arm64": {
337 | "version": "0.25.4",
338 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz",
339 | "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==",
340 | "cpu": [
341 | "arm64"
342 | ],
343 | "dev": true,
344 | "license": "MIT",
345 | "optional": true,
346 | "os": [
347 | "netbsd"
348 | ],
349 | "engines": {
350 | "node": ">=18"
351 | }
352 | },
353 | "node_modules/@esbuild/netbsd-x64": {
354 | "version": "0.25.4",
355 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz",
356 | "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==",
357 | "cpu": [
358 | "x64"
359 | ],
360 | "dev": true,
361 | "license": "MIT",
362 | "optional": true,
363 | "os": [
364 | "netbsd"
365 | ],
366 | "engines": {
367 | "node": ">=18"
368 | }
369 | },
370 | "node_modules/@esbuild/openbsd-arm64": {
371 | "version": "0.25.4",
372 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz",
373 | "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==",
374 | "cpu": [
375 | "arm64"
376 | ],
377 | "dev": true,
378 | "license": "MIT",
379 | "optional": true,
380 | "os": [
381 | "openbsd"
382 | ],
383 | "engines": {
384 | "node": ">=18"
385 | }
386 | },
387 | "node_modules/@esbuild/openbsd-x64": {
388 | "version": "0.25.4",
389 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz",
390 | "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==",
391 | "cpu": [
392 | "x64"
393 | ],
394 | "dev": true,
395 | "license": "MIT",
396 | "optional": true,
397 | "os": [
398 | "openbsd"
399 | ],
400 | "engines": {
401 | "node": ">=18"
402 | }
403 | },
404 | "node_modules/@esbuild/sunos-x64": {
405 | "version": "0.25.4",
406 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz",
407 | "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==",
408 | "cpu": [
409 | "x64"
410 | ],
411 | "dev": true,
412 | "license": "MIT",
413 | "optional": true,
414 | "os": [
415 | "sunos"
416 | ],
417 | "engines": {
418 | "node": ">=18"
419 | }
420 | },
421 | "node_modules/@esbuild/win32-arm64": {
422 | "version": "0.25.4",
423 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz",
424 | "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==",
425 | "cpu": [
426 | "arm64"
427 | ],
428 | "dev": true,
429 | "license": "MIT",
430 | "optional": true,
431 | "os": [
432 | "win32"
433 | ],
434 | "engines": {
435 | "node": ">=18"
436 | }
437 | },
438 | "node_modules/@esbuild/win32-ia32": {
439 | "version": "0.25.4",
440 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz",
441 | "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==",
442 | "cpu": [
443 | "ia32"
444 | ],
445 | "dev": true,
446 | "license": "MIT",
447 | "optional": true,
448 | "os": [
449 | "win32"
450 | ],
451 | "engines": {
452 | "node": ">=18"
453 | }
454 | },
455 | "node_modules/@esbuild/win32-x64": {
456 | "version": "0.25.4",
457 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz",
458 | "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==",
459 | "cpu": [
460 | "x64"
461 | ],
462 | "dev": true,
463 | "license": "MIT",
464 | "optional": true,
465 | "os": [
466 | "win32"
467 | ],
468 | "engines": {
469 | "node": ">=18"
470 | }
471 | },
472 | "node_modules/@isaacs/fs-minipass": {
473 | "version": "4.0.1",
474 | "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
475 | "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
476 | "dev": true,
477 | "license": "ISC",
478 | "dependencies": {
479 | "minipass": "^7.0.4"
480 | },
481 | "engines": {
482 | "node": ">=18.0.0"
483 | }
484 | },
485 | "node_modules/@jridgewell/gen-mapping": {
486 | "version": "0.3.8",
487 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
488 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
489 | "dev": true,
490 | "license": "MIT",
491 | "dependencies": {
492 | "@jridgewell/set-array": "^1.2.1",
493 | "@jridgewell/sourcemap-codec": "^1.4.10",
494 | "@jridgewell/trace-mapping": "^0.3.24"
495 | },
496 | "engines": {
497 | "node": ">=6.0.0"
498 | }
499 | },
500 | "node_modules/@jridgewell/resolve-uri": {
501 | "version": "3.1.2",
502 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
503 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
504 | "dev": true,
505 | "license": "MIT",
506 | "engines": {
507 | "node": ">=6.0.0"
508 | }
509 | },
510 | "node_modules/@jridgewell/set-array": {
511 | "version": "1.2.1",
512 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
513 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
514 | "dev": true,
515 | "license": "MIT",
516 | "engines": {
517 | "node": ">=6.0.0"
518 | }
519 | },
520 | "node_modules/@jridgewell/sourcemap-codec": {
521 | "version": "1.5.0",
522 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
523 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
524 | "dev": true,
525 | "license": "MIT"
526 | },
527 | "node_modules/@jridgewell/trace-mapping": {
528 | "version": "0.3.25",
529 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
530 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
531 | "dev": true,
532 | "license": "MIT",
533 | "dependencies": {
534 | "@jridgewell/resolve-uri": "^3.1.0",
535 | "@jridgewell/sourcemap-codec": "^1.4.14"
536 | }
537 | },
538 | "node_modules/@rollup/rollup-android-arm-eabi": {
539 | "version": "4.40.2",
540 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz",
541 | "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==",
542 | "cpu": [
543 | "arm"
544 | ],
545 | "dev": true,
546 | "license": "MIT",
547 | "optional": true,
548 | "os": [
549 | "android"
550 | ]
551 | },
552 | "node_modules/@rollup/rollup-android-arm64": {
553 | "version": "4.40.2",
554 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz",
555 | "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==",
556 | "cpu": [
557 | "arm64"
558 | ],
559 | "dev": true,
560 | "license": "MIT",
561 | "optional": true,
562 | "os": [
563 | "android"
564 | ]
565 | },
566 | "node_modules/@rollup/rollup-darwin-arm64": {
567 | "version": "4.40.2",
568 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz",
569 | "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==",
570 | "cpu": [
571 | "arm64"
572 | ],
573 | "dev": true,
574 | "license": "MIT",
575 | "optional": true,
576 | "os": [
577 | "darwin"
578 | ]
579 | },
580 | "node_modules/@rollup/rollup-darwin-x64": {
581 | "version": "4.40.2",
582 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz",
583 | "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==",
584 | "cpu": [
585 | "x64"
586 | ],
587 | "dev": true,
588 | "license": "MIT",
589 | "optional": true,
590 | "os": [
591 | "darwin"
592 | ]
593 | },
594 | "node_modules/@rollup/rollup-freebsd-arm64": {
595 | "version": "4.40.2",
596 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz",
597 | "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==",
598 | "cpu": [
599 | "arm64"
600 | ],
601 | "dev": true,
602 | "license": "MIT",
603 | "optional": true,
604 | "os": [
605 | "freebsd"
606 | ]
607 | },
608 | "node_modules/@rollup/rollup-freebsd-x64": {
609 | "version": "4.40.2",
610 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz",
611 | "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==",
612 | "cpu": [
613 | "x64"
614 | ],
615 | "dev": true,
616 | "license": "MIT",
617 | "optional": true,
618 | "os": [
619 | "freebsd"
620 | ]
621 | },
622 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
623 | "version": "4.40.2",
624 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz",
625 | "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==",
626 | "cpu": [
627 | "arm"
628 | ],
629 | "dev": true,
630 | "license": "MIT",
631 | "optional": true,
632 | "os": [
633 | "linux"
634 | ]
635 | },
636 | "node_modules/@rollup/rollup-linux-arm-musleabihf": {
637 | "version": "4.40.2",
638 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz",
639 | "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==",
640 | "cpu": [
641 | "arm"
642 | ],
643 | "dev": true,
644 | "license": "MIT",
645 | "optional": true,
646 | "os": [
647 | "linux"
648 | ]
649 | },
650 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
651 | "version": "4.40.2",
652 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz",
653 | "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==",
654 | "cpu": [
655 | "arm64"
656 | ],
657 | "dev": true,
658 | "license": "MIT",
659 | "optional": true,
660 | "os": [
661 | "linux"
662 | ]
663 | },
664 | "node_modules/@rollup/rollup-linux-arm64-musl": {
665 | "version": "4.40.2",
666 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz",
667 | "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==",
668 | "cpu": [
669 | "arm64"
670 | ],
671 | "dev": true,
672 | "license": "MIT",
673 | "optional": true,
674 | "os": [
675 | "linux"
676 | ]
677 | },
678 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
679 | "version": "4.40.2",
680 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz",
681 | "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==",
682 | "cpu": [
683 | "loong64"
684 | ],
685 | "dev": true,
686 | "license": "MIT",
687 | "optional": true,
688 | "os": [
689 | "linux"
690 | ]
691 | },
692 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
693 | "version": "4.40.2",
694 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz",
695 | "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==",
696 | "cpu": [
697 | "ppc64"
698 | ],
699 | "dev": true,
700 | "license": "MIT",
701 | "optional": true,
702 | "os": [
703 | "linux"
704 | ]
705 | },
706 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
707 | "version": "4.40.2",
708 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz",
709 | "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==",
710 | "cpu": [
711 | "riscv64"
712 | ],
713 | "dev": true,
714 | "license": "MIT",
715 | "optional": true,
716 | "os": [
717 | "linux"
718 | ]
719 | },
720 | "node_modules/@rollup/rollup-linux-riscv64-musl": {
721 | "version": "4.40.2",
722 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz",
723 | "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==",
724 | "cpu": [
725 | "riscv64"
726 | ],
727 | "dev": true,
728 | "license": "MIT",
729 | "optional": true,
730 | "os": [
731 | "linux"
732 | ]
733 | },
734 | "node_modules/@rollup/rollup-linux-s390x-gnu": {
735 | "version": "4.40.2",
736 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz",
737 | "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==",
738 | "cpu": [
739 | "s390x"
740 | ],
741 | "dev": true,
742 | "license": "MIT",
743 | "optional": true,
744 | "os": [
745 | "linux"
746 | ]
747 | },
748 | "node_modules/@rollup/rollup-linux-x64-gnu": {
749 | "version": "4.40.2",
750 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz",
751 | "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==",
752 | "cpu": [
753 | "x64"
754 | ],
755 | "dev": true,
756 | "license": "MIT",
757 | "optional": true,
758 | "os": [
759 | "linux"
760 | ]
761 | },
762 | "node_modules/@rollup/rollup-linux-x64-musl": {
763 | "version": "4.40.2",
764 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz",
765 | "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==",
766 | "cpu": [
767 | "x64"
768 | ],
769 | "dev": true,
770 | "license": "MIT",
771 | "optional": true,
772 | "os": [
773 | "linux"
774 | ]
775 | },
776 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
777 | "version": "4.40.2",
778 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz",
779 | "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==",
780 | "cpu": [
781 | "arm64"
782 | ],
783 | "dev": true,
784 | "license": "MIT",
785 | "optional": true,
786 | "os": [
787 | "win32"
788 | ]
789 | },
790 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
791 | "version": "4.40.2",
792 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz",
793 | "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==",
794 | "cpu": [
795 | "ia32"
796 | ],
797 | "dev": true,
798 | "license": "MIT",
799 | "optional": true,
800 | "os": [
801 | "win32"
802 | ]
803 | },
804 | "node_modules/@rollup/rollup-win32-x64-msvc": {
805 | "version": "4.40.2",
806 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz",
807 | "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==",
808 | "cpu": [
809 | "x64"
810 | ],
811 | "dev": true,
812 | "license": "MIT",
813 | "optional": true,
814 | "os": [
815 | "win32"
816 | ]
817 | },
818 | "node_modules/@tailwindcss/forms": {
819 | "version": "0.5.10",
820 | "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz",
821 | "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==",
822 | "dev": true,
823 | "license": "MIT",
824 | "dependencies": {
825 | "mini-svg-data-uri": "^1.2.3"
826 | },
827 | "peerDependencies": {
828 | "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1"
829 | }
830 | },
831 | "node_modules/@tailwindcss/node": {
832 | "version": "4.1.6",
833 | "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.6.tgz",
834 | "integrity": "sha512-ed6zQbgmKsjsVvodAS1q1Ld2BolEuxJOSyyNc+vhkjdmfNUDCmQnlXBfQkHrlzNmslxHsQU/bFmzcEbv4xXsLg==",
835 | "dev": true,
836 | "license": "MIT",
837 | "dependencies": {
838 | "@ampproject/remapping": "^2.3.0",
839 | "enhanced-resolve": "^5.18.1",
840 | "jiti": "^2.4.2",
841 | "lightningcss": "1.29.2",
842 | "magic-string": "^0.30.17",
843 | "source-map-js": "^1.2.1",
844 | "tailwindcss": "4.1.6"
845 | }
846 | },
847 | "node_modules/@tailwindcss/oxide": {
848 | "version": "4.1.6",
849 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.6.tgz",
850 | "integrity": "sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==",
851 | "dev": true,
852 | "hasInstallScript": true,
853 | "license": "MIT",
854 | "dependencies": {
855 | "detect-libc": "^2.0.4",
856 | "tar": "^7.4.3"
857 | },
858 | "engines": {
859 | "node": ">= 10"
860 | },
861 | "optionalDependencies": {
862 | "@tailwindcss/oxide-android-arm64": "4.1.6",
863 | "@tailwindcss/oxide-darwin-arm64": "4.1.6",
864 | "@tailwindcss/oxide-darwin-x64": "4.1.6",
865 | "@tailwindcss/oxide-freebsd-x64": "4.1.6",
866 | "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.6",
867 | "@tailwindcss/oxide-linux-arm64-gnu": "4.1.6",
868 | "@tailwindcss/oxide-linux-arm64-musl": "4.1.6",
869 | "@tailwindcss/oxide-linux-x64-gnu": "4.1.6",
870 | "@tailwindcss/oxide-linux-x64-musl": "4.1.6",
871 | "@tailwindcss/oxide-wasm32-wasi": "4.1.6",
872 | "@tailwindcss/oxide-win32-arm64-msvc": "4.1.6",
873 | "@tailwindcss/oxide-win32-x64-msvc": "4.1.6"
874 | }
875 | },
876 | "node_modules/@tailwindcss/oxide-android-arm64": {
877 | "version": "4.1.6",
878 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.6.tgz",
879 | "integrity": "sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==",
880 | "cpu": [
881 | "arm64"
882 | ],
883 | "dev": true,
884 | "license": "MIT",
885 | "optional": true,
886 | "os": [
887 | "android"
888 | ],
889 | "engines": {
890 | "node": ">= 10"
891 | }
892 | },
893 | "node_modules/@tailwindcss/oxide-darwin-arm64": {
894 | "version": "4.1.6",
895 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.6.tgz",
896 | "integrity": "sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==",
897 | "cpu": [
898 | "arm64"
899 | ],
900 | "dev": true,
901 | "license": "MIT",
902 | "optional": true,
903 | "os": [
904 | "darwin"
905 | ],
906 | "engines": {
907 | "node": ">= 10"
908 | }
909 | },
910 | "node_modules/@tailwindcss/oxide-darwin-x64": {
911 | "version": "4.1.6",
912 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.6.tgz",
913 | "integrity": "sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==",
914 | "cpu": [
915 | "x64"
916 | ],
917 | "dev": true,
918 | "license": "MIT",
919 | "optional": true,
920 | "os": [
921 | "darwin"
922 | ],
923 | "engines": {
924 | "node": ">= 10"
925 | }
926 | },
927 | "node_modules/@tailwindcss/oxide-freebsd-x64": {
928 | "version": "4.1.6",
929 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.6.tgz",
930 | "integrity": "sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==",
931 | "cpu": [
932 | "x64"
933 | ],
934 | "dev": true,
935 | "license": "MIT",
936 | "optional": true,
937 | "os": [
938 | "freebsd"
939 | ],
940 | "engines": {
941 | "node": ">= 10"
942 | }
943 | },
944 | "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
945 | "version": "4.1.6",
946 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.6.tgz",
947 | "integrity": "sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==",
948 | "cpu": [
949 | "arm"
950 | ],
951 | "dev": true,
952 | "license": "MIT",
953 | "optional": true,
954 | "os": [
955 | "linux"
956 | ],
957 | "engines": {
958 | "node": ">= 10"
959 | }
960 | },
961 | "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
962 | "version": "4.1.6",
963 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.6.tgz",
964 | "integrity": "sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==",
965 | "cpu": [
966 | "arm64"
967 | ],
968 | "dev": true,
969 | "license": "MIT",
970 | "optional": true,
971 | "os": [
972 | "linux"
973 | ],
974 | "engines": {
975 | "node": ">= 10"
976 | }
977 | },
978 | "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
979 | "version": "4.1.6",
980 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.6.tgz",
981 | "integrity": "sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==",
982 | "cpu": [
983 | "arm64"
984 | ],
985 | "dev": true,
986 | "license": "MIT",
987 | "optional": true,
988 | "os": [
989 | "linux"
990 | ],
991 | "engines": {
992 | "node": ">= 10"
993 | }
994 | },
995 | "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
996 | "version": "4.1.6",
997 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.6.tgz",
998 | "integrity": "sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==",
999 | "cpu": [
1000 | "x64"
1001 | ],
1002 | "dev": true,
1003 | "license": "MIT",
1004 | "optional": true,
1005 | "os": [
1006 | "linux"
1007 | ],
1008 | "engines": {
1009 | "node": ">= 10"
1010 | }
1011 | },
1012 | "node_modules/@tailwindcss/oxide-linux-x64-musl": {
1013 | "version": "4.1.6",
1014 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.6.tgz",
1015 | "integrity": "sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==",
1016 | "cpu": [
1017 | "x64"
1018 | ],
1019 | "dev": true,
1020 | "license": "MIT",
1021 | "optional": true,
1022 | "os": [
1023 | "linux"
1024 | ],
1025 | "engines": {
1026 | "node": ">= 10"
1027 | }
1028 | },
1029 | "node_modules/@tailwindcss/oxide-wasm32-wasi": {
1030 | "version": "4.1.6",
1031 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.6.tgz",
1032 | "integrity": "sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==",
1033 | "bundleDependencies": [
1034 | "@napi-rs/wasm-runtime",
1035 | "@emnapi/core",
1036 | "@emnapi/runtime",
1037 | "@tybys/wasm-util",
1038 | "@emnapi/wasi-threads",
1039 | "tslib"
1040 | ],
1041 | "cpu": [
1042 | "wasm32"
1043 | ],
1044 | "dev": true,
1045 | "license": "MIT",
1046 | "optional": true,
1047 | "dependencies": {
1048 | "@emnapi/core": "^1.4.3",
1049 | "@emnapi/runtime": "^1.4.3",
1050 | "@emnapi/wasi-threads": "^1.0.2",
1051 | "@napi-rs/wasm-runtime": "^0.2.9",
1052 | "@tybys/wasm-util": "^0.9.0",
1053 | "tslib": "^2.8.0"
1054 | },
1055 | "engines": {
1056 | "node": ">=14.0.0"
1057 | }
1058 | },
1059 | "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
1060 | "version": "4.1.6",
1061 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.6.tgz",
1062 | "integrity": "sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==",
1063 | "cpu": [
1064 | "arm64"
1065 | ],
1066 | "dev": true,
1067 | "license": "MIT",
1068 | "optional": true,
1069 | "os": [
1070 | "win32"
1071 | ],
1072 | "engines": {
1073 | "node": ">= 10"
1074 | }
1075 | },
1076 | "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
1077 | "version": "4.1.6",
1078 | "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.6.tgz",
1079 | "integrity": "sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==",
1080 | "cpu": [
1081 | "x64"
1082 | ],
1083 | "dev": true,
1084 | "license": "MIT",
1085 | "optional": true,
1086 | "os": [
1087 | "win32"
1088 | ],
1089 | "engines": {
1090 | "node": ">= 10"
1091 | }
1092 | },
1093 | "node_modules/@tailwindcss/typography": {
1094 | "version": "0.5.16",
1095 | "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz",
1096 | "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==",
1097 | "dev": true,
1098 | "license": "MIT",
1099 | "dependencies": {
1100 | "lodash.castarray": "^4.4.0",
1101 | "lodash.isplainobject": "^4.0.6",
1102 | "lodash.merge": "^4.6.2",
1103 | "postcss-selector-parser": "6.0.10"
1104 | },
1105 | "peerDependencies": {
1106 | "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
1107 | }
1108 | },
1109 | "node_modules/@tailwindcss/vite": {
1110 | "version": "4.1.6",
1111 | "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.6.tgz",
1112 | "integrity": "sha512-zjtqjDeY1w3g2beYQtrMAf51n5G7o+UwmyOjtsDMP7t6XyoRMOidcoKP32ps7AkNOHIXEOK0bhIC05dj8oJp4w==",
1113 | "dev": true,
1114 | "license": "MIT",
1115 | "dependencies": {
1116 | "@tailwindcss/node": "4.1.6",
1117 | "@tailwindcss/oxide": "4.1.6",
1118 | "tailwindcss": "4.1.6"
1119 | },
1120 | "peerDependencies": {
1121 | "vite": "^5.2.0 || ^6"
1122 | }
1123 | },
1124 | "node_modules/@types/estree": {
1125 | "version": "1.0.7",
1126 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
1127 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
1128 | "dev": true,
1129 | "license": "MIT"
1130 | },
1131 | "node_modules/@vue/reactivity": {
1132 | "version": "3.1.5",
1133 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
1134 | "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
1135 | "dev": true,
1136 | "license": "MIT",
1137 | "dependencies": {
1138 | "@vue/shared": "3.1.5"
1139 | }
1140 | },
1141 | "node_modules/@vue/shared": {
1142 | "version": "3.1.5",
1143 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
1144 | "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==",
1145 | "dev": true,
1146 | "license": "MIT"
1147 | },
1148 | "node_modules/alpinejs": {
1149 | "version": "3.14.9",
1150 | "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.9.tgz",
1151 | "integrity": "sha512-gqSOhTEyryU9FhviNqiHBHzgjkvtukq9tevew29fTj+ofZtfsYriw4zPirHHOAy9bw8QoL3WGhyk7QqCh5AYlw==",
1152 | "dev": true,
1153 | "license": "MIT",
1154 | "dependencies": {
1155 | "@vue/reactivity": "~3.1.1"
1156 | }
1157 | },
1158 | "node_modules/asynckit": {
1159 | "version": "0.4.0",
1160 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1161 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
1162 | "dev": true,
1163 | "license": "MIT"
1164 | },
1165 | "node_modules/axios": {
1166 | "version": "1.9.0",
1167 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
1168 | "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
1169 | "dev": true,
1170 | "license": "MIT",
1171 | "dependencies": {
1172 | "follow-redirects": "^1.15.6",
1173 | "form-data": "^4.0.0",
1174 | "proxy-from-env": "^1.1.0"
1175 | }
1176 | },
1177 | "node_modules/call-bind-apply-helpers": {
1178 | "version": "1.0.2",
1179 | "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
1180 | "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
1181 | "dev": true,
1182 | "license": "MIT",
1183 | "dependencies": {
1184 | "es-errors": "^1.3.0",
1185 | "function-bind": "^1.1.2"
1186 | },
1187 | "engines": {
1188 | "node": ">= 0.4"
1189 | }
1190 | },
1191 | "node_modules/chownr": {
1192 | "version": "3.0.0",
1193 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
1194 | "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
1195 | "dev": true,
1196 | "license": "BlueOak-1.0.0",
1197 | "engines": {
1198 | "node": ">=18"
1199 | }
1200 | },
1201 | "node_modules/combined-stream": {
1202 | "version": "1.0.8",
1203 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1204 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1205 | "dev": true,
1206 | "license": "MIT",
1207 | "dependencies": {
1208 | "delayed-stream": "~1.0.0"
1209 | },
1210 | "engines": {
1211 | "node": ">= 0.8"
1212 | }
1213 | },
1214 | "node_modules/cssesc": {
1215 | "version": "3.0.0",
1216 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
1217 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
1218 | "dev": true,
1219 | "license": "MIT",
1220 | "bin": {
1221 | "cssesc": "bin/cssesc"
1222 | },
1223 | "engines": {
1224 | "node": ">=4"
1225 | }
1226 | },
1227 | "node_modules/delayed-stream": {
1228 | "version": "1.0.0",
1229 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1230 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
1231 | "dev": true,
1232 | "license": "MIT",
1233 | "engines": {
1234 | "node": ">=0.4.0"
1235 | }
1236 | },
1237 | "node_modules/detect-libc": {
1238 | "version": "2.0.4",
1239 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
1240 | "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
1241 | "dev": true,
1242 | "license": "Apache-2.0",
1243 | "engines": {
1244 | "node": ">=8"
1245 | }
1246 | },
1247 | "node_modules/dunder-proto": {
1248 | "version": "1.0.1",
1249 | "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
1250 | "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
1251 | "dev": true,
1252 | "license": "MIT",
1253 | "dependencies": {
1254 | "call-bind-apply-helpers": "^1.0.1",
1255 | "es-errors": "^1.3.0",
1256 | "gopd": "^1.2.0"
1257 | },
1258 | "engines": {
1259 | "node": ">= 0.4"
1260 | }
1261 | },
1262 | "node_modules/enhanced-resolve": {
1263 | "version": "5.18.1",
1264 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
1265 | "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
1266 | "dev": true,
1267 | "license": "MIT",
1268 | "dependencies": {
1269 | "graceful-fs": "^4.2.4",
1270 | "tapable": "^2.2.0"
1271 | },
1272 | "engines": {
1273 | "node": ">=10.13.0"
1274 | }
1275 | },
1276 | "node_modules/es-define-property": {
1277 | "version": "1.0.1",
1278 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
1279 | "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
1280 | "dev": true,
1281 | "license": "MIT",
1282 | "engines": {
1283 | "node": ">= 0.4"
1284 | }
1285 | },
1286 | "node_modules/es-errors": {
1287 | "version": "1.3.0",
1288 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
1289 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
1290 | "dev": true,
1291 | "license": "MIT",
1292 | "engines": {
1293 | "node": ">= 0.4"
1294 | }
1295 | },
1296 | "node_modules/es-object-atoms": {
1297 | "version": "1.1.1",
1298 | "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
1299 | "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
1300 | "dev": true,
1301 | "license": "MIT",
1302 | "dependencies": {
1303 | "es-errors": "^1.3.0"
1304 | },
1305 | "engines": {
1306 | "node": ">= 0.4"
1307 | }
1308 | },
1309 | "node_modules/es-set-tostringtag": {
1310 | "version": "2.1.0",
1311 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
1312 | "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
1313 | "dev": true,
1314 | "license": "MIT",
1315 | "dependencies": {
1316 | "es-errors": "^1.3.0",
1317 | "get-intrinsic": "^1.2.6",
1318 | "has-tostringtag": "^1.0.2",
1319 | "hasown": "^2.0.2"
1320 | },
1321 | "engines": {
1322 | "node": ">= 0.4"
1323 | }
1324 | },
1325 | "node_modules/esbuild": {
1326 | "version": "0.25.4",
1327 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz",
1328 | "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==",
1329 | "dev": true,
1330 | "hasInstallScript": true,
1331 | "license": "MIT",
1332 | "bin": {
1333 | "esbuild": "bin/esbuild"
1334 | },
1335 | "engines": {
1336 | "node": ">=18"
1337 | },
1338 | "optionalDependencies": {
1339 | "@esbuild/aix-ppc64": "0.25.4",
1340 | "@esbuild/android-arm": "0.25.4",
1341 | "@esbuild/android-arm64": "0.25.4",
1342 | "@esbuild/android-x64": "0.25.4",
1343 | "@esbuild/darwin-arm64": "0.25.4",
1344 | "@esbuild/darwin-x64": "0.25.4",
1345 | "@esbuild/freebsd-arm64": "0.25.4",
1346 | "@esbuild/freebsd-x64": "0.25.4",
1347 | "@esbuild/linux-arm": "0.25.4",
1348 | "@esbuild/linux-arm64": "0.25.4",
1349 | "@esbuild/linux-ia32": "0.25.4",
1350 | "@esbuild/linux-loong64": "0.25.4",
1351 | "@esbuild/linux-mips64el": "0.25.4",
1352 | "@esbuild/linux-ppc64": "0.25.4",
1353 | "@esbuild/linux-riscv64": "0.25.4",
1354 | "@esbuild/linux-s390x": "0.25.4",
1355 | "@esbuild/linux-x64": "0.25.4",
1356 | "@esbuild/netbsd-arm64": "0.25.4",
1357 | "@esbuild/netbsd-x64": "0.25.4",
1358 | "@esbuild/openbsd-arm64": "0.25.4",
1359 | "@esbuild/openbsd-x64": "0.25.4",
1360 | "@esbuild/sunos-x64": "0.25.4",
1361 | "@esbuild/win32-arm64": "0.25.4",
1362 | "@esbuild/win32-ia32": "0.25.4",
1363 | "@esbuild/win32-x64": "0.25.4"
1364 | }
1365 | },
1366 | "node_modules/fdir": {
1367 | "version": "6.4.4",
1368 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
1369 | "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
1370 | "dev": true,
1371 | "license": "MIT",
1372 | "peerDependencies": {
1373 | "picomatch": "^3 || ^4"
1374 | },
1375 | "peerDependenciesMeta": {
1376 | "picomatch": {
1377 | "optional": true
1378 | }
1379 | }
1380 | },
1381 | "node_modules/focus-trap": {
1382 | "version": "6.9.4",
1383 | "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-6.9.4.tgz",
1384 | "integrity": "sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==",
1385 | "dev": true,
1386 | "license": "MIT",
1387 | "dependencies": {
1388 | "tabbable": "^5.3.3"
1389 | }
1390 | },
1391 | "node_modules/follow-redirects": {
1392 | "version": "1.15.9",
1393 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
1394 | "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
1395 | "dev": true,
1396 | "funding": [
1397 | {
1398 | "type": "individual",
1399 | "url": "https://github.com/sponsors/RubenVerborgh"
1400 | }
1401 | ],
1402 | "license": "MIT",
1403 | "engines": {
1404 | "node": ">=4.0"
1405 | },
1406 | "peerDependenciesMeta": {
1407 | "debug": {
1408 | "optional": true
1409 | }
1410 | }
1411 | },
1412 | "node_modules/form-data": {
1413 | "version": "4.0.2",
1414 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
1415 | "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
1416 | "dev": true,
1417 | "license": "MIT",
1418 | "dependencies": {
1419 | "asynckit": "^0.4.0",
1420 | "combined-stream": "^1.0.8",
1421 | "es-set-tostringtag": "^2.1.0",
1422 | "mime-types": "^2.1.12"
1423 | },
1424 | "engines": {
1425 | "node": ">= 6"
1426 | }
1427 | },
1428 | "node_modules/fsevents": {
1429 | "version": "2.3.3",
1430 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1431 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1432 | "dev": true,
1433 | "hasInstallScript": true,
1434 | "license": "MIT",
1435 | "optional": true,
1436 | "os": [
1437 | "darwin"
1438 | ],
1439 | "engines": {
1440 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1441 | }
1442 | },
1443 | "node_modules/function-bind": {
1444 | "version": "1.1.2",
1445 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1446 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1447 | "dev": true,
1448 | "license": "MIT",
1449 | "funding": {
1450 | "url": "https://github.com/sponsors/ljharb"
1451 | }
1452 | },
1453 | "node_modules/get-intrinsic": {
1454 | "version": "1.3.0",
1455 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
1456 | "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
1457 | "dev": true,
1458 | "license": "MIT",
1459 | "dependencies": {
1460 | "call-bind-apply-helpers": "^1.0.2",
1461 | "es-define-property": "^1.0.1",
1462 | "es-errors": "^1.3.0",
1463 | "es-object-atoms": "^1.1.1",
1464 | "function-bind": "^1.1.2",
1465 | "get-proto": "^1.0.1",
1466 | "gopd": "^1.2.0",
1467 | "has-symbols": "^1.1.0",
1468 | "hasown": "^2.0.2",
1469 | "math-intrinsics": "^1.1.0"
1470 | },
1471 | "engines": {
1472 | "node": ">= 0.4"
1473 | },
1474 | "funding": {
1475 | "url": "https://github.com/sponsors/ljharb"
1476 | }
1477 | },
1478 | "node_modules/get-proto": {
1479 | "version": "1.0.1",
1480 | "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
1481 | "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
1482 | "dev": true,
1483 | "license": "MIT",
1484 | "dependencies": {
1485 | "dunder-proto": "^1.0.1",
1486 | "es-object-atoms": "^1.0.0"
1487 | },
1488 | "engines": {
1489 | "node": ">= 0.4"
1490 | }
1491 | },
1492 | "node_modules/gopd": {
1493 | "version": "1.2.0",
1494 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
1495 | "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
1496 | "dev": true,
1497 | "license": "MIT",
1498 | "engines": {
1499 | "node": ">= 0.4"
1500 | },
1501 | "funding": {
1502 | "url": "https://github.com/sponsors/ljharb"
1503 | }
1504 | },
1505 | "node_modules/graceful-fs": {
1506 | "version": "4.2.11",
1507 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1508 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1509 | "dev": true,
1510 | "license": "ISC"
1511 | },
1512 | "node_modules/has-symbols": {
1513 | "version": "1.1.0",
1514 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
1515 | "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
1516 | "dev": true,
1517 | "license": "MIT",
1518 | "engines": {
1519 | "node": ">= 0.4"
1520 | },
1521 | "funding": {
1522 | "url": "https://github.com/sponsors/ljharb"
1523 | }
1524 | },
1525 | "node_modules/has-tostringtag": {
1526 | "version": "1.0.2",
1527 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
1528 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
1529 | "dev": true,
1530 | "license": "MIT",
1531 | "dependencies": {
1532 | "has-symbols": "^1.0.3"
1533 | },
1534 | "engines": {
1535 | "node": ">= 0.4"
1536 | },
1537 | "funding": {
1538 | "url": "https://github.com/sponsors/ljharb"
1539 | }
1540 | },
1541 | "node_modules/hasown": {
1542 | "version": "2.0.2",
1543 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1544 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1545 | "dev": true,
1546 | "license": "MIT",
1547 | "dependencies": {
1548 | "function-bind": "^1.1.2"
1549 | },
1550 | "engines": {
1551 | "node": ">= 0.4"
1552 | }
1553 | },
1554 | "node_modules/jiti": {
1555 | "version": "2.4.2",
1556 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
1557 | "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
1558 | "dev": true,
1559 | "license": "MIT",
1560 | "bin": {
1561 | "jiti": "lib/jiti-cli.mjs"
1562 | }
1563 | },
1564 | "node_modules/laravel-vite-plugin": {
1565 | "version": "1.2.0",
1566 | "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.2.0.tgz",
1567 | "integrity": "sha512-R0pJ+IcTVeqEMoKz/B2Ij57QVq3sFTABiFmb06gAwFdivbOgsUtuhX6N2MGLEArajrS3U5JbberzwOe7uXHMHQ==",
1568 | "dev": true,
1569 | "license": "MIT",
1570 | "dependencies": {
1571 | "picocolors": "^1.0.0",
1572 | "vite-plugin-full-reload": "^1.1.0"
1573 | },
1574 | "bin": {
1575 | "clean-orphaned-assets": "bin/clean.js"
1576 | },
1577 | "engines": {
1578 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
1579 | },
1580 | "peerDependencies": {
1581 | "vite": "^5.0.0 || ^6.0.0"
1582 | }
1583 | },
1584 | "node_modules/lightningcss": {
1585 | "version": "1.29.2",
1586 | "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz",
1587 | "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==",
1588 | "dev": true,
1589 | "license": "MPL-2.0",
1590 | "dependencies": {
1591 | "detect-libc": "^2.0.3"
1592 | },
1593 | "engines": {
1594 | "node": ">= 12.0.0"
1595 | },
1596 | "funding": {
1597 | "type": "opencollective",
1598 | "url": "https://opencollective.com/parcel"
1599 | },
1600 | "optionalDependencies": {
1601 | "lightningcss-darwin-arm64": "1.29.2",
1602 | "lightningcss-darwin-x64": "1.29.2",
1603 | "lightningcss-freebsd-x64": "1.29.2",
1604 | "lightningcss-linux-arm-gnueabihf": "1.29.2",
1605 | "lightningcss-linux-arm64-gnu": "1.29.2",
1606 | "lightningcss-linux-arm64-musl": "1.29.2",
1607 | "lightningcss-linux-x64-gnu": "1.29.2",
1608 | "lightningcss-linux-x64-musl": "1.29.2",
1609 | "lightningcss-win32-arm64-msvc": "1.29.2",
1610 | "lightningcss-win32-x64-msvc": "1.29.2"
1611 | }
1612 | },
1613 | "node_modules/lightningcss-darwin-arm64": {
1614 | "version": "1.29.2",
1615 | "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz",
1616 | "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==",
1617 | "cpu": [
1618 | "arm64"
1619 | ],
1620 | "dev": true,
1621 | "license": "MPL-2.0",
1622 | "optional": true,
1623 | "os": [
1624 | "darwin"
1625 | ],
1626 | "engines": {
1627 | "node": ">= 12.0.0"
1628 | },
1629 | "funding": {
1630 | "type": "opencollective",
1631 | "url": "https://opencollective.com/parcel"
1632 | }
1633 | },
1634 | "node_modules/lightningcss-darwin-x64": {
1635 | "version": "1.29.2",
1636 | "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz",
1637 | "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==",
1638 | "cpu": [
1639 | "x64"
1640 | ],
1641 | "dev": true,
1642 | "license": "MPL-2.0",
1643 | "optional": true,
1644 | "os": [
1645 | "darwin"
1646 | ],
1647 | "engines": {
1648 | "node": ">= 12.0.0"
1649 | },
1650 | "funding": {
1651 | "type": "opencollective",
1652 | "url": "https://opencollective.com/parcel"
1653 | }
1654 | },
1655 | "node_modules/lightningcss-freebsd-x64": {
1656 | "version": "1.29.2",
1657 | "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz",
1658 | "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==",
1659 | "cpu": [
1660 | "x64"
1661 | ],
1662 | "dev": true,
1663 | "license": "MPL-2.0",
1664 | "optional": true,
1665 | "os": [
1666 | "freebsd"
1667 | ],
1668 | "engines": {
1669 | "node": ">= 12.0.0"
1670 | },
1671 | "funding": {
1672 | "type": "opencollective",
1673 | "url": "https://opencollective.com/parcel"
1674 | }
1675 | },
1676 | "node_modules/lightningcss-linux-arm-gnueabihf": {
1677 | "version": "1.29.2",
1678 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz",
1679 | "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==",
1680 | "cpu": [
1681 | "arm"
1682 | ],
1683 | "dev": true,
1684 | "license": "MPL-2.0",
1685 | "optional": true,
1686 | "os": [
1687 | "linux"
1688 | ],
1689 | "engines": {
1690 | "node": ">= 12.0.0"
1691 | },
1692 | "funding": {
1693 | "type": "opencollective",
1694 | "url": "https://opencollective.com/parcel"
1695 | }
1696 | },
1697 | "node_modules/lightningcss-linux-arm64-gnu": {
1698 | "version": "1.29.2",
1699 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz",
1700 | "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==",
1701 | "cpu": [
1702 | "arm64"
1703 | ],
1704 | "dev": true,
1705 | "license": "MPL-2.0",
1706 | "optional": true,
1707 | "os": [
1708 | "linux"
1709 | ],
1710 | "engines": {
1711 | "node": ">= 12.0.0"
1712 | },
1713 | "funding": {
1714 | "type": "opencollective",
1715 | "url": "https://opencollective.com/parcel"
1716 | }
1717 | },
1718 | "node_modules/lightningcss-linux-arm64-musl": {
1719 | "version": "1.29.2",
1720 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz",
1721 | "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==",
1722 | "cpu": [
1723 | "arm64"
1724 | ],
1725 | "dev": true,
1726 | "license": "MPL-2.0",
1727 | "optional": true,
1728 | "os": [
1729 | "linux"
1730 | ],
1731 | "engines": {
1732 | "node": ">= 12.0.0"
1733 | },
1734 | "funding": {
1735 | "type": "opencollective",
1736 | "url": "https://opencollective.com/parcel"
1737 | }
1738 | },
1739 | "node_modules/lightningcss-linux-x64-gnu": {
1740 | "version": "1.29.2",
1741 | "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz",
1742 | "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==",
1743 | "cpu": [
1744 | "x64"
1745 | ],
1746 | "dev": true,
1747 | "license": "MPL-2.0",
1748 | "optional": true,
1749 | "os": [
1750 | "linux"
1751 | ],
1752 | "engines": {
1753 | "node": ">= 12.0.0"
1754 | },
1755 | "funding": {
1756 | "type": "opencollective",
1757 | "url": "https://opencollective.com/parcel"
1758 | }
1759 | },
1760 | "node_modules/lightningcss-linux-x64-musl": {
1761 | "version": "1.29.2",
1762 | "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz",
1763 | "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==",
1764 | "cpu": [
1765 | "x64"
1766 | ],
1767 | "dev": true,
1768 | "license": "MPL-2.0",
1769 | "optional": true,
1770 | "os": [
1771 | "linux"
1772 | ],
1773 | "engines": {
1774 | "node": ">= 12.0.0"
1775 | },
1776 | "funding": {
1777 | "type": "opencollective",
1778 | "url": "https://opencollective.com/parcel"
1779 | }
1780 | },
1781 | "node_modules/lightningcss-win32-arm64-msvc": {
1782 | "version": "1.29.2",
1783 | "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz",
1784 | "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==",
1785 | "cpu": [
1786 | "arm64"
1787 | ],
1788 | "dev": true,
1789 | "license": "MPL-2.0",
1790 | "optional": true,
1791 | "os": [
1792 | "win32"
1793 | ],
1794 | "engines": {
1795 | "node": ">= 12.0.0"
1796 | },
1797 | "funding": {
1798 | "type": "opencollective",
1799 | "url": "https://opencollective.com/parcel"
1800 | }
1801 | },
1802 | "node_modules/lightningcss-win32-x64-msvc": {
1803 | "version": "1.29.2",
1804 | "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz",
1805 | "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==",
1806 | "cpu": [
1807 | "x64"
1808 | ],
1809 | "dev": true,
1810 | "license": "MPL-2.0",
1811 | "optional": true,
1812 | "os": [
1813 | "win32"
1814 | ],
1815 | "engines": {
1816 | "node": ">= 12.0.0"
1817 | },
1818 | "funding": {
1819 | "type": "opencollective",
1820 | "url": "https://opencollective.com/parcel"
1821 | }
1822 | },
1823 | "node_modules/lodash.castarray": {
1824 | "version": "4.4.0",
1825 | "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
1826 | "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
1827 | "dev": true,
1828 | "license": "MIT"
1829 | },
1830 | "node_modules/lodash.isplainobject": {
1831 | "version": "4.0.6",
1832 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1833 | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
1834 | "dev": true,
1835 | "license": "MIT"
1836 | },
1837 | "node_modules/lodash.merge": {
1838 | "version": "4.6.2",
1839 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1840 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1841 | "dev": true,
1842 | "license": "MIT"
1843 | },
1844 | "node_modules/magic-string": {
1845 | "version": "0.30.17",
1846 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
1847 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
1848 | "dev": true,
1849 | "license": "MIT",
1850 | "dependencies": {
1851 | "@jridgewell/sourcemap-codec": "^1.5.0"
1852 | }
1853 | },
1854 | "node_modules/math-intrinsics": {
1855 | "version": "1.1.0",
1856 | "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
1857 | "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
1858 | "dev": true,
1859 | "license": "MIT",
1860 | "engines": {
1861 | "node": ">= 0.4"
1862 | }
1863 | },
1864 | "node_modules/mime-db": {
1865 | "version": "1.52.0",
1866 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1867 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1868 | "dev": true,
1869 | "license": "MIT",
1870 | "engines": {
1871 | "node": ">= 0.6"
1872 | }
1873 | },
1874 | "node_modules/mime-types": {
1875 | "version": "2.1.35",
1876 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1877 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1878 | "dev": true,
1879 | "license": "MIT",
1880 | "dependencies": {
1881 | "mime-db": "1.52.0"
1882 | },
1883 | "engines": {
1884 | "node": ">= 0.6"
1885 | }
1886 | },
1887 | "node_modules/mini-svg-data-uri": {
1888 | "version": "1.4.4",
1889 | "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
1890 | "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
1891 | "dev": true,
1892 | "license": "MIT",
1893 | "bin": {
1894 | "mini-svg-data-uri": "cli.js"
1895 | }
1896 | },
1897 | "node_modules/minipass": {
1898 | "version": "7.1.2",
1899 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1900 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1901 | "dev": true,
1902 | "license": "ISC",
1903 | "engines": {
1904 | "node": ">=16 || 14 >=14.17"
1905 | }
1906 | },
1907 | "node_modules/minizlib": {
1908 | "version": "3.0.2",
1909 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
1910 | "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
1911 | "dev": true,
1912 | "license": "MIT",
1913 | "dependencies": {
1914 | "minipass": "^7.1.2"
1915 | },
1916 | "engines": {
1917 | "node": ">= 18"
1918 | }
1919 | },
1920 | "node_modules/mkdirp": {
1921 | "version": "3.0.1",
1922 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
1923 | "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
1924 | "dev": true,
1925 | "license": "MIT",
1926 | "bin": {
1927 | "mkdirp": "dist/cjs/src/bin.js"
1928 | },
1929 | "engines": {
1930 | "node": ">=10"
1931 | },
1932 | "funding": {
1933 | "url": "https://github.com/sponsors/isaacs"
1934 | }
1935 | },
1936 | "node_modules/nanoid": {
1937 | "version": "3.3.11",
1938 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
1939 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
1940 | "dev": true,
1941 | "funding": [
1942 | {
1943 | "type": "github",
1944 | "url": "https://github.com/sponsors/ai"
1945 | }
1946 | ],
1947 | "license": "MIT",
1948 | "bin": {
1949 | "nanoid": "bin/nanoid.cjs"
1950 | },
1951 | "engines": {
1952 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1953 | }
1954 | },
1955 | "node_modules/picocolors": {
1956 | "version": "1.1.1",
1957 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1958 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1959 | "dev": true,
1960 | "license": "ISC"
1961 | },
1962 | "node_modules/picomatch": {
1963 | "version": "4.0.2",
1964 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
1965 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
1966 | "dev": true,
1967 | "license": "MIT",
1968 | "engines": {
1969 | "node": ">=12"
1970 | },
1971 | "funding": {
1972 | "url": "https://github.com/sponsors/jonschlinkert"
1973 | }
1974 | },
1975 | "node_modules/postcss": {
1976 | "version": "8.5.3",
1977 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
1978 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
1979 | "dev": true,
1980 | "funding": [
1981 | {
1982 | "type": "opencollective",
1983 | "url": "https://opencollective.com/postcss/"
1984 | },
1985 | {
1986 | "type": "tidelift",
1987 | "url": "https://tidelift.com/funding/github/npm/postcss"
1988 | },
1989 | {
1990 | "type": "github",
1991 | "url": "https://github.com/sponsors/ai"
1992 | }
1993 | ],
1994 | "license": "MIT",
1995 | "dependencies": {
1996 | "nanoid": "^3.3.8",
1997 | "picocolors": "^1.1.1",
1998 | "source-map-js": "^1.2.1"
1999 | },
2000 | "engines": {
2001 | "node": "^10 || ^12 || >=14"
2002 | }
2003 | },
2004 | "node_modules/postcss-selector-parser": {
2005 | "version": "6.0.10",
2006 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
2007 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
2008 | "dev": true,
2009 | "license": "MIT",
2010 | "dependencies": {
2011 | "cssesc": "^3.0.0",
2012 | "util-deprecate": "^1.0.2"
2013 | },
2014 | "engines": {
2015 | "node": ">=4"
2016 | }
2017 | },
2018 | "node_modules/prettier": {
2019 | "version": "3.5.3",
2020 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
2021 | "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
2022 | "dev": true,
2023 | "license": "MIT",
2024 | "bin": {
2025 | "prettier": "bin/prettier.cjs"
2026 | },
2027 | "engines": {
2028 | "node": ">=14"
2029 | },
2030 | "funding": {
2031 | "url": "https://github.com/prettier/prettier?sponsor=1"
2032 | }
2033 | },
2034 | "node_modules/prettier-plugin-blade": {
2035 | "version": "2.1.21",
2036 | "resolved": "https://registry.npmjs.org/prettier-plugin-blade/-/prettier-plugin-blade-2.1.21.tgz",
2037 | "integrity": "sha512-+BPBPvla/Ppr0MVrqMAO+FTwxpXUYo8zhQPIGC7psNuMbB24y84cGrJ4Uc02GHTQN0q8txeG4Y4MxyJWgOujyQ==",
2038 | "dev": true,
2039 | "license": "MIT",
2040 | "engines": {
2041 | "node": ">=12.0.0"
2042 | },
2043 | "peerDependencies": {
2044 | "prettier": ">=3"
2045 | }
2046 | },
2047 | "node_modules/prettier-plugin-tailwindcss": {
2048 | "version": "0.6.11",
2049 | "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz",
2050 | "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==",
2051 | "dev": true,
2052 | "license": "MIT",
2053 | "engines": {
2054 | "node": ">=14.21.3"
2055 | },
2056 | "peerDependencies": {
2057 | "@ianvs/prettier-plugin-sort-imports": "*",
2058 | "@prettier/plugin-pug": "*",
2059 | "@shopify/prettier-plugin-liquid": "*",
2060 | "@trivago/prettier-plugin-sort-imports": "*",
2061 | "@zackad/prettier-plugin-twig": "*",
2062 | "prettier": "^3.0",
2063 | "prettier-plugin-astro": "*",
2064 | "prettier-plugin-css-order": "*",
2065 | "prettier-plugin-import-sort": "*",
2066 | "prettier-plugin-jsdoc": "*",
2067 | "prettier-plugin-marko": "*",
2068 | "prettier-plugin-multiline-arrays": "*",
2069 | "prettier-plugin-organize-attributes": "*",
2070 | "prettier-plugin-organize-imports": "*",
2071 | "prettier-plugin-sort-imports": "*",
2072 | "prettier-plugin-style-order": "*",
2073 | "prettier-plugin-svelte": "*"
2074 | },
2075 | "peerDependenciesMeta": {
2076 | "@ianvs/prettier-plugin-sort-imports": {
2077 | "optional": true
2078 | },
2079 | "@prettier/plugin-pug": {
2080 | "optional": true
2081 | },
2082 | "@shopify/prettier-plugin-liquid": {
2083 | "optional": true
2084 | },
2085 | "@trivago/prettier-plugin-sort-imports": {
2086 | "optional": true
2087 | },
2088 | "@zackad/prettier-plugin-twig": {
2089 | "optional": true
2090 | },
2091 | "prettier-plugin-astro": {
2092 | "optional": true
2093 | },
2094 | "prettier-plugin-css-order": {
2095 | "optional": true
2096 | },
2097 | "prettier-plugin-import-sort": {
2098 | "optional": true
2099 | },
2100 | "prettier-plugin-jsdoc": {
2101 | "optional": true
2102 | },
2103 | "prettier-plugin-marko": {
2104 | "optional": true
2105 | },
2106 | "prettier-plugin-multiline-arrays": {
2107 | "optional": true
2108 | },
2109 | "prettier-plugin-organize-attributes": {
2110 | "optional": true
2111 | },
2112 | "prettier-plugin-organize-imports": {
2113 | "optional": true
2114 | },
2115 | "prettier-plugin-sort-imports": {
2116 | "optional": true
2117 | },
2118 | "prettier-plugin-style-order": {
2119 | "optional": true
2120 | },
2121 | "prettier-plugin-svelte": {
2122 | "optional": true
2123 | }
2124 | }
2125 | },
2126 | "node_modules/proxy-from-env": {
2127 | "version": "1.1.0",
2128 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
2129 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
2130 | "dev": true,
2131 | "license": "MIT"
2132 | },
2133 | "node_modules/rollup": {
2134 | "version": "4.40.2",
2135 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz",
2136 | "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==",
2137 | "dev": true,
2138 | "license": "MIT",
2139 | "dependencies": {
2140 | "@types/estree": "1.0.7"
2141 | },
2142 | "bin": {
2143 | "rollup": "dist/bin/rollup"
2144 | },
2145 | "engines": {
2146 | "node": ">=18.0.0",
2147 | "npm": ">=8.0.0"
2148 | },
2149 | "optionalDependencies": {
2150 | "@rollup/rollup-android-arm-eabi": "4.40.2",
2151 | "@rollup/rollup-android-arm64": "4.40.2",
2152 | "@rollup/rollup-darwin-arm64": "4.40.2",
2153 | "@rollup/rollup-darwin-x64": "4.40.2",
2154 | "@rollup/rollup-freebsd-arm64": "4.40.2",
2155 | "@rollup/rollup-freebsd-x64": "4.40.2",
2156 | "@rollup/rollup-linux-arm-gnueabihf": "4.40.2",
2157 | "@rollup/rollup-linux-arm-musleabihf": "4.40.2",
2158 | "@rollup/rollup-linux-arm64-gnu": "4.40.2",
2159 | "@rollup/rollup-linux-arm64-musl": "4.40.2",
2160 | "@rollup/rollup-linux-loongarch64-gnu": "4.40.2",
2161 | "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2",
2162 | "@rollup/rollup-linux-riscv64-gnu": "4.40.2",
2163 | "@rollup/rollup-linux-riscv64-musl": "4.40.2",
2164 | "@rollup/rollup-linux-s390x-gnu": "4.40.2",
2165 | "@rollup/rollup-linux-x64-gnu": "4.40.2",
2166 | "@rollup/rollup-linux-x64-musl": "4.40.2",
2167 | "@rollup/rollup-win32-arm64-msvc": "4.40.2",
2168 | "@rollup/rollup-win32-ia32-msvc": "4.40.2",
2169 | "@rollup/rollup-win32-x64-msvc": "4.40.2",
2170 | "fsevents": "~2.3.2"
2171 | }
2172 | },
2173 | "node_modules/source-map-js": {
2174 | "version": "1.2.1",
2175 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2176 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2177 | "dev": true,
2178 | "license": "BSD-3-Clause",
2179 | "engines": {
2180 | "node": ">=0.10.0"
2181 | }
2182 | },
2183 | "node_modules/tabbable": {
2184 | "version": "5.3.3",
2185 | "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
2186 | "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==",
2187 | "dev": true,
2188 | "license": "MIT"
2189 | },
2190 | "node_modules/tailwindcss": {
2191 | "version": "4.1.6",
2192 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.6.tgz",
2193 | "integrity": "sha512-j0cGLTreM6u4OWzBeLBpycK0WIh8w7kSwcUsQZoGLHZ7xDTdM69lN64AgoIEEwFi0tnhs4wSykUa5YWxAzgFYg==",
2194 | "dev": true,
2195 | "license": "MIT"
2196 | },
2197 | "node_modules/tapable": {
2198 | "version": "2.2.1",
2199 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
2200 | "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
2201 | "dev": true,
2202 | "license": "MIT",
2203 | "engines": {
2204 | "node": ">=6"
2205 | }
2206 | },
2207 | "node_modules/tar": {
2208 | "version": "7.4.3",
2209 | "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
2210 | "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
2211 | "dev": true,
2212 | "license": "ISC",
2213 | "dependencies": {
2214 | "@isaacs/fs-minipass": "^4.0.0",
2215 | "chownr": "^3.0.0",
2216 | "minipass": "^7.1.2",
2217 | "minizlib": "^3.0.1",
2218 | "mkdirp": "^3.0.1",
2219 | "yallist": "^5.0.0"
2220 | },
2221 | "engines": {
2222 | "node": ">=18"
2223 | }
2224 | },
2225 | "node_modules/tinyglobby": {
2226 | "version": "0.2.13",
2227 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
2228 | "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
2229 | "dev": true,
2230 | "license": "MIT",
2231 | "dependencies": {
2232 | "fdir": "^6.4.4",
2233 | "picomatch": "^4.0.2"
2234 | },
2235 | "engines": {
2236 | "node": ">=12.0.0"
2237 | },
2238 | "funding": {
2239 | "url": "https://github.com/sponsors/SuperchupuDev"
2240 | }
2241 | },
2242 | "node_modules/util-deprecate": {
2243 | "version": "1.0.2",
2244 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2245 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2246 | "dev": true,
2247 | "license": "MIT"
2248 | },
2249 | "node_modules/vite": {
2250 | "version": "6.3.5",
2251 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
2252 | "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
2253 | "dev": true,
2254 | "license": "MIT",
2255 | "dependencies": {
2256 | "esbuild": "^0.25.0",
2257 | "fdir": "^6.4.4",
2258 | "picomatch": "^4.0.2",
2259 | "postcss": "^8.5.3",
2260 | "rollup": "^4.34.9",
2261 | "tinyglobby": "^0.2.13"
2262 | },
2263 | "bin": {
2264 | "vite": "bin/vite.js"
2265 | },
2266 | "engines": {
2267 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2268 | },
2269 | "funding": {
2270 | "url": "https://github.com/vitejs/vite?sponsor=1"
2271 | },
2272 | "optionalDependencies": {
2273 | "fsevents": "~2.3.3"
2274 | },
2275 | "peerDependencies": {
2276 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2277 | "jiti": ">=1.21.0",
2278 | "less": "*",
2279 | "lightningcss": "^1.21.0",
2280 | "sass": "*",
2281 | "sass-embedded": "*",
2282 | "stylus": "*",
2283 | "sugarss": "*",
2284 | "terser": "^5.16.0",
2285 | "tsx": "^4.8.1",
2286 | "yaml": "^2.4.2"
2287 | },
2288 | "peerDependenciesMeta": {
2289 | "@types/node": {
2290 | "optional": true
2291 | },
2292 | "jiti": {
2293 | "optional": true
2294 | },
2295 | "less": {
2296 | "optional": true
2297 | },
2298 | "lightningcss": {
2299 | "optional": true
2300 | },
2301 | "sass": {
2302 | "optional": true
2303 | },
2304 | "sass-embedded": {
2305 | "optional": true
2306 | },
2307 | "stylus": {
2308 | "optional": true
2309 | },
2310 | "sugarss": {
2311 | "optional": true
2312 | },
2313 | "terser": {
2314 | "optional": true
2315 | },
2316 | "tsx": {
2317 | "optional": true
2318 | },
2319 | "yaml": {
2320 | "optional": true
2321 | }
2322 | }
2323 | },
2324 | "node_modules/vite-plugin-full-reload": {
2325 | "version": "1.2.0",
2326 | "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz",
2327 | "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==",
2328 | "dev": true,
2329 | "license": "MIT",
2330 | "dependencies": {
2331 | "picocolors": "^1.0.0",
2332 | "picomatch": "^2.3.1"
2333 | }
2334 | },
2335 | "node_modules/vite-plugin-full-reload/node_modules/picomatch": {
2336 | "version": "2.3.1",
2337 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2338 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2339 | "dev": true,
2340 | "license": "MIT",
2341 | "engines": {
2342 | "node": ">=8.6"
2343 | },
2344 | "funding": {
2345 | "url": "https://github.com/sponsors/jonschlinkert"
2346 | }
2347 | },
2348 | "node_modules/yallist": {
2349 | "version": "5.0.0",
2350 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
2351 | "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
2352 | "dev": true,
2353 | "license": "BlueOak-1.0.0",
2354 | "engines": {
2355 | "node": ">=18"
2356 | }
2357 | }
2358 | }
2359 | }
2360 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "type": "module",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "vite build"
7 | },
8 | "prettier": {
9 | "tailwindStylesheet": "./resources/css/tailkit.css",
10 | "plugins": [
11 | "prettier-plugin-blade",
12 | "prettier-plugin-tailwindcss"
13 | ]
14 | },
15 | "devDependencies": {
16 | "@alpinejs/focus": "^3.14.9",
17 | "@tailwindcss/forms": "^0.5.10",
18 | "@tailwindcss/typography": "^0.5.16",
19 | "@tailwindcss/vite": "^4.1.6",
20 | "alpinejs": "^3.14.9",
21 | "axios": "^1.9.0",
22 | "laravel-vite-plugin": "^1.2.0",
23 | "prettier": "^3.5.3",
24 | "prettier-plugin-blade": "^2.1.21",
25 | "prettier-plugin-tailwindcss": "^0.6.11",
26 | "tailwindcss": "^4.0.0",
27 | "vite": "^6.3.5"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 | tests/Unit
10 |
11 |
12 | tests/Feature
13 |
14 |
15 |
16 |
17 | app
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews -Indexes
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Handle Authorization Header
9 | RewriteCond %{HTTP:Authorization} .
10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
11 |
12 | # Redirect Trailing Slashes If Not A Folder...
13 | RewriteCond %{REQUEST_FILENAME} !-d
14 | RewriteCond %{REQUEST_URI} (.+)/$
15 | RewriteRule ^ %1 [L,R=301]
16 |
17 | # Send Requests To Front Controller...
18 | RewriteCond %{REQUEST_FILENAME} !-d
19 | RewriteCond %{REQUEST_FILENAME} !-f
20 | RewriteRule ^ index.php [L]
21 |
22 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pixelcave/tailkit-starter-kit-laravel/ecce8ce199836c9a0e5705d095ec55a176908ba4/public/favicon.ico
--------------------------------------------------------------------------------
/public/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pixelcave/tailkit-starter-kit-laravel/ecce8ce199836c9a0e5705d095ec55a176908ba4/public/favicon.png
--------------------------------------------------------------------------------
/public/favicon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 | handleRequest(Request::capture());
18 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/resources/css/tailkit.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss";
2 | @source "../views";
3 |
4 | /* Plugins */
5 | @plugin '@tailwindcss/forms';
6 | @plugin '@tailwindcss/typography';
7 |
8 | /* Class based dark mode */
9 | @custom-variant dark (&:where(.dark, .dark *));
10 |
11 | /* Enable hover on mobile */
12 | @custom-variant hover (&:hover);
13 |
14 | /* Tailkit configuration */
15 | @theme {
16 | /* Fonts */
17 | --default-font-family: "Inter";
18 |
19 | /* Spacing */
20 | --spacing-8xl: 90rem;
21 | --spacing-9xl: 105rem;
22 | --spacing-10xl: 120rem;
23 |
24 | /* Animations */
25 | --animate-spin-slow: spin-slow 8s linear infinite;
26 |
27 | @keyframes spin-slow {
28 | 100% {
29 | transform: rotate(-360deg);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/resources/js/app.js:
--------------------------------------------------------------------------------
1 | import "./bootstrap";
2 |
3 | import Alpine from "alpinejs";
4 | import focus from "@alpinejs/focus";
5 |
6 | window.Alpine = Alpine;
7 |
8 | Alpine.plugin(focus);
9 | Alpine.start();
10 |
--------------------------------------------------------------------------------
/resources/js/bootstrap.js:
--------------------------------------------------------------------------------
1 | import axios from "axios";
2 | window.axios = axios;
3 |
4 | window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
5 |
--------------------------------------------------------------------------------
/resources/views/welcome.blade.php:
--------------------------------------------------------------------------------
1 |
2 | getLocale()) }}">
3 |
4 |
5 |
6 |
7 | Tailkit Project
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 | @vite(["resources/css/tailkit.css", "resources/js/app.js"])
21 |
22 |
23 |
24 |
29 |
30 |
33 |
36 |
85 |
86 |
90 | Crafted with
91 |
102 | by pixelcave
103 |
104 |
107 |
110 | Build
111 |
112 | super modern web applications and websites
113 |
116 | really fast
117 |
118 | .
119 |
120 |
123 | Carefully crafted, easy to customize, fully responsive UI
124 | Components, Templates and Tools for your Tailwind CSS based
125 | projects.
126 |
127 |
174 |
175 |
176 |
177 |
178 |
183 |
184 |
185 |
--------------------------------------------------------------------------------
/routes/console.php:
--------------------------------------------------------------------------------
1 | comment(Inspiring::quote());
8 | })->purpose('Display an inspiring quote')->hourly();
9 |
--------------------------------------------------------------------------------
/routes/web.php:
--------------------------------------------------------------------------------
1 | get('/');
16 |
17 | $response->assertStatus(200);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | assertTrue(true);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import laravel from "laravel-vite-plugin";
3 | import tailwindcss from "@tailwindcss/vite";
4 |
5 | export default defineConfig({
6 | plugins: [
7 | laravel({
8 | input: ["resources/css/tailkit.css", "resources/js/app.js"],
9 | refresh: true,
10 | }),
11 | tailwindcss(),
12 | ],
13 | });
14 |
--------------------------------------------------------------------------------