🎨 Fix: Add Header and Footer to all pages + standardize colors

MAJOR FIX - Pages were missing Header and Footer components:
 Added Header import to all pages
 Added Footer import to all pages
 Added <Header /> and <Footer /> components
 Changed custom colors to standard Tailwind (green-600, gray-*)
 Fixed: about-us, services, products, blog pages

COLOR SCHEME:
- primary-600 → green-600 (trust, growth)
- secondary-900 → gray-900 (professional)
- secondary-800 → gray-800
- secondary-600 → gray-600
- secondary-200 → gray-200

All pages now show proper Header navigation and Footer with links!
This commit is contained in:
Kunthawat Greethong
2026-03-09 22:34:36 +07:00
parent 2c23588dd0
commit d092905e57
209 changed files with 11210 additions and 514 deletions

26
dist/pages/about-us.astro.mjs vendored Normal file
View File

@@ -0,0 +1,26 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
import { s as siteConfig, $ as $$Header, a as $$Footer, b as $$FloatingContact } from '../chunks/FloatingContact_06TlrfGj.mjs';
export { renderers } from '../renderers.mjs';
const $$Index = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E40\u0E23\u0E32", "description": "\u0E40\u0E23\u0E35\u0E22\u0E19\u0E23\u0E39\u0E49\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E14\u0E35\u0E25\u0E1E\u0E25\u0E31\u0E2A\u0E40\u0E17\u0E04 \u0E1C\u0E39\u0E49\u0E40\u0E0A\u0E35\u0E48\u0E22\u0E27\u0E0A\u0E32\u0E0D\u0E14\u0E49\u0E32\u0E19\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E17\u0E48\u0E2D\u0E41\u0E25\u0E30\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E23\u0E30\u0E1A\u0E1A\u0E17\u0E48\u0E2D" }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main class="pt-32 pb-16"> <div class="container mx-auto px-4"> <!-- Hero --> <div class="relative h-[400px] -mt-32 mb-12 rounded-b-3xl overflow-hidden"> <div class="absolute inset-0 bg-gradient-to-r from-gray-900 via-gray-800 to-gray-900"></div> <div class="absolute inset-0 flex items-center justify-center"> <div class="text-center"> <h1 class="text-4xl md:text-5xl font-bold text-white mb-4">
เกยวก<span class="text-green-400">${siteConfig.name}</span> </h1> <p class="text-xl text-gray-200">
เชยวชาญดานวสดอและอปกรณระบบท
</p> </div> </div> </div> </div> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ${renderComponent($$result2, "FloatingContact", $$FloatingContact, {})} ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/about-us/index.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/about-us/index.astro";
const $$url = "/about-us";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

46
dist/pages/blog.astro.mjs vendored Normal file
View File

