Compare commits

...

14 Commits
3.7.1 ... 4.1

Author SHA1 Message Date
Dennis
732ed7ea43 Merge branch 'master' of https://github.com/ploi/ploi-core 2025-08-13 20:46:37 +02:00
Dennis
e776ae299a Use Laravel prompts 💬 2025-08-13 20:46:33 +02:00
Dennis Smink
b8c07cde53 Merge pull request #38 from jelleroorda/fix-support-close-reopen
Fix closing and reopening of support tickets.
2025-08-13 20:24:23 +02:00
Dennis Smink
6eb36a84af Merge pull request #37 from jelleroorda/fix-support-ticket-mail
Use the proper route for in new ticket received mail.
2025-08-13 20:23:34 +02:00
Jelle Roorda
9622a08b74 Fix closing and reopening of support tickets. 2025-08-13 17:49:47 +02:00
Jelle Roorda
4d11e3939a Use the proper route for in new ticket received mail. 2025-08-13 17:41:15 +02:00
Dennis Smink
592bc2b0f6 Merge pull request #36 from ploi/prepare-open-source
Open Source 🔥
2025-08-12 11:39:15 +02:00
Dennis
33ccdd1b2d remove traces 2025-08-12 11:23:34 +02:00
Dennis
065773fb6f wip 2025-08-12 08:32:52 +02:00
Dennis
e26a7c2a50 Vite upgrade 2025-08-12 07:44:19 +02:00
Dennis
022caacb24 wip 2025-08-12 07:39:20 +02:00
Dennis
b5da1367d0 wip 2025-08-12 07:37:58 +02:00
Dennis
175134233b wip 2025-08-11 13:53:57 +02:00
Dennis
072018b122 wip 2025-04-11 09:10:21 +02:00
111 changed files with 14163 additions and 13190 deletions

View File

@@ -7,7 +7,6 @@ APP_DEMO=false
APP_DATE_TIME_FORMAT="Y-m-d H:i:s"
PLOI_TOKEN=
PLOI_CORE_TOKEN=
IMPERSONATION=false

View File

@@ -11,7 +11,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: [8.2]
php: [8.4]
runs-on: ${{ matrix.os }}
steps:

1
.gitignore vendored
View File

@@ -21,3 +21,4 @@ yarn-error.log
rr
.rr.yaml
.DS_Store
.phpunit.cache

122
CLAUDE.md Normal file
View File

@@ -0,0 +1,122 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Ploi Core is a Laravel-based webhosting management platform that allows users to launch their own webhosting service using ploi.io as the backend infrastructure.
## Essential Commands
### Development
```bash
# Start development server
npm run dev
# Build for production
npm run build
# Watch for changes
npm run watch
# Format PHP code
composer format
# Run tests
php artisan test
php artisan test --filter=TestName
# Run browser tests
php artisan dusk
# Clear all caches
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
# Queue management
php artisan horizon
php artisan queue:work
```
### Database
```bash
# Run migrations
php artisan migrate
# Rollback migrations
php artisan migrate:rollback
# Fresh migration with seeders
php artisan migrate:fresh --seed
```
### Custom Artisan Commands
```bash
php artisan core:install # Initial installation
php artisan core:synchronize # Sync with Ploi API
php artisan core:cleanup # Clean up resources
php artisan core:trial # Manage trials
```
## Architecture Overview
### Technology Stack
- **Backend**: Laravel 11 (PHP 8.2+), Filament v3 admin panel
- **Frontend**: Vue 3 with Inertia.js, Tailwind CSS, Vite
- **Queue**: Laravel Horizon with Redis
- **Payments**: Laravel Cashier (Stripe)
- **Testing**: Pest PHP, Laravel Dusk
### Key Directories
- `app/Services/Ploi/` - Ploi.io API integration layer
- `app/Filament/` - Admin panel resources and pages
- `app/Http/Controllers/` - Web and API controllers
- `app/Jobs/` - Async queue jobs for Ploi API operations
- `resources/js/Pages/` - Inertia.js Vue pages
- `resources/js/components/` - Reusable Vue components
### Ploi API Integration
The application heavily integrates with the Ploi.io API. Key service class is at `app/Services/Ploi/Ploi.php`. All server/site management operations go through this API layer. Use queue jobs for long-running operations to avoid timeouts.
### Database Structure
Main entities: Users, Packages, Servers, Sites, Databases, Certificates, Cronjobs. Multi-tenancy through user-server-site relationships. Role-based access: admin, reseller, user.
### Frontend Architecture
- Inertia.js handles the Vue-Laravel bridge
- Pages are in `resources/js/Pages/` following Laravel route structure
- Shared data is passed via Inertia middleware
- Vuex store modules in `resources/js/store/`
- Form handling uses Inertia forms
### Testing Approach
- Feature tests use Pest PHP syntax
- Database tests use RefreshDatabase trait
- API calls should be mocked using Http::fake()
- Browser tests in `tests/Browser/` using Dusk
### Important Environment Variables
```
PLOI_TOKEN= # Ploi API token
APP_DEMO=false # Demo mode toggle
STRIPE_KEY= # Stripe public key
STRIPE_SECRET= # Stripe secret key
```
### Development Workflow
1. Always run `npm run dev` for frontend changes
2. Use queue workers for Ploi API operations
3. Clear caches when changing config or routes
4. Format code with `composer format` before commits
5. Test with `php artisan test` for unit/feature tests
### Common Patterns
- Use Actions (`app/Actions/`) for business logic
- API responses follow Laravel's resource pattern
- Filament resources handle admin CRUD operations
- Queue jobs for async Ploi API calls
- Service classes for external integrations
### Deployment
Production deployment uses the `update.sh` script which handles git pull, composer install, migrations, and cache clearing. Laravel Horizon manages queues in production.

View File

