diff --git a/app/Http/Controllers/Home/HomepageController.php b/app/Http/Controllers/Home/HomepageController.php
deleted file mode 100644
index d15a123..0000000
--- a/app/Http/Controllers/Home/HomepageController.php
+++ /dev/null
@@ -1,14 +0,0 @@
-get('search');
- $category = $request->get('category');
-
- $news = News::with(['author', 'categories'])
- ->published()
- ->when($search, function ($query, $search) {
- $query->where(function ($q) use ($search) {
- $q->where('title', 'like', "%{$search}%")
- ->orWhere('content', 'like', "%{$search}%")
- ->orWhere('excerpt', 'like', "%{$search}%");
- });
- })
- ->when($category, function ($query, $category) {
- if ($category !== 'all') {
- $query->whereHas('categories', function ($q) use ($category) {
- $q->where('categories.id', $category);
- });
- }
- })
- ->orderBy('published_at', 'desc')
- ->paginate(12)
- ->withQueryString()
- ->through(function ($news) {
- $news->thumbnail = $news->getFirstMediaUrl('news');
- $news->formatted_published_at = Carbon::parse($news->published_at)
- ->locale('id')
- ->translatedFormat('l, d F Y');
-
- return $news;
- });
-
- $mostViewedNews = News::with(['author', 'categories'])
- ->published()
- ->orderBy('views', 'desc')
- ->take(4)
- ->get()
- ->map(function ($news) {
- $news->thumbnail = $news->getFirstMediaUrl('news');
- $news->formatted_published_at = Carbon::parse($news->published_at)
- ->locale('id')
- ->translatedFormat('l, d F Y');
-
- return $news;
- });
-
- return Inertia::render('home/news/pages/Index', [
- 'pageTitle' => 'Berita',
- 'pageDescription' => 'Dapatkan informasi terbaru, artikel, dan update berita terkini tentang Purwakarta.',
- 'categories' => Category::active()->get(),
- 'news' => $news,
- 'mostViewedNews' => $mostViewedNews,
- 'filters' => request()->only(['search', 'category']),
- ]);
- }
-
- public function show(News $news)
- {
- $news->load(['author', 'categories', 'tags']);
- $news->increment('views');
- $news->thumbnail = $news->getFirstMediaUrl('news');
-
- return Inertia::render('home/news/pages/Show', [
- 'pageTitle' => 'Detail Berita',
- 'pageDescription' => $news->title,
- 'news' => $news,
- ]);
- }
-}
diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php
deleted file mode 100644
index c19ce18..0000000
--- a/app/Http/Middleware/HandleInertiaRequests.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
- */
- public function share(Request $request): array
- {
- return [
- ...parent::share($request),
- //
- ];
- }
-}
diff --git a/bootstrap/app.php b/bootstrap/app.php
index 6e19349..0be149f 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -1,20 +1,17 @@
withRouting(
- web: __DIR__.'/../routes/web.php',
- commands: __DIR__.'/../routes/console.php',
+ web: __DIR__ . '/../routes/web.php',
+ commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware): void {
- $middleware->web(append: [
- HandleInertiaRequests::class,
- ]);
+ //
})
->withExceptions(function (Exceptions $exceptions): void {
//
diff --git a/composer.json b/composer.json
index 313bf35..f690d79 100644
--- a/composer.json
+++ b/composer.json
@@ -3,7 +3,10 @@
"name": "laravel/laravel",
"type": "project",
"description": "The skeleton application for the Laravel framework.",
- "keywords": ["laravel", "framework"],
+ "keywords": [
+ "laravel",
+ "framework"
+ ],
"license": "MIT",
"require": {
"php": "^8.2",
@@ -11,7 +14,6 @@
"bezhansalleh/filament-shield": "^4.0",
"filament/filament": "^4.0",
"filament/spatie-laravel-media-library-plugin": "^4.0",
- "inertiajs/inertia-laravel": "^2.0",
"joaopaulolndev/filament-pdf-viewer": "^2.0",
"laravel/framework": "^12.0",
"laravel/tinker": "^2.10.1",
@@ -93,4 +95,4 @@
},
"minimum-stability": "stable",
"prefer-stable": true
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index a3fd302..969fa65 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,6 @@
},
"devDependencies": {
"@tailwindcss/vite": "^4.1.18",
- "@vitejs/plugin-react": "^5.1.2",
"axios": "^1.11.0",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^2.0.0",
@@ -16,13 +15,6 @@
"vite": "^7.0.7"
},
"dependencies": {
- "@emotion/react": "^11.14.0",
- "@emotion/styled": "^11.14.1",
- "@inertiajs/react": "^2.3.4",
- "@lottiefiles/dotlottie-react": "^0.17.10",
- "@mui/icons-material": "^7.3.6",
- "@mui/material": "^7.3.6",
- "react": "^19.2.3",
- "react-dom": "^19.2.3"
+ "@lottiefiles/dotlottie-react": "^0.17.10"
}
-}
+}
\ No newline at end of file
diff --git a/resources/js/app.js b/resources/js/app.js
new file mode 100644
index 0000000..e59d6a0
--- /dev/null
+++ b/resources/js/app.js
@@ -0,0 +1 @@
+import './bootstrap';
diff --git a/resources/js/app.jsx b/resources/js/app.jsx
deleted file mode 100644
index d116564..0000000
--- a/resources/js/app.jsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import '../css/app.css'
-import React from 'react'
-import { createInertiaApp } from '@inertiajs/react'
-import { createRoot } from 'react-dom/client'
-
-createInertiaApp({
- resolve: name => {
- const pages = import.meta.glob('./pages/**/*.jsx', { eager: true })
- return pages[`./pages/${name}.jsx`]
- },
- setup({ el, App, props }) {
- createRoot(el).render()
- },
- defaults: {
- form: {
- recentlySuccessfulDuration: 5000,
- },
- prefetch: {
- cacheFor: "1m",
- hoverDelay: 150,
- },
- visitOptions: (href, options) => {
- return {
- headers: {
- ...options.headers,
- "X-Custom-Header": "value",
- },
- };
- },
- },
-})
diff --git a/resources/js/pages/DashboardPage.jsx b/resources/js/pages/DashboardPage.jsx
deleted file mode 100644
index 8fad587..0000000
--- a/resources/js/pages/DashboardPage.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-
-export default function DashboardPage() {
- return (
-
-
Dashboard
-
- );
-}
diff --git a/resources/js/pages/HomePage.jsx b/resources/js/pages/HomePage.jsx
deleted file mode 100644
index 50913dc..0000000
--- a/resources/js/pages/HomePage.jsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import CssBaseline from '@mui/material/CssBaseline';
-import Divider from '@mui/material/Divider';
-import AppTheme from './theme/AppTheme';
-import Hero from './home/components/Hero';
-import LogoCollection from './home/components/LogoCollection';
-import Highlights from './home/components/Highlights';
-import Pricing from './home/components/Pricing';
-import Features from './home/components/Features';
-import Testimonials from './home/components/Testimonials';
-import FAQ from './home/components/FAQ';
-import Footer from './home/components/Footer';
-import Navbar from './home/components/Navbar';
-
-export default function HomePage() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/FAQ.jsx b/resources/js/pages/home/components/FAQ.jsx
deleted file mode 100644
index 8239d65..0000000
--- a/resources/js/pages/home/components/FAQ.jsx
+++ /dev/null
@@ -1,153 +0,0 @@
-import * as React from 'react';
-import Accordion from '@mui/material/Accordion';
-import AccordionDetails from '@mui/material/AccordionDetails';
-import AccordionSummary from '@mui/material/AccordionSummary';
-import Box from '@mui/material/Box';
-import Container from '@mui/material/Container';
-import Link from '@mui/material/Link';
-import Typography from '@mui/material/Typography';
-import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
-
-export default function FAQ() {
- const [expanded, setExpanded] = React.useState([]);
-
- const handleChange =
- (panel) => (event, isExpanded) => {
- setExpanded(
- isExpanded
- ? [...expanded, panel]
- : expanded.filter((item) => item !== panel),
- );
- };
-
- return (
-
-
- Frequently asked questions
-
-
-
- }
- aria-controls="panel1d-content"
- id="panel1d-header"
- >
-
- How do I contact customer support if I have a question or issue?
-
-
-
-
- You can reach our customer support team by emailing
- support@email.com
- or calling our toll-free number. We're here to assist you
- promptly.
-
-
-
-
- }
- aria-controls="panel2d-content"
- id="panel2d-header"
- >
-
- Can I return the product if it doesn't meet my expectations?
-
-
-
-
- Absolutely! We offer a hassle-free return policy. If you're not
- completely satisfied, you can return the product within [number of
- days] days for a full refund or exchange.
-
-
-
-
- }
- aria-controls="panel3d-content"
- id="panel3d-header"
- >
-
- What makes your product stand out from others in the market?
-
-
-
-
- Our product distinguishes itself through its adaptability, durability,
- and innovative features. We prioritize user satisfaction and
- continually strive to exceed expectations in every aspect.
-
-
-
-
- }
- aria-controls="panel4d-content"
- id="panel4d-header"
- >
-
- Is there a warranty on the product, and what does it cover?
-
-
-
-
- Yes, our product comes with a [length of warranty] warranty. It covers
- defects in materials and workmanship. If you encounter any issues
- covered by the warranty, please contact our customer support for
- assistance.
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Features.jsx b/resources/js/pages/home/components/Features.jsx
deleted file mode 100644
index 61b9337..0000000
--- a/resources/js/pages/home/components/Features.jsx
+++ /dev/null
@@ -1,262 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
-import Card from '@mui/material/Card';
-import MuiChip from '@mui/material/Chip';
-import Container from '@mui/material/Container';
-import Typography from '@mui/material/Typography';
-import { styled } from '@mui/material/styles';
-
-import DevicesRoundedIcon from '@mui/icons-material/DevicesRounded';
-import EdgesensorHighRoundedIcon from '@mui/icons-material/EdgesensorHighRounded';
-import ViewQuiltRoundedIcon from '@mui/icons-material/ViewQuiltRounded';
-
-const items = [
- {
- icon: ,
- title: 'Dashboard',
- description:
- 'This item could provide a snapshot of the most important metrics or data points related to the product.',
- imageLight: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/dash-light.png")`,
- imageDark: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/dash-dark.png")`,
- },
- {
- icon: ,
- title: 'Mobile integration',
- description:
- 'This item could provide information about the mobile app version of the product.',
- imageLight: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/mobile-light.png")`,
- imageDark: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/mobile-dark.png")`,
- },
- {
- icon: ,
- title: 'Available on all platforms',
- description:
- 'This item could let users know the product is available on all platforms, such as web, mobile, and desktop.',
- imageLight: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/devices-light.png")`,
- imageDark: `url("${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/images/templates/templates-images/devices-dark.png")`,
- },
-];
-
-const Chip = styled(MuiChip)(({ theme }) => ({
- variants: [
- {
- props: ({ selected }) => !!selected,
- style: {
- background:
- 'linear-gradient(to bottom right, hsl(210, 98%, 48%), hsl(210, 98%, 35%))',
- color: 'hsl(0, 0%, 100%)',
- borderColor: (theme.vars || theme).palette.primary.light,
- '& .MuiChip-label': {
- color: 'hsl(0, 0%, 100%)',
- },
- ...theme.applyStyles('dark', {
- borderColor: (theme.vars || theme).palette.primary.dark,
- }),
- },
- },
- ],
-}));
-
-export function MobileLayout({
- selectedItemIndex,
- handleItemClick,
- selectedFeature,
-}) {
- if (!items[selectedItemIndex]) {
- return null;
- }
-
- return (
-
-
- {items.map(({ title }, index) => (
- handleItemClick(index)}
- selected={selectedItemIndex === index}
- />
- ))}
-
-
- ({
- mb: 2,
- backgroundSize: 'cover',
- backgroundPosition: 'center',
- minHeight: 280,
- backgroundImage: 'var(--items-imageLight)',
- ...theme.applyStyles('dark', {
- backgroundImage: 'var(--items-imageDark)',
- }),
- })}
- style={
- items[selectedItemIndex]
- ? ({
- '--items-imageLight': items[selectedItemIndex].imageLight,
- '--items-imageDark': items[selectedItemIndex].imageDark,
- })
- : {}
- }
- />
-
-
- {selectedFeature.title}
-
-
- {selectedFeature.description}
-
-
-
-
- );
-}
-
-export default function Features() {
- const [selectedItemIndex, setSelectedItemIndex] = React.useState(0);
-
- const handleItemClick = (index) => {
- setSelectedItemIndex(index);
- };
-
- const selectedFeature = items[selectedItemIndex];
-
- return (
-
-
-
- Product features
-
-
- Provide a brief overview of the key features of the product. For example,
- you could list the number of features, their types or benefits, and
- add-ons.
-
-
-
-
-
- {items.map(({ icon, title, description }, index) => (
- handleItemClick(index)}
- sx={[
- (theme) => ({
- p: 2,
- height: '100%',
- width: '100%',
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.action.hover,
- },
- }),
- selectedItemIndex === index && {
- backgroundColor: 'action.selected',
- },
- ]}
- >
-
- {icon}
-
- {title}
- {description}
-
-
- ))}
-
-
-
-
-
- ({
- m: 'auto',
- width: 420,
- height: 500,
- backgroundSize: 'contain',
- backgroundImage: 'var(--items-imageLight)',
- ...theme.applyStyles('dark', {
- backgroundImage: 'var(--items-imageDark)',
- }),
- })}
- style={
- items[selectedItemIndex]
- ? ({
- '--items-imageLight': items[selectedItemIndex].imageLight,
- '--items-imageDark': items[selectedItemIndex].imageDark,
- })
- : {}
- }
- />
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Footer.jsx b/resources/js/pages/home/components/Footer.jsx
deleted file mode 100644
index 1296015..0000000
--- a/resources/js/pages/home/components/Footer.jsx
+++ /dev/null
@@ -1,219 +0,0 @@
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
-import Container from '@mui/material/Container';
-import IconButton from '@mui/material/IconButton';
-import InputLabel from '@mui/material/InputLabel';
-import Link from '@mui/material/Link';
-import Stack from '@mui/material/Stack';
-import TextField from '@mui/material/TextField';
-import Typography from '@mui/material/Typography';
-import GitHubIcon from '@mui/icons-material/GitHub';
-import LinkedInIcon from '@mui/icons-material/LinkedIn';
-import TwitterIcon from '@mui/icons-material/X';
-import Logo from './Logo';
-
-function Copyright() {
- return (
-
- {'Copyright © '}
-
- Logo
-
-
- {new Date().getFullYear()}
-
- );
-}
-
-export default function Footer() {
- return (
-
-
-
-
-
-
- Join the newsletter
-
-
- Subscribe for weekly updates. No spams ever!
-
- Email
-
-
-
-
-
-
-
-
- Product
-
-
- Features
-
-
- Testimonials
-
-
- Highlights
-
-
- Pricing
-
-
- FAQs
-
-
-
-
- Company
-
-
- About us
-
-
- Careers
-
-
- Press
-
-
-
-
- Legal
-
-
- Terms
-
-
- Privacy
-
-
- Contact
-
-
-
-
-
-
- Privacy Policy
-
-
- •
-
-
- Terms of Service
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Headline.jsx b/resources/js/pages/home/components/Headline.jsx
deleted file mode 100644
index 0c671d0..0000000
--- a/resources/js/pages/home/components/Headline.jsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import Container from '@mui/material/Container';
-import Stack from '@mui/material/Stack';
-import Typography from '@mui/material/Typography';
-
-export default function Headline({ pageTitle, pageDescription }) {
- return (
-
-
-
-
- {pageTitle}
-
-
- {pageDescription}
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Hero.jsx b/resources/js/pages/home/components/Hero.jsx
deleted file mode 100644
index 7f7c9d2..0000000
--- a/resources/js/pages/home/components/Hero.jsx
+++ /dev/null
@@ -1,151 +0,0 @@
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
-import Container from '@mui/material/Container';
-import InputLabel from '@mui/material/InputLabel';
-import Link from '@mui/material/Link';
-import Stack from '@mui/material/Stack';
-import TextField from '@mui/material/TextField';
-import Typography from '@mui/material/Typography';
-import visuallyHidden from '@mui/utils/visuallyHidden';
-import { styled } from '@mui/material/styles';
-
-const StyledBox = styled('div')(({ theme }) => ({
- alignSelf: 'center',
- width: '100%',
- height: 400,
- marginTop: theme.spacing(8),
- borderRadius: (theme.vars || theme).shape.borderRadius,
- outline: '6px solid',
- outlineColor: 'hsla(220, 25%, 80%, 0.2)',
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.grey[200],
- boxShadow: '0 0 12px 8px hsla(220, 25%, 80%, 0.2)',
- backgroundImage: `url(${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/screenshots/material-ui/getting-started/templates/dashboard.jpg)`,
- backgroundSize: 'cover',
- [theme.breakpoints.up('sm')]: {
- marginTop: theme.spacing(10),
- height: 700,
- },
- ...theme.applyStyles('dark', {
- boxShadow: '0 0 24px 12px hsla(210, 100%, 25%, 0.2)',
- backgroundImage: `url(${import.meta.env.TEMPLATE_IMAGE_URL || 'https://mui.com'}/static/screenshots/material-ui/getting-started/templates/dashboard-dark.jpg)`,
- outlineColor: 'hsla(220, 20%, 42%, 0.1)',
- borderColor: (theme.vars || theme).palette.grey[700],
- }),
-}));
-
-export default function Hero() {
- return (
- ({
- width: '100%',
- backgroundRepeat: 'no-repeat',
-
- backgroundImage:
- 'radial-gradient(ellipse 80% 50% at 50% -20%, hsl(210, 100%, 90%), transparent)',
- ...theme.applyStyles('dark', {
- backgroundImage:
- 'radial-gradient(ellipse 80% 50% at 50% -20%, hsl(210, 100%, 16%), transparent)',
- }),
- })}
- >
-
-
-
- Our latest
- ({
- fontSize: 'inherit',
- color: 'primary.main',
- ...theme.applyStyles('dark', {
- color: 'primary.light',
- }),
- })}
- >
- products
-
-
-
- Explore our cutting-edge dashboard, delivering high-quality solutions
- tailored to your needs. Elevate your experience with top-tier features
- and services.
-
-
-
- Email
-
-
-
-
-
- By clicking "Start now" you agree to our
-
- Terms & Conditions
-
- .
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Highlights.jsx b/resources/js/pages/home/components/Highlights.jsx
deleted file mode 100644
index 1ee0408..0000000
--- a/resources/js/pages/home/components/Highlights.jsx
+++ /dev/null
@@ -1,120 +0,0 @@
-import Box from '@mui/material/Box';
-import Card from '@mui/material/Card';
-import Container from '@mui/material/Container';
-import Grid from '@mui/material/Grid';
-import Stack from '@mui/material/Stack';
-import Typography from '@mui/material/Typography';
-import AutoFixHighRoundedIcon from '@mui/icons-material/AutoFixHighRounded';
-import ConstructionRoundedIcon from '@mui/icons-material/ConstructionRounded';
-import QueryStatsRoundedIcon from '@mui/icons-material/QueryStatsRounded';
-import SettingsSuggestRoundedIcon from '@mui/icons-material/SettingsSuggestRounded';
-import SupportAgentRoundedIcon from '@mui/icons-material/SupportAgentRounded';
-import ThumbUpAltRoundedIcon from '@mui/icons-material/ThumbUpAltRounded';
-
-const items = [
- {
- icon: ,
- title: 'Adaptable performance',
- description:
- 'Our product effortlessly adjusts to your needs, boosting efficiency and simplifying your tasks.',
- },
- {
- icon: ,
- title: 'Built to last',
- description:
- 'Experience unmatched durability that goes above and beyond with lasting investment.',
- },
- {
- icon: ,
- title: 'Great user experience',
- description:
- 'Integrate our product into your routine with an intuitive and easy-to-use interface.',
- },
- {
- icon: ,
- title: 'Innovative functionality',
- description:
- 'Stay ahead with features that set new standards, addressing your evolving needs better than the rest.',
- },
- {
- icon: ,
- title: 'Reliable support',
- description:
- 'Count on our responsive customer support, offering assistance that goes beyond the purchase.',
- },
- {
- icon: ,
- title: 'Precision in every detail',
- description:
- 'Enjoy a meticulously crafted product where small touches make a significant impact on your overall experience.',
- },
-];
-
-export default function Highlights() {
- return (
-
-
-
-
- Highlights
-
-
- Explore why our product stands out: adaptability, durability,
- user-friendly design, and innovation. Enjoy reliable customer support and
- precision in every detail.
-
-
-
- {items.map((item, index) => (
-
-
- {item.icon}
-
-
- {item.title}
-
-
- {item.description}
-
-
-
-
- ))}
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Logo.jsx b/resources/js/pages/home/components/Logo.jsx
deleted file mode 100644
index 3615203..0000000
--- a/resources/js/pages/home/components/Logo.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function Logo() {
- return (
-
- );
-}
diff --git a/resources/js/pages/home/components/LogoCollection.jsx b/resources/js/pages/home/components/LogoCollection.jsx
deleted file mode 100644
index 2f95272..0000000
--- a/resources/js/pages/home/components/LogoCollection.jsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import Box from '@mui/material/Box';
-import Typography from '@mui/material/Typography';
-import Grid from '@mui/material/Grid';
-import { useColorScheme } from '@mui/material/styles';
-
-const darkModeLogos = [
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560628e8573c43893fe0ace_Sydney-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f4d520d0517ae8e8ddf13_Bern-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f46794c159024c1af6d44_Montreal-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/61f12e891fa22f89efd7477a_TerraLight.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560a09d1f6337b1dfed14ab_colorado-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f5caa77bf7d69fb78792e_Ankara-white.svg',
-];
-
-const lightModeLogos = [
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560628889c3bdf1129952dc_Sydney-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f4d4d8b829a89976a419c_Bern-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f467502f091ccb929529d_Montreal-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/61f12e911fa22f2203d7514c_TerraDark.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560a0990f3717787fd49245_colorado-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f5ca4e548b0deb1041c33_Ankara-black.svg',
-];
-
-const logoStyle = {
- width: '100px',
- height: '80px',
- margin: '0 32px',
- opacity: 0.7,
-};
-
-export default function LogoCollection() {
- const { mode, systemMode } = useColorScheme();
- let logos;
- if (mode === 'system') {
- if (systemMode === 'light') {
- logos = lightModeLogos;
- } else {
- logos = darkModeLogos;
- }
- } else if (mode === 'light') {
- logos = lightModeLogos;
- } else {
- logos = darkModeLogos;
- }
-
- return (
-
-
- Trusted by the best companies
-
-
- {logos.map((logo, index) => (
-
-
-
- ))}
-
-
- );
-}
diff --git a/resources/js/pages/home/components/NavLink.jsx b/resources/js/pages/home/components/NavLink.jsx
deleted file mode 100644
index 51eb338..0000000
--- a/resources/js/pages/home/components/NavLink.jsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Button } from "@mui/material";
-import { router } from "@inertiajs/react";
-
-export default function NavLink({ label, href }) {
- return (
-
- )
-}
\ No newline at end of file
diff --git a/resources/js/pages/home/components/Navbar.jsx b/resources/js/pages/home/components/Navbar.jsx
deleted file mode 100644
index baab29a..0000000
--- a/resources/js/pages/home/components/Navbar.jsx
+++ /dev/null
@@ -1,141 +0,0 @@
-import * as React from 'react';
-import { styled, alpha } from '@mui/material/styles';
-import Box from '@mui/material/Box';
-import AppBar from '@mui/material/AppBar';
-import Toolbar from '@mui/material/Toolbar';
-import Button from '@mui/material/Button';
-import IconButton from '@mui/material/IconButton';
-import Container from '@mui/material/Container';
-import Divider from '@mui/material/Divider';
-import MenuItem from '@mui/material/MenuItem';
-import Drawer from '@mui/material/Drawer';
-import MenuIcon from '@mui/icons-material/Menu';
-import CloseRoundedIcon from '@mui/icons-material/CloseRounded';
-import ColorModeIconDropdown from '../../theme/ColorModeIconDropdown';
-import Logo from './Logo';
-import NavLink from './NavLink';
-
-const StyledToolbar = styled(Toolbar)(({ theme }) => ({
- display: 'flex',
- alignItems: 'center',
- justifyContent: 'space-between',
- flexShrink: 0,
- borderRadius: `calc(${theme.shape.borderRadius}px + 8px)`,
- backdropFilter: 'blur(24px)',
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.divider,
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette.background.defaultChannel} / 0.4)`
- : alpha(theme.palette.background.default, 0.4),
- boxShadow: (theme.vars || theme).shadows[1],
- padding: '8px 12px',
-}));
-
-export default function Navbar({ currentRoute }) {
- const [open, setOpen] = React.useState(false);
-
- const toggleDrawer = (newOpen) => () => {
- setOpen(newOpen);
- };
-
- const navItems = [
- { label: 'Berita', href: '/news' },
- { label: 'Testimonials', href: '/testimonials' },
- { label: 'Highlights', href: '/highlights' },
- { label: 'Pricing', href: '/pricing' },
- { label: 'FAQ', href: '/faq' },
- { label: 'Blog', href: '/blog' },
- ]
-
- return (
-
-
-
-
-
-
- {navItems.map((item) => (
-
- ))}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Pricing.jsx b/resources/js/pages/home/components/Pricing.jsx
deleted file mode 100644
index c8dcda4..0000000
--- a/resources/js/pages/home/components/Pricing.jsx
+++ /dev/null
@@ -1,211 +0,0 @@
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
-import Card from '@mui/material/Card';
-import Chip from '@mui/material/Chip';
-import CardActions from '@mui/material/CardActions';
-import CardContent from '@mui/material/CardContent';
-import Container from '@mui/material/Container';
-import Divider from '@mui/material/Divider';
-import Grid from '@mui/material/Grid';
-import Typography from '@mui/material/Typography';
-import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome';
-import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded';
-
-const tiers = [
- {
- title: 'Free',
- price: '0',
- description: [
- '10 users included',
- '2 GB of storage',
- 'Help center access',
- 'Email support',
- ],
- buttonText: 'Sign up for free',
- buttonVariant: 'outlined',
- buttonColor: 'primary',
- },
- {
- title: 'Professional',
- subheader: 'Recommended',
- price: '15',
- description: [
- '20 users included',
- '10 GB of storage',
- 'Help center access',
- 'Priority email support',
- 'Dedicated team',
- 'Best deals',
- ],
- buttonText: 'Start now',
- buttonVariant: 'contained',
- buttonColor: 'secondary',
- },
- {
- title: 'Enterprise',
- price: '30',
- description: [
- '50 users included',
- '30 GB of storage',
- 'Help center access',
- 'Phone & email support',
- ],
- buttonText: 'Contact us',
- buttonVariant: 'outlined',
- buttonColor: 'primary',
- },
-];
-
-export default function Pricing() {
- return (
-
-
-
- Pricing
-
-
- Quickly build an effective pricing table for your potential customers with
- this layout.
- It's built with default Material UI components with little
- customization.
-
-
-
- {tiers.map((tier) => (
-
- ({
- border: 'none',
- background:
- 'radial-gradient(circle at 50% 0%, hsl(220, 20%, 35%), hsl(220, 30%, 6%))',
- boxShadow: `0 8px 12px hsla(220, 20%, 42%, 0.2)`,
- ...theme.applyStyles('dark', {
- background:
- 'radial-gradient(circle at 50% 0%, hsl(220, 20%, 20%), hsl(220, 30%, 16%))',
- boxShadow: `0 8px 12px hsla(0, 0%, 0%, 0.8)`,
- }),
- })),
- ]}
- >
-
-
-
- {tier.title}
-
- {tier.title === 'Professional' && (
- } label={tier.subheader} />
- )}
-
-
-
- ${tier.price}
-
-
- per month
-
-
-
- {tier.description.map((line) => (
-
-
-
- {line}
-
-
- ))}
-
-
-
-
-
-
- ))}
-
-
- );
-}
diff --git a/resources/js/pages/home/components/Testimonials.jsx b/resources/js/pages/home/components/Testimonials.jsx
deleted file mode 100644
index 60d527f..0000000
--- a/resources/js/pages/home/components/Testimonials.jsx
+++ /dev/null
@@ -1,173 +0,0 @@
-import Card from '@mui/material/Card';
-import CardHeader from '@mui/material/CardHeader';
-import CardContent from '@mui/material/CardContent';
-import Avatar from '@mui/material/Avatar';
-import Typography from '@mui/material/Typography';
-import Box from '@mui/material/Box';
-import Container from '@mui/material/Container';
-import Grid from '@mui/material/Grid';
-import { useColorScheme } from '@mui/material/styles';
-
-const userTestimonials = [
- {
- avatar: ,
- name: 'Remy Sharp',
- occupation: 'Senior Engineer',
- testimonial:
- "I absolutely love how versatile this product is! Whether I'm tackling work projects or indulging in my favorite hobbies, it seamlessly adapts to my changing needs. Its intuitive design has truly enhanced my daily routine, making tasks more efficient and enjoyable.",
- },
- {
- avatar: ,
- name: 'Travis Howard',
- occupation: 'Lead Product Designer',
- testimonial:
- "One of the standout features of this product is the exceptional customer support. In my experience, the team behind this product has been quick to respond and incredibly helpful. It's reassuring to know that they stand firmly behind their product.",
- },
- {
- avatar: ,
- name: 'Cindy Baker',
- occupation: 'CTO',
- testimonial:
- 'The level of simplicity and user-friendliness in this product has significantly simplified my life. I appreciate the creators for delivering a solution that not only meets but exceeds user expectations.',
- },
- {
- avatar: ,
- name: 'Julia Stewart',
- occupation: 'Senior Engineer',
- testimonial:
- "I appreciate the attention to detail in the design of this product. The small touches make a big difference, and it's evident that the creators focused on delivering a premium experience.",
- },
- {
- avatar: ,
- name: 'John Smith',
- occupation: 'Product Designer',
- testimonial:
- "I've tried other similar products, but this one stands out for its innovative features. It's clear that the makers put a lot of thought into creating a solution that truly addresses user needs.",
- },
- {
- avatar: ,
- name: 'Daniel Wolf',
- occupation: 'CDO',
- testimonial:
- "The quality of this product exceeded my expectations. It's durable, well-designed, and built to last. Definitely worth the investment!",
- },
-];
-
-const darkModeLogos = [
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560628e8573c43893fe0ace_Sydney-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f4d520d0517ae8e8ddf13_Bern-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f46794c159024c1af6d44_Montreal-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/61f12e891fa22f89efd7477a_TerraLight.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560a09d1f6337b1dfed14ab_colorado-white.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f5caa77bf7d69fb78792e_Ankara-white.svg',
-];
-
-const lightModeLogos = [
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560628889c3bdf1129952dc_Sydney-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f4d4d8b829a89976a419c_Bern-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f467502f091ccb929529d_Montreal-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/61f12e911fa22f2203d7514c_TerraDark.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/6560a0990f3717787fd49245_colorado-black.svg',
- 'https://assets-global.website-files.com/61ed56ae9da9fd7e0ef0a967/655f5ca4e548b0deb1041c33_Ankara-black.svg',
-];
-
-const logoStyle = {
- width: '64px',
- opacity: 0.3,
-};
-
-export default function Testimonials() {
- const { mode, systemMode } = useColorScheme();
-
- let logos;
- if (mode === 'system') {
- if (systemMode === 'light') {
- logos = lightModeLogos;
- } else {
- logos = darkModeLogos;
- }
- } else if (mode === 'light') {
- logos = lightModeLogos;
- } else {
- logos = darkModeLogos;
- }
-
- return (
-
-
-
- Testimonials
-
-
- See what our customers love about our products. Discover how we excel in
- efficiency, durability, and satisfaction. Join us for quality, innovation,
- and reliable support.
-
-
-
- {userTestimonials.map((testimonial, index) => (
-
-
-
-
- {testimonial.testimonial}
-
-
-
-
-
-
-
-
- ))}
-
-
- );
-}
diff --git a/resources/js/pages/home/news/components/Author.jsx b/resources/js/pages/home/news/components/Author.jsx
deleted file mode 100644
index 999a0e2..0000000
--- a/resources/js/pages/home/news/components/Author.jsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Avatar, Box, Typography } from "@mui/material";
-
-export default function Author({ author, publishedAt }) {
- return (
-
-
-
- {author.charAt(0).toUpperCase()}
-
-
- {author}
-
-
-
- {publishedAt}
-
-
- );
-}
\ No newline at end of file
diff --git a/resources/js/pages/home/news/components/MainContent.jsx b/resources/js/pages/home/news/components/MainContent.jsx
deleted file mode 100644
index 690692f..0000000
--- a/resources/js/pages/home/news/components/MainContent.jsx
+++ /dev/null
@@ -1,273 +0,0 @@
-import { router } from '@inertiajs/react';
-import Box from '@mui/material/Box';
-import Card from '@mui/material/Card';
-import CardContent from '@mui/material/CardContent';
-import CardMedia from '@mui/material/CardMedia';
-import Chip from '@mui/material/Chip';
-import Grid from '@mui/material/Grid';
-import Typography from '@mui/material/Typography';
-import { styled } from '@mui/material/styles';
-import Headline from '../../components/Headline';
-import { Pagination } from '@mui/material';
-import { useState, useEffect, useRef } from "react";
-import Author from './Author';
-import { DotLottieReact } from '@lottiefiles/dotlottie-react';
-import { Search } from './Search';
-
-const StyledCard = styled(Card)(({ theme }) => ({
- display: 'flex',
- flexDirection: 'column',
- padding: 0,
- height: '100%',
- backgroundColor: (theme.vars || theme).palette.background.paper,
- '&:hover': {
- backgroundColor: 'transparent',
- cursor: 'pointer',
- },
- '&:focus-visible': {
- outline: '3px solid',
- outlineColor: 'hsla(210, 98%, 48%, 0.5)',
- outlineOffset: '2px',
- },
-}));
-
-const StyledCardContent = styled(CardContent)({
- display: 'flex',
- flexDirection: 'column',
- gap: 4,
- padding: 16,
- flexGrow: 1,
- '&:last-child': {
- paddingBottom: 16,
- },
-});
-
-const StyledTypography = styled(Typography)({
- display: '-webkit-box',
- WebkitBoxOrient: 'vertical',
- WebkitLineClamp: 2,
- overflow: 'hidden',
- textOverflow: 'ellipsis',
-});
-
-export default function MainContent({ pageTitle, pageDescription, categories, news, filters }) {
- const [selectedCategory, setSelectedCategory] = useState(filters?.category || 'all');
- const [search, setSearch] = useState(filters?.search || '');
- const [focusedCardIndex, setFocusedCardIndex] = useState(null);
- const searchDebounceRef = useRef(null);
-
- const handleFocus = (index) => {
- setFocusedCardIndex(index);
- };
-
- useEffect(() => {
- if (search === (filters?.search || '')) {
- return;
- }
-
- if (searchDebounceRef.current) {
- clearTimeout(searchDebounceRef.current);
- }
-
- searchDebounceRef.current = setTimeout(() => {
- router.get(window.location.pathname, {
- category: selectedCategory,
- search: search
- }, {
- preserveState: true,
- preserveScroll: true,
- replace: true,
- });
- }, 500);
-
- return () => {
- if (searchDebounceRef.current) {
- clearTimeout(searchDebounceRef.current);
- }
- };
- }, [search]);
-
- const handleBlur = () => {
- setFocusedCardIndex(null);
- };
-
- const handleCategory = (category) => {
- if (searchDebounceRef.current) {
- clearTimeout(searchDebounceRef.current);
- }
-
- setSelectedCategory(category);
- router.get(window.location.pathname, {
- category: category,
- search: search
- }, {
- preserveState: true,
- preserveScroll: true
- });
- };
-
- const handleSearch = () => {
- if (searchDebounceRef.current) {
- clearTimeout(searchDebounceRef.current);
- }
-
- router.get(window.location.pathname, {
- category: selectedCategory,
- search: search
- }, {
- preserveState: true,
- preserveScroll: true
- });
- };
-
- const handlePageChange = (event, value) => {
- router.get(window.location.pathname, {
- page: value,
- category: selectedCategory,
- search: search
- }, {
- preserveState: true,
- preserveScroll: true,
- });
- };
-
- return (
-
-
-
-
-
- setSearch(e.target.value)} onSearch={handleSearch} />
-
-
-
- handleCategory('all')}
- size="medium"
- label="Semua"
- sx={{
- backgroundColor: selectedCategory === 'all' ? '' : 'transparent',
- }}
- />
- {categories.map((category, index) =>
- handleCategory(category.id)}
- size="medium"
- label={category.name}
- key={index}
- sx={{
- backgroundColor: selectedCategory === category.id ? '' : 'transparent',
- }}
- />
- )}
-
-
- setSearch(e.target.value)} onSearch={handleSearch} />
-
-
-
-
- {news.data.map((news, index) =>
-
- handleFocus(news.id)}
- onBlur={handleBlur}
- tabIndex={0}
- className={focusedCardIndex === news.id ? 'Mui-focused' : ''}
- onClick={() => router.get(`/news/${news.slug}`)}
- >
-
-
-
- {news.categories.map((category, index) =>
-
- )}
-
-
- {news.title}
-
-
-
-
-
-
- )}
-
-
- {news.data.length > 0 ? (
-
-
-
- ) : (
-
-
-
- Tidak ada berita yang ditemukan
-
-
- )
- }
-
- );
-}
diff --git a/resources/js/pages/home/news/components/MostViewed.jsx b/resources/js/pages/home/news/components/MostViewed.jsx
deleted file mode 100644
index fde3522..0000000
--- a/resources/js/pages/home/news/components/MostViewed.jsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import * as React from 'react';
-import Box from '@mui/material/Box';
-import Grid from '@mui/material/Grid';
-import Typography from '@mui/material/Typography';
-import { styled } from '@mui/material/styles';
-import NavigateNextRoundedIcon from '@mui/icons-material/NavigateNextRounded';
-import { Chip } from '@mui/material';
-import Author from './Author';
-
-const StyledTypography = styled(Typography)({
- display: '-webkit-box',
- WebkitBoxOrient: 'vertical',
- WebkitLineClamp: 2,
- overflow: 'hidden',
- textOverflow: 'ellipsis',
-});
-
-const TitleTypography = styled(Typography)(({ theme }) => ({
- position: 'relative',
- textDecoration: 'none',
- '&:hover': { cursor: 'pointer' },
- '& .arrow': {
- visibility: 'hidden',
- position: 'absolute',
- right: 0,
- top: '50%',
- transform: 'translateY(-50%)',
- },
- '&:hover .arrow': {
- visibility: 'visible',
- opacity: 0.7,
- },
- '&:focus-visible': {
- outline: '3px solid',
- outlineColor: 'hsla(210, 98%, 48%, 0.5)',
- outlineOffset: '3px',
- borderRadius: '8px',
- },
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: (theme.vars || theme).palette.text.primary,
- opacity: 0.3,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- },
-}));
-
-export default function MostViewed({ mostViewedNews }) {
- const [focusedCardIndex, setFocusedCardIndex] = React.useState(null);
-
- const handleFocus = (index) => {
- setFocusedCardIndex(index);
- };
-
- const handleBlur = () => {
- setFocusedCardIndex(null);
- };
-
- return (
-
-
- Paling Banyak Dilihat
-
-
- {mostViewedNews.map((news, index) => (
-
-
-
- {news.categories.map((category, index) =>
-
- )}
-
- handleFocus(index)}
- onBlur={handleBlur}
- tabIndex={0}
- className={focusedCardIndex === index ? 'Mui-focused' : ''}
- >
- {news.title}
-
-
-
-
- {news.description}
-
-
-
-
-
- ))}
-
-
- );
-}
diff --git a/resources/js/pages/home/news/components/Search.jsx b/resources/js/pages/home/news/components/Search.jsx
deleted file mode 100644
index 203ee98..0000000
--- a/resources/js/pages/home/news/components/Search.jsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { FormControl, InputAdornment, OutlinedInput } from "@mui/material";
-import SearchRoundedIcon from '@mui/icons-material/SearchRounded';
-
-export function Search({ value, onChange, onSearch }) {
- return (
-
- {
- if (e.key === 'Enter') {
- onSearch();
- }
- }}
- startAdornment={
-
-
-
- }
- inputProps={{
- 'aria-label': 'search',
- }}
- />
-
- );
-}
diff --git a/resources/js/pages/home/news/pages/Index.jsx b/resources/js/pages/home/news/pages/Index.jsx
deleted file mode 100644
index 55ac767..0000000
--- a/resources/js/pages/home/news/pages/Index.jsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import CssBaseline from '@mui/material/CssBaseline';
-import Container from '@mui/material/Container';
-import AppTheme from '../../../theme/AppTheme';
-import Navbar from '../../components/Navbar';
-import MainContent from '../components/MainContent';
-import MostViewed from '../components/MostViewed';
-import Footer from '../../components/Footer';
-
-export default function NewsIndexPage(props) {
- return (
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/resources/js/pages/home/news/pages/Show.jsx b/resources/js/pages/home/news/pages/Show.jsx
deleted file mode 100644
index 163f610..0000000
--- a/resources/js/pages/home/news/pages/Show.jsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import CssBaseline from '@mui/material/CssBaseline';
-import Container from '@mui/material/Container';
-import AppTheme from '../../../theme/AppTheme';
-import Navbar from '../../components/Navbar';
-import Footer from '../../components/Footer';
-import { Box, CardMedia, Chip, styled, Typography } from '@mui/material';
-import Headline from '../../components/Headline';
-
-export default function NewsShowPage(props) {
- const news = props.news;
- console.log(news.tags, news.categories)
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {news.categories.map((category, index) =>
-
- )}
-
-
-
- {news.title}
-
-
-
-
- {news.tags && news.tags.length > 0 && (
-
- {news.tags.map((tag, index) =>
-
- )}
-
- )}
-
-
-
-
- );
-}
diff --git a/resources/js/pages/layouts/Layout.jsx b/resources/js/pages/layouts/Layout.jsx
deleted file mode 100644
index 87ebcd8..0000000
--- a/resources/js/pages/layouts/Layout.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Link } from '@inertiajs/react'
-
-export default function Layout({ children }) {
- return (
-
-
- Home
- About
- Contact
-
- {children}
-
- )
-}
\ No newline at end of file
diff --git a/resources/js/pages/posts/CreatePostPage.jsx b/resources/js/pages/posts/CreatePostPage.jsx
deleted file mode 100644
index 05fadec..0000000
--- a/resources/js/pages/posts/CreatePostPage.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-
-export default function CreatePostPage() {
- return (
-
-
Create Post
-
- );
-}
diff --git a/resources/js/pages/posts/EditPostPage.jsx b/resources/js/pages/posts/EditPostPage.jsx
deleted file mode 100644
index 03c44bf..0000000
--- a/resources/js/pages/posts/EditPostPage.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-
-export default function EditPostPage() {
- return (
-
-
Edit Post
-
- );
-}
diff --git a/resources/js/pages/posts/PostsIndexPage.jsx b/resources/js/pages/posts/PostsIndexPage.jsx
deleted file mode 100644
index bc5fa2e..0000000
--- a/resources/js/pages/posts/PostsIndexPage.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-
-export default function PostsIndexPage() {
- return (
-
-
Posts Index
-
- );
-}
diff --git a/resources/js/pages/posts/components/PublishStatus.jsx b/resources/js/pages/posts/components/PublishStatus.jsx
deleted file mode 100644
index 92a1d20..0000000
--- a/resources/js/pages/posts/components/PublishStatus.jsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import React from 'react';
-
-export default function PublishStatus() {
- return Published;
-}
diff --git a/resources/js/pages/posts/helpers/generateSlug.js b/resources/js/pages/posts/helpers/generateSlug.js
deleted file mode 100644
index 4ee176c..0000000
--- a/resources/js/pages/posts/helpers/generateSlug.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export const generateSlug = (title: string) => {
- return title.toLowerCase().replace(/ /g, '-').replace(/[^\w-]+/g, '');
-};
diff --git a/resources/js/pages/profile/ProfilePage.jsx b/resources/js/pages/profile/ProfilePage.jsx
deleted file mode 100644
index c025f97..0000000
--- a/resources/js/pages/profile/ProfilePage.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-
-export default function ProfilePage() {
- return (
-
-
Profile
-
- );
-}
diff --git a/resources/js/pages/profile/layouts/ProfileLayout.jsx b/resources/js/pages/profile/layouts/ProfileLayout.jsx
deleted file mode 100644
index f7df00a..0000000
--- a/resources/js/pages/profile/layouts/ProfileLayout.jsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-
-export default function ProfileLayout({ children }) {
- return (
-
- );
-}
diff --git a/resources/js/pages/theme/AppTheme.jsx b/resources/js/pages/theme/AppTheme.jsx
deleted file mode 100644
index cfbd352..0000000
--- a/resources/js/pages/theme/AppTheme.jsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import * as React from 'react';
-import { ThemeProvider, createTheme } from '@mui/material/styles';
-import { inputsCustomizations } from './customizations/inputs';
-import { dataDisplayCustomizations } from './customizations/dataDisplay';
-import { feedbackCustomizations } from './customizations/feedback';
-import { navigationCustomizations } from './customizations/navigation';
-import { surfacesCustomizations } from './customizations/surfaces';
-import { colorSchemes, typography, shadows, shape } from './themePrimitives';
-
-export default function AppTheme(props) {
- const { children, disableCustomTheme, themeComponents } = props;
- const theme = React.useMemo(() => {
- return disableCustomTheme
- ? {}
- : createTheme({
- // For more details about CSS variables configuration, see https://mui.com/material-ui/customization/css-theme-variables/configuration/
- cssVariables: {
- colorSchemeSelector: 'data-mui-color-scheme',
- cssVarPrefix: 'template',
- },
- colorSchemes, // Recently added in v6 for building light & dark mode app, see https://mui.com/material-ui/customization/palette/#color-schemes
- typography,
- shadows,
- shape,
- components: {
- ...inputsCustomizations,
- ...dataDisplayCustomizations,
- ...feedbackCustomizations,
- ...navigationCustomizations,
- ...surfacesCustomizations,
- ...themeComponents,
- },
- });
- }, [disableCustomTheme, themeComponents]);
- if (disableCustomTheme) {
- return {children};
- }
- return (
-
- {children}
-
- );
-}
diff --git a/resources/js/pages/theme/ColorModeIconDropdown.jsx b/resources/js/pages/theme/ColorModeIconDropdown.jsx
deleted file mode 100644
index 1e6d475..0000000
--- a/resources/js/pages/theme/ColorModeIconDropdown.jsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import * as React from 'react';
-import DarkModeIcon from '@mui/icons-material/DarkModeRounded';
-import LightModeIcon from '@mui/icons-material/LightModeRounded';
-import IconButton from '@mui/material/IconButton';
-import { useColorScheme } from '@mui/material/styles';
-
-export default function ColorModeToggle(props) {
- const { mode, setMode } = useColorScheme();
-
- const handleToggle = () => {
- if (mode === 'light') {
- setMode('dark');
- } else {
- setMode('light');
- }
- };
-
- const icon = mode === 'light' ? : ;
-
- return (
-
- {icon}
-
- );
-}
diff --git a/resources/js/pages/theme/ColorModeSelect.jsx b/resources/js/pages/theme/ColorModeSelect.jsx
deleted file mode 100644
index 825cab8..0000000
--- a/resources/js/pages/theme/ColorModeSelect.jsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useColorScheme } from '@mui/material/styles';
-import MenuItem from '@mui/material/MenuItem';
-import Select from '@mui/material/Select';
-
-export default function ColorModeSelect(props) {
- const { mode, setMode } = useColorScheme();
- if (!mode) {
- return null;
- }
- return (
-
- );
-}
diff --git a/resources/js/pages/theme/customizations/dataDisplay.jsx b/resources/js/pages/theme/customizations/dataDisplay.jsx
deleted file mode 100644
index e7edca9..0000000
--- a/resources/js/pages/theme/customizations/dataDisplay.jsx
+++ /dev/null
@@ -1,233 +0,0 @@
-import { alpha } from '@mui/material/styles';
-import { svgIconClasses } from '@mui/material/SvgIcon';
-import { typographyClasses } from '@mui/material/Typography';
-import { buttonBaseClasses } from '@mui/material/ButtonBase';
-import { chipClasses } from '@mui/material/Chip';
-import { iconButtonClasses } from '@mui/material/IconButton';
-import { gray, red, green } from '../themePrimitives';
-
-/* eslint-disable import/prefer-default-export */
-export const dataDisplayCustomizations = {
- MuiList: {
- styleOverrides: {
- root: {
- padding: '8px',
- display: 'flex',
- flexDirection: 'column',
- gap: 0,
- },
- },
- },
- MuiListItem: {
- styleOverrides: {
- root: ({ theme }) => ({
- [`& .${svgIconClasses.root}`]: {
- width: '1rem',
- height: '1rem',
- color: (theme.vars || theme).palette.text.secondary,
- },
- [`& .${typographyClasses.root}`]: {
- fontWeight: 500,
- },
- [`& .${buttonBaseClasses.root}`]: {
- display: 'flex',
- gap: 8,
- padding: '2px 8px',
- borderRadius: (theme.vars || theme).shape.borderRadius,
- opacity: 0.7,
- '&.Mui-selected': {
- opacity: 1,
- backgroundColor: alpha(theme.palette.action.selected, 0.3),
- [`& .${svgIconClasses.root}`]: {
- color: (theme.vars || theme).palette.text.primary,
- },
- '&:focus-visible': {
- backgroundColor: alpha(theme.palette.action.selected, 0.3),
- },
- '&:hover': {
- backgroundColor: alpha(theme.palette.action.selected, 0.5),
- },
- },
- '&:focus-visible': {
- backgroundColor: 'transparent',
- },
- },
- }),
- },
- },
- MuiListItemText: {
- styleOverrides: {
- primary: ({ theme }) => ({
- fontSize: theme.typography.body2.fontSize,
- fontWeight: 500,
- lineHeight: theme.typography.body2.lineHeight,
- }),
- secondary: ({ theme }) => ({
- fontSize: theme.typography.caption.fontSize,
- lineHeight: theme.typography.caption.lineHeight,
- }),
- },
- },
- MuiListSubheader: {
- styleOverrides: {
- root: ({ theme }) => ({
- backgroundColor: 'transparent',
- padding: '4px 8px',
- fontSize: theme.typography.caption.fontSize,
- fontWeight: 500,
- lineHeight: theme.typography.caption.lineHeight,
- }),
- },
- },
- MuiListItemIcon: {
- styleOverrides: {
- root: {
- minWidth: 0,
- },
- },
- },
- MuiChip: {
- defaultProps: {
- size: 'small',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- border: '1px solid',
- borderRadius: '999px',
- [`& .${chipClasses.label}`]: {
- fontWeight: 600,
- },
- variants: [
- {
- props: {
- color: 'default',
- },
- style: {
- borderColor: gray[200],
- backgroundColor: gray[100],
- [`& .${chipClasses.label}`]: {
- color: gray[500],
- },
- [`& .${chipClasses.icon}`]: {
- color: gray[500],
- },
- ...theme.applyStyles('dark', {
- borderColor: gray[700],
- backgroundColor: gray[800],
- [`& .${chipClasses.label}`]: {
- color: gray[300],
- },
- [`& .${chipClasses.icon}`]: {
- color: gray[300],
- },
- }),
- },
- },
- {
- props: {
- color: 'success',
- },
- style: {
- borderColor: green[200],
- backgroundColor: green[50],
- [`& .${chipClasses.label}`]: {
- color: green[500],
- },
- [`& .${chipClasses.icon}`]: {
- color: green[500],
- },
- ...theme.applyStyles('dark', {
- borderColor: green[800],
- backgroundColor: green[900],
- [`& .${chipClasses.label}`]: {
- color: green[300],
- },
- [`& .${chipClasses.icon}`]: {
- color: green[300],
- },
- }),
- },
- },
- {
- props: {
- color: 'error',
- },
- style: {
- borderColor: red[100],
- backgroundColor: red[50],
- [`& .${chipClasses.label}`]: {
- color: red[500],
- },
- [`& .${chipClasses.icon}`]: {
- color: red[500],
- },
- ...theme.applyStyles('dark', {
- borderColor: red[800],
- backgroundColor: red[900],
- [`& .${chipClasses.label}`]: {
- color: red[200],
- },
- [`& .${chipClasses.icon}`]: {
- color: red[300],
- },
- }),
- },
- },
- {
- props: { size: 'small' },
- style: {
- maxHeight: 20,
- [`& .${chipClasses.label}`]: {
- fontSize: theme.typography.caption.fontSize,
- },
- [`& .${svgIconClasses.root}`]: {
- fontSize: theme.typography.caption.fontSize,
- },
- },
- },
- {
- props: { size: 'medium' },
- style: {
- [`& .${chipClasses.label}`]: {
- fontSize: theme.typography.caption.fontSize,
- },
- },
- },
- ],
- }),
- },
- },
- MuiTablePagination: {
- styleOverrides: {
- actions: {
- display: 'flex',
- gap: 8,
- marginRight: 6,
- [`& .${iconButtonClasses.root}`]: {
- minWidth: 0,
- width: 36,
- height: 36,
- },
- },
- },
- },
- MuiIcon: {
- defaultProps: {
- fontSize: 'small',
- },
- styleOverrides: {
- root: {
- variants: [
- {
- props: {
- fontSize: 'small',
- },
- style: {
- fontSize: '1rem',
- },
- },
- ],
- },
- },
- },
-};
diff --git a/resources/js/pages/theme/customizations/feedback.jsx b/resources/js/pages/theme/customizations/feedback.jsx
deleted file mode 100644
index c8f3094..0000000
--- a/resources/js/pages/theme/customizations/feedback.jsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { alpha } from '@mui/material/styles';
-import { gray, orange } from '../themePrimitives';
-
-/* eslint-disable import/prefer-default-export */
-export const feedbackCustomizations = {
- MuiAlert: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: 10,
- backgroundColor: orange[100],
- color: (theme.vars || theme).palette.text.primary,
- border: `1px solid ${alpha(orange[300], 0.5)}`,
- '& .MuiAlert-icon': {
- color: orange[500],
- },
- ...theme.applyStyles('dark', {
- backgroundColor: `${alpha(orange[900], 0.5)}`,
- border: `1px solid ${alpha(orange[800], 0.5)}`,
- }),
- }),
- },
- },
- MuiDialog: {
- styleOverrides: {
- root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.divider,
- },
- }),
- },
- },
- MuiLinearProgress: {
- styleOverrides: {
- root: ({ theme }) => ({
- height: 8,
- borderRadius: 8,
- backgroundColor: gray[200],
- ...theme.applyStyles('dark', {
- backgroundColor: gray[800],
- }),
- }),
- },
- },
-};
diff --git a/resources/js/pages/theme/customizations/inputs.jsx b/resources/js/pages/theme/customizations/inputs.jsx
deleted file mode 100644
index 62aede6..0000000
--- a/resources/js/pages/theme/customizations/inputs.jsx
+++ /dev/null
@@ -1,444 +0,0 @@
-import { alpha } from '@mui/material/styles';
-import { outlinedInputClasses } from '@mui/material/OutlinedInput';
-import { svgIconClasses } from '@mui/material/SvgIcon';
-import { toggleButtonGroupClasses } from '@mui/material/ToggleButtonGroup';
-import { toggleButtonClasses } from '@mui/material/ToggleButton';
-import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
-import CheckRoundedIcon from '@mui/icons-material/CheckRounded';
-import RemoveRoundedIcon from '@mui/icons-material/RemoveRounded';
-import { gray, brand } from '../themePrimitives';
-
-/* eslint-disable import/prefer-default-export */
-export const inputsCustomizations = {
- MuiButtonBase: {
- defaultProps: {
- disableTouchRipple: true,
- disableRipple: true,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
- '&:focus-visible': {
- outline: `3px solid ${alpha(theme.palette.primary.main, 0.5)}`,
- outlineOffset: '2px',
- },
- }),
- },
- },
- MuiButton: {
- styleOverrides: {
- root: ({ theme }) => ({
- boxShadow: 'none',
- borderRadius: (theme.vars || theme).shape.borderRadius,
- textTransform: 'none',
- variants: [
- {
- props: {
- size: 'small',
- },
- style: {
- height: '2.25rem',
- padding: '8px 12px',
- },
- },
- {
- props: {
- size: 'medium',
- },
- style: {
- height: '2.5rem', // 40px
- },
- },
- {
- props: {
- color: 'primary',
- variant: 'contained',
- },
- style: {
- color: 'white',
- backgroundColor: gray[900],
- backgroundImage: `linear-gradient(to bottom, ${gray[700]}, ${gray[800]})`,
- boxShadow: `inset 0 1px 0 ${gray[600]}, inset 0 -1px 0 1px hsl(220, 0%, 0%)`,
- border: `1px solid ${gray[700]}`,
- '&:hover': {
- backgroundImage: 'none',
- backgroundColor: gray[700],
- boxShadow: 'none',
- },
- '&:active': {
- backgroundColor: gray[800],
- },
- ...theme.applyStyles('dark', {
- color: 'black',
- backgroundColor: gray[50],
- backgroundImage: `linear-gradient(to bottom, ${gray[100]}, ${gray[50]})`,
- boxShadow: 'inset 0 -1px 0 hsl(220, 30%, 80%)',
- border: `1px solid ${gray[50]}`,
- '&:hover': {
- backgroundImage: 'none',
- backgroundColor: gray[300],
- boxShadow: 'none',
- },
- '&:active': {
- backgroundColor: gray[400],
- },
- }),
- },
- },
- {
- props: {
- color: 'secondary',
- variant: 'contained',
- },
- style: {
- color: 'white',
- backgroundColor: brand[300],
- backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
- boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
- border: `1px solid ${brand[500]}`,
- '&:hover': {
- backgroundColor: brand[700],
- boxShadow: 'none',
- },
- '&:active': {
- backgroundColor: brand[700],
- backgroundImage: 'none',
- },
- },
- },
- {
- props: {
- variant: 'outlined',
- },
- style: {
- color: (theme.vars || theme).palette.text.primary,
- border: '1px solid',
- borderColor: gray[200],
- backgroundColor: alpha(gray[50], 0.3),
- '&:hover': {
- backgroundColor: gray[100],
- borderColor: gray[300],
- },
- '&:active': {
- backgroundColor: gray[200],
- },
- ...theme.applyStyles('dark', {
- backgroundColor: gray[800],
- borderColor: gray[700],
-
- '&:hover': {
- backgroundColor: gray[900],
- borderColor: gray[600],
- },
- '&:active': {
- backgroundColor: gray[900],
- },
- }),
- },
- },
- {
- props: {
- color: 'secondary',
- variant: 'outlined',
- },
- style: {
- color: brand[700],
- border: '1px solid',
- borderColor: brand[200],
- backgroundColor: brand[50],
- '&:hover': {
- backgroundColor: brand[100],
- borderColor: brand[400],
- },
- '&:active': {
- backgroundColor: alpha(brand[200], 0.7),
- },
- ...theme.applyStyles('dark', {
- color: brand[50],
- border: '1px solid',
- borderColor: brand[900],
- backgroundColor: alpha(brand[900], 0.3),
- '&:hover': {
- borderColor: brand[700],
- backgroundColor: alpha(brand[900], 0.6),
- },
- '&:active': {
- backgroundColor: alpha(brand[900], 0.5),
- },
- }),
- },
- },
- {
- props: {
- variant: 'text',
- },
- style: {
- color: gray[600],
- '&:hover': {
- backgroundColor: gray[100],
- },
- '&:active': {
- backgroundColor: gray[200],
- },
- ...theme.applyStyles('dark', {
- color: gray[50],
- '&:hover': {
- backgroundColor: gray[700],
- },
- '&:active': {
- backgroundColor: alpha(gray[700], 0.7),
- },
- }),
- },
- },
- {
- props: {
- color: 'secondary',
- variant: 'text',
- },
- style: {
- color: brand[700],
- '&:hover': {
- backgroundColor: alpha(brand[100], 0.5),
- },
- '&:active': {
- backgroundColor: alpha(brand[200], 0.7),
- },
- ...theme.applyStyles('dark', {
- color: brand[100],
- '&:hover': {
- backgroundColor: alpha(brand[900], 0.5),
- },
- '&:active': {
- backgroundColor: alpha(brand[900], 0.3),
- },
- }),
- },
- },
- ],
- }),
- },
- },
- MuiIconButton: {
- styleOverrides: {
- root: ({ theme }) => ({
- boxShadow: 'none',
- borderRadius: (theme.vars || theme).shape.borderRadius,
- textTransform: 'none',
- fontWeight: theme.typography.fontWeightMedium,
- letterSpacing: 0,
- color: (theme.vars || theme).palette.text.primary,
- border: '1px solid ',
- borderColor: gray[200],
- backgroundColor: alpha(gray[50], 0.3),
- '&:hover': {
- backgroundColor: gray[100],
- borderColor: gray[300],
- },
- '&:active': {
- backgroundColor: gray[200],
- },
- ...theme.applyStyles('dark', {
- backgroundColor: gray[800],
- borderColor: gray[700],
- '&:hover': {
- backgroundColor: gray[900],
- borderColor: gray[600],
- },
- '&:active': {
- backgroundColor: gray[900],
- },
- }),
- variants: [
- {
- props: {
- size: 'small',
- },
- style: {
- width: '2.25rem',
- height: '2.25rem',
- padding: '0.25rem',
- [`& .${svgIconClasses.root}`]: { fontSize: '1rem' },
- },
- },
- {
- props: {
- size: 'medium',
- },
- style: {
- width: '2.5rem',
- height: '2.5rem',
- },
- },
- ],
- }),
- },
- },
- MuiToggleButtonGroup: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
- [`& .${toggleButtonGroupClasses.selected}`]: {
- color: brand[500],
- },
- ...theme.applyStyles('dark', {
- [`& .${toggleButtonGroupClasses.selected}`]: {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiToggleButton: {
- styleOverrides: {
- root: ({ theme }) => ({
- padding: '12px 16px',
- textTransform: 'none',
- borderRadius: '10px',
- fontWeight: 500,
- ...theme.applyStyles('dark', {
- color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
- [`&.${toggleButtonClasses.selected}`]: {
- color: brand[300],
- },
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: (
-
- ),
- checkedIcon: ,
- indeterminateIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
- backgroundColor: alpha(gray[100], 0.4),
- transition: 'border-color, background-color, 120ms ease-in',
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- borderColor: brand[500],
- boxShadow: `none`,
- '&:hover': {
- backgroundColor: brand[600],
- },
- },
- ...theme.applyStyles('dark', {
- borderColor: alpha(gray[700], 0.8),
- boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- },
- }),
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
- input: {
- '&::placeholder': {
- opacity: 0.7,
- color: gray[500],
- },
- },
- },
- },
- MuiOutlinedInput: {
- styleOverrides: {
- input: {
- padding: 0,
- },
- root: ({ theme }) => ({
- padding: '8px 12px',
- color: (theme.vars || theme).palette.text.primary,
- borderRadius: (theme.vars || theme).shape.borderRadius,
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
- backgroundColor: (theme.vars || theme).palette.background.default,
- transition: 'border 120ms ease-in',
- '&:hover': {
- borderColor: gray[400],
- },
- [`&.${outlinedInputClasses.focused}`]: {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- borderColor: brand[400],
- },
- ...theme.applyStyles('dark', {
- '&:hover': {
- borderColor: gray[500],
- },
- }),
- variants: [
- {
- props: {
- size: 'small',
- },
- style: {
- height: '2.25rem',
- },
- },
- {
- props: {
- size: 'medium',
- },
- style: {
- height: '2.5rem',
- },
- },
- ],
- }),
- notchedOutline: {
- border: 'none',
- },
- },
- },
- MuiInputAdornment: {
- styleOverrides: {
- root: ({ theme }) => ({
- color: (theme.vars || theme).palette.grey[500],
- ...theme.applyStyles('dark', {
- color: (theme.vars || theme).palette.grey[400],
- }),
- }),
- },
- },
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
-};
diff --git a/resources/js/pages/theme/customizations/navigation.jsx b/resources/js/pages/theme/customizations/navigation.jsx
deleted file mode 100644
index e83f497..0000000
--- a/resources/js/pages/theme/customizations/navigation.jsx
+++ /dev/null
@@ -1,279 +0,0 @@
-import * as React from 'react';
-import { alpha } from '@mui/material/styles';
-
-import { buttonBaseClasses } from '@mui/material/ButtonBase';
-import { dividerClasses } from '@mui/material/Divider';
-import { menuItemClasses } from '@mui/material/MenuItem';
-import { selectClasses } from '@mui/material/Select';
-import { tabClasses } from '@mui/material/Tab';
-import UnfoldMoreRoundedIcon from '@mui/icons-material/UnfoldMoreRounded';
-import { gray, brand } from '../themePrimitives';
-
-/* eslint-disable import/prefer-default-export */
-export const navigationCustomizations = {
- MuiMenuItem: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: (theme.vars || theme).shape.borderRadius,
- padding: '6px 8px',
- [`&.${menuItemClasses.focusVisible}`]: {
- backgroundColor: 'transparent',
- },
- [`&.${menuItemClasses.selected}`]: {
- [`&.${menuItemClasses.focusVisible}`]: {
- backgroundColor: alpha(theme.palette.action.selected, 0.3),
- },
- },
- }),
- },
- },
- MuiMenu: {
- styleOverrides: {
- list: {
- gap: '0px',
- [`&.${dividerClasses.root}`]: {
- margin: '0 -8px',
- },
- },
- paper: ({ theme }) => ({
- marginTop: '4px',
- borderRadius: (theme.vars || theme).shape.borderRadius,
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
- backgroundImage: 'none',
- background: 'hsl(0, 0%, 100%)',
- boxShadow:
- 'hsla(220, 30%, 5%, 0.07) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.07) 0px 8px 16px -5px',
- [`& .${buttonBaseClasses.root}`]: {
- '&.Mui-selected': {
- backgroundColor: alpha(theme.palette.action.selected, 0.3),
- },
- },
- ...theme.applyStyles('dark', {
- background: gray[900],
- boxShadow:
- 'hsla(220, 30%, 5%, 0.7) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.8) 0px 8px 16px -5px',
- }),
- }),
- },
- },
- MuiSelect: {
- defaultProps: {
- IconComponent: React.forwardRef((props, ref) => (
-
- )),
- },
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: (theme.vars || theme).shape.borderRadius,
- border: '1px solid',
- borderColor: gray[200],
- backgroundColor: (theme.vars || theme).palette.background.paper,
- boxShadow: `inset 0 1px 0 1px hsla(220, 0%, 100%, 0.6), inset 0 -1px 0 1px hsla(220, 35%, 90%, 0.5)`,
- '&:hover': {
- borderColor: gray[300],
- backgroundColor: (theme.vars || theme).palette.background.paper,
- boxShadow: 'none',
- },
- [`&.${selectClasses.focused}`]: {
- outlineOffset: 0,
- borderColor: gray[400],
- },
- '&:before, &:after': {
- display: 'none',
- },
-
- ...theme.applyStyles('dark', {
- borderRadius: (theme.vars || theme).shape.borderRadius,
- borderColor: gray[700],
- backgroundColor: (theme.vars || theme).palette.background.paper,
- boxShadow: `inset 0 1px 0 1px ${alpha(gray[700], 0.15)}, inset 0 -1px 0 1px hsla(220, 0%, 0%, 0.7)`,
- '&:hover': {
- borderColor: alpha(gray[700], 0.7),
- backgroundColor: (theme.vars || theme).palette.background.paper,
- boxShadow: 'none',
- },
- [`&.${selectClasses.focused}`]: {
- outlineOffset: 0,
- borderColor: gray[900],
- },
- '&:before, &:after': {
- display: 'none',
- },
- }),
- }),
- select: ({ theme }) => ({
- display: 'flex',
- alignItems: 'center',
- ...theme.applyStyles('dark', {
- display: 'flex',
- alignItems: 'center',
- '&:focus-visible': {
- backgroundColor: gray[900],
- },
- }),
- }),
- },
- },
- MuiLink: {
- defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: (theme.vars || theme).palette.text.primary,
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- width: 'fit-content',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: '100%',
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: (theme.vars || theme).palette.text.secondary,
- opacity: 0.3,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: 0,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- }),
- },
- },
- MuiDrawer: {
- styleOverrides: {
- paper: ({ theme }) => ({
- backgroundColor: (theme.vars || theme).palette.background.default,
- }),
- },
- },
- MuiPaginationItem: {
- styleOverrides: {
- root: ({ theme }) => ({
- '&.Mui-selected': {
- color: 'white',
- backgroundColor: (theme.vars || theme).palette.grey[900],
- },
- ...theme.applyStyles('dark', {
- '&.Mui-selected': {
- color: 'black',
- backgroundColor: (theme.vars || theme).palette.grey[50],
- },
- }),
- }),
- },
- },
- MuiTabs: {
- styleOverrides: {
- root: { minHeight: 'fit-content' },
- indicator: ({ theme }) => ({
- backgroundColor: (theme.vars || theme).palette.grey[800],
- ...theme.applyStyles('dark', {
- backgroundColor: (theme.vars || theme).palette.grey[200],
- }),
- }),
- },
- },
- MuiTab: {
- styleOverrides: {
- root: ({ theme }) => ({
- padding: '6px 8px',
- marginBottom: '8px',
- textTransform: 'none',
- minWidth: 'fit-content',
- minHeight: 'fit-content',
- color: (theme.vars || theme).palette.text.secondary,
- borderRadius: (theme.vars || theme).shape.borderRadius,
- border: '1px solid',
- borderColor: 'transparent',
- ':hover': {
- color: (theme.vars || theme).palette.text.primary,
- backgroundColor: gray[100],
- borderColor: gray[200],
- },
- [`&.${tabClasses.selected}`]: {
- color: gray[900],
- },
- ...theme.applyStyles('dark', {
- ':hover': {
- color: (theme.vars || theme).palette.text.primary,
- backgroundColor: gray[800],
- borderColor: gray[700],
- },
- [`&.${tabClasses.selected}`]: {
- color: '#fff',
- },
- }),
- }),
- },
- },
- MuiStepConnector: {
- styleOverrides: {
- line: ({ theme }) => ({
- borderTop: '1px solid',
- borderColor: (theme.vars || theme).palette.divider,
- flex: 1,
- borderRadius: '99px',
- }),
- },
- },
- MuiStepIcon: {
- styleOverrides: {
- root: ({ theme }) => ({
- color: 'transparent',
- border: `1px solid ${gray[400]}`,
- width: 12,
- height: 12,
- borderRadius: '50%',
- '& text': {
- display: 'none',
- },
- '&.Mui-active': {
- border: 'none',
- color: (theme.vars || theme).palette.primary.main,
- },
- '&.Mui-completed': {
- border: 'none',
- color: (theme.vars || theme).palette.success.main,
- },
- ...theme.applyStyles('dark', {
- border: `1px solid ${gray[700]}`,
- '&.Mui-active': {
- border: 'none',
- color: (theme.vars || theme).palette.primary.light,
- },
- '&.Mui-completed': {
- border: 'none',
- color: (theme.vars || theme).palette.success.light,
- },
- }),
- variants: [
- {
- props: { completed: true },
- style: {
- width: 12,
- height: 12,
- },
- },
- ],
- }),
- },
- },
- MuiStepLabel: {
- styleOverrides: {
- label: ({ theme }) => ({
- '&.Mui-completed': {
- opacity: 0.6,
- ...theme.applyStyles('dark', { opacity: 0.5 }),
- },
- }),
- },
- },
-};
diff --git a/resources/js/pages/theme/customizations/surfaces.ts b/resources/js/pages/theme/customizations/surfaces.ts
deleted file mode 100644
index ff22893..0000000
--- a/resources/js/pages/theme/customizations/surfaces.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-import { alpha } from '@mui/material/styles';
-import type { Theme, Components } from '@mui/material/styles';
-import { gray } from '../themePrimitives';
-
-/* eslint-disable import/prefer-default-export */
-export const surfacesCustomizations: Components = {
- MuiAccordion: {
- defaultProps: {
- elevation: 0,
- disableGutters: true,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- padding: 4,
- overflow: 'clip',
- backgroundColor: (theme.vars || theme).palette.background.default,
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.divider,
- ':before': {
- backgroundColor: 'transparent',
- },
- '&:not(:last-of-type)': {
- borderBottom: 'none',
- },
- '&:first-of-type': {
- borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,
- borderTopRightRadius: (theme.vars || theme).shape.borderRadius,
- },
- '&:last-of-type': {
- borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,
- borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,
- },
- }),
- },
- },
- MuiAccordionSummary: {
- styleOverrides: {
- root: ({ theme }) => ({
- border: 'none',
- borderRadius: 8,
- '&:hover': { backgroundColor: gray[50] },
- '&:focus-visible': { backgroundColor: 'transparent' },
- ...theme.applyStyles('dark', {
- '&:hover': { backgroundColor: gray[800] },
- }),
- }),
- },
- },
- MuiAccordionDetails: {
- styleOverrides: {
- root: { mb: 20, border: 'none' },
- },
- },
- MuiPaper: {
- defaultProps: {
- elevation: 0,
- },
- },
- MuiCard: {
- styleOverrides: {
- root: ({ theme }) => {
- return {
- padding: 16,
- gap: 16,
- transition: 'all 100ms ease',
- backgroundColor: gray[50],
- borderRadius: (theme.vars || theme).shape.borderRadius,
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
- boxShadow: 'none',
- ...theme.applyStyles('dark', {
- backgroundColor: gray[800],
- }),
- variants: [
- {
- props: {
- variant: 'outlined',
- },
- style: {
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
- boxShadow: 'none',
- background: 'hsl(0, 0%, 100%)',
- ...theme.applyStyles('dark', {
- background: alpha(gray[900], 0.4),
- }),
- },
- },
- ],
- };
- },
- },
- },
- MuiCardContent: {
- styleOverrides: {
- root: {
- padding: 0,
- '&:last-child': { paddingBottom: 0 },
- },
- },
- },
- MuiCardHeader: {
- styleOverrides: {
- root: {
- padding: 0,
- },
- },
- },
- MuiCardActions: {
- styleOverrides: {
- root: {
- padding: 0,
- },
- },
- },
-};
diff --git a/resources/js/pages/theme/themePrimitives.ts b/resources/js/pages/theme/themePrimitives.ts
deleted file mode 100644
index ddd1e5d..0000000
--- a/resources/js/pages/theme/themePrimitives.ts
+++ /dev/null
@@ -1,403 +0,0 @@
-import { createTheme, alpha, PaletteMode, Shadows } from '@mui/material/styles';
-
-declare module '@mui/material/Paper' {
- interface PaperPropsVariantOverrides {
- highlighted: true;
- }
-}
-declare module '@mui/material/styles' {
- interface ColorRange {
- 50: string;
- 100: string;
- 200: string;
- 300: string;
- 400: string;
- 500: string;
- 600: string;
- 700: string;
- 800: string;
- 900: string;
- }
-
- interface PaletteColor extends ColorRange { }
-
- interface Palette {
- baseShadow: string;
- }
-}
-
-const defaultTheme = createTheme();
-
-const customShadows: Shadows = [...defaultTheme.shadows];
-
-export const brand = {
- 50: 'hsl(210, 100%, 95%)',
- 100: 'hsl(210, 100%, 92%)',
- 200: 'hsl(210, 100%, 80%)',
- 300: 'hsl(210, 100%, 65%)',
- 400: 'hsl(210, 98%, 48%)',
- 500: 'hsl(210, 98%, 42%)',
- 600: 'hsl(210, 98%, 55%)',
- 700: 'hsl(210, 100%, 35%)',
- 800: 'hsl(210, 100%, 16%)',
- 900: 'hsl(210, 100%, 21%)',
-};
-
-export const gray = {
- 50: 'hsl(220, 35%, 97%)',
- 100: 'hsl(220, 30%, 94%)',
- 200: 'hsl(220, 20%, 88%)',
- 300: 'hsl(220, 20%, 80%)',
- 400: 'hsl(220, 20%, 65%)',
- 500: 'hsl(220, 20%, 42%)',
- 600: 'hsl(220, 20%, 35%)',
- 700: 'hsl(220, 20%, 25%)',
- 800: 'hsl(220, 30%, 6%)',
- 900: 'hsl(220, 35%, 3%)',
-};
-
-export const green = {
- 50: 'hsl(120, 80%, 98%)',
- 100: 'hsl(120, 75%, 94%)',
- 200: 'hsl(120, 75%, 87%)',
- 300: 'hsl(120, 61%, 77%)',
- 400: 'hsl(120, 44%, 53%)',
- 500: 'hsl(120, 59%, 30%)',
- 600: 'hsl(120, 70%, 25%)',
- 700: 'hsl(120, 75%, 16%)',
- 800: 'hsl(120, 84%, 10%)',
- 900: 'hsl(120, 87%, 6%)',
-};
-
-export const orange = {
- 50: 'hsl(45, 100%, 97%)',
- 100: 'hsl(45, 92%, 90%)',
- 200: 'hsl(45, 94%, 80%)',
- 300: 'hsl(45, 90%, 65%)',
- 400: 'hsl(45, 90%, 40%)',
- 500: 'hsl(45, 90%, 35%)',
- 600: 'hsl(45, 91%, 25%)',
- 700: 'hsl(45, 94%, 20%)',
- 800: 'hsl(45, 95%, 16%)',
- 900: 'hsl(45, 93%, 12%)',
-};
-
-export const red = {
- 50: 'hsl(0, 100%, 97%)',
- 100: 'hsl(0, 92%, 90%)',
- 200: 'hsl(0, 94%, 80%)',
- 300: 'hsl(0, 90%, 65%)',
- 400: 'hsl(0, 90%, 40%)',
- 500: 'hsl(0, 90%, 30%)',
- 600: 'hsl(0, 91%, 25%)',
- 700: 'hsl(0, 94%, 18%)',
- 800: 'hsl(0, 95%, 12%)',
- 900: 'hsl(0, 93%, 6%)',
-};
-
-export const getDesignTokens = (mode: PaletteMode) => {
- customShadows[1] =
- mode === 'dark'
- ? 'hsla(220, 30%, 5%, 0.7) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.8) 0px 8px 16px -5px'
- : 'hsla(220, 30%, 5%, 0.07) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.07) 0px 8px 16px -5px';
-
- return {
- palette: {
- mode,
- primary: {
- light: brand[200],
- main: brand[400],
- dark: brand[700],
- contrastText: brand[50],
- ...(mode === 'dark' && {
- contrastText: brand[50],
- light: brand[300],
- main: brand[400],
- dark: brand[700],
- }),
- },
- info: {
- light: brand[100],
- main: brand[300],
- dark: brand[600],
- contrastText: gray[50],
- ...(mode === 'dark' && {
- contrastText: brand[300],
- light: brand[500],
- main: brand[700],
- dark: brand[900],
- }),
- },
- warning: {
- light: orange[300],
- main: orange[400],
- dark: orange[800],
- ...(mode === 'dark' && {
- light: orange[400],
- main: orange[500],
- dark: orange[700],
- }),
- },
- error: {
- light: red[300],
- main: red[400],
- dark: red[800],
- ...(mode === 'dark' && {
- light: red[400],
- main: red[500],
- dark: red[700],
- }),
- },
- success: {
- light: green[300],
- main: green[400],
- dark: green[800],
- ...(mode === 'dark' && {
- light: green[400],
- main: green[500],
- dark: green[700],
- }),
- },
- grey: {
- ...gray,
- },
- divider: mode === 'dark' ? alpha(gray[700], 0.6) : alpha(gray[300], 0.4),
- background: {
- default: 'hsl(0, 0%, 99%)',
- paper: 'hsl(220, 35%, 97%)',
- ...(mode === 'dark' && { default: gray[900], paper: 'hsl(220, 30%, 7%)' }),
- },
- text: {
- primary: gray[800],
- secondary: gray[600],
- warning: orange[400],
- ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
- },
- action: {
- hover: alpha(gray[200], 0.2),
- selected: `${alpha(gray[200], 0.3)}`,
- ...(mode === 'dark' && {
- hover: alpha(gray[600], 0.2),
- selected: alpha(gray[600], 0.3),
- }),
- },
- },
- typography: {
- fontFamily: 'Inter, sans-serif',
- h1: {
- fontSize: defaultTheme.typography.pxToRem(48),
- fontWeight: 600,
- lineHeight: 1.2,
- letterSpacing: -0.5,
- },
- h2: {
- fontSize: defaultTheme.typography.pxToRem(36),
- fontWeight: 600,
- lineHeight: 1.2,
- },
- h3: {
- fontSize: defaultTheme.typography.pxToRem(30),
- lineHeight: 1.2,
- },
- h4: {
- fontSize: defaultTheme.typography.pxToRem(24),
- fontWeight: 600,
- lineHeight: 1.5,
- },
- h5: {
- fontSize: defaultTheme.typography.pxToRem(20),
- fontWeight: 600,
- },
- h6: {
- fontSize: defaultTheme.typography.pxToRem(18),
- fontWeight: 600,
- },
- subtitle1: {
- fontSize: defaultTheme.typography.pxToRem(18),
- },
- subtitle2: {
- fontSize: defaultTheme.typography.pxToRem(14),
- fontWeight: 500,
- },
- body1: {
- fontSize: defaultTheme.typography.pxToRem(14),
- },
- body2: {
- fontSize: defaultTheme.typography.pxToRem(14),
- fontWeight: 400,
- },
- caption: {
- fontSize: defaultTheme.typography.pxToRem(12),
- fontWeight: 400,
- },
- },
- shape: {
- borderRadius: 8,
- },
- shadows: customShadows,
- };
-};
-
-export const colorSchemes = {
- light: {
- palette: {
- primary: {
- light: brand[200],
- main: brand[400],
- dark: brand[700],
- contrastText: brand[50],
- },
- info: {
- light: brand[100],
- main: brand[300],
- dark: brand[600],
- contrastText: gray[50],
- },
- warning: {
- light: orange[300],
- main: orange[400],
- dark: orange[800],
- },
- error: {
- light: red[300],
- main: red[400],
- dark: red[800],
- },
- success: {
- light: green[300],
- main: green[400],
- dark: green[800],
- },
- grey: {
- ...gray,
- },
- divider: alpha(gray[300], 0.4),
- background: {
- default: 'hsl(0, 0%, 99%)',
- paper: 'hsl(220, 35%, 97%)',
- },
- text: {
- primary: gray[800],
- secondary: gray[600],
- warning: orange[400],
- },
- action: {
- hover: alpha(gray[200], 0.2),
- selected: `${alpha(gray[200], 0.3)}`,
- },
- baseShadow:
- 'hsla(220, 30%, 5%, 0.07) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.07) 0px 8px 16px -5px',
- },
- },
- dark: {
- palette: {
- primary: {
- contrastText: brand[50],
- light: brand[300],
- main: brand[400],
- dark: brand[700],
- },
- info: {
- contrastText: brand[300],
- light: brand[500],
- main: brand[700],
- dark: brand[900],
- },
- warning: {
- light: orange[400],
- main: orange[500],
- dark: orange[700],
- },
- error: {
- light: red[400],
- main: red[500],
- dark: red[700],
- },
- success: {
- light: green[400],
- main: green[500],
- dark: green[700],
- },
- grey: {
- ...gray,
- },
- divider: alpha(gray[700], 0.6),
- background: {
- default: gray[900],
- paper: 'hsl(220, 30%, 7%)',
- },
- text: {
- primary: 'hsl(0, 0%, 100%)',
- secondary: gray[400],
- },
- action: {
- hover: alpha(gray[600], 0.2),
- selected: alpha(gray[600], 0.3),
- },
- baseShadow:
- 'hsla(220, 30%, 5%, 0.7) 0px 4px 16px 0px, hsla(220, 25%, 10%, 0.8) 0px 8px 16px -5px',
- },
- },
-};
-
-export const typography = {
- fontFamily: 'Inter, sans-serif',
- h1: {
- fontSize: defaultTheme.typography.pxToRem(48),
- fontWeight: 600,
- lineHeight: 1.2,
- letterSpacing: -0.5,
- },
- h2: {
- fontSize: defaultTheme.typography.pxToRem(36),
- fontWeight: 600,
- lineHeight: 1.2,
- },
- h3: {
- fontSize: defaultTheme.typography.pxToRem(30),
- lineHeight: 1.2,
- },
- h4: {
- fontSize: defaultTheme.typography.pxToRem(24),
- fontWeight: 600,
- lineHeight: 1.5,
- },
- h5: {
- fontSize: defaultTheme.typography.pxToRem(20),
- fontWeight: 600,
- },
- h6: {
- fontSize: defaultTheme.typography.pxToRem(18),
- fontWeight: 600,
- },
- subtitle1: {
- fontSize: defaultTheme.typography.pxToRem(18),
- },
- subtitle2: {
- fontSize: defaultTheme.typography.pxToRem(14),
- fontWeight: 500,
- },
- body1: {
- fontSize: defaultTheme.typography.pxToRem(14),
- },
- body2: {
- fontSize: defaultTheme.typography.pxToRem(14),
- fontWeight: 400,
- },
- caption: {
- fontSize: defaultTheme.typography.pxToRem(12),
- fontWeight: 400,
- },
-};
-
-export const shape = {
- borderRadius: 8,
-};
-
-// @ts-ignore
-const defaultShadows: Shadows = [
- 'none',
- 'var(--template-palette-baseShadow)',
- ...defaultTheme.shadows.slice(2),
-];
-export const shadows = defaultShadows;
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php
deleted file mode 100644
index ec07618..0000000
--- a/resources/views/app.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- @viteReactRefresh
- @vite('resources/js/app.jsx')
- @inertiaHead
-
-
-
- @inertia
-
-
-
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
deleted file mode 100644
index b7355d7..0000000
--- a/resources/views/welcome.blade.php
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-
-
-
-
- {{ config('app.name', 'Laravel') }}
-
-
-
-
-
-
- @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot')))
- @vite(['resources/css/app.css', 'resources/js/app.js'])
- @else
-
- @endif
-
-
-
- @if (Route::has('login'))
-
- @endif
-
-
-
-
-
Let's get started
-
Laravel has an incredibly rich ecosystem.
We suggest starting with the following.
-
-
-
-
- {{-- Laravel Logo --}}
-
-
- {{-- Light Mode 12 SVG --}}
-
-
- {{-- Dark Mode 12 SVG --}}
-
-
-
-
-
-
- @if (Route::has('login'))
-
- @endif
-
-
diff --git a/routes/web.php b/routes/web.php
index fcf4a62..a6de484 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,9 +1,7 @@
name('homepage');
-Route::get('/news', [NewsController::class, 'index'])->name('news.index');
-Route::get('/news/{news:slug}', [NewsController::class, 'show'])->name('news.show');
+Route::get('/', function () {
+ return redirect('/dashboard');
+});
diff --git a/vite.config.js b/vite.config.js
index 910b8e1..ac4c18a 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,18 +1,16 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import tailwindcss from '@tailwindcss/vite';
-import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [
laravel({
input: [
- 'resources/js/app.jsx',
+ 'resources/js/app.js',
'resources/css/filament/dashboard/theme.css'
],
refresh: true,
}),
tailwindcss(),
- react(),
],
});