refactor: remove deprecated code for v0.0.1 release
- Remove deprecated device chrome properties and methods from Editor - Remove deprecated ConfigResolver::bootKeys() and lazy load instead - Remove deprecated ConfigValue::find() method - Remove deprecated StorageOffload::getHumanSizeAttribute() accessor - Clean up API controllers (already using resolveWorkspace trait) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
65dd9af950
commit
c8dfc2a8a9
9 changed files with 25 additions and 224 deletions
|
|
@ -157,14 +157,4 @@ class StorageOffload extends Model
|
||||||
|
|
||||||
return round($bytes / (1024 ** $power), 2).' '.$units[$power];
|
return round($bytes / (1024 ** $power), 2).' '.$units[$power];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Legacy attribute name alias.
|
|
||||||
*
|
|
||||||
* @deprecated Use file_size_human instead
|
|
||||||
*/
|
|
||||||
public function getHumanSizeAttribute(): string
|
|
||||||
{
|
|
||||||
return $this->file_size_human;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,14 +67,7 @@ class Boot extends ServiceProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
// Boot key registry after app is ready (deferred to avoid DB during boot)
|
// Boot key registry after app is ready (deferred to avoid DB during boot)
|
||||||
$this->app->booted(function () {
|
// Config resolver now uses lazy loading - no boot-time initialization needed
|
||||||
// Skip during migrations, seeding, or when DB isn't ready
|
|
||||||
if ($this->app->runningInConsole() && $this->isDbUnavailable()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigResolver::bootKeys();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -129,16 +129,6 @@ class ConfigResolver
|
||||||
static::$loaded = true;
|
static::$loaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* No-op for backward compatibility with Boot.php.
|
|
||||||
*
|
|
||||||
* @deprecated Remove call from Boot.php
|
|
||||||
*/
|
|
||||||
public static function bootKeys(): void
|
|
||||||
{
|
|
||||||
// No-op
|
|
||||||
}
|
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// RESOLUTION ENGINE (only runs during lazy prime, not normal reads)
|
// RESOLUTION ENGINE (only runs during lazy prime, not normal reads)
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
|
||||||
|
|
@ -123,16 +123,6 @@ class ConfigValue extends Model
|
||||||
->first();
|
->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Find value for a profile and key (legacy - no channel).
|
|
||||||
*
|
|
||||||
* @deprecated Use findValue() with explicit channel
|
|
||||||
*/
|
|
||||||
public static function find(int $profileId, int $keyId): ?self
|
|
||||||
{
|
|
||||||
return static::findValue($profileId, $keyId, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set or update a value.
|
* Set or update a value.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function summary(Request $request, Page $biolink): AnalyticsResource|JsonResponse
|
public function summary(Request $request, Page $biolink): AnalyticsResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -90,7 +90,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function clicks(Request $request, Page $biolink): JsonResponse
|
public function clicks(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -130,7 +130,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function geo(Request $request, Page $biolink): JsonResponse
|
public function geo(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -171,7 +171,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function devices(Request $request, Page $biolink): JsonResponse
|
public function devices(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -217,7 +217,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function referrers(Request $request, Page $biolink): JsonResponse
|
public function referrers(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -258,7 +258,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function utm(Request $request, Page $biolink): JsonResponse
|
public function utm(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -303,7 +303,7 @@ class AnalyticsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function blocks(Request $request, Page $biolink): JsonResponse
|
public function blocks(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -353,16 +353,4 @@ class AnalyticsController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current user's workspace.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Get the current user's workspace.
|
|
||||||
*
|
|
||||||
* @deprecated Use resolveWorkspace() from ResolvesWorkspace trait
|
|
||||||
*/
|
|
||||||
protected function getWorkspace(Request $request): ?Workspace
|
|
||||||
{
|
|
||||||
return $this->resolveWorkspace($request);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index(Request $request, Page $biolink): AnonymousResourceCollection|JsonResponse
|
public function index(Request $request, Page $biolink): AnonymousResourceCollection|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -60,7 +60,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function store(StoreBlockRequest $request, Page $biolink): BlockResource|JsonResponse
|
public function store(StoreBlockRequest $request, Page $biolink): BlockResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -105,7 +105,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function show(Request $request, Block $block): BlockResource|JsonResponse
|
public function show(Request $request, Block $block): BlockResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -126,7 +126,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function update(UpdateBlockRequest $request, Block $block): BlockResource|JsonResponse
|
public function update(UpdateBlockRequest $request, Block $block): BlockResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -151,7 +151,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy(Request $request, Block $block): JsonResponse
|
public function destroy(Request $request, Block $block): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -182,7 +182,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function reorder(ReorderBlocksRequest $request, Page $biolink): JsonResponse
|
public function reorder(ReorderBlocksRequest $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -221,7 +221,7 @@ class BlockController extends Controller
|
||||||
*/
|
*/
|
||||||
public function duplicate(Request $request, Page $biolink, Block $block): BlockResource|JsonResponse
|
public function duplicate(Request $request, Page $biolink, Block $block): BlockResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -249,14 +249,4 @@ class BlockController extends Controller
|
||||||
|
|
||||||
return new BlockResource($newBlock);
|
return new BlockResource($newBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current user's workspace.
|
|
||||||
*
|
|
||||||
* @deprecated Use resolveWorkspace() from ResolvesWorkspace trait
|
|
||||||
*/
|
|
||||||
protected function getWorkspace(Request $request): ?Workspace
|
|
||||||
{
|
|
||||||
return $this->resolveWorkspace($request);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class PageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index(Request $request): PaginatedCollection|JsonResponse
|
public function index(Request $request): PaginatedCollection|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -93,7 +93,7 @@ class PageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function store(StorePageRequest $request): BioResource|JsonResponse
|
public function store(StorePageRequest $request): BioResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -177,7 +177,7 @@ class PageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function show(Request $request, Page $biolink): BioResource|JsonResponse
|
public function show(Request $request, Page $biolink): BioResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -201,7 +201,7 @@ class PageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function update(UpdatePageRequest $request, Page $biolink): BioResource|JsonResponse
|
public function update(UpdatePageRequest $request, Page $biolink): BioResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -274,7 +274,7 @@ class PageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy(Request $request, Page $biolink): JsonResponse
|
public function destroy(Request $request, Page $biolink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -289,14 +289,4 @@ class PageController extends Controller
|
||||||
|
|
||||||
return response()->json(null, 204);
|
return response()->json(null, 204);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current user's workspace.
|
|
||||||
*
|
|
||||||
* @deprecated Use resolveWorkspace() from ResolvesWorkspace trait
|
|
||||||
*/
|
|
||||||
protected function getWorkspace(Request $request): ?Workspace
|
|
||||||
{
|
|
||||||
return $this->resolveWorkspace($request);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class ShortLinkController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index(Request $request): PaginatedCollection|JsonResponse
|
public function index(Request $request): PaginatedCollection|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -92,7 +92,7 @@ class ShortLinkController extends Controller
|
||||||
*/
|
*/
|
||||||
public function store(StoreShortLinkRequest $request): ShortLinkResource|JsonResponse
|
public function store(StoreShortLinkRequest $request): ShortLinkResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -194,7 +194,7 @@ class ShortLinkController extends Controller
|
||||||
*/
|
*/
|
||||||
public function show(Request $request, Page $shortlink): ShortLinkResource|JsonResponse
|
public function show(Request $request, Page $shortlink): ShortLinkResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -217,7 +217,7 @@ class ShortLinkController extends Controller
|
||||||
*/
|
*/
|
||||||
public function update(UpdateShortLinkRequest $request, Page $shortlink): ShortLinkResource|JsonResponse
|
public function update(UpdateShortLinkRequest $request, Page $shortlink): ShortLinkResource|JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -329,7 +329,7 @@ class ShortLinkController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy(Request $request, Page $shortlink): JsonResponse
|
public function destroy(Request $request, Page $shortlink): JsonResponse
|
||||||
{
|
{
|
||||||
$workspace = $this->getWorkspace($request);
|
$workspace = $this->resolveWorkspace($request);
|
||||||
|
|
||||||
if (! $workspace) {
|
if (! $workspace) {
|
||||||
return $this->noWorkspaceResponse();
|
return $this->noWorkspaceResponse();
|
||||||
|
|
@ -366,14 +366,4 @@ class ShortLinkController extends Controller
|
||||||
|
|
||||||
return $slug;
|
return $slug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current user's workspace.
|
|
||||||
*
|
|
||||||
* @deprecated Use resolveWorkspace() from ResolvesWorkspace trait
|
|
||||||
*/
|
|
||||||
protected function getWorkspace(Request $request): ?Workspace
|
|
||||||
{
|
|
||||||
return $this->resolveWorkspace($request);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,11 +94,6 @@ class Editor extends Component
|
||||||
// Target region for adding new blocks
|
// Target region for adding new blocks
|
||||||
public string $targetRegion = 'content';
|
public string $targetRegion = 'content';
|
||||||
|
|
||||||
// Legacy device settings (deprecated)
|
|
||||||
public string $selectedDevice = 'iphone-16-pro';
|
|
||||||
|
|
||||||
public ?string $selectedVariant = null;
|
|
||||||
|
|
||||||
public bool $debugMode = false;
|
public bool $debugMode = false;
|
||||||
|
|
||||||
// Dirty tracking
|
// Dirty tracking
|
||||||
|
|
@ -535,121 +530,6 @@ class Editor extends Component
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get devices for the current viewport (legacy compatibility).
|
|
||||||
*
|
|
||||||
* @deprecated Use CSS-only device chrome instead
|
|
||||||
*/
|
|
||||||
#[Computed]
|
|
||||||
public function devicesForViewport(): array
|
|
||||||
{
|
|
||||||
$devices = config('device-frames.devices', []);
|
|
||||||
|
|
||||||
return collect($devices)
|
|
||||||
->filter(fn ($device) => $device['viewport'] === $this->selectedViewport)
|
|
||||||
->all();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the currently selected device config (legacy compatibility).
|
|
||||||
*
|
|
||||||
* @deprecated Use CSS-only device chrome instead
|
|
||||||
*/
|
|
||||||
#[Computed]
|
|
||||||
public function currentDevice(): ?array
|
|
||||||
{
|
|
||||||
return config("device-frames.devices.{$this->selectedDevice}");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current device's available variants (legacy compatibility).
|
|
||||||
*
|
|
||||||
* @deprecated Use CSS-only device chrome instead
|
|
||||||
*/
|
|
||||||
#[Computed]
|
|
||||||
public function currentVariants(): array
|
|
||||||
{
|
|
||||||
return $this->currentDevice['variants'] ?? [];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the effective variant (legacy compatibility).
|
|
||||||
*
|
|
||||||
* @deprecated Use CSS-only device chrome instead
|
|
||||||
*/
|
|
||||||
#[Computed]
|
|
||||||
public function effectiveVariant(): string
|
|
||||||
{
|
|
||||||
return $this->selectedVariant
|
|
||||||
?? $this->currentDevice['default_variant']
|
|
||||||
?? array_key_first($this->currentVariants);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select a device and reset variant (legacy compatibility).
|
|
||||||
*
|
|
||||||
* @deprecated Use CSS-only device chrome instead
|
|
||||||
*/
|
|
||||||
public function selectDevice(string $device): void
|
|
||||||
{
|
|
||||||
$devices = config('device-frames.devices', []);
|
|
||||||
|
|
||||||
if (! isset($devices[$device])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->selectedDevice = $device;
|
|
||||||
$this->selectedVariant = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select a variant.
|
|
||||||
*/
|
|
||||||
public function selectVariant(string $variant): void
|
|
||||||
{
|
|
||||||
$this->selectedVariant = $variant;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get approximate colour for variant display.
|
|
||||||
*/
|
|
||||||
public function getVariantColor(string $variant): string
|
|
||||||
{
|
|
||||||
// Common colour mappings for device variants
|
|
||||||
return match ($variant) {
|
|
||||||
// Apple colours
|
|
||||||
'black', 'space-black', 'black-titanium' => '#1d1d1f',
|
|
||||||
'silver', 'white', 'white-titanium' => '#e3e3e0',
|
|
||||||
'natural-titanium' => '#97948e',
|
|
||||||
'gold', 'light-gold' => '#d4af37',
|
|
||||||
'deep-purple' => '#635e6c',
|
|
||||||
'desert-titanium' => '#c4a77d',
|
|
||||||
'blue', 'blue-titanium', 'deep-blue' => '#4a6fa5',
|
|
||||||
'sky-blue' => '#87ceeb',
|
|
||||||
'pink' => '#fadadd',
|
|
||||||
'teal' => '#4db6ac',
|
|
||||||
'ultramarine' => '#3f51b5',
|
|
||||||
'cloud-white' => '#f5f5f5',
|
|
||||||
'space-gray' => '#535150',
|
|
||||||
'green' => '#4caf50',
|
|
||||||
'orange', 'cosmic-orange' => '#ff9800',
|
|
||||||
'purple' => '#9c27b0',
|
|
||||||
'red' => '#f44336',
|
|
||||||
'yellow' => '#ffeb3b',
|
|
||||||
'stardust' => '#bdb5a1',
|
|
||||||
// Android colours
|
|
||||||
'obsidian' => '#292929',
|
|
||||||
'hazel' => '#8d7b6c',
|
|
||||||
'rose-quartz' => '#e8b4b8',
|
|
||||||
'porcelain' => '#f0ebe3',
|
|
||||||
// Windows/Surface colours
|
|
||||||
'graphite' => '#4a4a4a',
|
|
||||||
'platinum' => '#e5e4e2',
|
|
||||||
// Default
|
|
||||||
default => '#888888',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save biolink settings.
|
* Save biolink settings.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue