@leadertechie/personal-site-kit 0.1.0-alpha.2 → 0.1.0-alpha.4
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/dist/assets/logo-placeholder.svg +21 -0
- package/dist/chunks/index-VimKeB5W.js +1927 -0
- package/dist/chunks/{template-gGTkeOcA.js → template-MawmknFQ.js} +13 -4
- package/dist/index.js +5 -3
- package/dist/shared/router.d.ts.map +1 -1
- package/dist/shared.js +1 -1
- package/dist/ui/about-me/styles.d.ts.map +1 -1
- package/dist/ui/admin/styles.d.ts.map +1 -1
- package/dist/ui/banner/styles.d.ts.map +1 -1
- package/dist/ui/blog-viewer/__tests__/blogviewer.test.d.ts +2 -0
- package/dist/ui/blog-viewer/__tests__/blogviewer.test.d.ts.map +1 -0
- package/dist/ui/blog-viewer/index.d.ts +25 -0
- package/dist/ui/blog-viewer/index.d.ts.map +1 -0
- package/dist/ui/blog-viewer/styles.d.ts +2 -0
- package/dist/ui/blog-viewer/styles.d.ts.map +1 -0
- package/dist/ui/footer/styles.d.ts.map +1 -1
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/story-viewer/__tests__/storyviewer.test.d.ts +2 -0
- package/dist/ui/story-viewer/__tests__/storyviewer.test.d.ts.map +1 -0
- package/dist/ui/story-viewer/index.d.ts +25 -0
- package/dist/ui/story-viewer/index.d.ts.map +1 -0
- package/dist/ui/story-viewer/styles.d.ts +2 -0
- package/dist/ui/story-viewer/styles.d.ts.map +1 -0
- package/dist/ui.js +4 -2
- package/package.json +23 -7
- package/public/assets/logo-placeholder.svg +21 -0
- package/src/shared/config/index.ts +1 -1
- package/src/shared/router.ts +12 -3
- package/src/ui/about-me/styles.ts +81 -6
- package/src/ui/admin/styles.ts +0 -47
- package/src/ui/banner/styles.ts +89 -4
- package/src/ui/blog-viewer/__tests__/blogviewer.test.ts +7 -0
- package/src/ui/blog-viewer/index.ts +124 -0
- package/src/ui/blog-viewer/styles.ts +23 -0
- package/src/ui/footer/index.ts +1 -1
- package/src/ui/footer/styles.ts +43 -2
- package/src/ui/index.ts +2 -0
- package/src/ui/story-viewer/__tests__/storyviewer.test.ts +7 -0
- package/src/ui/story-viewer/index.ts +120 -0
- package/src/ui/story-viewer/styles.ts +54 -0
- package/dist/chunks/index-BqixlS-2.js +0 -1157
|
@@ -19,7 +19,7 @@ async function initializeConfig(infra) {
|
|
|
19
19
|
try {
|
|
20
20
|
const res = await fetch(`${activeConfig.apiUrl}/api/static`);
|
|
21
21
|
if (res.ok) {
|
|
22
|
-
const remoteStatic = await res.json();
|
|
22
|
+
const remoteStatic = await res.json().catch(() => ({}));
|
|
23
23
|
activeConfig = { ...activeConfig, ...remoteStatic };
|
|
24
24
|
}
|
|
25
25
|
} catch (e) {
|
|
@@ -338,9 +338,18 @@ class Router {
|
|
|
338
338
|
fetch(`${this.apiUrl}/api/stories`),
|
|
339
339
|
fetch(`${this.apiUrl}/api/home`)
|
|
340
340
|
]);
|
|
341
|
-
if (blogsRes.ok)
|
|
342
|
-
|
|
343
|
-
|
|
341
|
+
if (blogsRes.ok) {
|
|
342
|
+
const data = await blogsRes.json().catch(() => []);
|
|
343
|
+
blogs = Array.isArray(data) ? data.slice(0, 3) : [];
|
|
344
|
+
}
|
|
345
|
+
if (storiesRes.ok) {
|
|
346
|
+
const data = await storiesRes.json().catch(() => []);
|
|
347
|
+
stories = Array.isArray(data) ? data.slice(0, 3) : [];
|
|
348
|
+
}
|
|
349
|
+
if (homeRes.ok) {
|
|
350
|
+
const data = await homeRes.json().catch(() => ({}));
|
|
351
|
+
homeContent = data.content || "";
|
|
352
|
+
}
|
|
344
353
|
} catch (e) {
|
|
345
354
|
console.error("Failed to fetch home content", e);
|
|
346
355
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { W } from "./chunks/website-api-CVsi-OLc.js";
|
|
2
2
|
import { WebsitePrerender } from "./prerender.js";
|
|
3
|
-
import { A, F, M, a } from "./chunks/index-
|
|
4
|
-
import { R, S, T, W as W2, b, c, g, a as a2, i, r } from "./chunks/template-
|
|
3
|
+
import { A, B, F, M, a, S } from "./chunks/index-VimKeB5W.js";
|
|
4
|
+
import { R, S as S2, T, W as W2, b, c, g, a as a2, i, r } from "./chunks/template-MawmknFQ.js";
|
|
5
5
|
export {
|
|
6
6
|
A as AdminPortal,
|
|
7
|
+
B as BlogViewer,
|
|
7
8
|
F as FooterComponent,
|
|
8
9
|
M as MyAboutme,
|
|
9
10
|
a as MyBanner,
|
|
10
11
|
R as Router,
|
|
11
|
-
|
|
12
|
+
S2 as SiteStore,
|
|
13
|
+
S as StoryViewer,
|
|
12
14
|
T as ThemeToggle,
|
|
13
15
|
W as WebsiteAPI,
|
|
14
16
|
WebsitePrerender,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/shared/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,MAAM;IASL,OAAO,CAAC,EAAE;IARtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAA4B;gBAE1B,EAAE,EAAE,SAAS;IA8B1B,IAAI,CAAC,YAAY,GAAE,MAAc;IAWxC,OAAO,CAAC,mBAAmB;IAmCd,QAAQ,CAAC,IAAI,EAAE,MAAM;IA6BlC,OAAO,CAAC,WAAW;YAgCL,cAAc;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/shared/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,MAAM;IASL,OAAO,CAAC,EAAE;IARtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAA4B;gBAE1B,EAAE,EAAE,SAAS;IA8B1B,IAAI,CAAC,YAAY,GAAE,MAAc;IAWxC,OAAO,CAAC,mBAAmB;IAmCd,QAAQ,CAAC,IAAI,EAAE,MAAM;IA6BlC,OAAO,CAAC,WAAW;YAgCL,cAAc;IAkC5B,OAAO,CAAC,iBAAiB;YAQX,qBAAqB;YAiBrB,uBAAuB;YAmBvB,eAAe;CAqB9B"}
|
package/dist/shared.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,yBAkFzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,yBA2QvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/banner/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/banner/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBA4FxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blogviewer.test.d.ts","sourceRoot":"","sources":["../../../../src/ui/blog-viewer/__tests__/blogviewer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
interface BlogPost {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
date: string;
|
|
6
|
+
tags: string[];
|
|
7
|
+
author: string;
|
|
8
|
+
imageUrl: string;
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class BlogViewer extends LitElement {
|
|
12
|
+
static styles: import('lit').CSSResult;
|
|
13
|
+
accessor slug: string;
|
|
14
|
+
accessor blogPost: BlogPost | null;
|
|
15
|
+
accessor loading: boolean;
|
|
16
|
+
accessor error: string;
|
|
17
|
+
private get apiBaseUrl();
|
|
18
|
+
connectedCallback(): void;
|
|
19
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
20
|
+
loadBlog(): void;
|
|
21
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
22
|
+
renderMarkdown(content: string): string;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/blog-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAe5C,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,MAAM,0BAAoB;IAGjC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAG1C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAErB;IAED,iBAAiB;IAOjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/C,QAAQ;IA2BR,MAAM;IAiCN,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/blog-viewer/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAoB5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/footer/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/footer/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBA+CxB,CAAC"}
|
package/dist/ui/index.d.ts
CHANGED
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyviewer.test.d.ts","sourceRoot":"","sources":["../../../../src/ui/story-viewer/__tests__/storyviewer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
interface StoryPost {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
date: string;
|
|
6
|
+
tags: string[];
|
|
7
|
+
author: string;
|
|
8
|
+
imageUrl: string;
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class StoryViewer extends LitElement {
|
|
12
|
+
static styles: import('lit').CSSResult;
|
|
13
|
+
accessor slug: string;
|
|
14
|
+
accessor storyPost: StoryPost | null;
|
|
15
|
+
accessor loading: boolean;
|
|
16
|
+
accessor error: string;
|
|
17
|
+
private get apiBaseUrl();
|
|
18
|
+
connectedCallback(): Promise<void>;
|
|
19
|
+
updated(changedProperties: Map<string, any>): void;
|
|
20
|
+
loadStory(): Promise<void>;
|
|
21
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
22
|
+
private renderMarkdown;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/story-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAe5C,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAqB;IAGlC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAG5C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAErB;IAEK,iBAAiB;IAOvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAMrC,SAAS;IAuBf,MAAM;IAiCN,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/story-viewer/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAmD7B,CAAC"}
|
package/dist/ui.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { A, F, M, a } from "./chunks/index-
|
|
1
|
+
import { A, B, F, M, a, S } from "./chunks/index-VimKeB5W.js";
|
|
2
2
|
export {
|
|
3
3
|
A as AdminPortal,
|
|
4
|
+
B as BlogViewer,
|
|
4
5
|
F as FooterComponent,
|
|
5
6
|
M as MyAboutme,
|
|
6
|
-
a as MyBanner
|
|
7
|
+
a as MyBanner,
|
|
8
|
+
S as StoryViewer
|
|
7
9
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leadertechie/personal-site-kit",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A high-performance personal website engine for Cloudflare Workers and R2",
|
|
6
6
|
"repository": {
|
|
@@ -12,14 +12,30 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
|
14
14
|
"src",
|
|
15
|
-
"README.md"
|
|
15
|
+
"README.md",
|
|
16
|
+
"public"
|
|
16
17
|
],
|
|
17
18
|
"exports": {
|
|
18
|
-
".":
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"./
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./shared": {
|
|
24
|
+
"types": "./dist/shared.d.ts",
|
|
25
|
+
"import": "./dist/shared.js"
|
|
26
|
+
},
|
|
27
|
+
"./ui": {
|
|
28
|
+
"types": "./dist/ui.d.ts",
|
|
29
|
+
"import": "./dist/ui.js"
|
|
30
|
+
},
|
|
31
|
+
"./api": {
|
|
32
|
+
"types": "./dist/api.d.ts",
|
|
33
|
+
"import": "./dist/api.js"
|
|
34
|
+
},
|
|
35
|
+
"./prerender": {
|
|
36
|
+
"types": "./dist/prerender.d.ts",
|
|
37
|
+
"import": "./dist/prerender.js"
|
|
38
|
+
},
|
|
23
39
|
"./styles/*": "./src/styles/*"
|
|
24
40
|
},
|
|
25
41
|
"scripts": {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg width="600" height="320" viewBox="0 0 600 320" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<style>
|
|
3
|
+
.text-main {
|
|
4
|
+
fill: light-dark(#4A5568, #E2E8F0);
|
|
5
|
+
font-family: 'Segoe UI', 'Arial Black', sans-serif;
|
|
6
|
+
font-weight: 900;
|
|
7
|
+
font-size: 46px;
|
|
8
|
+
letter-spacing: -0.01em;
|
|
9
|
+
text-anchor: middle;
|
|
10
|
+
}
|
|
11
|
+
</style>
|
|
12
|
+
|
|
13
|
+
<!-- Big circle placeholder -->
|
|
14
|
+
<circle cx="300" cy="160" r="100" fill="none" stroke="light-dark(#A0AEC0, #718096)" stroke-width="2" stroke-dasharray="8 4" opacity="0.5" />
|
|
15
|
+
|
|
16
|
+
<!-- Plus sign in circle -->
|
|
17
|
+
<line x1="300" y1="100" x2="300" y2="220" stroke="light-dark(#A0AEC0, #718096)" stroke-width="2" opacity="0.3" />
|
|
18
|
+
<line x1="240" y1="160" x2="360" y2="160" stroke="light-dark(#A0AEC0, #718096)" stroke-width="2" opacity="0.3" />
|
|
19
|
+
|
|
20
|
+
<text x="300" y="290" class="text-main">YOUR LOGO</text>
|
|
21
|
+
</svg>
|
|
@@ -26,7 +26,7 @@ export async function initializeConfig(infra?: Partial<InfrastructureConfig>): P
|
|
|
26
26
|
try {
|
|
27
27
|
const res = await fetch(`${activeConfig.apiUrl}/api/static`);
|
|
28
28
|
if (res.ok) {
|
|
29
|
-
const remoteStatic = await res.json();
|
|
29
|
+
const remoteStatic = await res.json().catch(() => ({}));
|
|
30
30
|
activeConfig = { ...activeConfig, ...remoteStatic };
|
|
31
31
|
}
|
|
32
32
|
} catch (e) {
|
package/src/shared/router.ts
CHANGED
|
@@ -159,9 +159,18 @@ export class Router {
|
|
|
159
159
|
fetch(`${this.apiUrl}/api/stories`),
|
|
160
160
|
fetch(`${this.apiUrl}/api/home`)
|
|
161
161
|
]);
|
|
162
|
-
if (blogsRes.ok)
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
if (blogsRes.ok) {
|
|
163
|
+
const data = await blogsRes.json().catch(() => []);
|
|
164
|
+
blogs = Array.isArray(data) ? data.slice(0, 3) : [];
|
|
165
|
+
}
|
|
166
|
+
if (storiesRes.ok) {
|
|
167
|
+
const data = await storiesRes.json().catch(() => []);
|
|
168
|
+
stories = Array.isArray(data) ? data.slice(0, 3) : [];
|
|
169
|
+
}
|
|
170
|
+
if (homeRes.ok) {
|
|
171
|
+
const data = await homeRes.json().catch(() => ({}));
|
|
172
|
+
homeContent = data.content || '';
|
|
173
|
+
}
|
|
165
174
|
} catch (e) {
|
|
166
175
|
console.error('Failed to fetch home content', e);
|
|
167
176
|
}
|
|
@@ -1,10 +1,85 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
3
|
export const aboutmeStyles = css`
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
:host {
|
|
5
|
+
display: block;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.aboutme {
|
|
9
|
+
display: block;
|
|
10
|
+
padding: 20px;
|
|
11
|
+
max-width: 800px;
|
|
12
|
+
margin: 0 auto;
|
|
13
|
+
line-height: 1.6;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.aboutme h2 {
|
|
17
|
+
color: var(--link-color);
|
|
18
|
+
margin-bottom: 15px;
|
|
19
|
+
font-size: 2em;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.aboutme h3 {
|
|
23
|
+
color: var(--link-color);
|
|
24
|
+
margin-bottom: 10px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.aboutme p {
|
|
28
|
+
margin-bottom: 10px;
|
|
29
|
+
text-align: left;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.aboutme ul {
|
|
33
|
+
list-style-type: disc;
|
|
34
|
+
margin-left: 20px;
|
|
35
|
+
text-align: left;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.aboutme li {
|
|
39
|
+
margin-bottom: 5px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.aboutme .profile-picture {
|
|
43
|
+
width: 150px;
|
|
44
|
+
height: 150px;
|
|
45
|
+
border-radius: 50%;
|
|
46
|
+
object-fit: cover;
|
|
47
|
+
margin-bottom: 20px;
|
|
48
|
+
border: 3px solid var(--link-color);
|
|
49
|
+
box-shadow:
|
|
50
|
+
0 0 0 4px var(--link-color),
|
|
51
|
+
0 8px 16px rgba(0, 0, 0, 0.2),
|
|
52
|
+
0 12px 24px rgba(0, 0, 0, 0.15);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.aboutme .profile-section {
|
|
56
|
+
text-align: center;
|
|
57
|
+
background: var(--card-bg, var(--background-color, #fff));
|
|
58
|
+
border-radius: 16px;
|
|
59
|
+
padding: 2rem;
|
|
60
|
+
box-shadow:
|
|
61
|
+
0 4px 6px rgba(0, 0, 0, 0.07),
|
|
62
|
+
0 10px 20px rgba(0, 0, 0, 0.05);
|
|
63
|
+
margin-bottom: 2rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.aboutme .profile-title {
|
|
67
|
+
color: var(--secondary-text, #666);
|
|
68
|
+
margin-bottom: 0;
|
|
69
|
+
text-align: center;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.aboutme h1 {
|
|
73
|
+
margin-bottom: 0.5rem;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.aboutme .loading {
|
|
77
|
+
text-align: center;
|
|
78
|
+
padding: 20px;
|
|
79
|
+
color: var(--text-color);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.aboutme .content-section {
|
|
83
|
+
font-family: Arial, sans-serif;
|
|
84
|
+
}
|
|
10
85
|
`;
|
package/src/ui/admin/styles.ts
CHANGED
|
@@ -105,13 +105,6 @@ export const adminStyles = css`
|
|
|
105
105
|
gap: 0.5rem;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
.section h4 {
|
|
109
|
-
margin: 1.5rem 0 0.75rem 0;
|
|
110
|
-
font-size: 1rem;
|
|
111
|
-
font-weight: 600;
|
|
112
|
-
color: var(--text-color, #213547);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
108
|
.file-list {
|
|
116
109
|
margin-top: 20px;
|
|
117
110
|
}
|
|
@@ -218,46 +211,6 @@ input[type="file"]:hover {
|
|
|
218
211
|
line-height: 1.5;
|
|
219
212
|
}
|
|
220
213
|
|
|
221
|
-
.required-badge {
|
|
222
|
-
background: linear-gradient(135deg, #dc3545, #c82333);
|
|
223
|
-
color: white;
|
|
224
|
-
padding: 4px 10px;
|
|
225
|
-
border-radius: 20px;
|
|
226
|
-
font-size: 0.75rem;
|
|
227
|
-
font-weight: 600;
|
|
228
|
-
margin-left: 8px;
|
|
229
|
-
text-transform: uppercase;
|
|
230
|
-
letter-spacing: 0.5px;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.current-file {
|
|
234
|
-
background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
|
|
235
|
-
color: #2e7d32;
|
|
236
|
-
padding: 14px 16px;
|
|
237
|
-
border-radius: 10px;
|
|
238
|
-
margin-bottom: 16px;
|
|
239
|
-
border: 1px solid #a5d6a7;
|
|
240
|
-
display: flex;
|
|
241
|
-
justify-content: space-between;
|
|
242
|
-
align-items: center;
|
|
243
|
-
flex-wrap: wrap;
|
|
244
|
-
gap: 10px;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
.current-file strong {
|
|
248
|
-
color: #1b5e20;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.info-box {
|
|
252
|
-
background: linear-gradient(135deg, #fff8e1, #ffecb3);
|
|
253
|
-
color: #f57c00;
|
|
254
|
-
padding: 14px 16px;
|
|
255
|
-
border-radius: 10px;
|
|
256
|
-
margin-bottom: 16px;
|
|
257
|
-
font-size: 0.9rem;
|
|
258
|
-
border: 1px solid #ffe082;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
214
|
.status-message {
|
|
262
215
|
padding: 12px 16px;
|
|
263
216
|
border-radius: 8px;
|
package/src/ui/banner/styles.ts
CHANGED
|
@@ -1,10 +1,95 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
3
|
export const bannerStyles = css`
|
|
4
|
-
|
|
4
|
+
:host {
|
|
5
|
+
display: block;
|
|
6
|
+
width: 100%;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
font-family: Arial, sans-serif;
|
|
9
|
+
color: var(--text-color);
|
|
10
|
+
background-color: var(--background-color);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.banner,
|
|
14
|
+
.banner-component {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
align-items: center;
|
|
19
|
+
padding: 1rem 2rem;
|
|
20
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
21
|
+
transition: background-color 0.3s, color 0.3s;
|
|
22
|
+
background-color: var(--background-color);
|
|
23
|
+
color: var(--text-color);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.header-content {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
margin-bottom: 0;
|
|
30
|
+
margin-right: auto;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.logo {
|
|
34
|
+
height: 50px;
|
|
35
|
+
margin-right: 1rem;
|
|
36
|
+
width: auto;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Logo dark mode - invert colors for better contrast */
|
|
40
|
+
[data-theme="dark"] .logo {
|
|
41
|
+
filter: brightness(0.85) invert(1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
h1 {
|
|
45
|
+
margin: 0;
|
|
46
|
+
font-size: 1.8em;
|
|
47
|
+
font-weight: 600;
|
|
48
|
+
color: var(--text-color);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.nav-and-theme {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
gap: 1rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
nav {
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
padding: 0 1rem;
|
|
61
|
+
gap: 10px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
nav a {
|
|
65
|
+
text-decoration: none;
|
|
66
|
+
color: var(--nav-link-color, #333);
|
|
67
|
+
padding: 0.5rem 1rem;
|
|
68
|
+
border-radius: 5px;
|
|
69
|
+
transition: background-color 0.3s ease, color 0.3s ease;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
nav a:hover {
|
|
73
|
+
background-color: var(--nav-link-hover-bg, #e2e6ea);
|
|
74
|
+
text-decoration: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@media (max-width: 768px) {
|
|
78
|
+
.banner,
|
|
79
|
+
.banner-component {
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
gap: 1rem;
|
|
5
82
|
padding: 1rem;
|
|
6
|
-
display: flex;
|
|
7
|
-
justify-content: space-between;
|
|
8
|
-
align-items: center;
|
|
9
83
|
}
|
|
84
|
+
|
|
85
|
+
.header-content {
|
|
86
|
+
margin-right: 0;
|
|
87
|
+
justify-content: center;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
nav {
|
|
91
|
+
flex-wrap: wrap;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
10
95
|
`;
|