@@ -14,6 +14,17 @@ use App\Services\VersionChecker;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Artisan;
use function Laravel\Prompts\text;
use function Laravel\Prompts\password;
use function Laravel\Prompts\confirm;
use function Laravel\Prompts\select;
use function Laravel\Prompts\info;
use function Laravel\Prompts\error;
use function Laravel\Prompts\warning;
use function Laravel\Prompts\note;
use function Laravel\Prompts\spin;
use function Laravel\Prompts\intro;
use function Laravel\Prompts\outro;
class Install extends Command
{
@@ -25,29 +36,34 @@ class Install extends Command
public function handle()
{
$this->init();
$this->intro();
$this->isInstalled();
$this->checkApplicationKey();
$this->checkDatabaseConnection();
$this->runDatabaseMigrations();
$this->checkCredentials();
$this->askAboutAdministrationAccount();
$this->askAboutDefaultPackages();
$this->checkApplicationUrl();
$this->createInstallationFile();
$this->linkStorage();
try {
$this->init();
$this->intro();
$this->isInstalled();
$this->checkApplicationKey();
$this->checkDatabaseConnection();
$this->runDatabaseMigrations();
$this->checkCredentials();
$this->askAboutAdministrationAccount();
$this->askAboutDefaultPackages();
$this->checkApplicationUrl();
$this->createInstallationFile();
$this->linkStorage();
$this->info('Success! Installation has finished.');
$this->line(' ');
$this->writeSeparationLine();
$this->info('Make sure to also setup emailing, the cronjob and the queue worker.');
$this->line(' ');
$this->info('Setting up emailing: https://docs.ploi-core.io/261-getting-started/918-setting-up-email');
$this->info('Setting up cronjob & queue worker: https://docs.ploi-core.io/261-getting-started/638-installation');
$this->writeSeparationLine();
$this->line(' ');
$this->info('Visit your platform at ' . env('APP_URL'));
outro('🎉 Installation completed successfully!');
note(
"Next steps:\n\n" .
"📧 Setup email: https://docs.ploi-core.io/261-getting-started/918-setting-up-email\n" .
"⚙️ Setup cron & queue: https://docs.ploi-core.io/261-getting-started/638-installation\n\n" .
"Visit your platform at: " . env('APP_URL')
);
return Command::SUCCESS;
} catch (\Exception $e) {
error('Installation failed: ' . $e->getMessage());
return Command::FAILURE;
}
}
protected function init()
@@ -58,96 +74,122 @@ class Install extends Command
protected function askAboutAdministrationAccount()
{
if (!User::query()->where('role', User::ADMIN)->count()) {
$this->info('Let\'s start by setting up your administration account.');
note('Let\'s set up your administration account');
$name = $this->ask('What is your name', $this->company['user_name']);
$email = $this->ask('What is your e-mail address', $this->company['email']);
$password = $this->secret('What password do you desire');
$name = text(
label: 'What is your name?',
default: $this->company['user_name'],
required: true
);
$check = User::where('email', $email)->count();
$email = text(
label: 'What is your email address?',
default: $this->company['email'],
required: true,
validate: fn (string $value) => match (true) {
!filter_var($value, FILTER_VALIDATE_EMAIL) => 'Please enter a valid email address.',
User::where('email', $value)->exists() => 'This email is already registered in the system.',
default => null
}
);
if ($check) {
$this->line('');
$this->comment('This user is already present in your system, please refresh your database or use different credentials.');
$this->comment('Aborting installation..');
$password = password(
label: 'Choose a secure password',
required: true,
validate: fn (string $value) => match (true) {
strlen($value) < 8 => 'Password must be at least 8 characters.',
default => null
}
);
exit();
}
spin(
function () use ($name, $email, $password) {
User::forceCreate([
'name' => $name,
'email' => $email,
'password' => $password,
'role' => User::ADMIN
]);
},
'Creating administrator account...'
);
User::forceCreate([
'name' => $name,
'email' => $email,
'password' => $password,
'role' => User::ADMIN
]);
info('✓ Administrator account created successfully');
} else {
$this->line('Already found a administrator user in your system. Use that user to login.');
note('Administrator account already exists. Use existing credentials to login.');
}
}
protected function askAboutDefaultPackages()
{
$basicPackages = $this->confirm(
'Do you want to create the basic packages which you can edit later?',
true
$createPackages = confirm(
label: 'Would you like to create default packages?',
default: true,
hint: 'Basic (5 sites), Professional (30 sites), and Unlimited packages'
);
if (!$basicPackages) {
if (!$createPackages) {
return false;
}
Package::create([
'name' => 'Basic',
'maximum_sites' => 5,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
spin(
function () {
Package::create([
'name' => 'Basic',
'maximum_sites' => 5,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
Package::create([
'name' => 'Professional',
'maximum_sites' => 30,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
Package::create([
'name' => 'Professional',
'maximum_sites' => 30,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
Package::create([
'name' => 'Unlimited',
'maximum_sites' => 0,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
Package::create([
'name' => 'Unlimited',
'maximum_sites' => 0,
'site_permissions' => [
'create' => true,
'update' => true,
'delete' => true
],
'server_permissions' => [
'create' => false,
'update' => false,
'delete' => false
]
]);
},
'Creating default packages...'
);
info('✓ Created 3 default packages');
}
protected function getCompany($ploiCoreKey, $token)
protected function getCompany($token)
{
$response = Http::withHeaders([
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Ploi-Core-Key' => $ploiCoreKey
'Content-Type' => 'application/json'
])
->withToken($token)
->get((new Ploi)->url . 'ping');
@@ -170,28 +212,26 @@ class Install extends Command
protected function intro()
{
$this->writeSeparationLine();
$this->line('Ploi Core Installation');
$this->line('Ploi Core version: ' . $this->versionChecker->currentVersion);
$this->line('Ploi Core remote: ' . $this->versionChecker->remoteVersion);
$this->line('Laravel version: ' . app()->version());
$this->line('PHP version: ' . trim(phpversion()));
$this->line(' ');
$this->line('Website: https://ploi-core.io');
$this->line('E-mail: core@ploi.io');
$this->line('Terms of service: https://ploi-core.io/terms');
$this->writeSeparationLine();
$this->line('');
intro('🚀 Ploi Core Installation');
note(
"Ploi Core v{$this->versionChecker->currentVersion} (Remote: v{$this->versionChecker->remoteVersion})\n" .
"Laravel v" . app()->version() . " | PHP v" . trim(phpversion()) . "\n\n" .
"Website: https://ploi-core.io\n" .
"E-mail: core@ploi.io\n" .
"Terms: https://ploi-core.io/terms"
);
}
protected function isInstalled()
{
if (file_exists(storage_path($this->installationFile)) && !$this->option('force')) {
$this->line('');
$this->comment('Ploi Core has already been installed before.');
$this->comment('If you still want to start installation, remove this file to continue: ./storage/' . $this->installationFile);
$this->comment('Aborting installation..');
warning('Ploi Core has already been installed before.');
error(
"To reinstall, either:\n" .
"• Remove the file: ./storage/{$this->installationFile}\n" .
"• Or run with --force flag"
);
exit();
}
@@ -201,138 +241,215 @@ class Install extends Command
protected function checkApplicationKey(): void
{
if (!config('app.key')) {
$this->call('key:generate');
$this->info('Application key has been set');
spin(
fn () => $this->call('key:generate', [], $this->getOutput()),
'Generating application key...'
);
info('✓ Application key has been set');
}
}
protected function checkApplicationUrl()
{
// Ask about URL
$url = $this->ask('What URL is this platform using?', env('APP_URL'));
$url = text(
label: 'What URL will this platform use?',
default: env('APP_URL', 'https://example.com'),
required: true,
validate: fn (string $value) => match (true) {
!filter_var($value, FILTER_VALIDATE_URL) => 'Please enter a valid URL.',
!str_starts_with($value, 'http://') && !str_starts_with($value, 'https://') => 'URL must start with http:// or https://',
default => null
},
hint: 'Include the protocol (http:// or https://)'
);
$this->writeToEnvironmentFile('APP_URL', $url);
try {
$this->writeToEnvironmentFile('APP_URL', $url);
info('✓ Application URL configured');
} catch (\Exception $e) {
error('Failed to save application URL: ' . $e->getMessage());
exit(1);
}
}
protected function createInstallationFile()
{
file_put_contents(storage_path($this->installationFile), json_encode($this->getInstallationPayload(), JSON_PRETTY_PRINT));
try {
$path = storage_path($this->installationFile);
$content = json_encode($this->getInstallationPayload(), JSON_PRETTY_PRINT);
if (file_put_contents($path, $content) === false) {
error('Failed to create installation file');
exit(1);
}
info('✓ Installation marker created');
} catch (\Exception $e) {
error('Error creating installation file: ' . $e->getMessage());
exit(1);
}
}
protected function linkStorage()
{
Artisan::call('storage:link');
// Create storage symlink
$publicPath = public_path('storage');
$storagePath = storage_path('app/public');
// Remove existing symlink if it exists
if (is_link($publicPath)) {
unlink($publicPath);
}
// Create new symlink
if (!file_exists($publicPath)) {
try {
symlink($storagePath, $publicPath);
info('✓ Storage symlink created');
} catch (\Exception $e) {
warning('Could not create storage symlink (may need manual creation)');
}
} else {
info('✓ Storage path already exists');
}
}
protected function createDatabaseCredentials(): bool
{
$storeCredentials = $this->confirm(
'Unable to connect to your database. Would you like to enter your credentials now?',
true
$storeCredentials = confirm(
label: 'Would you like to configure database credentials now?',
default: true
);
if (!$storeCredentials) {
return false;
}
$connection = $this->choice('Type', ['mysql', 'pgsql'], 0);
$connection = select(
label: 'Select database type',
options: [
'mysql' => 'MySQL / MariaDB',
'pgsql' => 'PostgreSQL'
],
default: 'mysql'
);
$defaultPort = $connection === 'mysql' ? '3306' : '5432';
$variables = [
'DB_CONNECTION' => $connection,
'DB_HOST' => $this->anticipate(
'Host',
['127.0.0.1', 'localhost'],
config("database.connections.{$connection}.host", '127.0.0.1')
'DB_HOST' => text(
label: 'Database host',
default: config("database.connections.{$connection}.host", '127.0.0.1'),
required: true,
hint: 'Usually 127.0.0.1 or localhost'
),
'DB_PORT' => $this->ask(
'Port',
config("database.connections.{$connection}.port", '3306')
'DB_PORT' => text(
label: 'Database port',
default: config("database.connections.{$connection}.port", $defaultPort),
required: true
),
'DB_DATABASE' => $this->ask(
'Database',
config("database.connections.{$connection}.database")
'DB_DATABASE' => text(
label: 'Database name',
default: config("database.connections.{$connection}.database", 'ploi_core'),
required: true
),
'DB_USERNAME' => $this->ask(
'Username',
config("database.connections.{$connection}.username")
'DB_USERNAME' => text(
label: 'Database username',
default: config("database.connections.{$connection}.username", 'root'),
required: true
),
'DB_PASSWORD' => $this->secret(
'Password',
config("database.connections.{$connection}.password")
),
'DB_PASSWORD' => password(
label: 'Database password',
hint: 'Leave empty if no password is set'
) ?: '',
];
$this->persistVariables($variables);
spin(
fn () => $this->persistVariables($variables),
'Saving database configuration...'
);
return true;
}
protected function checkCredentials()
{
do {
$ploiApiToken = $this->ask('Enter the Ploi API token', env('PLOI_TOKEN'));
} while (empty($ploiApiToken));
$ploiApiToken = text(
label: 'Enter your Ploi API token',
default: env('PLOI_TOKEN'),
required: true,
hint: 'You can find this in your Ploi account settings'
);
do {
$ploiCoreKey = $this->ask('Enter the Ploi Core key', env('PLOI_CORE_TOKEN'));
} while (empty($ploiCoreKey));
$this->company = $this->getCompany($ploiCoreKey, $ploiApiToken);
$this->company = spin(
fn () => $this->getCompany($ploiApiToken),
'Authenticating with Ploi API...'
);
if (!$this->company) {
$this->error('Could not authenticate with ploi.io, please retry by running this command again.');
error('Could not authenticate with ploi.io');
exit();
}
if (isset($this->company['error'])) {
$this->error($this->company['error']);
error($this->company['error']);
exit();
}
if ($this->company['user']['subscription'] !== 'unlimited') {
$this->error('Your subscription does not cover the usage of Ploi Core. Please upgrade your subscription to Unlimited.');
error('Your Ploi subscription does not support Ploi Core.');
warning('Please upgrade to the Unlimited plan at https://ploi.io');
exit();
}
info('✓ Successfully authenticated with Ploi');
$this->writeToEnvironmentFile('PLOI_TOKEN', $ploiApiToken);
$this->writeToEnvironmentFile('PLOI_CORE_TOKEN', $ploiCoreKey);
$name = $this->ask('What is the name of your company? (Press enter to keep the name here)', $this->company['name']);
$name = text(
label: 'What is the name of your company?',
default: $this->company['name'],
required: true
);
$this->writeToEnvironmentFile('APP_NAME', $name);
setting(['name' => $name]);
}
protected function runDatabaseMigrations()
{
$this->info('Running database migrations..');
$this->call('migrate', ['--force' => true]);
$this->info('Database migrations successful');
spin(
fn () => $this->call('migrate', ['--force' => true], $this->getOutput()),
'Running database migrations...'
);
info('✓ Database migrations completed');
}
protected function checkDatabaseConnection(): void
{
try {
DB::connection()->getPdo();
$this->info('Database connection successful.');
spin(
fn () => DB::connection()->getPdo(),
'Testing database connection...'
);
info('✓ Database connection successful');
} catch (Exception $e) {
warning('Unable to connect to database');
try {
if (!$this->createDatabaseCredentials()) {
$this->error('A database connection could not be established. Please update your configuration and try again.');
error('Database connection could not be established.');
$this->printDatabaseConfig();
exit();
}
} catch (RuntimeException $e) {
$this->error('Failed to persist environment configuration.');
error('Failed to persist environment configuration.');
exit();
}
@@ -344,14 +461,15 @@ class Install extends Command
{
$connection = config('database.default');
$this->line('');
$this->info('Database Configuration:');
$this->line("- Connection: {$connection}");
$this->line('- Host: ' . config("database.connections.{$connection}.host"));
$this->line('- Port: ' . config("database.connections.{$connection}.port"));
$this->line('- Database: ' . config("database.connections.{$connection}.database"));
$this->line('- Username: ' . config("database.connections.{$connection}.username"));
$this->line('- Password: ' . config("database.connections.{$connection}.password"));
note(
"Current Database Configuration:\n" .
" Connection: {$connection}\n" .
" Host: " . config("database.connections.{$connection}.host") . "\n" .
" Port: " . config("database.connections.{$connection}.port") . "\n" .
" Database: " . config("database.connections.{$connection}.database") . "\n" .
" Username: " . config("database.connections.{$connection}.username") . "\n" .
" Password: " . (config("database.connections.{$connection}.password") ? '***' : '(not set)')
);
}
protected function persistVariables(array $connectionData): void
@@ -407,8 +525,4 @@ class Install extends Command
$this->laravel['config'][$key] = $value;
}
protected function writeSeparationLine()
{
$this->info('*---------------------------------------------------------------------------*');
}
}

View File

@@ -45,7 +45,7 @@ class ViewSupportTicket extends Page
->success()
->send();
$livewire->redirect(SupportTicketResource::getUrl('view', ['record' => $livewire->getRecord()]));
$livewire->redirect(SupportTicketResource::getUrl('view', ['record' => $livewire->record]));
})
->visible(fn (self $livewire) => $livewire->record->status !== SupportTicket::STATUS_CLOSED)
->color('danger'),
@@ -60,7 +60,7 @@ class ViewSupportTicket extends Page
->success()
->send();
$livewire->redirect(SupportTicketResource::getUrl('view', ['record' => $livewire->getRecord()]));
$livewire->redirect(SupportTicketResource::getUrl('view', ['record' => $livewire->record]));
})
->visible(fn (self $livewire) => $livewire->record->status === SupportTicket::STATUS_CLOSED)
->color('primary'),

View File

@@ -38,7 +38,6 @@ class InstallationComplete
protected function isInstallationComplete()
{
return config('app.key') &&
config('services.ploi.token') &&
config('services.ploi.core-token');
config('services.ploi.token');
}
}

View File

@@ -23,8 +23,7 @@ class Ping implements ShouldQueue
$response = Http::withHeaders([
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Ploi-Core-Key' => config('services.ploi.core-token')
'Content-Type' => 'application/json'
])
->withToken(config('services.ploi.token'))
->post((new Ploi)->url . 'ping', [

View File

@@ -1,6 +1,6 @@
<?php
namespace Services\Ploi\Exceptions\Resource;
namespace App\Services\Ploi\Exceptions\Resource;
use Exception;

View File

@@ -1,13 +1,13 @@
<?php
namespace Services\Ploi\Exceptions\Resource\Server\Site;
namespace App\Services\Ploi\Exceptions\Resource\Server\Site;
use Exception;
/**
* Class DomainAlreadyExists
*
* @package Services\Ploi\Exceptions\Resource\Server\Site
* @package App\Services\Ploi\Exceptions\Resource\Server\Site
*/
class DomainAlreadyExists extends Exception
{

View File

@@ -23,11 +23,9 @@ class Ploi
private $apiToken;
private $apiCoreToken;
protected PendingRequest $client;
public function __construct(string $token = null, string $coreApiToken = null)
public function __construct(string $token = null)
{
$this->url = config('services.ploi-api.url');
@@ -35,13 +33,7 @@ class Ploi
$token = config('services.ploi.token');
}
if (!$coreApiToken) {
$coreApiToken = config('services.ploi.core-token');
}
$this->setApiToken($token);
$this->setCoreApiToken($coreApiToken);
$this->buildClient();
}
@@ -58,14 +50,6 @@ class Ploi
return $this;
}
public function setCoreApiToken($coreApiToken): self
{
// Set the token
$this->apiCoreToken = $coreApiToken;
return $this;
}
public function buildClient(): static
{
$this->client = Http::baseUrl($this->url)
@@ -73,7 +57,6 @@ class Ploi
'Authorization' => 'Bearer ' . $this->getApiToken(),
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Ploi-Core-Key' => $this->getCoreApiToken(),
]);
if (app()->isLocal()) {
@@ -88,11 +71,6 @@ class Ploi
return $this->apiToken;
}
public function getCoreApiToken(): string
{
return $this->apiCoreToken;
}
public function makeAPICall(string $url, string $method = 'get', array $options = []): Response
{
if (!in_array($method, ['get', 'post', 'patch', 'delete'])) {
@@ -134,7 +112,7 @@ class Ploi
return new Response($response);
}
public function server(int $id = null)
public function server(int $id = null): Server
{
return new Server($this, $id);
}

View File

@@ -5,7 +5,7 @@ namespace App\Services\Ploi\Resources;
use stdClass;
use App\Services\Ploi\Ploi;
use App\Services\Ploi\Exceptions\Http\NotValid;
use Services\Ploi\Exceptions\Resource\RequiresId;
use App\Services\Ploi\Exceptions\Resource\RequiresId;
class Server extends Resource
{

View File

@@ -5,8 +5,8 @@ namespace App\Services\Ploi\Resources;
use stdClass;
use Exception;
use App\Services\Ploi\Exceptions\Http\NotValid;
use Services\Ploi\Exceptions\Resource\RequiresId;
use Services\Ploi\Exceptions\Resource\Server\Site\DomainAlreadyExists;
use App\Services\Ploi\Exceptions\Resource\RequiresId;
use App\Services\Ploi\Exceptions\Resource\Server\Site\DomainAlreadyExists;
/**
* Class Site

View File

@@ -37,7 +37,7 @@
"require-dev": {
"barryvdh/laravel-debugbar": "^3.3",
"friendsofphp/php-cs-fixer": "^3.1.0",
"fzaninotto/faker": "^1.9.1",
"fakerphp/faker": "^1.23",
"laravel/dusk": "^8.0",
"mockery/mockery": "^1.3.1",
"nunomaduro/collision": "^8.1",

3041
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,6 @@ return [
'ploi' => [
'token' => env('PLOI_TOKEN'),
'core-token' => env('PLOI_CORE_TOKEN')
],
'ploi-api' => [

View File

@@ -6,6 +6,7 @@ use Closure;
use App\Models\User;
use App\Models\Package;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
use Illuminate\Database\Eloquent\Factories\Factory;
class UserFactory extends Factory
@@ -18,7 +19,7 @@ class UserFactory extends Factory
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'password' => 'password', // Will be hashed by the model's cast
'remember_token' => Str::random(10),
];
}

1747
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,15 +10,12 @@
"build": "vite build"
},
"devDependencies": {
"@inertiajs/vue3": "^2.0.0",
"@vitejs/plugin-vue": "^5.0.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@inertiajs/inertia": "^0.11.1",
"@inertiajs/inertia-vue3": "^0.6.0",
"@inertiajs/vue3": "^2.0.17",
"@rollup/plugin-commonjs": "^21.0",
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.10",
"@types/node": "^18.0.6",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/compat": "^3.5.13",
"@vue/compiler-sfc": "^3.5.13",
"autoprefixer": "^10.4.20",
@@ -26,7 +23,7 @@
"balloon-css": "^1.2.0",
"click-outside-vue3": "^4.0.1",
"cross-env": "^7.0.3",
"laravel-vite-plugin": "^1.1.1",
"laravel-vite-plugin": "^2.0.0",
"lodash": "^4.17.15",
"mitt": "^3.0.0",
"portal-vue": "^3.0.0",
@@ -37,7 +34,7 @@
"tailwindcss": "^3.4.17",
"tippy.js": "^6.3.7",
"v-click-outside": "^3.2.0",
"vite": "^6.0.3",
"vite": "^7.1.2",
"vue": "^3.5.13",
"vue-clipboard2": "^0.3.1",
"vue-loader": "^17.4.2",

View File

@@ -1,30 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true">
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<php>
<server name="APP_KEY" value="base64:cd+nQxEjQRq47wnOEkDUgLm9ejXMQgrwp7u4XoRZKso="/>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_MAILER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<server name="TELESCOPE_ENABLED" value="false"/>
<server name="PLOI_TOKEN" value="TEST" />
<server name="PLOI_CORE_TOKEN" value="TEST" />
</php>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.5/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true" cacheDirectory=".phpunit.cache">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<php>
<server name="APP_KEY" value="base64:cd+nQxEjQRq47wnOEkDUgLm9ejXMQgrwp7u4XoRZKso="/>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_MAILER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<server name="TELESCOPE_ENABLED" value="false"/>
<server name="PLOI_TOKEN" value="TEST"/>
</php>
<source>
<include>
<directory suffix=".php">./app</directory>
</include>
</source>
</phpunit>

View File

@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true">
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
@@ -12,12 +13,8 @@
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<server name="APP_KEY" value="base64:cd+nQxEjQRq47wnOEkDUgLm9ejXMQgrwp7u4XoRZKso="/>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
@@ -27,5 +24,7 @@
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<server name="TELESCOPE_ENABLED" value="false"/>
<server name="PLOI_TOKEN" value="TEST" />
<server name="PLOI_CORE_TOKEN" value="TEST" />
</php>
</phpunit>

View File

@@ -1,11 +1,11 @@
import TopBar from "./TopBar-DMfjE_VA.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-os4rmFxP.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,9 +1,9 @@
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode } from "./app-B3WRWW1p.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./notification-DO_TsGM0.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -44,9 +44,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => _cache[0] || (_cache[0] = [
createTextVNode("Page not found")
createTextVNode("Page not found", -1)
]), void 0, true),
_: 1
_: 1,
__: [0]
})
]),
_: 1
@@ -63,7 +64,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
])
], -1)
]), void 0, true),
_: 1
_: 1,
__: [1]
})
], void 0, true),
_: 1

View File

@@ -1,22 +1,22 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, h as withDirectives, v as vModelCheckbox, d as withModifiers, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, b as createBaseVNode, d as withModifiers, h as withDirectives, v as vModelCheckbox, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -256,9 +256,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: ($event) => $options.confirmDelete(alias)
}, {
default: withCtx(() => _cache[3] || (_cache[3] = [
createTextVNode("Delete ")
createTextVNode("Delete ", -1)
]), void 0, true),
_: 2
_: 2,
__: [3]
}, 1032, ["onClick"])
], void 0, true),
_: 2

View File

@@ -1,17 +1,17 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, e as createCommentVNode, b as createBaseVNode, h as withDirectives, v as vModelCheckbox } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, b as createBaseVNode, h as withDirectives, v as vModelCheckbox } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-jLMaTmmN.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import Tabs from "./Tabs-CLBkCKLq.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-D_esN5Tq.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import Tabs from "./Tabs-DAgXcUvw.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, b as createBaseVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconArrowDown, a as IconArrowUp } from "./IconArrowDown-D3spTZE1.js";
import { I as IconClose, M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, c as createElementBlock, e as createCommentVNode, d as withModifiers, f as createTextVNode, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { I as IconArrowUp, a as IconArrowDown } from "./IconArrowDown-BfVPofF4.js";
import { M as ModalContainer, a as Modal, I as IconClose } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, c as createElementBlock, f as createCommentVNode, d as withModifiers, g as createTextVNode, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./TabBar-BJF8ypca.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,15 +1,15 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconArrowDown, a as IconArrowUp } from "./IconArrowDown-D3spTZE1.js";
import { I as IconClose, M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { I as IconArrowUp, a as IconArrowDown } from "./IconArrowDown-BfVPofF4.js";
import { M as ModalContainer, a as Modal, I as IconClose } from "./ModalContainer-BJYjkZHR.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./Form-D6XcwqRO.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
import "./Form-Bg3Lzm8Q.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -85,7 +85,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, "How to setup Stripe for billing")
], -1)
]), void 0, true),
_: 1
_: 1,
__: [0]
})
], void 0, true),
_: 1

View File

@@ -1,4 +1,4 @@
import { o as openBlock, g as createBlock, w as withCtx, j as renderSlot, n as normalizeClass, m as resolveDynamicComponent } from "./app-B3WRWW1p.js";
import { e as createBlock, o as openBlock, w as withCtx, j as renderSlot, n as normalizeClass, l as resolveDynamicComponent } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const baseClasses = "items-center justify-center font-medium capitalize rounded select-none focus:outline-none";
const flexClasses = "flex w-full text-body";

View File

@@ -1,22 +1,22 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, c as createElementBlock, e as createCommentVNode, b as createBaseVNode, d as withModifiers, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, b as createBaseVNode, d as withModifiers, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -246,7 +246,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
createBaseVNode("option", { value: "letsencrypt" }, "Let's Encrypt certificate", -1),
createBaseVNode("option", { value: "custom" }, "Custom SSL certificate", -1)
]), void 0, true),
_: 1
_: 1,
__: [6]
}, 8, ["label", "modelValue"]),
createBaseVNode("div", null, [
$data.form.type === "letsencrypt" ? (openBlock(), createBlock(_component_FormInput, {
@@ -350,9 +351,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: ($event) => $options.confirmDelete(certificate)
}, {
default: withCtx(() => _cache[7] || (_cache[7] = [
createTextVNode("Delete ")
createTextVNode("Delete ", -1)
]), void 0, true),
_: 2
_: 2,
__: [7]
}, 1032, ["disabled", "onClick"])
], void 0, true),
_: 2

View File

@@ -1,15 +1,15 @@
import TopBar from "./TopBar-eC08ONVz.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-Bf0vddD4.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,8 +1,8 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, f as createTextVNode, g as createBlock } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, e as createBlock, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -100,9 +100,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[2] || (_cache[2] = [
createTextVNode(" Terms Of Service ")
createTextVNode(" Terms Of Service ", -1)
]), void 0, true),
_: 1
_: 1,
__: [2]
}, 8, ["href"])
])) : createCommentVNode("", true),
_ctx.$page.props.settings.has_privacy ? (openBlock(), createElementBlock("div", _hoisted_7, [
@@ -111,9 +112,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[3] || (_cache[3] = [
createTextVNode(" Privacy Policy ")
createTextVNode(" Privacy Policy ", -1)
]), void 0, true),
_: 1
_: 1,
__: [3]
}, 8, ["href"])
])) : createCommentVNode("", true)
])) : createCommentVNode("", true)

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, j as renderSlot, n as normalizeClass } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, j as renderSlot, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const baseClasses = "w-full px-4 sm:px-8 mx-auto";
const sizeClasses = {

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, h as withDirectives, z as vModelRadio, A as vShow, d as withModifiers, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, f as createCommentVNode, b as createBaseVNode, d as withModifiers, h as withDirectives, t as toDisplayString, z as vModelRadio, A as vShow, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./TabBar-BJF8ypca.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -209,9 +209,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => _cache[9] || (_cache[9] = [
createTextVNode("Cronjobs")
createTextVNode("Cronjobs", -1)
]), void 0, true),
_: 1
_: 1,
__: [9]
})
]),
_: 1

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, d as withModifiers, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, f as createCommentVNode, b as createBaseVNode, d as withModifiers, t as toDisplayString, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
metaInfo() {
return {
@@ -186,9 +186,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => _cache[4] || (_cache[4] = [
createTextVNode("Databases")
createTextVNode("Databases", -1)
]), void 0, true),
_: 1
_: 1,
__: [4]
})
]),
_: 1

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, d as withModifiers, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, c as createElementBlock, b as createBaseVNode, d as withModifiers, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./TabBar-BJF8ypca.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -242,7 +242,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
})
], -1),
createTextVNode(" Loading records.. ")
createTextVNode(" Loading records.. ", -1)
]))) : createCommentVNode("", true),
$data.records.length ? (openBlock(), createBlock(_component_SettingsSegment, { key: 2 }, {
title: withCtx(() => [
@@ -302,9 +302,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
size: "sm"
}, {
default: withCtx(() => _cache[4] || (_cache[4] = [
createTextVNode("Delete")
createTextVNode("Delete", -1)
]), void 0, true),
_: 2
_: 2,
__: [4]
}, 1032, ["onClick"])
], void 0, true),
_: 2

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, j as renderSlot } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, j as renderSlot } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$1 = {};
const _hoisted_1 = {

View File

@@ -1,9 +1,9 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {};
const _hoisted_1 = {

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, j as renderSlot, n as normalizeClass, d as withModifiers } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, j as renderSlot, n as normalizeClass, d as withModifiers } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$1 = {
props: {

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, j as renderSlot, n as normalizeClass, b as createBaseVNode, r as resolveComponent, g as createBlock, w as withCtx, f as createTextVNode, t as toDisplayString, e as createCommentVNode, a as createVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, j as renderSlot, n as normalizeClass, b as createBaseVNode, r as resolveComponent, e as createBlock, w as withCtx, f as createCommentVNode, g as createTextVNode, t as toDisplayString, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$6 = {};
const _hoisted_1$6 = { class: "flex flex-col space-y-1" };

View File

@@ -1,5 +1,5 @@
import { a as FormGroup, L as Label, E as ErrorText, H as HelperText } from "./FormInput-Ba17K5sb.js";
import { r as resolveComponent, o as openBlock, g as createBlock, w as withCtx, f as createTextVNode, t as toDisplayString, e as createCommentVNode, b as createBaseVNode, j as renderSlot, n as normalizeClass } from "./app-B3WRWW1p.js";
import { H as HelperText, E as ErrorText, L as Label, a as FormGroup } from "./FormInput-43oIPTin.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, f as createCommentVNode, b as createBaseVNode, g as createTextVNode, t as toDisplayString, n as normalizeClass, j as renderSlot } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const defaultClasses = "w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main = {

View File

@@ -1,5 +1,5 @@
import { a as FormGroup, L as Label, E as ErrorText, H as HelperText } from "./FormInput-Ba17K5sb.js";
import { r as resolveComponent, o as openBlock, g as createBlock, w as withCtx, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, n as normalizeClass, e as createCommentVNode } from "./app-B3WRWW1p.js";
import { H as HelperText, E as ErrorText, L as Label, a as FormGroup } from "./FormInput-43oIPTin.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, f as createCommentVNode, g as createTextVNode, t as toDisplayString, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const defaultClasses = "w-full border-medium-emphasis text-body px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main = {

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$1 = {};
const _hoisted_1$1 = {
@@ -37,6 +37,6 @@ function _sfc_render(_ctx, _cache) {
}
const IconArrowDown = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
IconArrowDown as I,
IconArrowUp as a
IconArrowUp as I,
IconArrowDown as a
};

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$2 = {};
const _hoisted_1$2 = {
@@ -57,7 +57,7 @@ function _sfc_render(_ctx, _cache) {
}
const IconStorage = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
IconBox as I,
IconStorage as I,
IconGlobe as a,
IconStorage as b
IconBox as b
};

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-jLMaTmmN.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import Tabs from "./Tabs-CLBkCKLq.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-D_esN5Tq.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import Tabs from "./Tabs-DAgXcUvw.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,19 +1,19 @@
import TopBar from "./TopBar-C2EIvggU.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar-BMRGx-zJ.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton-DC8OumHs.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, c as createElementBlock, i as renderList, F as Fragment, e as createCommentVNode, l as createSlots } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CBAi3WdO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { D as DropdownListItem, c as DropdownList, d as Dropdown, I as IconButton } from "./TabBar-BJF8ypca.js";
import { D as DropdownListItemButton, I as IconMore } from "./DropdownListItemButton-xSGjrdxi.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, f as createCommentVNode, b as createBaseVNode, t as toDisplayString, c as createElementBlock, F as Fragment, i as renderList, g as createTextVNode, k as createSlots } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./notification-DO_TsGM0.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -386,9 +386,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
to: _ctx.route("servers.show", server.id)
}, {
default: withCtx(() => _cache[7] || (_cache[7] = [
createTextVNode("View")
createTextVNode("View", -1)
]), void 0, true),
_: 2
_: 2,
__: [7]
}, 1032, ["to"]),
_ctx.can("servers", "delete") ? (openBlock(), createBlock(_component_DropdownListItemButton, {
key: 0,
@@ -396,9 +397,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: ($event) => $options.confirmDelete(server)
}, {
default: withCtx(() => _cache[8] || (_cache[8] = [
createTextVNode(" Delete ")
createTextVNode(" Delete ", -1)
]), void 0, true),
_: 2
_: 2,
__: [8]
}, 1032, ["onClick"])) : createCommentVNode("", true)
], void 0, true),
_: 2

View File

@@ -1,16 +1,16 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, c as createElementBlock, i as renderList, F as Fragment, f as createTextVNode, d as withModifiers } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, d as withModifiers, c as createElementBlock, F as Fragment, i as renderList, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -130,7 +130,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
createBaseVNode("option", { value: "pt" }, "Portuguese", -1),
createBaseVNode("option", { value: "zh" }, "Chinese", -1)
]), void 0, true),
_: 1
_: 1,
__: [8]
}, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("Address"),

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar-BMRGx-zJ.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton-DC8OumHs.js";
import { o as openBlock, c as createElementBlock, b as createBaseVNode, r as resolveComponent, g as createBlock, w as withCtx, a as createVNode, t as toDisplayString, f as createTextVNode, i as renderList, F as Fragment, e as createCommentVNode, l as createSlots } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { D as DropdownListItem, c as DropdownList, d as Dropdown, I as IconButton } from "./TabBar-BJF8ypca.js";
import { D as DropdownListItemButton, I as IconMore } from "./DropdownListItemButton-xSGjrdxi.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, r as resolveComponent, e as createBlock, w as withCtx, a as createVNode, f as createCommentVNode, t as toDisplayString, F as Fragment, i as renderList, g as createTextVNode, k as createSlots } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import "./notification-DO_TsGM0.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import "./notification-CGGsF_L-.js";
const _sfc_main$1 = {};
const _hoisted_1$1 = {
xmlns: "http://www.w3.org/2000/svg",

View File

@@ -1,17 +1,17 @@
import TopBar from "./TopBar-eC08ONVz.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-Bf0vddD4.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createCommentVNode, g as createTextVNode, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,12 +1,12 @@
import TopBar from "./TopBar-DMfjE_VA.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, n as normalizeClass, c as createElementBlock, e as createCommentVNode, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-os4rmFxP.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode, n as normalizeClass, c as createElementBlock, f as createCommentVNode, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./TabBar-BJF8ypca.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,8 +1,8 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -41,7 +41,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, "View Ploi Core Documentation")
], -1)
]), void 0, true),
_: 1
_: 1,
__: [0]
})
])
], 64);

View File

@@ -1,18 +1,18 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, e as createCommentVNode, f as createTextVNode, d as withModifiers, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createCommentVNode, d as withModifiers, g as createTextVNode, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,8 +1,8 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, f as createTextVNode, g as createBlock } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, e as createBlock, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -139,9 +139,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
block: ""
}, {
default: withCtx(() => _cache[3] || (_cache[3] = [
createTextVNode("Register ")
createTextVNode("Register ", -1)
]), void 0, true),
_: 1
_: 1,
__: [3]
}, 8, ["href", "disabled"])) : createCommentVNode("", true)
]),
_ctx.$page.props.settings.has_terms ? (openBlock(), createBlock(_component_TextDivider, {
@@ -155,9 +156,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[4] || (_cache[4] = [
createTextVNode(" Terms Of Service ")
createTextVNode(" Terms Of Service ", -1)
]), void 0, true),
_: 1
_: 1,
__: [4]
}, 8, ["href"])
])) : createCommentVNode("", true),
_ctx.$page.props.settings.has_privacy ? (openBlock(), createElementBlock("div", _hoisted_8, [
@@ -166,9 +168,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[5] || (_cache[5] = [
createTextVNode(" Privacy Policy ")
createTextVNode(" Privacy Policy ", -1)
]), void 0, true),
_: 1
_: 1,
__: [5]
}, 8, ["href"])
])) : createCommentVNode("", true)
])) : createCommentVNode("", true)

View File

@@ -1,6 +1,6 @@
import { o as openBlock, c as createElementBlock, j as renderSlot, b as createBaseVNode, e as createCommentVNode, n as normalizeClass, t as toDisplayString, p as resolveDirective, h as withDirectives, q as vModelText, a as createVNode, w as withCtx, F as Fragment, i as renderList, T as Transition, r as resolveComponent, g as createBlock, f as createTextVNode, u as TransitionGroup } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, j as renderSlot, b as createBaseVNode, f as createCommentVNode, n as normalizeClass, t as toDisplayString, m as resolveDirective, h as withDirectives, a as createVNode, p as vModelText, w as withCtx, F as Fragment, i as renderList, T as Transition, r as resolveComponent, e as createBlock, g as createTextVNode, q as TransitionGroup } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
const _sfc_main$g = {};
const _hoisted_1$g = {
id: "main",
@@ -683,13 +683,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const MainLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Content as C,
List as L,
ListItem as L,
MainLayout as M,
NotificationBadge as N,
Page as P,
PageBody as P,
StatusBubble as S,
PageHeader as a,
List as a,
PageHeaderTitle as b,
PageBody as c,
ListItem as d
PageHeader as c,
Page as d
};

View File

@@ -1,6 +1,6 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, r as resolveComponent, p as resolveDirective, h as withDirectives, a as createVNode, w as withCtx, j as renderSlot, T as Transition } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, r as resolveComponent, m as resolveDirective, h as withDirectives, a as createVNode, w as withCtx, j as renderSlot, T as Transition } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import { F as FormActions, a as Form } from "./Form-D6XcwqRO.js";
import { a as Form, F as FormActions } from "./Form-Bg3Lzm8Q.js";
const _sfc_main$2 = {};
const _hoisted_1$2 = {
width: "1em",
@@ -93,6 +93,6 @@ function _sfc_render(_ctx, _cache) {
const ModalContainer = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
IconClose as I,
Modal as M,
ModalContainer as a
ModalContainer as M,
Modal as a
};

View File

@@ -1,4 +1,4 @@
import { r as resolveComponent, o as openBlock, c as createElementBlock, F as Fragment, i as renderList, n as normalizeClass, g as createBlock, e as createCommentVNode } from "./app-B3WRWW1p.js";
import { r as resolveComponent, c as createElementBlock, f as createCommentVNode, o as openBlock, F as Fragment, i as renderList, e as createBlock, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,9 +1,9 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {

View File

@@ -1,8 +1,8 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -57,9 +57,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[1] || (_cache[1] = [
createTextVNode("Back to login")
createTextVNode("Back to login", -1)
]), void 0, true),
_: 1
_: 1,
__: [1]
}, 8, ["href"])
])
]),

View File

@@ -1,21 +1,21 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, d as withModifiers, e as createCommentVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, b as createBaseVNode, d as withModifiers, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,9 +1,9 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput, E as ErrorText } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, h as withDirectives, v as vModelCheckbox, g as createBlock, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { E as ErrorText, F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, f as createCommentVNode, e as createBlock, h as withDirectives, v as vModelCheckbox, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -174,9 +174,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[6] || (_cache[6] = [
createTextVNode(" Terms Of Service ")
createTextVNode(" Terms Of Service ", -1)
]), void 0, true),
_: 1
_: 1,
__: [6]
}, 8, ["href"])
])) : createCommentVNode("", true),
_ctx.$page.props.settings.has_privacy ? (openBlock(), createElementBlock("div", _hoisted_10, [
@@ -185,9 +186,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[7] || (_cache[7] = [
createTextVNode(" Privacy Policy ")
createTextVNode(" Privacy Policy ", -1)
]), void 0, true),
_: 1
_: 1,
__: [7]
}, 8, ["href"])
])) : createCommentVNode("", true)
])) : createCommentVNode("", true)

View File

@@ -1,9 +1,9 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, d as withModifiers, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, d as withModifiers, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {

View File

@@ -1,18 +1,18 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import TwoFactorAuthentication from "./TwoFactorAuthentication-BSwESyp9.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, d as withModifiers } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import TwoFactorAuthentication from "./TwoFactorAuthentication-MRyf2N4m.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, d as withModifiers, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,23 +1,23 @@
import TopBar from "./TopBar-C2EIvggU.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar-BMRGx-zJ.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton-DC8OumHs.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import Tabs from "./Tabs-m_asZ-07.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, d as withModifiers, e as createCommentVNode } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CBAi3WdO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { D as DropdownListItem, c as DropdownList, d as Dropdown, I as IconButton } from "./TabBar-BJF8ypca.js";
import { D as DropdownListItemButton, I as IconMore } from "./DropdownListItemButton-xSGjrdxi.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import Tabs from "./Tabs-BoQ1P4Nd.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode, f as createCommentVNode, d as withModifiers } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./notification-DO_TsGM0.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,17 +1,17 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, d as withModifiers, c as createElementBlock, i as renderList, e as createCommentVNode, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, f as createCommentVNode, b as createBaseVNode, d as withModifiers, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,17 +1,17 @@
import TopBar from "./TopBar-CQGSZ3ic.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormSelect } from "./FormSelect-B4QT7InA.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { u as useConfirm } from "./confirm-CaIBzXRg.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, h as withDirectives, v as vModelCheckbox, f as createTextVNode, d as withModifiers } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-DRxYbtNm.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormSelect } from "./FormSelect-B_MULTc4.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { u as useConfirm } from "./confirm-Dthsy5hS.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, d as withModifiers, h as withDirectives, v as vModelCheckbox, g as createTextVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {
@@ -180,7 +180,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
_: 1
})
], void 0, true),
_: 1
_: 1,
__: [5]
})
], void 0, true),
_: 1

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, j as renderSlot, e as createCommentVNode, b as createBaseVNode, n as normalizeClass } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, f as createCommentVNode, b as createBaseVNode, j as renderSlot, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, j as renderSlot } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, j as renderSlot } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {};
const _hoisted_1 = { class: "px-8 pb-8 space-y-6 border rounded border-low-emphasis" };

View File

@@ -1,20 +1,20 @@
import TopBar from "./TopBar-jLMaTmmN.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import Tabs from "./Tabs-CLBkCKLq.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, f as createTextVNode, t as toDisplayString, b as createBaseVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-D_esN5Tq.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import Tabs from "./Tabs-DAgXcUvw.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, g as createTextVNode, t as toDisplayString, b as createBaseVNode, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,16 +1,16 @@
import TopBar from "./TopBar-eC08ONVz.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormTextarea } from "./FormTextarea-CoHNo51Q.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, f as createTextVNode, c as createElementBlock, i as renderList, F as Fragment, d as withModifiers, e as createCommentVNode } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-Bf0vddD4.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormTextarea } from "./FormTextarea-C9J5JfuY.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, g as createTextVNode, c as createElementBlock, f as createCommentVNode, F as Fragment, i as renderList, d as withModifiers } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./notification-DO_TsGM0.js";
import "./TabBar-BJF8ypca.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,18 +1,18 @@
import TopBar from "./TopBar-BBFAS78u.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { a as Form, F as FormActions } from "./Form-D6XcwqRO.js";
import { u as useNotification } from "./notification-DO_TsGM0.js";
import Tabs from "./Tabs-Cw5fne8N.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { o as openBlock, c as createElementBlock, r as resolveComponent, g as createBlock, w as withCtx, a as createVNode, f as createTextVNode, t as toDisplayString, e as createCommentVNode, b as createBaseVNode, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CUXW22BO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions, a as Form } from "./Form-Bg3Lzm8Q.js";
import { u as useNotification } from "./notification-CGGsF_L-.js";
import Tabs from "./Tabs-BBqf8oUX.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { c as createElementBlock, o as openBlock, r as resolveComponent, e as createBlock, w as withCtx, a as createVNode, f as createCommentVNode, t as toDisplayString, g as createTextVNode, b as createBaseVNode, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./TabBar-BMRGx-zJ.js";
import "./TabBar-BJF8ypca.js";
const _sfc_main$1 = {
data() {
return {

View File

@@ -1,22 +1,22 @@
import TopBar from "./TopBar-C2EIvggU.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout-DReGBPB0.js";
import { B as Button } from "./Button-BO2x471h.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage-BotArA_2.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar-BMRGx-zJ.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton-DC8OumHs.js";
import { E as EmptyImage } from "./EmptyImage-8SPPFzqc.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer-D6rkW7eZ.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { F as FormActions } from "./Form-D6XcwqRO.js";
import { S as SettingsLayout } from "./SettingsLayout-D-ORM2ur.js";
import { S as SettingsSegment } from "./SettingsSegment-LAboZsPZ.js";
import { P as Pagination } from "./Pagination-DTT3WkW6.js";
import Tabs from "./Tabs-m_asZ-07.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData-CGbrjHeP.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, l as createSlots, f as createTextVNode, c as createElementBlock, i as renderList, F as Fragment } from "./app-B3WRWW1p.js";
import TopBar from "./TopBar-CBAi3WdO.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { N as NotificationBadge, S as StatusBubble, L as ListItem, a as List, P as PageBody, b as PageHeaderTitle, c as PageHeader, d as Page, C as Content, M as MainLayout } from "./MainLayout-BaHappCa.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { I as IconStorage, a as IconGlobe, b as IconBox } from "./IconStorage-B8gRbWgP.js";
import { D as DropdownListItem, c as DropdownList, d as Dropdown, I as IconButton } from "./TabBar-BJF8ypca.js";
import { D as DropdownListItemButton, I as IconMore } from "./DropdownListItemButton-xSGjrdxi.js";
import { E as EmptyImage } from "./EmptyImage-DSOs8pi0.js";
import { M as ModalContainer, a as Modal } from "./ModalContainer-BJYjkZHR.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { F as FormActions } from "./Form-Bg3Lzm8Q.js";
import { S as SettingsLayout } from "./SettingsLayout-DxGPRVqx.js";
import { S as SettingsSegment } from "./SettingsSegment-DAvKglpz.js";
import { P as Pagination } from "./Pagination-BxkKPX-y.js";
import Tabs from "./Tabs-BoQ1P4Nd.js";
import { T as TableData, a as TableBody, b as TableRow, c as TableHeader, d as TableHead, e as Table } from "./TableData-BL85fwH0.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode, b as createBaseVNode, t as toDisplayString, k as createSlots, g as createTextVNode, c as createElementBlock, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./notification-DO_TsGM0.js";
import "./notification-CGGsF_L-.js";
const _sfc_main = {
layout: MainLayout,
components: {

View File

@@ -1,5 +1,5 @@
import { C as Container } from "./Container-j8zTIzpm.js";
import { o as openBlock, c as createElementBlock, j as renderSlot, x as normalizeProps, y as guardReactiveProps, n as normalizeClass, r as resolveComponent, a as createVNode, w as withCtx, b as createBaseVNode, e as createCommentVNode, g as createBlock, t as toDisplayString, f as createTextVNode, F as Fragment, i as renderList } from "./app-B3WRWW1p.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { c as createElementBlock, o as openBlock, j as renderSlot, u as normalizeProps, x as guardReactiveProps, n as normalizeClass, y as link_default, r as resolveComponent, a as createVNode, w as withCtx, b as createBaseVNode, f as createCommentVNode, e as createBlock, t as toDisplayString, g as createTextVNode, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$c = {
data: () => ({
@@ -81,6 +81,9 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
}
const DropdownList = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b]]);
const _sfc_main$a = {
components: {
Link: link_default
},
props: {
to: {
type: String,
@@ -105,10 +108,10 @@ const _hoisted_2$2 = { key: 0 };
const _hoisted_3$1 = { key: 1 };
const _hoisted_4$1 = ["href"];
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
const _component_inertia_link = resolveComponent("inertia-link");
const _component_Link = resolveComponent("Link");
return openBlock(), createElementBlock("div", _hoisted_1$7, [
$props.componentIsInertiaLink ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
createVNode(_component_inertia_link, {
createVNode(_component_Link, {
as: $props.componentIs,
href: $props.to,
method: $props.method,
@@ -531,11 +534,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Breadcrumbs as B,
Dropdown as D,
DropdownListItem as D,
IconButton as I,
TopBar as T,
TopBarTabBarContainer as T,
TabBar as a,
TopBarTabBarContainer as b,
TopBar as b,
DropdownList as c,
DropdownListItem as d
Dropdown as d
};

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, j as renderSlot, n as normalizeClass } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, j as renderSlot, t as toDisplayString, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main$5 = {
props: {
@@ -63,10 +63,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}
const TableData = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Table as T,
TableHead as a,
TableHeader as b,
TableRow as c,
TableBody as d,
TableData as e
TableData as T,
TableBody as a,
TableRow as b,
TableHeader as c,
TableHead as d,
Table as e
};

View File

@@ -1,4 +1,4 @@
import { c as createElementBlock, F as Fragment, i as renderList, o as openBlock, g as createBlock, w as withCtx, f as createTextVNode, t as toDisplayString, n as normalizeClass, m as resolveDynamicComponent, e as createCommentVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, F as Fragment, i as renderList, e as createBlock, f as createCommentVNode, w as withCtx, g as createTextVNode, t as toDisplayString, n as normalizeClass, l as resolveDynamicComponent } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,4 +1,4 @@
import { c as createElementBlock, F as Fragment, i as renderList, o as openBlock, g as createBlock, w as withCtx, f as createTextVNode, t as toDisplayString, n as normalizeClass, m as resolveDynamicComponent, e as createCommentVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, F as Fragment, i as renderList, e as createBlock, f as createCommentVNode, w as withCtx, g as createTextVNode, t as toDisplayString, n as normalizeClass, l as resolveDynamicComponent } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,4 +1,4 @@
import { r as resolveComponent, c as createElementBlock, F as Fragment, i as renderList, o as openBlock, a as createVNode, w as withCtx, f as createTextVNode, t as toDisplayString, n as normalizeClass } from "./app-B3WRWW1p.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, F as Fragment, i as renderList, a as createVNode, w as withCtx, g as createTextVNode, t as toDisplayString, n as normalizeClass } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,8 +1,8 @@
import { T as TextDivider } from "./TextDivider-B-8gwSCW.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
import { B as Button } from "./Button-BO2x471h.js";
import { C as Container } from "./Container-j8zTIzpm.js";
import { r as resolveComponent, c as createElementBlock, a as createVNode, w as withCtx, b as createBaseVNode, F as Fragment, o as openBlock, t as toDisplayString, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { T as TextDivider } from "./TextDivider-9k7Ruy3O.js";
import { F as FormInput } from "./FormInput-43oIPTin.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { C as Container } from "./Container-puWPPyw6.js";
import { r as resolveComponent, c as createElementBlock, o as openBlock, a as createVNode, b as createBaseVNode, w as withCtx, t as toDisplayString, f as createCommentVNode, g as createTextVNode, F as Fragment } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
components: {
@@ -57,9 +57,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
class: "text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => _cache[1] || (_cache[1] = [
createTextVNode("Back to login")
createTextVNode("Back to login", -1)
]), void 0, true),
_: 1
_: 1,
__: [1]
}, 8, ["href"])
])
]),

View File

@@ -1,4 +1,4 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, j as renderSlot, e as createCommentVNode } from "./app-B3WRWW1p.js";
import { c as createElementBlock, o as openBlock, b as createBaseVNode, f as createCommentVNode, j as renderSlot } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
const _sfc_main = {
props: {

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,7 +1,7 @@
import { T as TopBar$1, B as Breadcrumbs, a as TabBar, b as TopBarTabBarContainer } from "./TabBar-BMRGx-zJ.js";
import { r as resolveComponent, g as createBlock, w as withCtx, o as openBlock, a as createVNode } from "./app-B3WRWW1p.js";
import { T as TopBarTabBarContainer, a as TabBar, B as Breadcrumbs, b as TopBar$1 } from "./TabBar-BJF8ypca.js";
import { r as resolveComponent, e as createBlock, o as openBlock, w as withCtx, a as createVNode } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import "./Container-j8zTIzpm.js";
import "./Container-puWPPyw6.js";
const _sfc_main = {
components: {
TopBar: TopBar$1,

View File

@@ -1,8 +1,7 @@
import { k as requireDist, o as openBlock, c as createElementBlock, n as normalizeClass, r as resolveComponent, b as createBaseVNode, a as createVNode, w as withCtx, d as withModifiers, t as toDisplayString, F as Fragment, i as renderList, e as createCommentVNode, f as createTextVNode } from "./app-B3WRWW1p.js";
import { B as Button } from "./Button-BO2x471h.js";
import { B as Button } from "./Button-BYc82Y1k.js";
import { c as createElementBlock, o as openBlock, n as normalizeClass, r as resolveComponent, b as createBaseVNode, a as createVNode, w as withCtx, g as createTextVNode, t as toDisplayString, d as withModifiers, f as createCommentVNode, F as Fragment, i as renderList } from "./app-B9WIo_5_.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
import { F as FormInput } from "./FormInput-Ba17K5sb.js";
var distExports = requireDist();
import { F as FormInput } from "./FormInput-43oIPTin.js";
const defaultClasses = "w-full border-medium-emphasis text-body h-10 max-w-lg px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main$1 = {
props: {
@@ -59,22 +58,22 @@ const _sfc_main = {
},
methods: {
enable2FA() {
distExports.Inertia.put(this.route("profile.security.two-factor-authentication.create"));
this.$inertia.put(this.route("profile.security.two-factor-authentication.create"));
},
confirm2FA() {
distExports.Inertia.patch(this.route("profile.security.two-factor-authentication.confirm"), this.form, {
this.$inertia.patch(this.route("profile.security.two-factor-authentication.confirm"), this.form, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
},
regenerateRecoveryCodes() {
distExports.Inertia.patch(this.route("profile.security.two-factor-authentication.regenerate-recovery-codes"), {}, {
this.$inertia.patch(this.route("profile.security.two-factor-authentication.regenerate-recovery-codes"), {}, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
},
disable2FA() {
distExports.Inertia.delete(this.route("profile.security.two-factor-authentication.destroy"), {}, {
this.$inertia.delete(this.route("profile.security.two-factor-authentication.destroy"), {}, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});

File diff suppressed because one or more lines are too long

View File

@@ -2593,9 +2593,7 @@ select {
}
.transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
@@ -2690,13 +2688,11 @@ select {
}
.bf-blur {
-webkit-backdrop-filter: blur(2px) saturate(125%);
backdrop-filter: blur(2px) saturate(125%);
backdrop-filter: blur(2px) saturate(125%);
}
.bf-blur-high {
-webkit-backdrop-filter: blur(15px) saturate(125%);
backdrop-filter: blur(15px) saturate(125%);
backdrop-filter: blur(15px) saturate(125%);
}
.text-gradient {

View File

@@ -1,4 +1,4 @@
import { s as store } from "./app-B3WRWW1p.js";
import { s as store } from "./app-B9WIo_5_.js";
function useConfirm({ title, message, onConfirm, variant }) {
return store.dispatch("confirm/open", {
title,

View File

@@ -1,4 +1,4 @@
import { s as store } from "./app-B3WRWW1p.js";
import { s as store } from "./app-B9WIo_5_.js";
function useNotification({ title, message, variant, timeout }) {
return store.dispatch("notification/notify", {
title,

View File

@@ -2970,8 +2970,8 @@ select {
.bg-white\/0 {
background-color: rgb(255 255 255 / 0);
}
.bg-white\/5 {
background-color: rgb(255 255 255 / 0.05);
.bg-white\/10 {
background-color: rgb(255 255 255 / 0.1);
}
.\!bg-none {
background-image: none !important;
@@ -3469,9 +3469,7 @@ select {
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
@@ -3732,6 +3730,9 @@ select {
--tw-ring-opacity: 1;
--tw-ring-color: rgba(var(--primary-600), var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-offset-1:focus-visible {
--tw-ring-offset-width: 1px;
}
.enabled\:cursor-wait:enabled {
cursor: wait;
}
@@ -4111,6 +4112,9 @@ select {
--tw-ring-opacity: 1;
--tw-ring-color: rgba(var(--primary-500), var(--tw-ring-opacity, 1));
}
.dark\:focus-visible\:ring-offset-gray-900:focus-visible:is(.dark *) {
--tw-ring-offset-color: rgba(var(--gray-900), 1);
}
.dark\:disabled\:bg-transparent:disabled:is(.dark *) {
background-color: transparent;
}
@@ -4622,9 +4626,7 @@ select {
}
.lg\:transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
@@ -4949,9 +4951,7 @@ select {
@media(hover:hover) {
.\[\@media\(hover\:hover\)\]\:transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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