@@ -0,0 +1,46 @@
import { c as createComponent, m as maybeRenderHead, d as addAttribute, a as renderTemplate, b as createAstro, r as renderComponent } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { g as getCollection } from '../chunks/_astro_content_BWFO8YAR.mjs';
import 'clsx';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
export { renderers } from '../renderers.mjs';
const $$Astro = createAstro();
const $$BlogCard = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
Astro2.self = $$BlogCard;
const { post } = Astro2.props;
const { title, excerpt, date, author, category, categories, image, featuredImage } = post.data;
const postCategory = category || (Array.isArray(categories) ? categories[0] : "\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B");
const postImage = image || featuredImage || "/images/2021/03/ppr-pipe_000C.jpg";
return renderTemplate`${maybeRenderHead()}<a${addAttribute(`/blog/${post.slug}`, "href")} class="card group"> <div class="relative aspect-video bg-secondary-100 overflow-hidden"> <img${addAttribute(postImage, "src")}${addAttribute(title, "alt")} class="object-cover w-full h-48 group-hover:scale-105 transition-transform duration-300" loading="lazy"> <div class="absolute top-4 left-4"> <span class="industrial-badge">${postCategory}</span> </div> </div> <div class="p-6"> <time class="text-sm text-secondary-500"> ${new Date(date).toLocaleDateString("th-TH", { year: "numeric", month: "long", day: "numeric" })} </time> <h3 class="mt-2 text-xl font-bold text-secondary-900 group-hover:text-primary-600 transition-colors line-clamp-2"> ${title} </h3> ${excerpt && renderTemplate`<p class="mt-3 text-secondary-600 text-sm line-clamp-3"> ${excerpt} </p>`} <div class="mt-4 flex items-center text-primary-600 font-medium"> <span>อ่านต่อ</span> <svg class="w-4 h-4 ml-2 group-hover:translate-x-1 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round"${addAttribute(2, "stroke-width")} d="M9 5l7 7-7 7"></path> </svg> </div> </div> </a>`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/components/BlogCard.astro", void 0);
const metadata = {
title: "\u0E1A\u0E17\u0E04\u0E27\u0E32\u0E21\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49",
description: "\u0E1A\u0E17\u0E04\u0E27\u0E32\u0E21\u0E04\u0E27\u0E32\u0E21\u0E23\u0E39\u0E49\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E17\u0E48\u0E2D \u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E23\u0E30\u0E1A\u0E1A\u0E17\u0E48\u0E2D \u0E41\u0E25\u0E30\u0E40\u0E17\u0E04\u0E19\u0E34\u0E04\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07"
};
const prerender = true;
const $$Index = createComponent(async ($$result, $$props, $$slots) => {
const posts = await getCollection("blog");
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": metadata.title, "description": metadata.description }, { "default": async ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", Header, {})} ${maybeRenderHead()}<main class="pt-32 pb-16"> <div class="container mx-auto px-4"> <!-- Hero --> <div class="text-center mb-12"> <h1 class="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
บทความ<span class="text-green-600">ความร</span> </h1> <p class="text-xl text-gray-600 max-w-2xl mx-auto">
บทความความรเกยวกบวสด ปกรณระบบท และเทคนคการตดต
</p> </div> <!-- Blog Grid --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> ${posts.map((post) => renderTemplate`${renderComponent($$result2, "BlogCard", $$BlogCard, { "post": post })}`)} </div> </div> </main> ${renderComponent($$result2, "Footer", Footer, {})} ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/blog/index.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/blog/index.astro";
const $$url = "/blog";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
metadata,
prerender,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

45
dist/pages/blog/_slug_.astro.mjs vendored Normal file
View File

@@ -0,0 +1,45 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, b as createAstro, m as maybeRenderHead, d as addAttribute } from '../../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { r as renderEntry, g as getCollection } from '../../chunks/_astro_content_BWFO8YAR.mjs';
import { $ as $$BaseLayout } from '../../chunks/BaseLayout_rqQLf6w4.mjs';
export { renderers } from '../../renderers.mjs';
const $$Astro = createAstro();
async function getStaticPaths() {
const posts = await getCollection("blog");
return posts.map((post) => ({
params: { slug: post.id },
props: { post }
}));
}
const $$slug = createComponent(async ($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
Astro2.self = $$slug;
const { post } = Astro2.props;
const { Content } = await renderEntry(post);
const { title, date, author, category, categories, image, featuredImage } = post.data;
const postCategory = category || (Array.isArray(categories) ? categories[0] : "\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B");
const postImage = image || featuredImage || "/images/2021/03/ppr-pipe_000C.jpg";
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": title, "description": post.data.excerpt }, { "default": async ($$result2) => renderTemplate` ${maybeRenderHead()}<main class="pt-32 pb-16"> <article class="container mx-auto px-4 max-w-4xl"> <!-- Header --> <header class="mb-8"> <div class="flex items-center gap-4 mb-4"> <span class="industrial-badge">${postCategory}</span> <time class="text-secondary-500"> ${new Date(date).toLocaleDateString("th-TH", {
year: "numeric",
month: "long",
day: "numeric"
})} </time> <span class="text-secondary-500"></span> <span class="text-secondary-500">${author}</span> </div> <h1 class="text-4xl md:text-5xl font-bold text-secondary-900 mb-4"> ${title} </h1> </header> <!-- Featured Image --> <div class="relative aspect-video bg-secondary-100 rounded-xl overflow-hidden mb-8"> <img${addAttribute(postImage, "src")}${addAttribute(title, "alt")} class="object-cover w-full h-full" loading="lazy"> </div> <!-- Content --> <div class="prose prose-lg max-w-none prose-headings:font-bold prose-a:text-primary-600 hover:prose-a:text-primary-700 prose-img:rounded-xl"> ${renderComponent($$result2, "Content", Content, {})} </div> <!-- Back to Blog --> <div class="mt-12 pt-8 border-t border-secondary-200"> <a href="/blog/" class="inline-flex items-center text-primary-600 font-medium hover:text-primary-700 transition-colors"> <svg class="w-5 h-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round"${addAttribute(2, "stroke-width")} d="M10 19l-7-7m0 0l7-7m-7 7h18"></path> </svg>
กลบสหนาบทความ
</a> </div> </article> </main> ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/blog/[slug].astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/blog/[slug].astro";
const $$url = "/blog/[slug]";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$slug,
file: $$file,
getStaticPaths,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

