init project
This commit is contained in:
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Nuxt dev/build outputs
|
||||||
|
.output
|
||||||
|
.data
|
||||||
|
.nuxt
|
||||||
|
.nitro
|
||||||
|
.cache
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Node dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.fleet
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Local env files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
75
README.md
Normal file
75
README.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# Nuxt Minimal Starter
|
||||||
|
|
||||||
|
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Server
|
||||||
|
|
||||||
|
Start the development server on `http://localhost:3000`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn dev
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run preview
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm preview
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn preview
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
|
11
app.vue
Normal file
11
app.vue
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bg-bg-light text-text-light dark:text-text-dark dark:bg-bg-dark">
|
||||||
|
<UApp>
|
||||||
|
<NuxtLayout>
|
||||||
|
<NuxtPage />
|
||||||
|
</NuxtLayout>
|
||||||
|
</UApp>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
</script>
|
81
components/HeaderBlock.vue
Normal file
81
components/HeaderBlock.vue
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<template>
|
||||||
|
<div class="container mx-auto h-[120px] border-b border-border">
|
||||||
|
<div class="w-full h-full flex items-center justify-between">
|
||||||
|
<ul class="flex items-center gap-20 whitespace-nowrap">
|
||||||
|
<li
|
||||||
|
class="cursor-pointer hover:text-text-light/80 dark:hover:text-text-dark/70 transition-all"
|
||||||
|
>
|
||||||
|
01 <br />
|
||||||
|
Investice
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="cursor-pointer hover:text-text-light/80 dark:hover:text-text-dark/70 transition-all"
|
||||||
|
>
|
||||||
|
02 <br />
|
||||||
|
O zlotě
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="cursor-pointer hover:text-text-light/80 dark:hover:text-text-dark/70 transition-all"
|
||||||
|
>
|
||||||
|
03 <br />
|
||||||
|
Podnikání
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="cursor-pointer hover:text-text-light/80 dark:hover:text-text-dark/70 transition-all"
|
||||||
|
>
|
||||||
|
04 <br />
|
||||||
|
O Nás
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="cursor-pointer hover:text-text-light/80 dark:hover:text-text-dark/70 transition-all"
|
||||||
|
>
|
||||||
|
05 <br />
|
||||||
|
Kontakt
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<img src="./../public/Frame 1321315773.png" alt="Frame" />
|
||||||
|
<div class="flex items-center gap-7">
|
||||||
|
<UIcon class="w-8 h-8 cursor-pointer" name="i-heroicons-user" />
|
||||||
|
<UIcon
|
||||||
|
class="w-8 h-8 cursor-pointer"
|
||||||
|
name="i-heroicons-shopping-cart"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<ThemeSwitcher />
|
||||||
|
<button
|
||||||
|
class="cursor-pointer hover:bg-brown/80 transition-all bg-brown py-3 px-6 font-medium text-white rounded-xl"
|
||||||
|
>
|
||||||
|
E-shop
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
// function nested object
|
||||||
|
const menu = {
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
created: "2025-04-29 14:21:16.980Z",
|
||||||
|
id: "l10y982y139ep7u",
|
||||||
|
id_lang: "en",
|
||||||
|
id_page: "",
|
||||||
|
id_parent: "",
|
||||||
|
is_default: false,
|
||||||
|
is_root: true,
|
||||||
|
link_rewrite: "",
|
||||||
|
link_title: "",
|
||||||
|
meta_description: "",
|
||||||
|
meta_title: "",
|
||||||
|
name: "top",
|
||||||
|
page_name: "",
|
||||||
|
position_id: 0,
|
||||||
|
updated: "2025-05-09 08:34:06.650Z",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
page: 1,
|
||||||
|
perPage: 50,
|
||||||
|
totalItems: 14,
|
||||||
|
totalPages: 1,
|
||||||
|
};
|
||||||
|
</script>
|
28
components/ThemeSwitcher.vue
Normal file
28
components/ThemeSwitcher.vue
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<script setup>
|
||||||
|
const colorMode = useColorMode();
|
||||||
|
|
||||||
|
const isDark = computed({
|
||||||
|
get() {
|
||||||
|
return colorMode.value === "dark";
|
||||||
|
},
|
||||||
|
set(_isDark) {
|
||||||
|
colorMode.preference = _isDark ? "dark" : "light";
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<ClientOnly v-if="!colorMode?.forced">
|
||||||
|
<div class="w-8 h-8 flex items-center justify-center cursor-pointer">
|
||||||
|
<UIcon
|
||||||
|
class="w-8 h-8"
|
||||||
|
:name="isDark ? 'i-lucide-moon' : 'i-lucide-sun'"
|
||||||
|
@click="isDark = !isDark"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #fallback>
|
||||||
|
<div class="size-20" />
|
||||||
|
</template>
|
||||||
|
</ClientOnly>
|
||||||
|
</template>
|
6
eslint.config.mjs
Normal file
6
eslint.config.mjs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// @ts-check
|
||||||
|
import withNuxt from './.nuxt/eslint.config.mjs'
|
||||||
|
|
||||||
|
export default withNuxt(
|
||||||
|
// Your custom configs here
|
||||||
|
)
|
19
layouts/default.vue
Normal file
19
layouts/default.vue
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<div
|
||||||
|
class="bg-bg-light dark:bg-bg-dark font-inter overflow-hidden min-h-screen flex flex-col"
|
||||||
|
>
|
||||||
|
<HeaderBlock />
|
||||||
|
<div class="flex-1">
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
<!-- <footer-block /> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import HeaderBlock from "~/components/HeaderBlock.vue";
|
||||||
|
|
||||||
|
useHead({
|
||||||
|
link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.png" }],
|
||||||
|
});
|
||||||
|
</script>
|
18
main.css
Normal file
18
main.css
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
@import "@nuxt/ui";
|
||||||
|
|
||||||
|
@theme {
|
||||||
|
/* fonts */
|
||||||
|
--font-inter: "Inter", sans-serif;
|
||||||
|
|
||||||
|
/* colors */
|
||||||
|
--color-bg-light: #FFFEFB;
|
||||||
|
--color-bg-dark: #1A1A1A;
|
||||||
|
|
||||||
|
--color-border: #D3E0DE;
|
||||||
|
|
||||||
|
--color-text-light: #1A1A1A;
|
||||||
|
--color-text-dark: #FFFEFB;
|
||||||
|
|
||||||
|
--color-brown: #9A7F62
|
||||||
|
}
|
59
nuxt.config.ts
Normal file
59
nuxt.config.ts
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import tailwindcss from "@tailwindcss/vite";
|
||||||
|
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: "2024-11-01",
|
||||||
|
devtools: { enabled: false },
|
||||||
|
// app: {
|
||||||
|
// pageTransition: { name: "page", mode: "out-in" },
|
||||||
|
// },
|
||||||
|
// nitro: {
|
||||||
|
// routeRules: {
|
||||||
|
// "/api/**": {
|
||||||
|
// proxy: {
|
||||||
|
// to: `${process.env.POCKETBASE_URL || "http://127.0.0.1:8090"}/api/**`,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
|
||||||
|
modules: ["@pinia/nuxt", "@nuxt/eslint", "@nuxt/ui"],
|
||||||
|
|
||||||
|
// @nuxtjs/i18n"
|
||||||
|
// i18n: {
|
||||||
|
// locales: [
|
||||||
|
// { code: "pl", name: "Polski", icon: "emojione:flag-for-poland" },
|
||||||
|
// { code: "en", name: "English", icon: "emojione:flag-for-united-kingdom" },
|
||||||
|
// ],
|
||||||
|
// lazy: true,
|
||||||
|
// defaultLocale: "en",
|
||||||
|
// strategy: "prefix",
|
||||||
|
// bundle: {
|
||||||
|
// optimizeTranslationDirective: false,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
css: ["~/main.css"],
|
||||||
|
vite: {
|
||||||
|
plugins: [tailwindcss()],
|
||||||
|
build: {
|
||||||
|
sourcemap: false,
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
allowedHosts: ["arina.ma-al.pl", "marek.ma-al.pl"],
|
||||||
|
watch: {
|
||||||
|
ignored: ["**/backend/pb_data/**"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
typescript: {
|
||||||
|
tsConfig: {
|
||||||
|
compilerOptions: {
|
||||||
|
typeRoots: ["./ts", "./node_modules/@types"],
|
||||||
|
},
|
||||||
|
include: ["./ts"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ui: {},
|
||||||
|
icon: {
|
||||||
|
localApiEndpoint: "/___nuxt_icon",
|
||||||
|
},
|
||||||
|
});
|
25
package.json
Normal file
25
package.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "nuxt-app",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"build": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@nuxt/eslint": "^1.4.1",
|
||||||
|
"@nuxt/ui": "^3.1.2",
|
||||||
|
"@pinia/nuxt": "^0.11.0",
|
||||||
|
"@tailwindcss/vite": "^4.1.7",
|
||||||
|
"nuxt": "^3.17.4",
|
||||||
|
"tailwindcss": "^4.1.7",
|
||||||
|
"vue": "^3.5.14",
|
||||||
|
"vue-router": "^4.5.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@nuxtjs/tailwindcss": "^6.14.0"
|
||||||
|
}
|
||||||
|
}
|
11090
pnpm-lock.yaml
generated
Normal file
11090
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
BIN
public/Frame 1321315773.png
Normal file
BIN
public/Frame 1321315773.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
2
public/robots.txt
Normal file
2
public/robots.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
3
server/tsconfig.json
Normal file
3
server/tsconfig.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "../.nuxt/tsconfig.server.json"
|
||||||
|
}
|
118
taskfile.yml
Normal file
118
taskfile.yml
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
version: '3'
|
||||||
|
vars:
|
||||||
|
REGISTRY: registry.ma-al.com
|
||||||
|
Version: '0.0.6'
|
||||||
|
BuildDate: $(date +"%Y-%m-%d %H:%M")
|
||||||
|
Company: Maal sp. z o.o.
|
||||||
|
CompanyUrl: "https://www.ma-al.com"
|
||||||
|
CompileStr: go build -ldflags "-s -w -X 'pocketbase/custom/version.Version={{.Version}}' -X 'pocketbase/custom/version.BuildDate={{.BuildDate}}' -X 'pocketbase/custom/version.Company={{.Company}}' -X 'pocketbase/custom/version.CompanyUrl={{.CompanyUrl}}'" -o ../.pocketbase/pocketbase .
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
default:
|
||||||
|
cmds:
|
||||||
|
- task --list
|
||||||
|
silent: true
|
||||||
|
|
||||||
|
# compile_musl:
|
||||||
|
# aliases: [cm]
|
||||||
|
# desc: "compiles pocketbase for musl"
|
||||||
|
# env:
|
||||||
|
# CGO_ENABLED: "0"
|
||||||
|
# GOOS: "linux"
|
||||||
|
# GOARCH: "amd64"
|
||||||
|
# CC: "x86_64-linux-musl-gcc"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# mkdir -p ./.output
|
||||||
|
# cd ./backend
|
||||||
|
# {{.CompileStr}}
|
||||||
|
|
||||||
|
# compile_gnu:
|
||||||
|
# aliases: [cg]
|
||||||
|
# desc: "compiles pocketbase for gnu"
|
||||||
|
# env:
|
||||||
|
# CGO_ENABLED: "0"
|
||||||
|
# GOOS: "linux"
|
||||||
|
# GOARCH: "amd64"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# mkdir -p ./.output
|
||||||
|
# cd ./backend
|
||||||
|
# {{.CompileStr}}
|
||||||
|
|
||||||
|
# build_run_gnu:
|
||||||
|
# aliases: [br]
|
||||||
|
# desc: "compiles pocketbase for gnu"
|
||||||
|
# env:
|
||||||
|
# CGO_ENABLED: "0"
|
||||||
|
# GOOS: "linux"
|
||||||
|
# GOARCH: "amd64"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# mkdir -p ./.output
|
||||||
|
# cd ./backend
|
||||||
|
# go build -ldflags "-s -w" -o ../.pocketbase/pocketbase .
|
||||||
|
# cd ..
|
||||||
|
# ./.pocketbase/pocketbase serve --dir=./backend/pb_data
|
||||||
|
|
||||||
|
# watch_backend:
|
||||||
|
# aliases: [wb]
|
||||||
|
# desc: "watch backend and compile"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# cd ./backend
|
||||||
|
# pwd
|
||||||
|
# air -build.args_bin='serve --dir=./pb_data' -build.exclude_dir=pb_data,backups -build.include_ext=go
|
||||||
|
|
||||||
|
|
||||||
|
watch_front:
|
||||||
|
aliases: [wf]
|
||||||
|
desc: "build and watch frontend in dev mode"
|
||||||
|
cmds:
|
||||||
|
- |
|
||||||
|
pnpm run dev
|
||||||
|
|
||||||
|
preview_front:
|
||||||
|
aliases: [pf]
|
||||||
|
desc: "build and preview frontend"
|
||||||
|
cmds:
|
||||||
|
- |
|
||||||
|
pnpm run build && pnpm run preview
|
||||||
|
|
||||||
|
|
||||||
|
rebuild_front:
|
||||||
|
aliases: [rf]
|
||||||
|
desc: "remove all and install all packages"
|
||||||
|
cmds:
|
||||||
|
- |
|
||||||
|
rm -rf ./node_modules ./pnpm-lock.yaml ./.nuxt ./.output
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
|
||||||
|
# build_docker_image:
|
||||||
|
# aliases: [bdi]
|
||||||
|
# desc: "build docker image"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# pnpm run build
|
||||||
|
# task compile_gnu
|
||||||
|
# cat <<EOF > temp.Dockerfile
|
||||||
|
# FROM node:slim
|
||||||
|
|
||||||
|
# COPY ./.output /nuxt
|
||||||
|
# COPY ./.pocketbase/pocketbase /bin/
|
||||||
|
# RUN mkdir /data
|
||||||
|
|
||||||
|
# # ENTRYPOINT ["ash"]
|
||||||
|
# CMD ["pocketbase", "serve", "--dir=/data", "--proxy=http://localhost:3000", "--subcommand=node /nuxt/server/index.mjs", "--http=0.0.0.0:8090"]
|
||||||
|
# EOF
|
||||||
|
# docker build -t {{.REGISTRY}}/abrasive/abrasive:{{.Version}} -t {{.REGISTRY}}/abrasive/abrasive:latest -f temp.Dockerfile .
|
||||||
|
# rm temp.Dockerfile
|
||||||
|
|
||||||
|
# push_docker_image:
|
||||||
|
# aliases: [pdi]
|
||||||
|
# desc: "push docker image to registry server"
|
||||||
|
# cmds:
|
||||||
|
# - |
|
||||||
|
# docker push {{.REGISTRY}}/abrasive/abrasive:{{.Version}}
|
||||||
|
# docker push {{.REGISTRY}}/abrasive/abrasive:latest
|
4
tsconfig.json
Normal file
4
tsconfig.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript
|
||||||
|
"extends": "./.nuxt/tsconfig.json"
|
||||||
|
}
|
Reference in New Issue
Block a user