create-gardener 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/build/backend/controllers/gardener/addPage.d.ts.map +1 -1
- package/template/build/backend/controllers/gardener/addPage.js +31 -21
- package/template/build/backend/controllers/gardener/addPage.js.map +1 -1
- package/template/build/backend/controllers/gardener/createStatic.d.ts.map +1 -1
- package/template/build/backend/controllers/gardener/createStatic.js +3 -1
- package/template/build/backend/controllers/gardener/createStatic.js.map +1 -1
- package/template/build/backend/libs/generateWebp.d.ts.map +1 -1
- package/template/build/backend/libs/generateWebp.js +0 -2
- package/template/build/backend/libs/generateWebp.js.map +1 -1
- package/template/build/backend/routes/gardener.route.js +5 -0
- package/template/build/backend/routes/gardener.route.js.map +1 -1
- package/template/build/frontend/static/bundle/bundle._.js +1 -0
- package/template/build/frontend/static/bundle/bundle._about.js +1 -0
- package/template/build/frontend/static/bundle/bundle._kartik.js +1 -0
- package/template/build/frontend/static/bundle/bundle._new.js +1 -0
- package/template/build/frontend/static/bundle/bundle._ritish.js +1 -0
- package/template/build/frontend/static/cache/gardener_100x100.webp +0 -0
- package/template/build/frontend/static/components/copybtn.js +16 -3
- package/template/build/frontend/static/components/footer.js +33 -0
- package/template/build/frontend/static/components/gardener/errorBox.js +47 -0
- package/template/build/frontend/static/components/gardener/hotReloadbtn.js +82 -0
- package/template/build/frontend/static/components/gardener/pageOverlayBtn.js +138 -0
- package/template/build/frontend/static/components/gardener/parserWindow.js +159 -0
- package/template/build/frontend/static/components/nonui/api.js +15 -2
- package/template/build/frontend/static/components/nonui/navigation.js +2 -2
- package/template/build/frontend/static/components/notification.js +1 -1
- package/template/build/frontend/static/gardener.js +129 -58
- package/template/build/frontend/static/gardenerConfig.js +1 -1
- package/template/build/frontend/static/gardenerDev.js +67 -401
- package/template/build/frontend/static/global.js +2 -2
- package/template/build/frontend/static/pages/pages._.js +7 -2
- package/template/build/frontend/static/pages/pages._about.js +2 -0
- package/template/build/frontend/static/pages/pages._kartik.js +2 -0
- package/template/build/frontend/static/pages/pages._new.js +2 -0
- package/template/build/frontend/static/pages/pages._ritish.js +2 -0
- package/template/build/frontend/static/style.css +1 -1
- package/template/build/frontend/static/style2.css +2 -2
- package/template/build/frontend/views/_.ejs +6 -2
- package/template/build/frontend/views/_about.ejs +126 -0
- package/template/build/frontend/views/_kartik.ejs +126 -0
- package/template/build/frontend/views/_new.ejs +126 -0
- package/template/build/frontend/views/_ritish.ejs +126 -0
- package/template/buildHelper.js +33 -2
- package/template/package.json +2 -1
- package/template/pnpm-lock.yaml +271 -0
- package/template/src/backend/controllers/gardener/addPage.ts +7 -1
- package/template/src/backend/controllers/gardener/createStatic.ts +94 -59
- package/template/src/backend/controllers/gardener/index.ts +0 -1
- package/template/src/backend/routes/gardener.route.ts +1 -2
- package/template/src/frontend/bundle/bundle._.js +2 -0
- package/template/src/frontend/bundle/bundle._about.js +1 -0
- package/template/src/frontend/bundle/bundle._kartik.js +1 -0
- package/template/src/frontend/bundle/bundle._new.js +1 -0
- package/template/src/frontend/bundle/bundle._ritish.js +1 -0
- package/template/src/frontend/static/components/nonui/navigation.js +2 -2
- package/template/src/frontend/static/components/notification.js +1 -1
- package/template/src/frontend/static/gardenerDev.js +2 -2
- package/template/src/frontend/static/global.js +1 -1
- package/template/src/frontend/static/pages/pages._.js +2 -2
- package/template/src/frontend/static/style.css +61 -31
- package/template/src/frontend/template/template._.ejs +5 -1
- package/template/src/frontend/views/_.ejs +6 -2
- package/template/build/frontend/static/gardener.test.js +0 -364
- package/template/build/frontend/static/zod.js +0 -8
- package/template/buildHelper.test.js +0 -78
- package/template/jest.config.js +0 -13
- package/template/src/frontend/static/gardener.test.js +0 -364
- package/template/src/frontend/static/zod.js +0 -8
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addPage.d.ts","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/addPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"addPage.d.ts","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/addPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA8CjD,wBAAsB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAyCxD"}
|
|
@@ -7,47 +7,57 @@ const __dirname = path.dirname(__filename);
|
|
|
7
7
|
const frontendDir = path.resolve(__dirname, '..', '..', '..', 'frontend');
|
|
8
8
|
const templateDir = path.join(frontendDir, 'template');
|
|
9
9
|
async function findTemplate(fileName) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
try {
|
|
11
|
+
while (fileName.length !== 0) {
|
|
12
|
+
console.log(fileName);
|
|
13
|
+
const searchFile = `template.${fileName}.ejs`;
|
|
14
|
+
console.log(searchFile);
|
|
15
|
+
const searchPath = path.join(templateDir, searchFile);
|
|
16
|
+
console.log(searchPath);
|
|
17
|
+
try {
|
|
18
|
+
await access(searchPath); // ✅ checks if file exists
|
|
19
|
+
return searchPath; // return full path immediately
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// file does not exist → continue
|
|
23
|
+
}
|
|
24
|
+
let lastUnderscore = fileName.lastIndexOf('_');
|
|
25
|
+
if (lastUnderscore === -1)
|
|
26
|
+
break;
|
|
27
|
+
if (lastUnderscore === 0)
|
|
28
|
+
lastUnderscore += 1;
|
|
29
|
+
fileName = fileName.substring(0, lastUnderscore);
|
|
30
|
+
console.log(fileName);
|
|
22
31
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (lastUnderscore === 0)
|
|
27
|
-
lastUnderscore += 1;
|
|
28
|
-
fileName = fileName.substring(0, lastUnderscore);
|
|
29
|
-
console.log(fileName);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
throw new Error("Template not found");
|
|
30
35
|
}
|
|
31
36
|
// ❗ explicit failure instead of silent bug
|
|
32
|
-
throw new Error("Template not found");
|
|
33
37
|
}
|
|
34
38
|
export async function addPage(req, res) {
|
|
35
39
|
try {
|
|
36
40
|
const pagename = req.body.page;
|
|
37
41
|
const name = pagename.replaceAll('/', '_');
|
|
38
42
|
const templatePath = await findTemplate(name); //path.join(frontendDir, findTemplate(name)); //path.join(frontendDir, 'frontendtemplate.ejs');
|
|
43
|
+
if (!templatePath)
|
|
44
|
+
throw new Error('no template found');
|
|
39
45
|
const viewPath = path.join(frontendDir, `views`, `${name}.ejs`);
|
|
40
46
|
const routePath = path.resolve(__dirname, '..', '..', 'routes', 'gardener.route.ts');
|
|
41
47
|
const jsDir = path.join(frontendDir, 'static/pages');
|
|
42
48
|
const jsFilePath = path.join(jsDir, `pages.${name}.js`);
|
|
49
|
+
const bundleDir = path.join(frontendDir, 'bundle');
|
|
43
50
|
const templateContent = await fsp.readFile(templatePath, 'utf8');
|
|
44
51
|
await fsp.writeFile(viewPath, templateContent, "utf8");
|
|
45
52
|
await replaceLastOccurrence(viewPath, '<script', `<script src="/static/pages/pages.${name}.js" type='module'></script>`);
|
|
46
53
|
const routeEntry = `router.route("${pagename}").get((req: Request, res: Response) => res.render("${name}",{fileName:"${name}"}));\n`;
|
|
47
54
|
await fsp.appendFile(routePath, routeEntry, "utf8");
|
|
48
55
|
await fsp.mkdir(jsDir, { recursive: true });
|
|
49
|
-
const jsContent = 'import { gardener, fetchElement, replaceElement, appendElement } from "
|
|
56
|
+
const jsContent = 'import { gardener, fetchElement, replaceElement, appendElement } from "../gardener.js";\n import {log, parser, addEl, State} from "../gardenerDev.js"';
|
|
50
57
|
await fsp.writeFile(jsFilePath, jsContent, "utf8");
|
|
58
|
+
await fsp.mkdir(bundleDir, { recursive: true });
|
|
59
|
+
const bundleContent = `import '../static/global.js';import '../static/pages/pages.${name}.js'; `;
|
|
60
|
+
await fsp.writeFile(path.join(bundleDir, `bundle.${name}.js`), bundleContent, "utf8");
|
|
51
61
|
res.json({ success: true });
|
|
52
62
|
}
|
|
53
63
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addPage.js","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/addPage.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAIvD,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"addPage.js","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/addPage.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAIvD,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE7B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrB,MAAM,UAAU,GAAG,YAAY,QAAQ,MAAM,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAEtD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B;gBACpD,OAAO,UAAU,CAAC,CAAQ,+BAA+B;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;YAED,IAAI,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,cAAc,KAAK,CAAC,CAAC;gBAAE,MAAM;YAEjC,IAAI,cAAc,KAAK,CAAC;gBAAE,cAAc,IAAI,CAAC,CAAC;YAE9C,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,2CAA2C;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAY,EAAE,GAAa;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAW,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAI3C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA,+FAA+F;QAE7I,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAIxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAElD,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,oCAAoC,IAAI,8BAA8B,CAAC,CAAC;QAEzH,MAAM,UAAU,GAAG,iBAAiB,QAAQ,uDAAuD,IAAI,gBAAgB,IAAI,SAAS,CAAC;QACrI,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,uJAAuJ,CAAC;QAC1K,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAEnD,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,8DAA8D,IAAI,QAAQ,CAAA;QAChG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAGtF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAY,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB,EAAE,aAAqB,EAAE,eAAuB;IACnG,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAE3C,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,YAAY,aAAa,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStatic.d.ts","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/createStatic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWjD,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,+
|
|
1
|
+
{"version":3,"file":"createStatic.d.ts","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/createStatic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWjD,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,+CAyE7D"}
|
|
@@ -23,7 +23,9 @@ export async function createStatic(req, res) {
|
|
|
23
23
|
const inputPath = path.join(viewsDir, entry.name);
|
|
24
24
|
const outputName = entry.name.replace(/\.ejs$/, ".html");
|
|
25
25
|
const outputPath = path.join(outDir, outputName);
|
|
26
|
-
const html = await ejs.renderFile(inputPath, {
|
|
26
|
+
const html = await ejs.renderFile(inputPath, {
|
|
27
|
+
fileName: inputPath
|
|
28
|
+
}, {
|
|
27
29
|
// async: true,
|
|
28
30
|
views: [viewsDir], // needed for includes
|
|
29
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStatic.js","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/createStatic.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,GAAa;IAC5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEpD,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAG9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,yCAAyC;YACzC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,SAAS;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAC/B,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"createStatic.js","sourceRoot":"","sources":["../../../../src/backend/controllers/gardener/createStatic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateWebp.d.ts","sourceRoot":"","sources":["../../../src/backend/libs/generateWebp.ts"],"names":[],"mappings":"AAIA,wBAA8B,YAAY,CACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"generateWebp.d.ts","sourceRoot":"","sources":["../../../src/backend/libs/generateWebp.ts"],"names":[],"mappings":"AAIA,wBAA8B,YAAY,CACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -4,8 +4,6 @@ import sharp from "sharp";
|
|
|
4
4
|
export default async function generateWebP(inputPath, outputPath, width, height) {
|
|
5
5
|
const cacheDir = path.dirname(outputPath);
|
|
6
6
|
await fsp.mkdir(cacheDir, { recursive: true });
|
|
7
|
-
console.log(`Processing image: ${inputPath}`);
|
|
8
|
-
console.log(`Output path: ${outputPath}`);
|
|
9
7
|
await sharp(inputPath)
|
|
10
8
|
.resize(width, height, {
|
|
11
9
|
fit: "inside",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateWebp.js","sourceRoot":"","sources":["../../../src/backend/libs/generateWebp.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,SAAiB,EACjB,UAAkB,EAClB,KAAa,EACb,MAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generateWebp.js","sourceRoot":"","sources":["../../../src/backend/libs/generateWebp.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,SAAiB,EACjB,UAAkB,EAClB,KAAa,EACb,MAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAG/C,MAAM,KAAK,CAAC,SAAS,CAAC;SACnB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;QACrB,GAAG,EAAE,QAAQ;QACb,kBAAkB,EAAE,IAAI;KACzB,CAAC;SACD,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SACtB,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -10,4 +10,9 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
10
10
|
router.route('/savetemplate').post(saveTemplate);
|
|
11
11
|
}
|
|
12
12
|
router.route('/').get((req, res) => res.render('_', { fileName: '_' }));
|
|
13
|
+
router.route("/new").get((req, res) => res.render("_new", { fileName: "_new" }));
|
|
14
|
+
router.route("/new").get((req, res) => res.render("_new", { fileName: "_new" }));
|
|
15
|
+
router.route("/about").get((req, res) => res.render("_about", { fileName: "_about" }));
|
|
16
|
+
router.route("/ritish").get((req, res) => res.render("_ritish", { fileName: "_ritish" }));
|
|
17
|
+
router.route("/kartik").get((req, res) => res.render("_kartik", { fileName: "_kartik" }));
|
|
13
18
|
//# sourceMappingURL=gardener.route.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gardener.route.js","sourceRoot":"","sources":["../../../src/backend/routes/gardener.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErH,MAAM,MAAM,GAAW,MAAM,EAAE,CAAC;AAChC,eAAe,MAAM,CAAC;AAKtB,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAExD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnD,CAAC;AAMD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"gardener.route.js","sourceRoot":"","sources":["../../../src/backend/routes/gardener.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErH,MAAM,MAAM,GAAW,MAAM,EAAE,CAAC;AAChC,eAAe,MAAM,CAAC;AAKtB,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAExD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnD,CAAC;AAMD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC;AAChG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC;AAChG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;AACtG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC;AACzG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var j=n("body");function d(e){a(j,i({t:"div",cn:["fixed","top-1/2","left-1/2","-translate-x-1/2","-translate-y-1/2","w-11/12","max-w-md","bg-white","text-gray-800","shadow-2xl","border-l-8","border-red-600","rounded-r-lg","z-[100]","p-0","overflow-hidden"],children:[{t:"div",cn:["bg-red-50","p-4","flex","items-center","gap-3"],children:[{t:"h2",cn:["text-red-700","font-bold","text-lg","uppercase","tracking-wider"],txt:"\u26A0\uFE0F System Error"}]},{t:"div",cn:["p-6","bg-white"],children:[{t:"p",cn:["font-mono","text-sm","bg-gray-100","p-3","rounded","border","border-gray-200","break-words"],txt:e},{t:"button",cn:["mt-4","w-full","py-2","bg-gray-800","text-white","rounded","hover:bg-black","transition-colors","cursor-pointer"],txt:"Dismiss",events:{click:t=>t.target.closest(".fixed").remove()}}]}]}))}function n(e){let t=document.querySelector(e);return t||console.warn(`Element not found: ${e}`),t}function a(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Parent element is null or undefined");if(!t)throw new Error("Child element is null or undefined");e.appendChild(t)}catch(r){d(r)}}function O(e,t){try{if(!e)throw new Error("Element type is required");let r=document.createElement(e);return t&&r.classList.add(...t),r}catch(r){return d(r),null}}function $(e,t){if(!e){console.warn("insertText: Element is null or undefined");return}e.textContent=t}function f(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Original element is null or undefined");if(!t)throw new Error("New element is null or undefined");e.replaceWith(t)}catch(r){d(r)}}function i(e){try{if(!e)throw new Error("DOM configuration is null or undefined");if(e.nodeType===1)return e;if(!e.t)throw new Error("Element type (t) is required in DOM configuration");let t=["svg","path","circle","rect","line","polygon","polyline","g","defs","clipPath","use"].includes(e.t),r;if(t?(r=document.createElementNS("http://www.w3.org/2000/svg",e.t),e.cn&&r.classList.add(...e.cn)):r=O(e.t,e.cn),!r)throw new Error(`Failed to create element: ${e.t}`);e.txt&&$(r,e.txt);let l=new Set(["value","selected","muted","disabled","selectedIndex","volume"]);if(e.attr)for(let[o,c]of Object.entries(e.attr))try{if(t||o.startsWith("data-")||o.startsWith("aria-"))r.setAttribute(o,c);else if(o in r&&!l.has(o))try{r[o]=c===""?!0:c}catch{r.setAttribute(o,c)}else r.setAttribute(o,c)}catch(p){console.warn(`Failed to set attribute ${o}:`,p)}return e.events&&Object.entries(e.events).forEach(([o,c])=>{try{if(typeof c!="function")throw new Error(`Event handler for '${o}' must be a function`);r.addEventListener(o,c)}catch(p){console.warn(`Failed to add event listener ${o}:`,p)}}),e.children&&e.children.forEach(o=>{try{a(r,i(o))}catch(c){console.warn("Failed to append child:",c)}}),r}catch(t){return d(t),null}}var h="prod";var m=n("#main");function w(){document.querySelectorAll("a").forEach(t=>{t.addEventListener("click",r=>{r.preventDefault(),P(t.href)})}),window.addEventListener("pagehide",()=>{setTimeout(()=>{m.style.transform="translateX(0px)",setTimeout(()=>{try{n(".tempnpdiv").remove()}catch{}},200)},200)})}function P(e){a(m,i({t:"div",cn:["tempnpdiv","top-0","left-[100vw]","fixed","h-screen","w-screen"]}));let t=window.innerWidth;console.log(t),m.style.transition=".2s",m.style.transform=`translateX(-${t}px)`,setTimeout(()=>{window.location.href=e},200)}function E(){let e=n(".loader");e.style.transition=".4s",e.style.opacity="0",h!=="dev"?setTimeout(()=>e.remove(),400):e.remove()}E();w();function s(e){console.log("clicked"),f(n(".notification"),L(e))}function L(e){return e?i({t:"div",cn:["notification","fixed","top-[-60px]","left-0","md:left-auto","md:right-[60px]","right-0","z-50","flex","justify-center","min-w-100","px-4","box-border"],children:[{t:"div",cn:["flex","items-center","w-full","max-w-sm","p-4","rounded-2xl","shadow-xl","text-white","backdrop-blur-md","bg-opacity-95",{success:"bg-[#2e7d32]",warning:"bg-[#ed6c02]",failure:"bg-[#d32f2f]"}[e.status]],children:[{t:"div",cn:["flex-1","text-sm","font-medium","tracking-wide"],txt:e.message}]}]}):null}function x(){return i({t:"button",events:{click:()=>{try{navigator.clipboard.writeText(n(".initCommand").innerText),f(".copybtn",x()),s({status:"success",message:"Copied"})}catch{s({status:"failure",message:"Couldn't Copy"})}}},cn:["copybtn","flex","items-center","justify-center","p-2","text-gray-400","hover:text-white","hover:bg-white/10","rounded","transition-all","duration-200","active:scale-95"],children:[{t:"span",cn:["w-5","h-5"],children:[{t:"svg",cn:["icon","icon-tabler","icons-tabler-outline","icon-tabler-clipboard-check"],attr:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},children:[{t:"path",attr:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}},{t:"path",attr:{d:"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"}},{t:"path",attr:{d:"M9 5a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2"}},{t:"path",attr:{d:"M9 14l2 2l4 -4"}}]}]}]})}var A=n("body");function k(e=!0){if(e){let t=i({t:"form",cn:["addpageform","fixed","left-2/5","bg-gray-200","rounded-lg","block","top-2/5","p-2","flex","flex-col","p-5","gap-2"],events:{submit:async r=>{try{r.preventDefault();let l=new FormData(r.target),o=Object.fromEntries(l.entries()),c=await fetch("/addpage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then(p=>p.json());k(!1),window.location.href=`${o.page}`}catch(l){console.log(l)}}},children:[{t:"label",txt:"ENTER PATH FOR NEW PAGE"},{t:"input",attr:{name:"page"},cn:["pathinput"]}]});a(A,t),n(".pathinput").focus()}else n(".addpageform").remove()}var v=i({t:"div",cn:["fixed","bottom-20","right-4","flex","flex-col","gap-2","bg-white","shadow-lg","rounded-xl","p-3","z-50"],children:[{t:"button",cn:["px-4","py-2","bg-blue-500","text-white","rounded-lg","hover:bg-blue-600","transition"],children:[{t:"span",txt:"New Page"}],events:{click:k}},{t:"button",cn:["px-4","py-2","bg-gray-800","text-white","rounded-lg","hover:bg-gray-900","transition"],children:[{t:"span",txt:"Save Template"}],events:{click:async()=>{let t=await(await fetch("/savetemplate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n("#fileName").innerText})})).json();alert(t.message)}}}]}),b=i({t:"div",cn:["fixed","bottom-4","right-4","z-50"],events:{mouseenter:()=>a(b,v),mouseleave:()=>v.remove()},children:[{t:"span",cn:["flex","items-center","justify-center","h-14","w-14","bg-black","text-white","fixed","bottom-22","right-2","rounded-full","shadow-lg","cursor-pointer"],txt:"GR"}]});var D=n("body");var F={hotreload:!1},u,T,y=localStorage.getItem("hotreload");y===null?u=F.hotreload:y==="true"?u=!0:y==="false"&&(u=!1);function g(){let e=u,t=n("#hrcheckbox");localStorage.setItem("hotreload",e),u=!u,e?(t.style.background="#66e666",n(".hrcheckbox").checked=!0,localStorage.setItem("hotreload","true"),T=setTimeout(()=>window.location.reload(),1e3)):(t.style.background="red",n(".hrcheckbox").checked=!1,localStorage.setItem("hotreload","false"),clearTimeout(T))}function C(){return i({t:"p",cn:["bg-gray-200","fixed","bottom-0","z-100","right-0","border-b-1","p-2","rounded-md"],children:[{t:"span",txt:"Press "},{t:"span",cn:["text-green-500","font-bold"],txt:"Alt+h"},{t:"span",txt:" to toggle Hot Reload"},{t:"form",attr:{id:"hrcheckbox"},events:{click:()=>g()},cn:["p-2","bg-red-300"],children:[{t:"label",txt:"Hot Reload "},{t:"input",cn:["hrcheckbox"],attr:{type:"checkbox"}}]}]})}var S=n("body");h==="dev"&&(a(S,b),a(S,C()),g());document.addEventListener("keydown",function(e){e.altKey&&e.key.toLowerCase()==="h"&&(e.preventDefault(),g())});function N(e,t,r){try{typeof e=="string"&&(e=n(e)),e.addEventListener(t,r)}catch(l){d(`addElError: ${l}`)}}N(".copybtn","click",()=>{try{navigator.clipboard.writeText(n(".initCommand").innerText),f(".copybtn",x()),s({status:"success",message:"Copied"})}catch{s({status:"failure",message:"Couldn't Copy"})}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var k=n("body");function l(e){i(k,c({t:"div",cn:["fixed","top-1/2","left-1/2","-translate-x-1/2","-translate-y-1/2","w-11/12","max-w-md","bg-white","text-gray-800","shadow-2xl","border-l-8","border-red-600","rounded-r-lg","z-[100]","p-0","overflow-hidden"],children:[{t:"div",cn:["bg-red-50","p-4","flex","items-center","gap-3"],children:[{t:"h2",cn:["text-red-700","font-bold","text-lg","uppercase","tracking-wider"],txt:"\u26A0\uFE0F System Error"}]},{t:"div",cn:["p-6","bg-white"],children:[{t:"p",cn:["font-mono","text-sm","bg-gray-100","p-3","rounded","border","border-gray-200","break-words"],txt:e},{t:"button",cn:["mt-4","w-full","py-2","bg-gray-800","text-white","rounded","hover:bg-black","transition-colors","cursor-pointer"],txt:"Dismiss",events:{click:t=>t.target.closest(".fixed").remove()}}]}]}))}function n(e){let t=document.querySelector(e);return t||console.warn(`Element not found: ${e}`),t}function i(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Parent element is null or undefined");if(!t)throw new Error("Child element is null or undefined");e.appendChild(t)}catch(r){l(r)}}function S(e,t){try{if(!e)throw new Error("Element type is required");let r=document.createElement(e);return t&&r.classList.add(...t),r}catch(r){return l(r),null}}function C(e,t){if(!e){console.warn("insertText: Element is null or undefined");return}e.textContent=t}function c(e){try{if(!e)throw new Error("DOM configuration is null or undefined");if(e.nodeType===1)return e;if(!e.t)throw new Error("Element type (t) is required in DOM configuration");let t=["svg","path","circle","rect","line","polygon","polyline","g","defs","clipPath","use"].includes(e.t),r;if(t?(r=document.createElementNS("http://www.w3.org/2000/svg",e.t),e.cn&&r.classList.add(...e.cn)):r=S(e.t,e.cn),!r)throw new Error(`Failed to create element: ${e.t}`);e.txt&&C(r,e.txt);let p=new Set(["value","selected","muted","disabled","selectedIndex","volume"]);if(e.attr)for(let[o,a]of Object.entries(e.attr))try{if(t||o.startsWith("data-")||o.startsWith("aria-"))r.setAttribute(o,a);else if(o in r&&!p.has(o))try{r[o]=a===""?!0:a}catch{r.setAttribute(o,a)}else r.setAttribute(o,a)}catch(d){console.warn(`Failed to set attribute ${o}:`,d)}return e.events&&Object.entries(e.events).forEach(([o,a])=>{try{if(typeof a!="function")throw new Error(`Event handler for '${o}' must be a function`);r.addEventListener(o,a)}catch(d){console.warn(`Failed to add event listener ${o}:`,d)}}),e.children&&e.children.forEach(o=>{try{i(r,c(o))}catch(a){console.warn("Failed to append child:",a)}}),r}catch(t){return l(t),null}}var f="prod";var u=n("#main");function x(){document.querySelectorAll("a").forEach(t=>{t.addEventListener("click",r=>{r.preventDefault(),N(t.href)})}),window.addEventListener("pagehide",()=>{setTimeout(()=>{u.style.transform="translateX(0px)",setTimeout(()=>{try{n(".tempnpdiv").remove()}catch{}},200)},200)})}function N(e){i(u,c({t:"div",cn:["tempnpdiv","top-0","left-[100vw]","fixed","h-screen","w-screen"]}));let t=window.innerWidth;console.log(t),u.style.transition=".2s",u.style.transform=`translateX(-${t}px)`,setTimeout(()=>{window.location.href=e},200)}function b(){let e=n(".loader");e.style.transition=".4s",e.style.opacity="0",f!=="dev"?setTimeout(()=>e.remove(),400):e.remove()}b();x();var O=n("body");function w(e=!0){if(e){let t=c({t:"form",cn:["addpageform","fixed","left-2/5","bg-gray-200","rounded-lg","block","top-2/5","p-2","flex","flex-col","p-5","gap-2"],events:{submit:async r=>{try{r.preventDefault();let p=new FormData(r.target),o=Object.fromEntries(p.entries()),a=await fetch("/addpage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then(d=>d.json());w(!1),window.location.href=`${o.page}`}catch(p){console.log(p)}}},children:[{t:"label",txt:"ENTER PATH FOR NEW PAGE"},{t:"input",attr:{name:"page"},cn:["pathinput"]}]});i(O,t),n(".pathinput").focus()}else n(".addpageform").remove()}var y=c({t:"div",cn:["fixed","bottom-20","right-4","flex","flex-col","gap-2","bg-white","shadow-lg","rounded-xl","p-3","z-50"],children:[{t:"button",cn:["px-4","py-2","bg-blue-500","text-white","rounded-lg","hover:bg-blue-600","transition"],children:[{t:"span",txt:"New Page"}],events:{click:w}},{t:"button",cn:["px-4","py-2","bg-gray-800","text-white","rounded-lg","hover:bg-gray-900","transition"],children:[{t:"span",txt:"Save Template"}],events:{click:async()=>{let t=await(await fetch("/savetemplate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n("#fileName").innerText})})).json();alert(t.message)}}}]}),m=c({t:"div",cn:["fixed","bottom-4","right-4","z-50"],events:{mouseenter:()=>i(m,y),mouseleave:()=>y.remove()},children:[{t:"span",cn:["flex","items-center","justify-center","h-14","w-14","bg-black","text-white","fixed","bottom-22","right-2","rounded-full","shadow-lg","cursor-pointer"],txt:"GR"}]});var _=n("body");var $={hotreload:!1},s,E,g=localStorage.getItem("hotreload");g===null?s=$.hotreload:g==="true"?s=!0:g==="false"&&(s=!1);function h(){let e=s,t=n("#hrcheckbox");localStorage.setItem("hotreload",e),s=!s,e?(t.style.background="#66e666",n(".hrcheckbox").checked=!0,localStorage.setItem("hotreload","true"),E=setTimeout(()=>window.location.reload(),1e3)):(t.style.background="red",n(".hrcheckbox").checked=!1,localStorage.setItem("hotreload","false"),clearTimeout(E))}function v(){return c({t:"p",cn:["bg-gray-200","fixed","bottom-0","z-100","right-0","border-b-1","p-2","rounded-md"],children:[{t:"span",txt:"Press "},{t:"span",cn:["text-green-500","font-bold"],txt:"Alt+h"},{t:"span",txt:" to toggle Hot Reload"},{t:"form",attr:{id:"hrcheckbox"},events:{click:()=>h()},cn:["p-2","bg-red-300"],children:[{t:"label",txt:"Hot Reload "},{t:"input",cn:["hrcheckbox"],attr:{type:"checkbox"}}]}]})}var T=n("body");f==="dev"&&(i(T,m),i(T,v()),h());document.addEventListener("keydown",function(e){e.altKey&&e.key.toLowerCase()==="h"&&(e.preventDefault(),h())});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var k=n("body");function l(e){i(k,c({t:"div",cn:["fixed","top-1/2","left-1/2","-translate-x-1/2","-translate-y-1/2","w-11/12","max-w-md","bg-white","text-gray-800","shadow-2xl","border-l-8","border-red-600","rounded-r-lg","z-[100]","p-0","overflow-hidden"],children:[{t:"div",cn:["bg-red-50","p-4","flex","items-center","gap-3"],children:[{t:"h2",cn:["text-red-700","font-bold","text-lg","uppercase","tracking-wider"],txt:"\u26A0\uFE0F System Error"}]},{t:"div",cn:["p-6","bg-white"],children:[{t:"p",cn:["font-mono","text-sm","bg-gray-100","p-3","rounded","border","border-gray-200","break-words"],txt:e},{t:"button",cn:["mt-4","w-full","py-2","bg-gray-800","text-white","rounded","hover:bg-black","transition-colors","cursor-pointer"],txt:"Dismiss",events:{click:t=>t.target.closest(".fixed").remove()}}]}]}))}function n(e){let t=document.querySelector(e);return t||console.warn(`Element not found: ${e}`),t}function i(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Parent element is null or undefined");if(!t)throw new Error("Child element is null or undefined");e.appendChild(t)}catch(r){l(r)}}function S(e,t){try{if(!e)throw new Error("Element type is required");let r=document.createElement(e);return t&&r.classList.add(...t),r}catch(r){return l(r),null}}function C(e,t){if(!e){console.warn("insertText: Element is null or undefined");return}e.textContent=t}function c(e){try{if(!e)throw new Error("DOM configuration is null or undefined");if(e.nodeType===1)return e;if(!e.t)throw new Error("Element type (t) is required in DOM configuration");let t=["svg","path","circle","rect","line","polygon","polyline","g","defs","clipPath","use"].includes(e.t),r;if(t?(r=document.createElementNS("http://www.w3.org/2000/svg",e.t),e.cn&&r.classList.add(...e.cn)):r=S(e.t,e.cn),!r)throw new Error(`Failed to create element: ${e.t}`);e.txt&&C(r,e.txt);let p=new Set(["value","selected","muted","disabled","selectedIndex","volume"]);if(e.attr)for(let[o,a]of Object.entries(e.attr))try{if(t||o.startsWith("data-")||o.startsWith("aria-"))r.setAttribute(o,a);else if(o in r&&!p.has(o))try{r[o]=a===""?!0:a}catch{r.setAttribute(o,a)}else r.setAttribute(o,a)}catch(d){console.warn(`Failed to set attribute ${o}:`,d)}return e.events&&Object.entries(e.events).forEach(([o,a])=>{try{if(typeof a!="function")throw new Error(`Event handler for '${o}' must be a function`);r.addEventListener(o,a)}catch(d){console.warn(`Failed to add event listener ${o}:`,d)}}),e.children&&e.children.forEach(o=>{try{i(r,c(o))}catch(a){console.warn("Failed to append child:",a)}}),r}catch(t){return l(t),null}}var f="prod";var u=n("#main");function x(){document.querySelectorAll("a").forEach(t=>{t.addEventListener("click",r=>{r.preventDefault(),N(t.href)})}),window.addEventListener("pagehide",()=>{setTimeout(()=>{u.style.transform="translateX(0px)",setTimeout(()=>{try{n(".tempnpdiv").remove()}catch{}},200)},200)})}function N(e){i(u,c({t:"div",cn:["tempnpdiv","top-0","left-[100vw]","fixed","h-screen","w-screen"]}));let t=window.innerWidth;console.log(t),u.style.transition=".2s",u.style.transform=`translateX(-${t}px)`,setTimeout(()=>{window.location.href=e},200)}function b(){let e=n(".loader");e.style.transition=".4s",e.style.opacity="0",f!=="dev"?setTimeout(()=>e.remove(),400):e.remove()}b();x();var O=n("body");function w(e=!0){if(e){let t=c({t:"form",cn:["addpageform","fixed","left-2/5","bg-gray-200","rounded-lg","block","top-2/5","p-2","flex","flex-col","p-5","gap-2"],events:{submit:async r=>{try{r.preventDefault();let p=new FormData(r.target),o=Object.fromEntries(p.entries()),a=await fetch("/addpage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then(d=>d.json());w(!1),window.location.href=`${o.page}`}catch(p){console.log(p)}}},children:[{t:"label",txt:"ENTER PATH FOR NEW PAGE"},{t:"input",attr:{name:"page"},cn:["pathinput"]}]});i(O,t),n(".pathinput").focus()}else n(".addpageform").remove()}var y=c({t:"div",cn:["fixed","bottom-20","right-4","flex","flex-col","gap-2","bg-white","shadow-lg","rounded-xl","p-3","z-50"],children:[{t:"button",cn:["px-4","py-2","bg-blue-500","text-white","rounded-lg","hover:bg-blue-600","transition"],children:[{t:"span",txt:"New Page"}],events:{click:w}},{t:"button",cn:["px-4","py-2","bg-gray-800","text-white","rounded-lg","hover:bg-gray-900","transition"],children:[{t:"span",txt:"Save Template"}],events:{click:async()=>{let t=await(await fetch("/savetemplate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n("#fileName").innerText})})).json();alert(t.message)}}}]}),m=c({t:"div",cn:["fixed","bottom-4","right-4","z-50"],events:{mouseenter:()=>i(m,y),mouseleave:()=>y.remove()},children:[{t:"span",cn:["flex","items-center","justify-center","h-14","w-14","bg-black","text-white","fixed","bottom-22","right-2","rounded-full","shadow-lg","cursor-pointer"],txt:"GR"}]});var _=n("body");var $={hotreload:!1},s,E,g=localStorage.getItem("hotreload");g===null?s=$.hotreload:g==="true"?s=!0:g==="false"&&(s=!1);function h(){let e=s,t=n("#hrcheckbox");localStorage.setItem("hotreload",e),s=!s,e?(t.style.background="#66e666",n(".hrcheckbox").checked=!0,localStorage.setItem("hotreload","true"),E=setTimeout(()=>window.location.reload(),1e3)):(t.style.background="red",n(".hrcheckbox").checked=!1,localStorage.setItem("hotreload","false"),clearTimeout(E))}function v(){return c({t:"p",cn:["bg-gray-200","fixed","bottom-0","z-100","right-0","border-b-1","p-2","rounded-md"],children:[{t:"span",txt:"Press "},{t:"span",cn:["text-green-500","font-bold"],txt:"Alt+h"},{t:"span",txt:" to toggle Hot Reload"},{t:"form",attr:{id:"hrcheckbox"},events:{click:()=>h()},cn:["p-2","bg-red-300"],children:[{t:"label",txt:"Hot Reload "},{t:"input",cn:["hrcheckbox"],attr:{type:"checkbox"}}]}]})}var T=n("body");f==="dev"&&(i(T,m),i(T,v()),h());document.addEventListener("keydown",function(e){e.altKey&&e.key.toLowerCase()==="h"&&(e.preventDefault(),h())});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var k=n("body");function l(e){i(k,c({t:"div",cn:["fixed","top-1/2","left-1/2","-translate-x-1/2","-translate-y-1/2","w-11/12","max-w-md","bg-white","text-gray-800","shadow-2xl","border-l-8","border-red-600","rounded-r-lg","z-[100]","p-0","overflow-hidden"],children:[{t:"div",cn:["bg-red-50","p-4","flex","items-center","gap-3"],children:[{t:"h2",cn:["text-red-700","font-bold","text-lg","uppercase","tracking-wider"],txt:"\u26A0\uFE0F System Error"}]},{t:"div",cn:["p-6","bg-white"],children:[{t:"p",cn:["font-mono","text-sm","bg-gray-100","p-3","rounded","border","border-gray-200","break-words"],txt:e},{t:"button",cn:["mt-4","w-full","py-2","bg-gray-800","text-white","rounded","hover:bg-black","transition-colors","cursor-pointer"],txt:"Dismiss",events:{click:t=>t.target.closest(".fixed").remove()}}]}]}))}function n(e){let t=document.querySelector(e);return t||console.warn(`Element not found: ${e}`),t}function i(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Parent element is null or undefined");if(!t)throw new Error("Child element is null or undefined");e.appendChild(t)}catch(r){l(r)}}function S(e,t){try{if(!e)throw new Error("Element type is required");let r=document.createElement(e);return t&&r.classList.add(...t),r}catch(r){return l(r),null}}function C(e,t){if(!e){console.warn("insertText: Element is null or undefined");return}e.textContent=t}function c(e){try{if(!e)throw new Error("DOM configuration is null or undefined");if(e.nodeType===1)return e;if(!e.t)throw new Error("Element type (t) is required in DOM configuration");let t=["svg","path","circle","rect","line","polygon","polyline","g","defs","clipPath","use"].includes(e.t),r;if(t?(r=document.createElementNS("http://www.w3.org/2000/svg",e.t),e.cn&&r.classList.add(...e.cn)):r=S(e.t,e.cn),!r)throw new Error(`Failed to create element: ${e.t}`);e.txt&&C(r,e.txt);let p=new Set(["value","selected","muted","disabled","selectedIndex","volume"]);if(e.attr)for(let[o,a]of Object.entries(e.attr))try{if(t||o.startsWith("data-")||o.startsWith("aria-"))r.setAttribute(o,a);else if(o in r&&!p.has(o))try{r[o]=a===""?!0:a}catch{r.setAttribute(o,a)}else r.setAttribute(o,a)}catch(d){console.warn(`Failed to set attribute ${o}:`,d)}return e.events&&Object.entries(e.events).forEach(([o,a])=>{try{if(typeof a!="function")throw new Error(`Event handler for '${o}' must be a function`);r.addEventListener(o,a)}catch(d){console.warn(`Failed to add event listener ${o}:`,d)}}),e.children&&e.children.forEach(o=>{try{i(r,c(o))}catch(a){console.warn("Failed to append child:",a)}}),r}catch(t){return l(t),null}}var f="prod";var u=n("#main");function x(){document.querySelectorAll("a").forEach(t=>{t.addEventListener("click",r=>{r.preventDefault(),N(t.href)})}),window.addEventListener("pagehide",()=>{setTimeout(()=>{u.style.transform="translateX(0px)",setTimeout(()=>{try{n(".tempnpdiv").remove()}catch{}},200)},200)})}function N(e){i(u,c({t:"div",cn:["tempnpdiv","top-0","left-[100vw]","fixed","h-screen","w-screen"]}));let t=window.innerWidth;console.log(t),u.style.transition=".2s",u.style.transform=`translateX(-${t}px)`,setTimeout(()=>{window.location.href=e},200)}function b(){let e=n(".loader");e.style.transition=".4s",e.style.opacity="0",f!=="dev"?setTimeout(()=>e.remove(),400):e.remove()}b();x();var O=n("body");function w(e=!0){if(e){let t=c({t:"form",cn:["addpageform","fixed","left-2/5","bg-gray-200","rounded-lg","block","top-2/5","p-2","flex","flex-col","p-5","gap-2"],events:{submit:async r=>{try{r.preventDefault();let p=new FormData(r.target),o=Object.fromEntries(p.entries()),a=await fetch("/addpage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then(d=>d.json());w(!1),window.location.href=`${o.page}`}catch(p){console.log(p)}}},children:[{t:"label",txt:"ENTER PATH FOR NEW PAGE"},{t:"input",attr:{name:"page"},cn:["pathinput"]}]});i(O,t),n(".pathinput").focus()}else n(".addpageform").remove()}var y=c({t:"div",cn:["fixed","bottom-20","right-4","flex","flex-col","gap-2","bg-white","shadow-lg","rounded-xl","p-3","z-50"],children:[{t:"button",cn:["px-4","py-2","bg-blue-500","text-white","rounded-lg","hover:bg-blue-600","transition"],children:[{t:"span",txt:"New Page"}],events:{click:w}},{t:"button",cn:["px-4","py-2","bg-gray-800","text-white","rounded-lg","hover:bg-gray-900","transition"],children:[{t:"span",txt:"Save Template"}],events:{click:async()=>{let t=await(await fetch("/savetemplate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n("#fileName").innerText})})).json();alert(t.message)}}}]}),m=c({t:"div",cn:["fixed","bottom-4","right-4","z-50"],events:{mouseenter:()=>i(m,y),mouseleave:()=>y.remove()},children:[{t:"span",cn:["flex","items-center","justify-center","h-14","w-14","bg-black","text-white","fixed","bottom-22","right-2","rounded-full","shadow-lg","cursor-pointer"],txt:"GR"}]});var _=n("body");var $={hotreload:!1},s,E,g=localStorage.getItem("hotreload");g===null?s=$.hotreload:g==="true"?s=!0:g==="false"&&(s=!1);function h(){let e=s,t=n("#hrcheckbox");localStorage.setItem("hotreload",e),s=!s,e?(t.style.background="#66e666",n(".hrcheckbox").checked=!0,localStorage.setItem("hotreload","true"),E=setTimeout(()=>window.location.reload(),1e3)):(t.style.background="red",n(".hrcheckbox").checked=!1,localStorage.setItem("hotreload","false"),clearTimeout(E))}function v(){return c({t:"p",cn:["bg-gray-200","fixed","bottom-0","z-100","right-0","border-b-1","p-2","rounded-md"],children:[{t:"span",txt:"Press "},{t:"span",cn:["text-green-500","font-bold"],txt:"Alt+h"},{t:"span",txt:" to toggle Hot Reload"},{t:"form",attr:{id:"hrcheckbox"},events:{click:()=>h()},cn:["p-2","bg-red-300"],children:[{t:"label",txt:"Hot Reload "},{t:"input",cn:["hrcheckbox"],attr:{type:"checkbox"}}]}]})}var T=n("body");f==="dev"&&(i(T,m),i(T,v()),h());document.addEventListener("keydown",function(e){e.altKey&&e.key.toLowerCase()==="h"&&(e.preventDefault(),h())});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var k=n("body");function l(e){i(k,c({t:"div",cn:["fixed","top-1/2","left-1/2","-translate-x-1/2","-translate-y-1/2","w-11/12","max-w-md","bg-white","text-gray-800","shadow-2xl","border-l-8","border-red-600","rounded-r-lg","z-[100]","p-0","overflow-hidden"],children:[{t:"div",cn:["bg-red-50","p-4","flex","items-center","gap-3"],children:[{t:"h2",cn:["text-red-700","font-bold","text-lg","uppercase","tracking-wider"],txt:"\u26A0\uFE0F System Error"}]},{t:"div",cn:["p-6","bg-white"],children:[{t:"p",cn:["font-mono","text-sm","bg-gray-100","p-3","rounded","border","border-gray-200","break-words"],txt:e},{t:"button",cn:["mt-4","w-full","py-2","bg-gray-800","text-white","rounded","hover:bg-black","transition-colors","cursor-pointer"],txt:"Dismiss",events:{click:t=>t.target.closest(".fixed").remove()}}]}]}))}function n(e){let t=document.querySelector(e);return t||console.warn(`Element not found: ${e}`),t}function i(e,t){try{if(typeof e=="string"&&(e=n(e)),!e)throw new Error("Parent element is null or undefined");if(!t)throw new Error("Child element is null or undefined");e.appendChild(t)}catch(r){l(r)}}function S(e,t){try{if(!e)throw new Error("Element type is required");let r=document.createElement(e);return t&&r.classList.add(...t),r}catch(r){return l(r),null}}function C(e,t){if(!e){console.warn("insertText: Element is null or undefined");return}e.textContent=t}function c(e){try{if(!e)throw new Error("DOM configuration is null or undefined");if(e.nodeType===1)return e;if(!e.t)throw new Error("Element type (t) is required in DOM configuration");let t=["svg","path","circle","rect","line","polygon","polyline","g","defs","clipPath","use"].includes(e.t),r;if(t?(r=document.createElementNS("http://www.w3.org/2000/svg",e.t),e.cn&&r.classList.add(...e.cn)):r=S(e.t,e.cn),!r)throw new Error(`Failed to create element: ${e.t}`);e.txt&&C(r,e.txt);let p=new Set(["value","selected","muted","disabled","selectedIndex","volume"]);if(e.attr)for(let[o,a]of Object.entries(e.attr))try{if(t||o.startsWith("data-")||o.startsWith("aria-"))r.setAttribute(o,a);else if(o in r&&!p.has(o))try{r[o]=a===""?!0:a}catch{r.setAttribute(o,a)}else r.setAttribute(o,a)}catch(d){console.warn(`Failed to set attribute ${o}:`,d)}return e.events&&Object.entries(e.events).forEach(([o,a])=>{try{if(typeof a!="function")throw new Error(`Event handler for '${o}' must be a function`);r.addEventListener(o,a)}catch(d){console.warn(`Failed to add event listener ${o}:`,d)}}),e.children&&e.children.forEach(o=>{try{i(r,c(o))}catch(a){console.warn("Failed to append child:",a)}}),r}catch(t){return l(t),null}}var f="prod";var u=n("#main");function x(){document.querySelectorAll("a").forEach(t=>{t.addEventListener("click",r=>{r.preventDefault(),N(t.href)})}),window.addEventListener("pagehide",()=>{setTimeout(()=>{u.style.transform="translateX(0px)",setTimeout(()=>{try{n(".tempnpdiv").remove()}catch{}},200)},200)})}function N(e){i(u,c({t:"div",cn:["tempnpdiv","top-0","left-[100vw]","fixed","h-screen","w-screen"]}));let t=window.innerWidth;console.log(t),u.style.transition=".2s",u.style.transform=`translateX(-${t}px)`,setTimeout(()=>{window.location.href=e},200)}function b(){let e=n(".loader");e.style.transition=".4s",e.style.opacity="0",f!=="dev"?setTimeout(()=>e.remove(),400):e.remove()}b();x();var O=n("body");function w(e=!0){if(e){let t=c({t:"form",cn:["addpageform","fixed","left-2/5","bg-gray-200","rounded-lg","block","top-2/5","p-2","flex","flex-col","p-5","gap-2"],events:{submit:async r=>{try{r.preventDefault();let p=new FormData(r.target),o=Object.fromEntries(p.entries()),a=await fetch("/addpage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then(d=>d.json());w(!1),window.location.href=`${o.page}`}catch(p){console.log(p)}}},children:[{t:"label",txt:"ENTER PATH FOR NEW PAGE"},{t:"input",attr:{name:"page"},cn:["pathinput"]}]});i(O,t),n(".pathinput").focus()}else n(".addpageform").remove()}var y=c({t:"div",cn:["fixed","bottom-20","right-4","flex","flex-col","gap-2","bg-white","shadow-lg","rounded-xl","p-3","z-50"],children:[{t:"button",cn:["px-4","py-2","bg-blue-500","text-white","rounded-lg","hover:bg-blue-600","transition"],children:[{t:"span",txt:"New Page"}],events:{click:w}},{t:"button",cn:["px-4","py-2","bg-gray-800","text-white","rounded-lg","hover:bg-gray-900","transition"],children:[{t:"span",txt:"Save Template"}],events:{click:async()=>{let t=await(await fetch("/savetemplate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n("#fileName").innerText})})).json();alert(t.message)}}}]}),m=c({t:"div",cn:["fixed","bottom-4","right-4","z-50"],events:{mouseenter:()=>i(m,y),mouseleave:()=>y.remove()},children:[{t:"span",cn:["flex","items-center","justify-center","h-14","w-14","bg-black","text-white","fixed","bottom-22","right-2","rounded-full","shadow-lg","cursor-pointer"],txt:"GR"}]});var _=n("body");var $={hotreload:!1},s,E,g=localStorage.getItem("hotreload");g===null?s=$.hotreload:g==="true"?s=!0:g==="false"&&(s=!1);function h(){let e=s,t=n("#hrcheckbox");localStorage.setItem("hotreload",e),s=!s,e?(t.style.background="#66e666",n(".hrcheckbox").checked=!0,localStorage.setItem("hotreload","true"),E=setTimeout(()=>window.location.reload(),1e3)):(t.style.background="red",n(".hrcheckbox").checked=!1,localStorage.setItem("hotreload","false"),clearTimeout(E))}function v(){return c({t:"p",cn:["bg-gray-200","fixed","bottom-0","z-100","right-0","border-b-1","p-2","rounded-md"],children:[{t:"span",txt:"Press "},{t:"span",cn:["text-green-500","font-bold"],txt:"Alt+h"},{t:"span",txt:" to toggle Hot Reload"},{t:"form",attr:{id:"hrcheckbox"},events:{click:()=>h()},cn:["p-2","bg-red-300"],children:[{t:"label",txt:"Hot Reload "},{t:"input",cn:["hrcheckbox"],attr:{type:"checkbox"}}]}]})}var T=n("body");f==="dev"&&(i(T,m),i(T,v()),h());document.addEventListener("keydown",function(e){e.altKey&&e.key.toLowerCase()==="h"&&(e.preventDefault(),h())});
|
|
Binary file
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
|
|
2
2
|
import { gardener, fetchElement, replaceElement } from '../gardener.js'
|
|
3
|
+
import addNotification from './notification.js';
|
|
3
4
|
|
|
4
5
|
export function copybtn() {
|
|
5
6
|
return gardener({
|
|
6
7
|
"t": "button",
|
|
8
|
+
events: {
|
|
9
|
+
click: () => {
|
|
10
|
+
try {
|
|
11
|
+
navigator.clipboard.writeText(fetchElement('.initCommand').innerText)
|
|
12
|
+
replaceElement('.copybtn', copybtn());
|
|
13
|
+
addNotification({ status: 'success', message: 'Copied' })
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
addNotification({
|
|
17
|
+
status: 'failure', message: "Couldn't Copy"
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
},
|
|
7
23
|
"cn": [
|
|
8
24
|
"copybtn",
|
|
9
25
|
"flex",
|
|
@@ -18,9 +34,6 @@ export function copybtn() {
|
|
|
18
34
|
"duration-200",
|
|
19
35
|
"active:scale-95"
|
|
20
36
|
],
|
|
21
|
-
"attr": {
|
|
22
|
-
"title": "Copy to clipboard"
|
|
23
|
-
},
|
|
24
37
|
"children": [
|
|
25
38
|
{
|
|
26
39
|
"t": "span",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
import { gardener, fetchElement, replaceElement } from '../gardener.js'
|
|
3
|
+
|
|
4
|
+
export function footer({mystery}) {
|
|
5
|
+
return gardener({
|
|
6
|
+
"t": "footer",
|
|
7
|
+
"cn": [
|
|
8
|
+
"bg-green-900",
|
|
9
|
+
"text-green-100",
|
|
10
|
+
"py-12",
|
|
11
|
+
"text-center"
|
|
12
|
+
],
|
|
13
|
+
"children": [
|
|
14
|
+
{
|
|
15
|
+
"t": "p",
|
|
16
|
+
"cn": [
|
|
17
|
+
"text-xl",
|
|
18
|
+
"italic"
|
|
19
|
+
],
|
|
20
|
+
"txt": "\"Because sometimes you don't need a forest. Just a garden.\""
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"t": "div",
|
|
24
|
+
"cn": [
|
|
25
|
+
"mt-6",
|
|
26
|
+
"text-sm",
|
|
27
|
+
"opacity-70"
|
|
28
|
+
],
|
|
29
|
+
"txt": "MIT Licensed | Built on Express & EJS "+mystery+""
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
})
|
|
33
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { gardener, fetchElement, appendElement } from '../../gardener.js'
|
|
2
|
+
|
|
3
|
+
const body = fetchElement('body');
|
|
4
|
+
|
|
5
|
+
export function gardenerError(error) {
|
|
6
|
+
appendElement(body, gardener({
|
|
7
|
+
t: 'div',
|
|
8
|
+
// Added: centering, shadow, border-left for "alert" feel, and high z-index
|
|
9
|
+
cn: [
|
|
10
|
+
'fixed', 'top-1/2', 'left-1/2', '-translate-x-1/2', '-translate-y-1/2',
|
|
11
|
+
'w-11/12', 'max-w-md', 'bg-white', 'text-gray-800', 'shadow-2xl',
|
|
12
|
+
'border-l-8', 'border-red-600', 'rounded-r-lg', 'z-[100]', 'p-0', 'overflow-hidden'
|
|
13
|
+
],
|
|
14
|
+
children: [
|
|
15
|
+
{
|
|
16
|
+
t: 'div',
|
|
17
|
+
cn: ['bg-red-50', 'p-4', 'flex', 'items-center', 'gap-3'],
|
|
18
|
+
children: [
|
|
19
|
+
{
|
|
20
|
+
t: 'h2',
|
|
21
|
+
cn: ['text-red-700', 'font-bold', 'text-lg', 'uppercase', 'tracking-wider'],
|
|
22
|
+
txt: '⚠️ System Error'
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
t: 'div',
|
|
28
|
+
cn: ['p-6', 'bg-white'],
|
|
29
|
+
children: [
|
|
30
|
+
{
|
|
31
|
+
t: 'p',
|
|
32
|
+
cn: ['font-mono', 'text-sm', 'bg-gray-100', 'p-3', 'rounded', 'border', 'border-gray-200', 'break-words'],
|
|
33
|
+
txt: error
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
t: 'button',
|
|
37
|
+
cn: ['mt-4', 'w-full', 'py-2', 'bg-gray-800', 'text-white', 'rounded', 'hover:bg-black', 'transition-colors', 'cursor-pointer'],
|
|
38
|
+
txt: 'Dismiss',
|
|
39
|
+
events: {
|
|
40
|
+
click: (e) => e.target.closest('.fixed').remove()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}))
|
|
47
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { gardener, fetchElement, appendElement } from '../../gardener.js'
|
|
2
|
+
import { gardenerError } from './errorBox.js';
|
|
3
|
+
|
|
4
|
+
const config = {
|
|
5
|
+
hotreload: false
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let hotReload;
|
|
9
|
+
let hotReloadtimeout;
|
|
10
|
+
const localStore = localStorage.getItem('hotreload');
|
|
11
|
+
|
|
12
|
+
if (localStore === null) hotReload = config.hotreload;
|
|
13
|
+
else if (localStore === 'true') hotReload = true
|
|
14
|
+
else if (localStore === 'false') hotReload = false
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
export function togglehotreload() {
|
|
18
|
+
const hr = hotReload;
|
|
19
|
+
const hrcheck = fetchElement('#hrcheckbox');
|
|
20
|
+
|
|
21
|
+
localStorage.setItem('hotreload', hr);
|
|
22
|
+
|
|
23
|
+
hotReload = !hotReload;
|
|
24
|
+
|
|
25
|
+
if (hr) {
|
|
26
|
+
hrcheck.style.background = '#66e666';
|
|
27
|
+
fetchElement('.hrcheckbox').checked = true;
|
|
28
|
+
localStorage.setItem('hotreload', 'true');
|
|
29
|
+
hotReloadtimeout = setTimeout(() => window.location.reload(), 1000);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
hrcheck.style.background = 'red';
|
|
33
|
+
fetchElement('.hrcheckbox').checked = false;
|
|
34
|
+
localStorage.setItem('hotreload', 'false');
|
|
35
|
+
clearTimeout(hotReloadtimeout);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//localStorage.setItem('hotreload', hotReload);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function hotReloadBtn() {
|
|
42
|
+
return gardener({
|
|
43
|
+
t: 'p',
|
|
44
|
+
cn: ['bg-gray-200', 'fixed', 'bottom-0', 'z-100', 'right-0', 'border-b-1', 'p-2', 'rounded-md'],
|
|
45
|
+
children: [
|
|
46
|
+
{
|
|
47
|
+
t: 'span',
|
|
48
|
+
txt: 'Press '
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
t: 'span',
|
|
52
|
+
cn: ['text-green-500', 'font-bold'],
|
|
53
|
+
txt: 'Alt+h'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
t: 'span',
|
|
57
|
+
txt: ' to toggle Hot Reload'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
t: 'form',
|
|
61
|
+
attr: {
|
|
62
|
+
id: 'hrcheckbox',
|
|
63
|
+
},
|
|
64
|
+
events: {
|
|
65
|
+
click: () => togglehotreload()
|
|
66
|
+
},
|
|
67
|
+
cn: ['p-2', 'bg-red-300'],
|
|
68
|
+
children: [{
|
|
69
|
+
t: 'label',
|
|
70
|
+
txt: 'Hot Reload ',
|
|
71
|
+
}
|
|
72
|
+
, {
|
|
73
|
+
t: 'input',
|
|
74
|
+
cn: ['hrcheckbox'],
|
|
75
|
+
attr: {
|
|
76
|
+
type: 'checkbox'
|
|
77
|
+
}
|
|
78
|
+
}]
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
})
|
|
82
|
+
}
|