Skip to content

Commit 085239b

Browse files
committed
add registry installer
1 parent 61763b6 commit 085239b

41 files changed

Lines changed: 8252 additions & 113 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/Http/Controllers/ThemesController.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,14 @@ public function index(Registry $registry)
4141
'availableCategories' => $availableCategories,
4242
]);
4343
}
44+
45+
public function apiIndex(Registry $registry): array
46+
{
47+
return $registry
48+
->themes()
49+
->get()
50+
->map(fn ($theme) => $theme->toRegistry())
51+
->values()
52+
->all();
53+
}
4454
}

bun.lock

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

database/migrations/2026_05_02_175933_create_registries_table.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
return new class extends Migration {
7+
return new class extends Migration
8+
{
89
public function up(): void
910
{
1011
Schema::create('registries', function (Blueprint $table) {
@@ -15,8 +16,8 @@ public function up(): void
1516
// ── Core identity ────────────────────────────────────────────────
1617
$table->string('name')->unique()->comment('Unique registry item identifier');
1718
$table->string('type')->comment(
18-
'registry:lib | registry:block | registry:component | registry:ui | ' .
19-
'registry:hook | registry:theme | registry:page | registry:file | ' .
19+
'registry:lib | registry:block | registry:component | registry:ui | '.
20+
'registry:hook | registry:theme | registry:page | registry:file | '.
2021
'registry:style | registry:base | registry:font | registry:item'
2122
);
2223
$table->string('title')->nullable()->comment('Human-readable title');

package.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
"@eslint/js": "^9.19.0",
1717
"@laravel/vite-plugin-wayfinder": "^0.1.3",
1818
"@stylistic/eslint-plugin": "^5.10.0",
19+
"@types/gsap": "^3.0.0",
1920
"@types/node": "^22.13.5",
21+
"@types/prismjs": "^1.26.6",
22+
"@types/three": "^0.184.1",
2023
"babel-plugin-react-compiler": "^1.0.0",
2124
"eslint": "^9.17.0",
2225
"eslint-config-prettier": "^10.0.1",
@@ -29,6 +32,7 @@
2932
"typescript-eslint": "^8.23.0"
3033
},
3134
"dependencies": {
35+
"@gsap/react": "^2.1.2",
3236
"@headlessui/react": "^2.2.0",
3337
"@inertiajs/react": "^3.0.0",
3438
"@inertiajs/vite": "^3.0.0",
@@ -54,9 +58,12 @@
5458
"concurrently": "^9.0.1",
5559
"date-fns": "^4.1.0",
5660
"globals": "^15.14.0",
61+
"gsap": "^3.15.0",
5762
"input-otp": "^1.4.2",
5863
"laravel-vite-plugin": "^3.1",
5964
"lucide-react": "^0.475.0",
65+
"motion": "^12.38.0",
66+
"prismjs": "^1.30.0",
6067
"radix-ui": "^1.4.3",
6168
"react": "^19.2.0",
6269
"react-day-picker": "^9.14.0",
@@ -65,9 +72,11 @@
6572
"sonner": "^2.0.0",
6673
"tailwind-merge": "^3.0.1",
6774
"tailwindcss": "^4.0.0",
75+
"three": "^0.184.0",
6876
"tw-animate-css": "^1.4.0",
6977
"typescript": "^5.7.2",
70-
"vite": "^8.0.0"
78+
"vite": "^8.0.0",
79+
"zustand": "^5.0.13"
7180
},
7281
"optionalDependencies": {
7382
"@rollup/rollup-linux-x64-gnu": "4.9.5",

resources/js/app.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { createInertiaApp } from '@inertiajs/react';
22
import { Toaster } from '@/components/ui/sonner';
33
import { TooltipProvider } from '@/components/ui/tooltip';
44
import { initializeTheme } from '@/hooks/use-appearance';
5+
import { initializeColorTheme } from '@/hooks/use-color-theme';
56
import AppLayout from '@/layouts/app-layout';
67
import AuthLayout from '@/layouts/auth-layout';
78
import SettingsLayout from '@/layouts/settings/layout';
@@ -26,15 +27,16 @@ createInertiaApp({
2627
withApp(app) {
2728
return (
2829
<TooltipProvider delayDuration={0}>
29-
{app}
30+
<div className={`pt-16`}>{app}</div>
3031
<Toaster />
3132
</TooltipProvider>
3233
);
3334
},
3435
progress: {
35-
color: '#4B5563',
36+
color: 'var(--primary)',
3637
},
3738
});
3839

39-
// This will set light / dark mode on load...
40+
// This will set light / dark mode and color theme on load...
4041
initializeTheme();
42+
initializeColorTheme();

0 commit comments

Comments
 (0)