Skip to content

Commit efdd313

Browse files
authored
Merge pull request #34 from GhDj/feature/merge-all-tools
Merge all tool features into develop
2 parents b7d6ab2 + cd213db commit efdd313

13 files changed

Lines changed: 3971 additions & 5 deletions

app/Http/Controllers/ToolController.php

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,60 @@ public function index(): View
7575
'route' => 'tools.regex',
7676
'icon' => 'regex',
7777
],
78+
[
79+
'name' => 'Base Converter',
80+
'description' => 'Convert between binary, octal, decimal, and hex',
81+
'route' => 'tools.base-converter',
82+
'icon' => 'calculator',
83+
],
84+
[
85+
'name' => 'Slug Generator',
86+
'description' => 'Convert text to URL-friendly slugs',
87+
'route' => 'tools.slug-generator',
88+
'icon' => 'slug',
89+
],
90+
[
91+
'name' => 'Color Picker',
92+
'description' => 'Pick colors and convert between HEX, RGB, HSL, CMYK',
93+
'route' => 'tools.color-picker',
94+
'icon' => 'color',
95+
],
96+
[
97+
'name' => 'QR Code Generator',
98+
'description' => 'Generate QR codes for URLs, text, and more',
99+
'route' => 'tools.qr-code',
100+
'icon' => 'qrcode',
101+
],
102+
[
103+
'name' => 'HTML Entity Encoder',
104+
'description' => 'Encode/decode HTML entities and special characters',
105+
'route' => 'tools.html-entity',
106+
'icon' => 'html-entity',
107+
],
108+
[
109+
'name' => 'Text Case Converter',
110+
'description' => 'Convert text to camelCase, snake_case, and more',
111+
'route' => 'tools.text-case',
112+
'icon' => 'text-case',
113+
],
114+
[
115+
'name' => 'Password Generator',
116+
'description' => 'Generate secure random passwords',
117+
'route' => 'tools.password',
118+
'icon' => 'key',
119+
],
120+
[
121+
'name' => 'Lorem Ipsum Generator',
122+
'description' => 'Generate placeholder text for designs',
123+
'route' => 'tools.lorem',
124+
'icon' => 'text',
125+
],
126+
[
127+
'name' => 'Cron Parser',
128+
'description' => 'Parse and explain cron expressions',
129+
'route' => 'tools.cron',
130+
'icon' => 'clock',
131+
],
78132
];
79133

80134
return view('home', compact('tools'));
@@ -134,4 +188,49 @@ public function regex(): View
134188
{
135189
return view('tools.regex');
136190
}
191+
192+
public function baseConverter(): View
193+
{
194+
return view('tools.base-converter');
195+
}
196+
197+
public function slugGenerator(): View
198+
{
199+
return view('tools.slug-generator');
200+
}
201+
202+
public function colorPicker(): View
203+
{
204+
return view('tools.color-picker');
205+
}
206+
207+
public function qrCode(): View
208+
{
209+
return view('tools.qr-code');
210+
}
211+
212+
public function htmlEntity(): View
213+
{
214+
return view('tools.html-entity');
215+
}
216+
217+
public function textCase(): View
218+
{
219+
return view('tools.text-case');
220+
}
221+
222+
public function password(): View
223+
{
224+
return view('tools.password-generator');
225+
}
226+
227+
public function lorem(): View
228+
{
229+
return view('tools.lorem-ipsum');
230+
}
231+
232+
public function cron(): View
233+
{
234+
return view('tools.cron-parser');
235+
}
137236
}

resources/views/home.blade.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,53 @@
9090
<circle cx="12" cy="12" r="4" stroke-width="2"/>
9191
</svg>
9292
@break
93+
94+
@case('calculator')
95+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
96+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"/>
97+
</svg>
98+
@break
99+
@case('slug')
100+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
101+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"/>
102+
</svg>
103+
@break
104+
@case('color')
105+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
106+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"/>
107+
</svg>
108+
@break
109+
@case('qrcode')
110+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
111+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h2M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"/>
112+
</svg>
113+
@break
114+
@case('html-entity')
115+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
116+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/>
117+
</svg>
118+
@break
119+
@case('text-case')
120+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
121+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
122+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 3v5a1 1 0 001 1h5"/>
123+
</svg>
124+
@break
125+
@case('key')
126+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
127+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"/>
128+
</svg>
129+
@break
130+
@case('text')
131+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
132+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"/>
133+
</svg>
134+
@break
135+
@case('clock')
136+
<svg class="w-6 h-6 text-indigo-600 dark:text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
137+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
138+
</svg>
139+
@break
93140
@endswitch
94141
</div>
95142
<div class="flex-1 min-w-0">

0 commit comments

Comments
 (0)