fix: Final restoration with port 80

 COMPLETED:
1. Dockerfile uses port 80 (astro preview)
2. BaseLayout imports globals.css
3. globals.css with Tailwind v4 @theme syntax
4. index.astro has Header, Footer, FixedContact
5. All image references fixed to existing files
6. Hero uses hdpe_pipe_main.jpg
7. Product cards use hdpe001.jpg
8. pt-20 on main for fixed header

 TESTED LOCALLY:
- Build: 15 pages in 1.27s
- Docker build successful
- Port 80 working
- Images load
- CSS works

Ready for Easypanel deployment.
This commit is contained in:
Kunthawat
2026-03-12 08:58:56 +07:00
parent c7a1553575
commit 5171a789e9
14495 changed files with 1956561 additions and 193 deletions

View File

@@ -0,0 +1,4 @@
/**
* Build a client directive entrypoint into code that can directly run in a `<script>` tag.
*/
export declare function buildClientDirectiveEntrypoint(name: string, entrypoint: string | URL, root: URL): Promise<string>;

27
node_modules/astro/dist/core/client-directive/build.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
import { fileURLToPath } from "node:url";
import { build } from "esbuild";
async function buildClientDirectiveEntrypoint(name, entrypoint, root) {
const stringifiedName = JSON.stringify(name);
const stringifiedEntrypoint = JSON.stringify(entrypoint);
const output = await build({
stdin: {
contents: `import directive from ${stringifiedEntrypoint};
(self.Astro || (self.Astro = {}))[${stringifiedName}] = directive;
window.dispatchEvent(new Event('astro:' + ${stringifiedName}));`,
resolveDir: fileURLToPath(root)
},
absWorkingDir: fileURLToPath(root),
format: "iife",
minify: true,
bundle: true,
write: false
});
const outputFile = output.outputFiles?.[0];
if (!outputFile) return "";
return outputFile.text;
}
export {
buildClientDirectiveEntrypoint
};

View File

@@ -0,0 +1 @@
export declare function getDefaultClientDirectives(): Map<string, string>;

View File

@@ -0,0 +1,17 @@
import idlePrebuilt from "../../runtime/client/idle.prebuilt.js";
import loadPrebuilt from "../../runtime/client/load.prebuilt.js";
import mediaPrebuilt from "../../runtime/client/media.prebuilt.js";
import onlyPrebuilt from "../../runtime/client/only.prebuilt.js";
import visiblePrebuilt from "../../runtime/client/visible.prebuilt.js";
function getDefaultClientDirectives() {
return /* @__PURE__ */ new Map([
["idle", idlePrebuilt],
["load", loadPrebuilt],
["media", mediaPrebuilt],
["only", onlyPrebuilt],
["visible", visiblePrebuilt]
]);
}
export {
getDefaultClientDirectives
};

View File

@@ -0,0 +1,2 @@
export { buildClientDirectiveEntrypoint } from './build.js';
export { getDefaultClientDirectives } from './default.js';

View File

@@ -0,0 +1,6 @@
import { buildClientDirectiveEntrypoint } from "./build.js";
import { getDefaultClientDirectives } from "./default.js";
export {
buildClientDirectiveEntrypoint,
getDefaultClientDirectives
};