├── .dockerignore
├── .eslintrc.json
├── .github
└── workflows
│ └── docker-build.yml
├── .gitignore
├── .husky
└── pre-commit
├── .lintstagedrc.js
├── .storybook
├── main.ts
├── preview-body.html
└── preview.ts
├── .stylelintrc.json
├── Dockerfile
├── README.md
├── next.config.mjs
├── package-lock.json
├── package.json
├── public
├── NavArrow.svg
├── favicon-orange
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── apple-touch-icon.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ └── site.webmanifest
├── favicon-purple
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── apple-touch-icon.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ └── site.webmanifest
├── images
│ ├── brandImages
│ │ ├── AM_logo.svg
│ │ ├── ASB-Classic_logo.svg
│ │ ├── Al-Brown_logo.svg
│ │ ├── Bee_logo.svg
│ │ ├── BlackPearl_logo.svg
│ │ ├── Constructo_logo.svg
│ │ ├── Cupples_logo.svg
│ │ ├── Cutly_logo.svg
│ │ ├── EatKinda_logo.svg
│ │ ├── Eg_logo.svg
│ │ ├── Fernglen-Farm_logo.svg
│ │ ├── Goju_logo.svg
│ │ ├── Greenhill_logo.svg
│ │ ├── Ikaika_logo.svg
│ │ ├── Illuminix_logo.svg
│ │ ├── Juluwarlu_logo.svg
│ │ ├── Kmart_Australia_logo.svg
│ │ ├── Maunder-Roofing_logo.svg
│ │ ├── Nibblish_logo.svg
│ │ ├── Oztent_logo.svg
│ │ ├── Peaq_logo.svg
│ │ ├── Proper-Crisps_logo.svg
│ │ ├── RemarkableCream_logo.svg
│ │ ├── Rinse_logo.svg
│ │ ├── Robert_logo.svg
│ │ ├── Steves_logo.svg
│ │ └── Youm_logo.svg
│ ├── bts_creative.svg
│ ├── bts_design_2.svg
│ ├── bts_design_main.svg
│ ├── coffee_doodle.svg
│ ├── eltezza-logo-rotated.svg
│ ├── eltezza-logo.svg
│ ├── eltezza_gradientLogo.svg
│ ├── stars-creative.svg
│ └── stars-design.svg
├── latest_works_wheel.svg
├── next.svg
├── process_arrow.svg
├── process_arrow_mobile.svg
├── scripts
│ └── pixel.js
└── vercel.svg
├── src
├── constants
│ ├── calendlyButtonText.tsx
│ ├── data.ts
│ ├── index.ts
│ ├── logos.ts
│ ├── metadata.ts
│ └── websiteInfo.ts
├── features
│ ├── connection
│ │ ├── hotjar
│ │ │ ├── hotjar.tsx
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ └── pixel
│ │ │ ├── FacebookPixel.tsx
│ │ │ └── index.ts
│ ├── layout
│ │ ├── ad-funnel
│ │ │ ├── brands
│ │ │ │ ├── brands.module.scss
│ │ │ │ ├── brandsGrid.tsx
│ │ │ │ ├── funnelBrands.tsx
│ │ │ │ └── index.ts
│ │ │ ├── contact
│ │ │ │ ├── contact.module.scss
│ │ │ │ ├── funnelContact.tsx
│ │ │ │ └── index.ts
│ │ │ ├── header
│ │ │ │ ├── funnelHeader.tsx
│ │ │ │ ├── header.module.scss
│ │ │ │ └── index.ts
│ │ │ ├── hero
│ │ │ │ ├── components
│ │ │ │ │ ├── card.tsx
│ │ │ │ │ ├── components.module.scss
│ │ │ │ │ └── funnelHero.tsx
│ │ │ │ ├── heroParallax.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── parallax.module.scss
│ │ │ ├── index.ts
│ │ │ ├── partnership
│ │ │ │ ├── funnelPartnership.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── partnership.module.scss
│ │ │ ├── services
│ │ │ │ ├── funnelServices.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── services.module.scss
│ │ │ ├── testimonials
│ │ │ │ ├── funnelTestimonials.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── testimonial.tsx
│ │ │ │ └── testimonials.module.scss
│ │ │ └── work
│ │ │ │ ├── funnelWork.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── videoItem.tsx
│ │ │ │ └── work.module.scss
│ │ ├── index.ts
│ │ └── main
│ │ │ ├── accordion
│ │ │ ├── accordion.module.scss
│ │ │ ├── faq.tsx
│ │ │ ├── index.ts
│ │ │ └── services.tsx
│ │ │ ├── brands
│ │ │ ├── brands.module.scss
│ │ │ ├── brands.tsx
│ │ │ └── index.ts
│ │ │ ├── bts
│ │ │ ├── bts.module.scss
│ │ │ ├── bts.tsx
│ │ │ ├── btsText.tsx
│ │ │ └── index.ts
│ │ │ ├── contact
│ │ │ ├── contact.module.scss
│ │ │ ├── contact.tsx
│ │ │ └── index.ts
│ │ │ ├── form
│ │ │ ├── details.tsx
│ │ │ ├── form.module.scss
│ │ │ ├── form.tsx
│ │ │ ├── formModal.tsx
│ │ │ ├── index.ts
│ │ │ └── submitScreen.tsx
│ │ │ ├── header
│ │ │ ├── header.module.scss
│ │ │ ├── header.tsx
│ │ │ └── index.ts
│ │ │ ├── hero
│ │ │ ├── creativeHero.tsx
│ │ │ ├── designHero.tsx
│ │ │ ├── hero.module.scss
│ │ │ ├── hero.tsx
│ │ │ └── index.ts
│ │ │ ├── home
│ │ │ ├── home.module.scss
│ │ │ ├── home.tsx
│ │ │ ├── index.ts
│ │ │ └── pagePortal.tsx
│ │ │ ├── index.ts
│ │ │ ├── navbar
│ │ │ ├── index.ts
│ │ │ ├── navbar.module.scss
│ │ │ └── navbar.tsx
│ │ │ ├── portal
│ │ │ ├── index.ts
│ │ │ └── portal.tsx
│ │ │ ├── privacy-terms
│ │ │ ├── index.ts
│ │ │ ├── privacy.tsx
│ │ │ ├── privacyTerms.module.scss
│ │ │ └── termsConditions.tsx
│ │ │ ├── process
│ │ │ ├── index.ts
│ │ │ ├── process.module.scss
│ │ │ └── process.tsx
│ │ │ ├── reviews
│ │ │ ├── featuredReview.tsx
│ │ │ ├── index.ts
│ │ │ ├── review.tsx
│ │ │ ├── reviews.module.scss
│ │ │ └── reviews.tsx
│ │ │ ├── team
│ │ │ ├── index.ts
│ │ │ ├── team.module.scss
│ │ │ ├── team.tsx
│ │ │ └── teamMember.tsx
│ │ │ └── work
│ │ │ ├── components
│ │ │ ├── creativeVideo.tsx
│ │ │ └── video.tsx
│ │ │ ├── creativeWork.tsx
│ │ │ ├── designWork.tsx
│ │ │ ├── index.ts
│ │ │ └── work.module.scss
│ └── ui
│ │ ├── badge
│ │ ├── Badge.stories.tsx
│ │ ├── badge.module.scss
│ │ ├── badge.tsx
│ │ └── index.ts
│ │ ├── button
│ │ ├── Button.stories.tsx
│ │ ├── button.module.scss
│ │ ├── button.tsx
│ │ └── index.ts
│ │ ├── calendlyEmbed
│ │ ├── calendlyEmbed.module.scss
│ │ ├── calendlyEmbed.tsx
│ │ └── index.ts
│ │ ├── fullScreen
│ │ ├── fullScreen.module.scss
│ │ ├── fullScreen.tsx
│ │ └── index.ts
│ │ ├── hoverPlayVideo
│ │ ├── hoverPlayVideo.tsx
│ │ ├── index.ts
│ │ ├── video.module.scss
│ │ └── videoDetails.tsx
│ │ ├── index.ts
│ │ ├── input
│ │ ├── Input.stories.tsx
│ │ ├── index.ts
│ │ ├── input.module.scss
│ │ └── input.tsx
│ │ ├── marquee
│ │ ├── Marquee.stories.tsx
│ │ ├── carouselItem.tsx
│ │ ├── index.ts
│ │ ├── marquee.module.scss
│ │ └── marquee.tsx
│ │ ├── switch
│ │ ├── Switch.stories.tsx
│ │ ├── index.ts
│ │ ├── switch.module.scss
│ │ └── switch.tsx
│ │ ├── textarea
│ │ ├── index.ts
│ │ ├── textarea.module.scss
│ │ └── textarea.tsx
│ │ ├── video
│ │ ├── index.ts
│ │ └── video.tsx
│ │ └── vimeoPlayer
│ │ ├── index.ts
│ │ ├── vimeoPlayer.module.scss
│ │ └── vimeoPlayer.tsx
├── fonts.ts
├── hooks
│ ├── useScrollspy.tsx
│ ├── useVideoControls.tsx
│ └── useWindowSize.tsx
├── lib
│ └── fpixel.ts
├── metadata.tsx
├── pages
│ ├── 404.tsx
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── api
│ │ └── mail.ts
│ ├── creative
│ │ └── index.tsx
│ ├── design
│ │ └── index.tsx
│ ├── index.tsx
│ ├── layout.tsx
│ ├── privacy-policy
│ │ └── index.tsx
│ ├── showcase
│ │ └── index.tsx
│ └── terms-and-conditions
│ │ └── index.tsx
├── styles
│ ├── Home.module.css
│ └── globals.css
├── types
│ └── index.ts
└── utils
│ ├── boldText.tsx
│ ├── checkFileName.ts
│ └── scroll.tsx
└── tsconfig.json
/.dockerignore:
--------------------------------------------------------------------------------
1 | Dockerfile
2 | .dockerignore
3 | node_modules
4 | npm-debug.log
5 | README.md
6 | .next
7 | .git
8 | vps.md
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": [
7 | "next/core-web-vitals",
8 | "eslint:recommended",
9 | "plugin:@typescript-eslint/recommended",
10 | "plugin:react/recommended",
11 | "next",
12 | "prettier"
13 | ],
14 | "parser": "@typescript-eslint/parser",
15 | "parserOptions": {
16 | "ecmaVersion": "latest"
17 | },
18 | "plugins": ["@typescript-eslint"],
19 | "rules": {}
20 | }
21 |
--------------------------------------------------------------------------------
/.github/workflows/docker-build.yml:
--------------------------------------------------------------------------------
1 | name: Build and Push Docker Image
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | build-and-push:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: Checkout code
14 | uses: actions/checkout@v2
15 |
16 | - name: Login to GitHub Docker Registry
17 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
18 |
19 | - name: Build Docker image
20 | run: docker build -t ghcr.io/todd-carlsson/eltezza-website:latest .
21 |
22 | - name: Push Docker image
23 | run: docker push ghcr.io/todd-carlsson/eltezza-website:latest
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 | .yarn/install-state.gz
8 |
9 | # testing
10 | /coverage
11 |
12 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 | vps.md
23 |
24 | # debug
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 |
29 | # local env files
30 | .env*.local
31 | .env.development.local
32 | .env.test.local
33 | .env.production.local
34 |
35 | # vercel
36 | .vercel
37 |
38 | # typescript
39 | *.tsbuildinfo
40 | next-env.d.ts
41 |
42 | .vscode
43 | .eslintcache
44 | .stylelintcache
45 | .env
46 |
47 | *storybook.log
48 | /test-results/
49 | /playwright-report/
50 | /blob-report/
51 | /playwright/.cache/
52 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 | # .husky/pre-commit
4 | npm run pre-commit
5 |
--------------------------------------------------------------------------------
/.lintstagedrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "*.{js,jsx,ts,tsx}": "eslint --ignore-path .gitignore --cache --fix",
3 | "*.{css,scss}": "stylelint --ignore-path .gitignore --cache --fix",
4 |
5 | // return a function so that the staged files aren't appended to the command
6 | // otherwise tsc will ignore the .tsconfig file. From the docs: "When input
7 | // files are specified on the command line, tsconfig.json files are ignored."
8 | // https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
9 | "*.{ts,tsx}": () => "npm run check:types",
10 | "*.{jsx,ts,tsx,css,scss}": "prettier --ignore-path .gitignore --write",
11 | };
12 |
--------------------------------------------------------------------------------
/.storybook/main.ts:
--------------------------------------------------------------------------------
1 | import type { StorybookConfig } from "@storybook/nextjs";
2 | import path from "path";
3 |
4 | const config: StorybookConfig = {
5 | stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
6 | addons: [
7 | "@storybook/addon-onboarding",
8 | "@storybook/addon-links",
9 | "@storybook/addon-essentials",
10 | "@chromatic-com/storybook",
11 | "@storybook/addon-interactions",
12 | "@storybook/addon-a11y",
13 | ],
14 | framework: {
15 | name: "@storybook/nextjs",
16 | options: {},
17 | },
18 | webpackFinal: async (config) => {
19 | if (config.resolve) {
20 | config.resolve.alias = {
21 | ...config.resolve.alias,
22 | "@/hooks": path.resolve("./src/hooks"),
23 | "@/types": path.resolve("./src/types"),
24 | "@/styles": path.resolve("./src/styles"),
25 | "@/fonts": path.resolve("./src/fonts"),
26 | };
27 | }
28 | return config;
29 | },
30 | docs: {
31 | autodocs: "tag",
32 | },
33 | staticDirs: ["..\\public"],
34 | };
35 | export default config;
36 |
--------------------------------------------------------------------------------
/.storybook/preview-body.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.storybook/preview.ts:
--------------------------------------------------------------------------------
1 | import type { Preview } from "@storybook/react";
2 |
3 | import "../src/styles/globals.css";
4 |
5 | const preview: Preview = {
6 | parameters: {
7 | controls: {
8 | matchers: {
9 | color: /(background|color)$/i,
10 | date: /Date$/i,
11 | },
12 | },
13 | },
14 | };
15 |
16 | export default preview;
17 |
--------------------------------------------------------------------------------
/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "stylelint-config-standard-scss",
4 | "stylelint-prettier/recommended"
5 | ],
6 | "rules": {
7 | "selector-class-pattern": "^([a-z][a-zA-Z]*)(-[a-z][a-zA-Z]*)*$|^([a-z][a-zA-Z]*)+$",
8 | "property-no-unknown": [
9 | true,
10 | {
11 | "ignoreProperties": ["composes"]
12 | }
13 | ]
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:18-alpine AS base
2 |
3 | # Install dependencies only when needed
4 | FROM base AS deps
5 | # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
6 | RUN apk add --no-cache libc6-compat
7 | WORKDIR /app
8 |
9 | # Install dependencies based on the preferred package manager
10 | COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
11 | RUN \
12 | if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
13 | elif [ -f package-lock.json ]; then npm ci; \
14 | elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
15 | else echo "Lockfile not found." && exit 1; \
16 | fi
17 |
18 |
19 | # Rebuild the source code only when needed
20 | FROM base AS builder
21 | WORKDIR /app
22 | COPY --from=deps /app/node_modules ./node_modules
23 | COPY . .
24 |
25 | # Next.js collects completely anonymous telemetry data about general usage.
26 | # Learn more here: https://nextjs.org/telemetry
27 | # Uncomment the following line in case you want to disable telemetry during the build.
28 | # ENV NEXT_TELEMETRY_DISABLED 1
29 |
30 | RUN \
31 | if [ -f yarn.lock ]; then yarn run build; \
32 | elif [ -f package-lock.json ]; then npm run build; \
33 | elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
34 | else echo "Lockfile not found." && exit 1; \
35 | fi
36 |
37 | # Production image, copy all the files and run next
38 | FROM base AS runner
39 | WORKDIR /app
40 |
41 | ENV NODE_ENV production
42 | # Uncomment the following line in case you want to disable telemetry during runtime.
43 | # ENV NEXT_TELEMETRY_DISABLED 1
44 |
45 | RUN addgroup --system --gid 1001 nodejs
46 | RUN adduser --system --uid 1001 nextjs
47 |
48 | COPY --from=builder /app/public ./public
49 |
50 | # Set the correct permission for prerender cache
51 | RUN mkdir .next
52 | RUN chown nextjs:nodejs .next
53 |
54 | # Automatically leverage output traces to reduce image size
55 | # https://nextjs.org/docs/advanced-features/output-file-tracing
56 | COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
57 | COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
58 |
59 | USER nextjs
60 |
61 | EXPOSE 3000
62 |
63 | ENV PORT 3000
64 |
65 | # server.js is created by next build from the standalone output
66 | # https://nextjs.org/docs/pages/api-reference/next-config-js/output
67 | CMD HOSTNAME="0.0.0.0" node server.js
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: true,
4 | output: "standalone",
5 | images: {
6 | remotePatterns: [
7 | {
8 | protocol: "https",
9 | hostname: "source.unsplash.com",
10 | },
11 | {
12 | protocol: "https",
13 | hostname: "res-console.cloudinary.com",
14 | port: '',
15 | },
16 | {
17 | protocol: "https",
18 | hostname: "res.cloudinary.com",
19 | port: '',
20 | },
21 | {
22 | protocol: "https",
23 | hostname: "d5st4psppqx3d.cloudfront.net",
24 | port: '',
25 | },
26 | ],
27 | },
28 | };
29 |
30 | export default nextConfig;
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eltezza-website",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint",
10 | "lint:code": "eslint --ignore-path .gitignore .",
11 | "lint:styles": "stylelint --ignore-path .gitignore \"**/*.scss\"",
12 | "test": "npx playwright test",
13 | "test:chrome": "npx playwright test --project=chromium",
14 | "test:firefox": "npx playwright test --project=firefox",
15 | "test:safari": "npx playwright test --project=webkit",
16 | "check:types": "tsc --noEmit",
17 | "prettier": "prettier --write --ignore-path .gitignore --check .",
18 | "storybook": "storybook dev -p 6006",
19 | "build-storybook": "storybook build",
20 | "prepare": "husky install",
21 | "pre-commit": "lint-staged",
22 | "chromatic": "npx chromatic --project-token=chpt_768291d16afc6c8"
23 | },
24 | "engines": {
25 | "npm": ">=10.2.3",
26 | "node": ">=20.10.0"
27 | },
28 | "dependencies": {
29 | "@hookform/resolvers": "^3.3.4",
30 | "@sendgrid/mail": "^8.1.4",
31 | "classnames": "^2.5.1",
32 | "debounce": "^2.1.0",
33 | "framer-motion": "^11.18.2",
34 | "next": "14.2.26",
35 | "npm": "^10.7.0",
36 | "react": "^18",
37 | "react-dom": "^18",
38 | "react-hook-form": "^7.51.1",
39 | "react-icons": "^5.0.1",
40 | "react-progressive-graceful-image": "^0.7.0",
41 | "react-use-measure": "^2.1.1",
42 | "react-uuid": "^2.0.0",
43 | "swiper": "^11.1.1",
44 | "zod": "^3.22.4"
45 | },
46 | "devDependencies": {
47 | "@chromatic-com/storybook": "^1.2.20",
48 | "@storybook/addon-a11y": "^8.0.0",
49 | "@storybook/addon-essentials": "^8.0.0",
50 | "@storybook/addon-interactions": "^8.0.0",
51 | "@storybook/addon-links": "^8.0.0",
52 | "@storybook/addon-onboarding": "^8.0.0",
53 | "@storybook/blocks": "^8.0.0",
54 | "@storybook/nextjs": "^8.0.0",
55 | "@storybook/react": "^8.0.0",
56 | "@storybook/test": "^8.0.0",
57 | "@types/node": "^20",
58 | "@types/react": "^18",
59 | "@types/react-dom": "^18",
60 | "@typescript-eslint/eslint-plugin": "^7.3.1",
61 | "@typescript-eslint/parser": "^7.3.1",
62 | "chromatic": "^11.2.0",
63 | "eslint": "^8",
64 | "eslint-config-next": "14.1.3",
65 | "eslint-config-prettier": "^9.1.0",
66 | "eslint-plugin-storybook": "^0.8.0",
67 | "husky": "^9.0.11",
68 | "lint-staged": "^15.2.2",
69 | "prettier": "3.2.5",
70 | "sass": "^1.72.0",
71 | "storybook": "^8.0.0",
72 | "stylelint": "^16.2.1",
73 | "stylelint-config-standard": "^36.0.0",
74 | "stylelint-config-standard-scss": "^13.0.0",
75 | "stylelint-prettier": "^5.0.0",
76 | "typescript": "^5"
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/public/NavArrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/favicon-orange/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/android-chrome-192x192.png
--------------------------------------------------------------------------------
/public/favicon-orange/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/android-chrome-512x512.png
--------------------------------------------------------------------------------
/public/favicon-orange/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/favicon-orange/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-orange/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon-orange/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-orange/favicon.ico
--------------------------------------------------------------------------------
/public/favicon-orange/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/public/favicon-purple/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/android-chrome-192x192.png
--------------------------------------------------------------------------------
/public/favicon-purple/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/android-chrome-512x512.png
--------------------------------------------------------------------------------
/public/favicon-purple/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/favicon-purple/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-purple/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon-purple/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/todd-carlsson/eltezza-website-v2/a4a74e96c7dc7f3d4150977947cc25abeb51cdee/public/favicon-purple/favicon.ico
--------------------------------------------------------------------------------
/public/favicon-purple/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/public/images/brandImages/Bee_logo.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/public/images/brandImages/Cutly_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
31 |
--------------------------------------------------------------------------------
/public/images/brandImages/Oztent_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/brandImages/Peaq_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/stars-creative.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/public/images/stars-design.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/process_arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/process_arrow_mobile.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/scripts/pixel.js:
--------------------------------------------------------------------------------
1 | const PIXEL_ID = document.currentScript.getAttribute("data-pixel-id");
2 |
3 | function initializeFacebookPixel(f, b, e, v, n, t, s) {
4 | if (f.fbq) return;
5 | n = f.fbq = function () {
6 | n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
7 | };
8 | if (!f._fbq) f._fbq = n;
9 | n.push = n;
10 | n.loaded = !0;
11 | n.version = "2.0";
12 | n.queue = [];
13 | t = b.createElement(e);
14 | t.async = !0;
15 | t.src = v;
16 | s = b.getElementsByTagName(e)[0];
17 | s.parentNode.insertBefore(t, s);
18 | }
19 |
20 | initializeFacebookPixel(
21 | window,
22 | document,
23 | "script",
24 | "https://connect.facebook.net/en_US/fbevents.js",
25 | );
26 |
27 | window.fbq("init", PIXEL_ID);
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/src/constants/calendlyButtonText.tsx:
--------------------------------------------------------------------------------
1 | import { FiPhoneForwarded } from "react-icons/fi";
2 |
3 | export const calendlyButtonText = (
4 | <>
5 | Book a strategy call{" "}
6 |