diff --git a/app/locales/nl.json b/app/locales/nl.json
index e3024fa..dba3315 100644
--- a/app/locales/nl.json
+++ b/app/locales/nl.json
@@ -1,4 +1,10 @@
{
"test.login.forgot_password": "Wachtwoord vergeten?",
- "shared.hello": "Hallo, {name}!"
+ "shared.hello": "Hallo, {name}!",
+ "footer.address": "Adres",
+ "footer.cookie_policy": "Cookie Policy",
+ "footer.copyright": "© {year} Alle rechten voorbehouden",
+ "footer.privacy_policy": "Privacy Policy",
+ "footer.service": "Service",
+ "footer.links": "Links"
}
diff --git a/app/types/navigation/navigationLink.type.ts b/app/types/navigation/navigationLink.type.ts
new file mode 100644
index 0000000..f99a1b8
--- /dev/null
+++ b/app/types/navigation/navigationLink.type.ts
@@ -0,0 +1,7 @@
+import type { TypedRouteLocationRaw } from '@typed-router'
+
+export interface NavigationLink {
+ title: string
+ isTargetBlank?: boolean
+ to: TypedRouteLocationRaw
+}
diff --git a/layers/base/assets/styles/main.scss b/layers/base/assets/styles/main.scss
index 8b364bf..cfc5acd 100644
--- a/layers/base/assets/styles/main.scss
+++ b/layers/base/assets/styles/main.scss
@@ -220,4 +220,8 @@
.focus-ring:focus-within {
@apply ring-2 ring-offset-2 ring-ring outline-none duration-200;
}
+}
+
+body {
+ @apply bg-background overflow-x-hidden;
}
\ No newline at end of file
diff --git a/layers/base/components/core/icon/AppAsyncIcon.vue b/layers/base/components/core/icon/AppAsyncIcon.vue
index dfff40b..83bf819 100644
--- a/layers/base/components/core/icon/AppAsyncIcon.vue
+++ b/layers/base/components/core/icon/AppAsyncIcon.vue
@@ -23,7 +23,6 @@ const svgComponent = shallowRef
(null)
async function setIcon(): Promise {
const resolvedComponent = await icons[props.icon]
- // @ts-expect-error TODO fix this
svgComponent.value = resolvedComponent.default
}
diff --git a/layers/base/constants/company-info/companyInfo.constant.ts b/layers/base/constants/company-info/companyInfo.constant.ts
index c42fe72..6bc9823 100644
--- a/layers/base/constants/company-info/companyInfo.constant.ts
+++ b/layers/base/constants/company-info/companyInfo.constant.ts
@@ -1,6 +1,13 @@
+export interface CompanyInfo {
+ city: string
+ phoneNumber: string
+ postalCode: string
+ street: string
+}
+
export const COMPANY_INFO = {
city: 'TODO city',
- phonenumber: 'TODO phonenumber',
+ phoneNumber: 'TODO phonenumber',
postalCode: 'TODO postalcode',
street: 'TODO street',
-} as const
+} satisfies CompanyInfo
diff --git a/layers/base/constants/company-info/socialInfo.constant.ts b/layers/base/constants/company-info/socialInfo.constant.ts
new file mode 100644
index 0000000..dec8829
--- /dev/null
+++ b/layers/base/constants/company-info/socialInfo.constant.ts
@@ -0,0 +1,30 @@
+import type { Icon } from '@base/icons/icons'
+
+export interface SocialInfo {
+ icon: Icon
+ label: string
+ url: string
+}
+
+export const SOCIAL_INFO = [
+ {
+ icon: 'linkedIn',
+ label: 'linkedin',
+ url: 'https://www.linkedin.com/',
+ },
+ {
+ icon: 'facebook',
+ label: 'facebook',
+ url: 'https://www.facebook.com/',
+ },
+ {
+ icon: 'instagram',
+ label: 'instagram',
+ url: 'https://www.instagram.com/',
+ },
+ {
+ icon: 'twitter',
+ label: 'twitter',
+ url: 'https://www.twitter.com/',
+ },
+] satisfies SocialInfo[]
diff --git a/layers/base/icons/FacebookIcon.vue b/layers/base/icons/FacebookIcon.vue
new file mode 100644
index 0000000..b4cb109
--- /dev/null
+++ b/layers/base/icons/FacebookIcon.vue
@@ -0,0 +1,26 @@
+
+
+
diff --git a/layers/base/icons/InstagramIcon.vue b/layers/base/icons/InstagramIcon.vue
new file mode 100644
index 0000000..d56b4e7
--- /dev/null
+++ b/layers/base/icons/InstagramIcon.vue
@@ -0,0 +1,26 @@
+
+
+
diff --git a/layers/base/icons/LinkedInIcon.vue b/layers/base/icons/LinkedInIcon.vue
new file mode 100644
index 0000000..b503970
--- /dev/null
+++ b/layers/base/icons/LinkedInIcon.vue
@@ -0,0 +1,32 @@
+
+
+
diff --git a/layers/base/icons/TwitterIcon.vue b/layers/base/icons/TwitterIcon.vue
new file mode 100644
index 0000000..b1c2db7
--- /dev/null
+++ b/layers/base/icons/TwitterIcon.vue
@@ -0,0 +1,14 @@
+
+
+
diff --git a/layers/base/icons/icons.ts b/layers/base/icons/icons.ts
index 9626358..a59741c 100644
--- a/layers/base/icons/icons.ts
+++ b/layers/base/icons/icons.ts
@@ -1,34 +1,6 @@
-import type { Component } from 'vue'
-
-export interface BaseIcons {
- alertCircle: Promise
- arrowDown: Promise
- arrowLeft: Promise
- arrowRight: Promise
- arrowUp: Promise
- arrowUpDown: Promise
- calendar: Promise
- checkmark: Promise
- checkmarkCircle: Promise
- chevronDown: Promise
- chevronLeft: Promise
- chevronRight: Promise
- chevronUp: Promise
- close: Promise
- eye: Promise
- eyeSlash: Promise
- filterLines: Promise
- minus: Promise
- profile: Promise
- search: Promise
- warning: Promise
-}
-
export interface Icons {}
-export type AllIcons = BaseIcons & Icons
-
-export const icons: AllIcons = {
+export const icons = {
alertCircle: import('@base/icons/AlertCircleIcon.vue'),
arrowDown: import('@base/icons/ArrowDownIcon.vue'),
arrowLeft: import('@base/icons/ArrowLeftIcon.vue'),
@@ -45,13 +17,18 @@ export const icons: AllIcons = {
close: import('@base/icons/CloseIcon.vue'),
eye: import('@base/icons/EyeIcon.vue'),
eyeSlash: import('@base/icons/EyeSlashIcon.vue'),
+ facebook: import('@base/icons/FacebookIcon.vue'),
filterLines: import('@base/icons/FilterLinesIcon.vue'),
+ instagram: import('@base/icons/InstagramIcon.vue'),
+ linkedIn: import('@base/icons/LinkedInIcon.vue'),
minus: import('@base/icons/MinusIcon.vue'),
profile: import('@base/icons/ProfileIcon.vue'),
search: import('@base/icons/SearchIcon.vue'),
+ twitter: import('@base/icons/TwitterIcon.vue'),
warning: import('@base/icons/WarningIcon.vue'),
-}
+} as const
+export type AllIcons = typeof icons
export function extendIcons(customIcons: Icons): void {
Object.assign(icons, customIcons)
}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index f42e17a..44e8320 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -25,6 +25,10 @@ export default defineNuxtConfig({
pathPrefix: false,
path: '@/components',
},
+ {
+ pathPrefix: false,
+ path: '@/views',
+ },
],
devtools: { enabled: true },
future: {