diff --git a/README.md b/README.md
index dd140f4..f068b7d 100644
--- a/README.md
+++ b/README.md
@@ -27,14 +27,14 @@ HR software you love to hate
dcr php php artisan key:generate
-- generate storage link
-
- dcr php php artisan storage:link
-
- migrate and seed database
dcr php php artisan migrate --seed
+- build assets
+
+ dcr node npm run dev
+
## Available containers (local)
- **php** - php and composer stuff
- **node** - npm stuff
diff --git a/package-lock.json b/package-lock.json
index ee2c24d..61434f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,10 +5,13 @@
"packages": {
"": {
"dependencies": {
+ "@headlessui/vue": "^1.4.2",
+ "@heroicons/vue": "^1.0.5",
"@inertiajs/inertia": "^0.11.0",
"@inertiajs/inertia-vue3": "^0.6.0",
"@inertiajs/progress": "^0.2.7",
"@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/line-clamp": "^0.3.0",
"@tailwindcss/typography": "^0.5.0",
"@vue/compiler-sfc": "^3.2.26",
"autoprefixer": "^10.4.2",
@@ -1614,6 +1617,25 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@headlessui/vue": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.4.2.tgz",
+ "integrity": "sha512-+uOaPwHncxHZ6JBwYycu3YxDDrY0v1tcxCtK04H1WGBLBm07dqVi38Q2RB7eY867FUhD0sL6q+Fj69rVn8P0OQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@heroicons/vue": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.5.tgz",
+ "integrity": "sha512-idWtp20Fjr7mqnD7EdGDUDi83oWHnx3SwyuQY6GZyF33OApzpBOLxz7xa4t6rPOddGz9tI5RGnndLk+ake7ijQ==",
+ "peerDependencies": {
+ "vue": ">= 3"
+ }
+ },
"node_modules/@inertiajs/inertia": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@inertiajs/inertia/-/inertia-0.11.0.tgz",
@@ -1691,6 +1713,14 @@
"tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
}
},
+ "node_modules/@tailwindcss/line-clamp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.3.0.tgz",
+ "integrity": "sha512-ffDDclrqr3sy8cpChCozedDUAN8enxqAiWeH8d4dGQ2hcXlxf51+7KleveFi/n/TxEuRVApoL7hICeDOdYPKpg==",
+ "peerDependencies": {
+ "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1"
+ }
+ },
"node_modules/@tailwindcss/typography": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.0.tgz",
@@ -9912,6 +9942,18 @@
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz",
"integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA=="
},
+ "@headlessui/vue": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.4.2.tgz",
+ "integrity": "sha512-+uOaPwHncxHZ6JBwYycu3YxDDrY0v1tcxCtK04H1WGBLBm07dqVi38Q2RB7eY867FUhD0sL6q+Fj69rVn8P0OQ==",
+ "requires": {}
+ },
+ "@heroicons/vue": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.5.tgz",
+ "integrity": "sha512-idWtp20Fjr7mqnD7EdGDUDi83oWHnx3SwyuQY6GZyF33OApzpBOLxz7xa4t6rPOddGz9tI5RGnndLk+ake7ijQ==",
+ "requires": {}
+ },
"@inertiajs/inertia": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@inertiajs/inertia/-/inertia-0.11.0.tgz",
@@ -9970,6 +10012,12 @@
"mini-svg-data-uri": "^1.2.3"
}
},
+ "@tailwindcss/line-clamp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.3.0.tgz",
+ "integrity": "sha512-ffDDclrqr3sy8cpChCozedDUAN8enxqAiWeH8d4dGQ2hcXlxf51+7KleveFi/n/TxEuRVApoL7hICeDOdYPKpg==",
+ "requires": {}
+ },
"@tailwindcss/typography": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.0.tgz",
diff --git a/package.json b/package.json
index 5573d10..44bd360 100644
--- a/package.json
+++ b/package.json
@@ -10,10 +10,13 @@
"production": "mix --production"
},
"dependencies": {
+ "@headlessui/vue": "^1.4.2",
+ "@heroicons/vue": "^1.0.5",
"@inertiajs/inertia": "^0.11.0",
"@inertiajs/inertia-vue3": "^0.6.0",
"@inertiajs/progress": "^0.2.7",
"@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/line-clamp": "^0.3.0",
"@tailwindcss/typography": "^0.5.0",
"@vue/compiler-sfc": "^3.2.26",
"autoprefixer": "^10.4.2",
diff --git a/resources/js/Pages/Dashboard.vue b/resources/js/Pages/Dashboard.vue
new file mode 100644
index 0000000..4779054
--- /dev/null
+++ b/resources/js/Pages/Dashboard.vue
@@ -0,0 +1,517 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Open main menu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
![]()
+
+
+
+ {{ user.name }}
+
+
+ {{ user.email }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Profile
+
+
+
+
+
+
+
+
Profile Overview
+
+
+
+
+
![]()
+
+
+
+ Welcome back,
+
+
+ {{ user.name }}
+
+
+ {{ user.role }}
+
+
+
+
+
+
+
+
+ {{ stat.value }}
+ {{ ' ' }}
+ {{ stat.label }}
+
+
+
+
+
+
+
+
+
Quick links
+
+
+
+
+
+
+
+
+
+ Doloribus dolores nostrum quia qui natus officia quod et dolorem. Sit
+ repellendus qui ut at blanditiis et quo et molestiae.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Announcements
+
+
+
+ -
+
+
+
+ {{ announcement.preview }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Recent Hires
+
+
+
+ -
+
+
+
![]()
+
+
+
+ {{ person.name }}
+
+
+ {{ '@' + person.handle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/js/Pages/Welcome.vue b/resources/js/Pages/Welcome.vue
deleted file mode 100644
index 49c9acc..0000000
--- a/resources/js/Pages/Welcome.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Hello world!
-
-
-
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php
index 3eb5dcd..2e48b9b 100644
--- a/resources/views/app.blade.php
+++ b/resources/views/app.blade.php
@@ -1,5 +1,5 @@
-
+
@@ -8,7 +8,7 @@
@inertiaHead
-
+
@inertia
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index dc3df48..99b6a46 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -4,4 +4,4 @@ declare(strict_types=1);
use Illuminate\Support\Facades\Route;
-Route::get("/", fn() => inertia("Welcome"));
+Route::get("/", fn() => inertia("Dashboard"));
diff --git a/tailwind.config.js b/tailwind.config.js
index 1e6b83a..ad20079 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -11,5 +11,9 @@ module.exports = {
},
},
},
- plugins: [require('@tailwindcss/forms'), require('@tailwindcss/typography')],
+ plugins: [
+ require('@tailwindcss/forms'),
+ require('@tailwindcss/typography'),
+ require('@tailwindcss/line-clamp')
+ ],
};
\ No newline at end of file
diff --git a/tests/Feature/InertiaTest.php b/tests/Feature/InertiaTest.php
index 9b73e3a..555c618 100644
--- a/tests/Feature/InertiaTest.php
+++ b/tests/Feature/InertiaTest.php
@@ -14,6 +14,6 @@ class InertiaTest extends TestCase
$response = $this->get("/");
$response->assertOk();
- $response->assertInertia(fn(Assert $page) => $page->component("Welcome"));
+ $response->assertInertia(fn(Assert $page) => $page->component("Dashboard"));
}
}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..dd211ec
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,9 @@
+const path = require("path");
+
+module.exports = {
+ resolve: {
+ alias: {
+ '@': path.resolve('resources/js')
+ }
+ }
+}
\ No newline at end of file
diff --git a/webpack.mix.js b/webpack.mix.js
index 841684d..a2cb30f 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -1,8 +1,10 @@
const mix = require('laravel-mix');
+const webpackConfig = require('./webpack.config');
mix.js("resources/js/app.js", "public/js")
.vue(3)
.postCss("resources/css/app.css", "public/css", [
require("tailwindcss"),
])
+ .webpackConfig(webpackConfig)
.sourceMaps();