46
dist/pages/cookie-policy.astro.mjs vendored Normal file
View File

@@ -0,0 +1,46 @@
import { c as createComponent, r as renderComponent, h as renderScript, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
export { renderers } from '../renderers.mjs';
const $$CookiePolicy = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E19\u0E42\u0E22\u0E1A\u0E32\u0E22\u0E04\u0E38\u0E01\u0E01\u0E35\u0E49", "description": "\u0E19\u0E42\u0E22\u0E1A\u0E32\u0E22\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E04\u0E38\u0E01\u0E01\u0E35\u0E49\u0E02\u0E2D\u0E07\u0E40\u0E27\u0E47\u0E1A\u0E44\u0E0B\u0E15\u0E4C\u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17 \u0E14\u0E35\u0E25 \u0E1E\u0E25\u0E31\u0E2A \u0E40\u0E17\u0E04 \u0E08\u0E33\u0E01\u0E31\u0E14" }, { "default": ($$result2) => renderTemplate` ${maybeRenderHead()}<main class="min-h-screen bg-secondary-50"> <div class="container mx-auto px-4 py-12"> <div class="max-w-4xl mx-auto bg-white rounded-lg shadow-lg p-8 md:p-12"> <h1 class="text-4xl font-bold text-secondary-900 mb-4">นโยบายคกก</h1> <p class="text-secondary-600 mb-8">Cookie Policy - : 9 2026</p> <div class="prose prose-lg max-w-none text-secondary-700"> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">1. ?</h2> <p class="mb-4">
กก (Cookie) อไฟลอความขนาดเลกทเวบไซตนทกลงบนอปกรณของทาน
(คอมพวเตอร, แทบเล, หรอมอถ) เมอทานเยยมชมเวบไซต
กกวยใหเวบไซตจดจำการกระทำและความชอบของทาน ทำใหประสบการณการใชงานด
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">2. </h2> <p class="mb-4"> 3 :</p> <div class="space-y-4"> <div class="bg-secondary-50 p-4 rounded-lg"> <h3 class="text-lg font-semibold mb-2">🔒 (Essential Cookies)</h3> <p class="text-sm">
กกเหลานจำเปนสำหรบการทำงานของเวบไซต ไมสามารถปดใชงานได
ใชสำหร: การจดการเซสช, ความปลอดภ, การทำงานพนฐานของเวบไซต
</p> <p class="text-sm mt-2"><strong>:</strong> ()</p> </div> <div class="bg-secondary-50 p-4 rounded-lg"> <h3 class="text-lg font-semibold mb-2">📊 (Analytics Cookies)</h3> <p class="text-sm">
กกเหลาน帮助我们เกบขอมลการใชงานเวบไซตแบบไมระบวตน
ใชสำหร: การวเคราะหเยยมชม, หนาเวบทยม, ตราการตกล
</p> <p class="text-sm mt-2"><strong>:</strong> (Opt-in)</p> </div> <div class="bg-secondary-50 p-4 rounded-lg"> <h3 class="text-lg font-semibold mb-2">📢 (Marketing Cookies)</h3> <p class="text-sm">
กกเหลานใชเพอตดตามผใชงานบนเวบไซตาง
ใชสำหร: การโฆษณาทกำหนดเปาหมาย, การวดประสทธภาพโฆษณา
</p> <p class="text-sm mt-2"><strong>:</strong> (Opt-in)</p> </div> </div> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">3. </h2> <div class="overflow-x-auto"> <table class="min-w-full border"> <thead class="bg-secondary-100"> <tr> <th class="px-4 py-2 border text-left"></th> <th class="px-4 py-2 border text-left"></th> <th class="px-4 py-2 border text-left"></th> <th class="px-4 py-2 border text-left"></th> </tr> </thead> <tbody> <tr> <td class="px-4 py-2 border">session_id</td> <td class="px-4 py-2 border"></td> <td class="px-4 py-2 border"></td> <td class="px-4 py-2 border"></td> </tr> <tr> <td class="px-4 py-2 border">consent-preferences</td> <td class="px-4 py-2 border"></td> <td class="px-4 py-2 border">1 </td> <td class="px-4 py-2 border"></td> </tr> <tr> <td class="px-4 py-2 border">umami analytics</td> <td class="px-4 py-2 border"></td> <td class="px-4 py-2 border"></td> <td class="px-4 py-2 border"> (Privacy-first)</td> </tr> </tbody> </table> </div> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">4. </h2> <p class="mb-4">:</p> <ul class="list-disc pl-6 space-y-2"> <li><strong>:</strong> "" </li> <li><strong>:</strong> </li> <li><strong>:</strong> "" </li> </ul> <p class="mt-4"> <a href="#" id="openPreferences" class="text-primary-600 hover:underline font-semibold">
เปดการตงคาคกกตอนน
</a> </p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">5. </h2> <p class="mb-4">
านสามารถเพกถอนความยนยอมสำหรบคกกเคราะหและคกกการตลาดเมอใดกได
โดยไปทการตงคาคกกและปดการใชงานคกกเหลาน
การเพกถอนความยนยอมจะไมผลตอความถกตองของการประมวลผลกอนการเพกถอน
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">6. </h2> <p class="mb-4">
เราอาจอปเดตนโยบายคกกเปนครงคราว การเปลยนแปลงใด จะถกเผยแพรบนหนาน
กรณาตรวจสอบหนาทนเปนระยะเพอดการเปลยนแปลง
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">7. </h2> <p class="mb-4"> :</p> <div class="bg-secondary-50 p-4 rounded-lg"> <p><strong> </strong></p> <p>: info@dealplustech.co.th</p> <p>: 090-555-1415</p> </div> </section> <section class="mt-12 pt-8 border-t border-secondary-200"> <p class="text-sm text-secondary-600">
านเพมเต: <a href="/privacy-policy/" class="text-primary-600 hover:underline">นโยบายความเปนสวนต</a> |
<a href="/terms-and-conditions/" class="text-primary-600 hover:underline">อกำหนดและเงอนไข</a> </p> </section> </div> </div> </div> </main> ` })} ${renderScript($$result, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/cookie-policy.astro?astro&type=script&index=0&lang.ts")}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/cookie-policy.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/cookie-policy.astro";
const $$url = "/cookie-policy";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$CookiePolicy,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

40
dist/pages/index.astro.mjs vendored Normal file
View File

@@ -0,0 +1,40 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead, d as addAttribute } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
import { p as productCategories, $ as $$Header, a as $$Footer, b as $$FloatingContact } from '../chunks/FloatingContact_06TlrfGj.mjs';
export { renderers } from '../renderers.mjs';
const $$Index = createComponent(($$result, $$props, $$slots) => {
const featuredProducts = productCategories.filter(
(p) => ["ppr-elephant", "hdpe", "poloplast", "syler", "xylent"].includes(p.id)
).slice(0, 6);
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E2B\u0E19\u0E49\u0E32\u0E41\u0E23\u0E01", "description": "\u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17 \u0E14\u0E35\u0E25 \u0E1E\u0E25\u0E31\u0E2A \u0E40\u0E17\u0E04 \u0E08\u0E33\u0E01\u0E31\u0E14 - \u0E1C\u0E39\u0E49\u0E40\u0E0A\u0E35\u0E48\u0E22\u0E27\u0E0A\u0E32\u0E0D\u0E14\u0E49\u0E32\u0E19\u0E23\u0E30\u0E1A\u0E1A\u0E17\u0E48\u0E2D\u0E41\u0E25\u0E30 HVAC" }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> <!-- Hero Section --> <section class="relative h-[70vh] min-h-[500px] bg-secondary-900"> <div class="absolute inset-0 bg-gradient-to-r from-secondary-900 via-secondary-900/90 to-secondary-900/60 z-10"></div> <img src="/images/2021/03/ppr-pipe_000C.jpg" alt="" class="absolute inset-0 w-full h-full object-cover opacity-50" loading="eager"> <div class="relative z-20 container mx-auto px-4 h-full flex items-center"> <div class="max-w-2xl"> <span class="inline-block px-4 py-2 bg-green-600 text-white font-semibold mb-4 rounded">
เชยวชาญดานระบบทอและ HVAC
</span> <h1 class="text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight">
สด ปกรณ HVAC
<span class="text-green-400 block">และฉนวนหมท</span> </h1> <p class="text-lg md:text-xl text-gray-200 mb-8">
จำหนายและตดตงท PPR, HDPE, กรลแอร, เทอรโมเบรค และอปกรณระบบทอครบวงจร พรอมบรการใหคำปรกษาจากทมมออาช
</p> <div class="flex flex-wrap gap-4"> <a href="/products/" class="btn-primary">
นคาทงหมด
</a> <a href="/contact-us/" class="btn-outline border-white text-white hover:bg-white hover:text-gray-900">
ขอใบเสนอราคา
</a> </div> </div> </div> </section> <!-- Products Grid Section --> <section class="py-16 bg-gray-50"> <div class="container mx-auto px-4"> <h2 class="section-title text-center mb-4"></h2> <p class="section-subtitle text-center mb-12"></p> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> ${featuredProducts.map((product) => renderTemplate`<div class="card-industrial hover:shadow-xl transition-shadow"> <img${addAttribute(product.image, "src")}${addAttribute(product.name, "alt")} class="w-full h-48 object-cover rounded-lg mb-4"> <h3 class="text-xl font-bold text-gray-900 mb-2">${product.name}</h3> <p class="text-gray-600 text-sm mb-4">${product.shortDescription}</p> <a${addAttribute(product.href, "href")} class="btn-primary inline-block">
รายละเอยด
</a> </div>`)} </div> <div class="text-center mt-12"> <a href="/products/" class="btn-secondary">
นคาทงหมด
</a> </div> </div> </section> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ${renderComponent($$result2, "FloatingContact", $$FloatingContact, {})} ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/index.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/index.astro";
const $$url = "";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

43
dist/pages/privacy-policy.astro.mjs vendored Normal file
View File

@@ -0,0 +1,43 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
export { renderers } from '../renderers.mjs';
const $$PrivacyPolicy = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E19\u0E42\u0E22\u0E1A\u0E32\u0E22\u0E04\u0E27\u0E32\u0E21\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E15\u0E31\u0E27", "description": "\u0E19\u0E42\u0E22\u0E1A\u0E32\u0E22\u0E04\u0E27\u0E32\u0E21\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E15\u0E31\u0E27\u0E15\u0E32\u0E21\u0E01\u0E0E\u0E2B\u0E21\u0E32\u0E22\u0E04\u0E38\u0E49\u0E21\u0E04\u0E23\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2A\u0E48\u0E27\u0E19\u0E1A\u0E38\u0E04\u0E04\u0E25 (PDPA) \u0E02\u0E2D\u0E07\u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17 \u0E14\u0E35\u0E25 \u0E1E\u0E25\u0E31\u0E2A \u0E40\u0E17\u0E04 \u0E08\u0E33\u0E01\u0E31\u0E14" }, { "default": ($$result2) => renderTemplate` ${maybeRenderHead()}<main class="min-h-screen bg-secondary-50"> <div class="container mx-auto px-4 py-12"> <div class="max-w-4xl mx-auto bg-white rounded-lg shadow-lg p-8 md:p-12"> <h1 class="text-4xl font-bold text-secondary-900 mb-4">นโยบายความเปนสวนต</h1> <p class="text-secondary-600 mb-8">Privacy Policy - : 9 2026</p> <nav class="mb-8 p-4 bg-secondary-50 rounded-lg"> <h2 class="text-lg font-semibold mb-3"></h2> <ul class="space-y-1 text-primary-600"> <li><a href="#section1" class="hover:underline">1. </a></li> <li><a href="#section2" class="hover:underline">2. </a></li> <li><a href="#section3" class="hover:underline">3. </a></li> <li><a href="#section4" class="hover:underline">4. </a></li> <li><a href="#section5" class="hover:underline">5. </a></li> <li><a href="#section6" class="hover:underline">6. </a></li> <li><a href="#section9" class="hover:underline">7. </a></li> <li><a href="#section10" class="hover:underline">8. </a></li> <li><a href="#section11" class="hover:underline">9. </a></li> <li><a href="#section13" class="hover:underline">10. </a></li> </ul> </nav> <div class="prose prose-lg max-w-none"> <section id="section1" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">1. </h2> <p class="text-secondary-700 mb-4"> <strong> </strong> (Data Controller)
งมหนาทในการตดสนใจเกยวกบการเกบรวบรวม ใช หรอเปดเผยขอมลสวนบคคล
</p> <div class="bg-secondary-50 p-4 rounded-lg"> <p class="text-secondary-700"><strong>:</strong> 9/70 17 . 10160</p> <p class="text-secondary-700"><strong>:</strong> 090-555-1415</p> <p class="text-secondary-700"><strong>:</strong> info@dealplustech.co.th</p> </div> </section> <section id="section2" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">2. </h2> <p class="text-secondary-700 mb-4">:</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li><strong>:</strong> , , , </li> <li><strong>:</strong> IP Address, Browser Type, Device Information, Cookie Data</li> <li><strong>:</strong> </li> </ul> </section> <section id="section3" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">3. </h2> <p class="text-secondary-700 mb-4">:</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li></li> <li></li> <li> ()</li> <li></li> <li></li> </ul> </section> <section id="section4" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">4. </h2> <p class="text-secondary-700 mb-4">:</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li><strong> (Consent):</strong> </li> <li><strong> (Contract):</strong> </li> <li><strong> (Legitimate Interest):</strong> </li> <li><strong> (Legal Obligation):</strong> </li> </ul> </section> <section id="section5" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">5. </h2> <p class="text-secondary-700 mb-4">
เราเกบรกษาขอมลสวนบคคลเปนเวลา <strong>10 </strong> PDPA
หรอตราบเทาทจำเปนสำหรบวตถประสงคระบไวางต
หลงจากสนสดระยะเวลาเกบรกษา เราจะทำลายหรอทำใหอมลไมสามารถระบวตนได
</p> </section> <section id="section6" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">6. </h2> <p class="text-secondary-700 mb-4">
เราจะไมเปดเผยขอมลสวนบคคลของทานใหบบคคลภายนอก เวนแต:
</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li></li> <li></li> <li> ( )</li> <li></li> </ul> </section> <section id="section9" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">7. </h2> <p class="text-secondary-700 mb-4">
เราใชกกและเทคโนโลยการตดตามเพอปรบปรงประสบการณการใชงานเวบไซต านสามารถจดการการตงคาคกกได
<a href="/cookie-policy/" class="text-primary-600 hover:underline">นโยบายคกก</a> </p> </section> <section id="section10" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">8. </h2> <p class="text-secondary-700 mb-4">
ภายใตกฎหมาย PDPA านมทธงตอไปน:
</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li><strong>:</strong> </li> <li><strong>:</strong> </li> <li><strong> :</strong> (Right to Erasure)</li> <li><strong>:</strong> </li> <li><strong>:</strong> </li> <li><strong>:</strong> </li> <li><strong>:</strong> </li> <li><strong>:</strong> </li> </ul> <p class="text-secondary-700 mt-4">
หากทานตองการใชทธเหลาน กรณาตดตอเราท info@dealplustech.co.th
</p> </section> <section id="section11" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">9. </h2> <p class="text-secondary-700 mb-4">
เราใชมาตรการรกษาความปลอดภยทเหมาะสมเพอปกปองขอมลสวนบคคลของทานจากการเขาถ
การใช การแกไข หรอการเปดเผยโดยไมไดบอนญาต มาตรการเหลานรวมถ:
</p> <ul class="list-disc pl-6 space-y-2 text-secondary-700"> <li> (Encryption)</li> <li> (Access Control)</li> <li></li> <li></li> </ul> </section> <section id="section13" class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">10. </h2> <p class="text-secondary-700 mb-4">
หากทานเชอวามการละเมดกฎหมาย PDPA านมทธองเรยนต:
</p> <div class="bg-secondary-50 p-4 rounded-lg"> <p class="text-secondary-700"> <strong> (PDPC)</strong> </p> <p class="text-secondary-700">: www.pdpc.or.th</p> <p class="text-secondary-700">: info@pdpc.or.th</p> </div> </section> <section class="mt-12 pt-8 border-t border-secondary-200"> <h2 class="text-xl font-bold text-secondary-900 mb-4"></h2> <p class="text-secondary-700">
หากมคำถามเกยวกบนโยบายความเปนสวนตวน กรณาตดต:
</p> <div class="mt-4"> <p class="text-secondary-700"><strong> </strong></p> <p class="text-secondary-700">: info@dealplustech.co.th</p> <p class="text-secondary-700">: 090-555-1415</p> </div> </section> </div> </div> </div> </main> ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/privacy-policy.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/privacy-policy.astro";
const $$url = "/privacy-policy";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$PrivacyPolicy,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

33
dist/pages/products.astro.mjs vendored Normal file
View File

@@ -0,0 +1,33 @@
import { c as createComponent, m as maybeRenderHead, d as addAttribute, a as renderTemplate, b as createAstro, r as renderComponent } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
import { $ as $$Header, p as productCategories, a as $$Footer, b as $$FloatingContact } from '../chunks/FloatingContact_06TlrfGj.mjs';
import 'clsx';
export { renderers } from '../renderers.mjs';
const $$Astro = createAstro();
const $$ProductCard = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
Astro2.self = $$ProductCard;
const { product } = Astro2.props;
const { name, shortDescription, image } = product.data;
return renderTemplate`${maybeRenderHead()}<a${addAttribute(`/products/${product.data.slug}`, "href")} class="card group"> <div class="aspect-w-16 aspect-h-9 overflow-hidden bg-secondary-100"> <img${addAttribute(image || "/placeholder.jpg", "src")}${addAttribute(name, "alt")} class="object-cover w-full h-48 group-hover:scale-105 transition-transform duration-300" loading="lazy"> </div> <div class="p-6"> <h3 class="text-lg font-bold text-secondary-900 group-hover:text-primary-600 transition-colors"> ${name} </h3> ${shortDescription && renderTemplate`<p class="mt-2 text-sm text-secondary-600 line-clamp-2"> ${shortDescription} </p>`} <div class="mt-4 flex items-center text-primary-600 font-medium"> <span>ดูรายละเอียด</span> <svg class="w-4 h-4 ml-2 group-hover:translate-x-1 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round"${addAttribute(2, "stroke-width")} d="M9 5l7 7-7 7"></path> </svg> </div> </div> </a>`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/components/ProductCard.astro", void 0);
const $$Index = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32", "description": "\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32" }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main class="pt-32 pb-16 bg-gray-50"> <div class="container mx-auto px-4"> <h1 class="section-title text-center mb-4">นคาทงหมด</h1> <p class="section-subtitle text-center mb-12"></p> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> ${productCategories.map((product) => renderTemplate`${renderComponent($$result2, "ProductCard", $$ProductCard, { "product": product })}`)} </div> </div> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ${renderComponent($$result2, "FloatingContact", $$FloatingContact, {})} ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/products/index.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/products/index.astro";
const $$url = "/products";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

23
dist/pages/services.astro.mjs vendored Normal file
View File

@@ -0,0 +1,23 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
import { $ as $$Header, a as $$Footer, b as $$FloatingContact } from '../chunks/FloatingContact_06TlrfGj.mjs';
export { renderers } from '../renderers.mjs';
const $$Index = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23", "description": "\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32" }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main class="pt-32 pb-16 bg-gray-50"> <div class="container mx-auto px-4"> <h1 class="section-title text-center mb-4">บรการของเรา</h1> <p class="section-subtitle text-center mb-12"></p> </div> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ${renderComponent($$result2, "FloatingContact", $$FloatingContact, {})} ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/services/index.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/services/index.astro";
const $$url = "/services";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

View File

@@ -0,0 +1,53 @@
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_i-dTRwm2.mjs';
import 'piccolore';
import { $ as $$BaseLayout } from '../chunks/BaseLayout_rqQLf6w4.mjs';
export { renderers } from '../renderers.mjs';
const $$TermsAndConditions = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": "\u0E02\u0E49\u0E2D\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E41\u0E25\u0E30\u0E40\u0E07\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E02", "description": "\u0E02\u0E49\u0E2D\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E41\u0E25\u0E30\u0E40\u0E07\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E02\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E40\u0E27\u0E47\u0E1A\u0E44\u0E0B\u0E15\u0E4C\u0E02\u0E2D\u0E07\u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17 \u0E14\u0E35\u0E25 \u0E1E\u0E25\u0E31\u0E2A \u0E40\u0E17\u0E04 \u0E08\u0E33\u0E01\u0E31\u0E14" }, { "default": ($$result2) => renderTemplate` ${maybeRenderHead()}<main class="min-h-screen bg-secondary-50"> <div class="container mx-auto px-4 py-12"> <div class="max-w-4xl mx-auto bg-white rounded-lg shadow-lg p-8 md:p-12"> <h1 class="text-4xl font-bold text-secondary-900 mb-4">อกำหนดและเงอนไข</h1> <p class="text-secondary-600 mb-8">Terms and Conditions - 9 2026</p> <div class="prose prose-lg max-w-none text-secondary-700"> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">1. </h2> <p class="mb-4">
นดอนรบสเวบไซตของ <strong>บร พล เทค จำก</strong> ("", "" "")
โดยการเขาใชงานเวบไซต านยอมรบวาทานไดาน เขาใจ และตกลงทจะผกพนกบขอกำหนดและเงอนไขเหลาน
หากทานไมยอมรบขอกำหนดใด กรณาหยดการใชงานเวบไซต
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">2. </h2> <p class="mb-4">
เวบไซตใหบรการขอมลเกยวกบสนคาและบรการของเรา รวมถ:
</p> <ul class="list-disc pl-6 space-y-2"> <li> HVAC</li> <li></li> <li></li> <li></li> </ul> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">3. </h2> <p class="mb-4">
เนอหาทงหมดบนเวบไซต รวมถงแตไมจำกดเพยง อความ ปภาพ กราฟ โลโก ไอคอน
และซอฟตแวร เปนทรพยนทางปญญาของบร พล เทค จำก และไดบความคมครองตามกฎหมายลขสทธ
ามมใหทำซ ดแปลง เผยแพร หรอใชเพอการคาโดยไมไดบอนญาตเปนลายลกษณกษร
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">4. </h2> <p class="mb-4">:</p> <ul class="list-disc pl-6 space-y-2"> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">5. </h2> <p class="mb-4">
เราพยายามใหอมลทกตองและทนสมยบนเวบไซต อยางไรกตาม เราไมบประกนว:
</p> <ul class="list-disc pl-6 space-y-2"> <li> </li> <li></li> <li></li> </ul> <p class="mt-4">
เราจะไมบผดชอบตอความเสยหายใด เกดขนจากการใชหรอไมสามารถใชเวบไซต
ไมากรณใด งส
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">6. </h2> <p class="mb-4">
เราขอสงวนสทธในการระงบหรอยกเลกการเขาถงเวบไซตของทาน โดยไมองแจงใหทราบลวงหน
หาก我们发现วาทานละเมดขอกำหนดและเงอนไขเหลาน
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">7. </h2> <p class="mb-4">
อกำหนดและเงอนไขน อยภายใตงคบของกฎหมายแหงราชอาณาจกรไทย
และใหความตามกฎหมายดงกลาว
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">8. </h2> <p class="mb-4">
หากเกดขอพพาทใด จากขอกำหนดและเงอนไขน ญญาตกลงทจะเจรจาไกลเกลยขอพพาท
หากไมสามารถตกลงกนได ใหอยในอำนาจพจารณาคดของศาลไทย
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">9. </h2> <p class="mb-4">
เราขอสงวนสทธในการแกไขขอกำหนดและเงอนไขนเมอใดกได
โดยจะแจงใหานทราบผานการเผยแพรบนเวบไซต การแกไขจะมผลบงคบใชนทหลงการเผยแพร
กรณาตรวจสอบหนาทนเปนระยะ
</p> </section> <section class="mb-8"> <h2 class="text-2xl font-bold text-secondary-900 mb-4">10. </h2> <p class="mb-4"> :</p> <div class="bg-secondary-50 p-4 rounded-lg"> <p><strong> </strong></p> <p>: 9/70 17 . 10160</p> <p>: 090-555-1415</p> <p>: info@dealplustech.co.th</p> </div> </section> <section class="mt-12 pt-8 border-t border-secondary-200"> <p class="text-sm text-secondary-600">
อกำหนดและเงอนไขนเปนสวนหนงของขอตกลงการใชงานเวบไซตของเรา
และตองอานรวมก <a href="/privacy-policy/" class="text-primary-600 hover:underline">นโยบายความเปนสวนต</a>
และ <a href="/cookie-policy/" class="text-primary-600 hover:underline">นโยบายคกก</a> </p> </section> </div> </div> </div> </main> ` })}`;
}, "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/terms-and-conditions.astro", void 0);
const $$file = "/Users/kunthawatgreethong/Gitea/dealplustech/src/pages/terms-and-conditions.astro";
const $$url = "/terms-and-conditions";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$TermsAndConditions,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };