@leadertechie/personal-site-kit 0.1.0-alpha.7 → 0.1.0-alpha.8

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.
Files changed (107) hide show
  1. package/dist/api/handlers/about-me.d.ts.map +1 -1
  2. package/dist/api/website-api.d.ts.map +1 -1
  3. package/dist/api.js +2 -2
  4. package/dist/chunks/index-CGvOrVf8.js +213 -0
  5. package/dist/chunks/{index-Bq8WDk9L.js → index-CYd_Pe2U.js} +1321 -473
  6. package/dist/chunks/{template-Boh_MKY5.js → template-D1uGvdWZ.js} +8 -7
  7. package/dist/chunks/{website-api-XoeLwo_N.js → website-api-FLejlWxJ.js} +47 -25
  8. package/dist/index.js +19 -9
  9. package/dist/prerender/data-fetcher.d.ts +19 -0
  10. package/dist/prerender/data-fetcher.d.ts.map +1 -0
  11. package/dist/prerender/page-content.d.ts.map +1 -1
  12. package/dist/prerender/page-generators/about.d.ts +16 -0
  13. package/dist/prerender/page-generators/about.d.ts.map +1 -0
  14. package/dist/prerender/page-generators/base.d.ts +26 -0
  15. package/dist/prerender/page-generators/base.d.ts.map +1 -0
  16. package/dist/prerender/page-generators/blog-detail.d.ts +15 -0
  17. package/dist/prerender/page-generators/blog-detail.d.ts.map +1 -0
  18. package/dist/prerender/page-generators/blogs-list.d.ts +17 -0
  19. package/dist/prerender/page-generators/blogs-list.d.ts.map +1 -0
  20. package/dist/prerender/page-generators/home.d.ts +19 -0
  21. package/dist/prerender/page-generators/home.d.ts.map +1 -0
  22. package/dist/prerender/page-generators/index.d.ts +9 -0
  23. package/dist/prerender/page-generators/index.d.ts.map +1 -0
  24. package/dist/prerender/page-generators/not-found.d.ts +14 -0
  25. package/dist/prerender/page-generators/not-found.d.ts.map +1 -0
  26. package/dist/prerender/page-generators/stories-list.d.ts +17 -0
  27. package/dist/prerender/page-generators/stories-list.d.ts.map +1 -0
  28. package/dist/prerender/page-generators/story-detail.d.ts +15 -0
  29. package/dist/prerender/page-generators/story-detail.d.ts.map +1 -0
  30. package/dist/prerender.js +109 -102
  31. package/dist/shared.js +1 -1
  32. package/dist/ui/about-me/index.d.ts +2 -10
  33. package/dist/ui/about-me/index.d.ts.map +1 -1
  34. package/dist/ui/admin/api.d.ts +16 -0
  35. package/dist/ui/admin/api.d.ts.map +1 -0
  36. package/dist/ui/admin/components/AboutMeSection.d.ts +7 -0
  37. package/dist/ui/admin/components/AboutMeSection.d.ts.map +1 -0
  38. package/dist/ui/admin/components/AdminSection.d.ts +13 -0
  39. package/dist/ui/admin/components/AdminSection.d.ts.map +1 -0
  40. package/dist/ui/admin/components/BlogsSection.d.ts +7 -0
  41. package/dist/ui/admin/components/BlogsSection.d.ts.map +1 -0
  42. package/dist/ui/admin/components/HomeSection.d.ts +7 -0
  43. package/dist/ui/admin/components/HomeSection.d.ts.map +1 -0
  44. package/dist/ui/admin/components/ImagesSection.d.ts +7 -0
  45. package/dist/ui/admin/components/ImagesSection.d.ts.map +1 -0
  46. package/dist/ui/admin/components/LoginForm.d.ts +9 -0
  47. package/dist/ui/admin/components/LoginForm.d.ts.map +1 -0
  48. package/dist/ui/admin/components/LogoSection.d.ts +7 -0
  49. package/dist/ui/admin/components/LogoSection.d.ts.map +1 -0
  50. package/dist/ui/admin/components/ProfileSection.d.ts +7 -0
  51. package/dist/ui/admin/components/ProfileSection.d.ts.map +1 -0
  52. package/dist/ui/admin/components/StaticSection.d.ts +13 -0
  53. package/dist/ui/admin/components/StaticSection.d.ts.map +1 -0
  54. package/dist/ui/admin/components/StoriesSection.d.ts +7 -0
  55. package/dist/ui/admin/components/StoriesSection.d.ts.map +1 -0
  56. package/dist/ui/admin/components/index.d.ts +11 -0
  57. package/dist/ui/admin/components/index.d.ts.map +1 -0
  58. package/dist/ui/admin/index.d.ts +10 -26
  59. package/dist/ui/admin/index.d.ts.map +1 -1
  60. package/dist/ui/admin/types.d.ts +24 -0
  61. package/dist/ui/admin/types.d.ts.map +1 -0
  62. package/dist/ui/blog-viewer/index.d.ts.map +1 -1
  63. package/dist/ui/index.d.ts.map +1 -1
  64. package/dist/ui/story-viewer/index.d.ts.map +1 -1
  65. package/dist/ui.js +14 -4
  66. package/package.json +1 -1
  67. package/src/api/handlers/about-me.ts +19 -9
  68. package/src/api/handlers/auth-handler.ts +18 -8
  69. package/src/api/handlers/content.ts +1 -1
  70. package/src/api/handlers/home.ts +2 -2
  71. package/src/api/website-api.ts +11 -7
  72. package/src/prerender/__tests__/page-content.test.ts +1 -11
  73. package/src/prerender/data-fetcher.ts +93 -0
  74. package/src/prerender/page-content.ts +109 -106
  75. package/src/prerender/page-generators/about.ts +38 -0
  76. package/src/prerender/page-generators/base.ts +77 -0
  77. package/src/prerender/page-generators/blog-detail.ts +35 -0
  78. package/src/prerender/page-generators/blogs-list.ts +43 -0
  79. package/src/prerender/page-generators/home.ts +54 -0
  80. package/src/prerender/page-generators/index.ts +8 -0
  81. package/src/prerender/page-generators/not-found.ts +36 -0
  82. package/src/prerender/page-generators/stories-list.ts +43 -0
  83. package/src/prerender/page-generators/story-detail.ts +35 -0
  84. package/src/shared/config/index.ts +1 -1
  85. package/src/shared/page-content.ts +1 -1
  86. package/src/shared/router.ts +5 -5
  87. package/src/ui/about-me/index.ts +14 -57
  88. package/src/ui/admin/api.ts +93 -0
  89. package/src/ui/admin/components/AboutMeSection.ts +47 -0
  90. package/src/ui/admin/components/AdminSection.ts +134 -0
  91. package/src/ui/admin/components/BlogsSection.ts +62 -0
  92. package/src/ui/admin/components/HomeSection.ts +47 -0
  93. package/src/ui/admin/components/ImagesSection.ts +54 -0
  94. package/src/ui/admin/components/LoginForm.ts +116 -0
  95. package/src/ui/admin/components/LogoSection.ts +51 -0
  96. package/src/ui/admin/components/ProfileSection.ts +47 -0
  97. package/src/ui/admin/components/StaticSection.ts +67 -0
  98. package/src/ui/admin/components/StoriesSection.ts +62 -0
  99. package/src/ui/admin/components/index.ts +10 -0
  100. package/src/ui/admin/index.ts +192 -434
  101. package/src/ui/admin/types.ts +26 -0
  102. package/src/ui/blog-viewer/index.ts +4 -1
  103. package/src/ui/index.ts +7 -0
  104. package/src/ui/story-viewer/index.ts +4 -1
  105. package/dist/ui/about-me/renderer.d.ts +0 -6
  106. package/dist/ui/about-me/renderer.d.ts.map +0 -1
  107. package/src/ui/about-me/renderer.ts +0 -23
package/dist/prerender.js CHANGED
@@ -90,7 +90,7 @@ async function fetchHome(env) {
90
90
  try {
91
91
  const r2 = getLoader(env);
92
92
  if (!r2) return "";
93
- const result = await r2.getRendered("home.md");
93
+ const result = await r2.getRendered("pages/home.md");
94
94
  return result?.content || "";
95
95
  } catch {
96
96
  return "";
@@ -137,8 +137,8 @@ async function fetchLatestStorySummaries(env, count = 3) {
137
137
  }
138
138
  }
139
139
  const generatePageContent = async (pathname, routes, footerLinks, env) => {
140
- const apiUrl = env?.apiUrl;
141
- const baseUrl = env?.baseUrl || "https://www.techieleader.com";
140
+ const apiUrl = env?.API_URL || env?.apiUrl;
141
+ const baseUrl = env?.BASE_URL || env?.baseUrl || "https://www.example.com";
142
142
  let staticDetails = {
143
143
  siteTitle: "My Personal Website",
144
144
  copyright: "2026 My Personal Website",
@@ -151,20 +151,6 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
151
151
  if (res.ok) staticDetails = await res.json();
152
152
  } catch (e) {
153
153
  }
154
- const logo = "/api/logo";
155
- const navLinks = routes.map((r) => `<a href="${r.link}" class="nav-link" data-route="${r.link === "/" ? "home" : r.text.toLowerCase()}">${r.text}</a>`).join("");
156
- const bannerTemplate = `
157
- <my-banner header="${staticDetails.siteTitle}" logo="${logo}">
158
- <theme-toggle slot="theme-switcher"></theme-toggle>
159
- <nav slot="nav-links">
160
- ${navLinks}
161
- </nav>
162
- </my-banner>`;
163
- const footerTemplate = `
164
- <my-footer
165
- copyright="${staticDetails.copyright}"
166
- footerlinks='${JSON.stringify(footerLinks)}'>
167
- </my-footer>`;
168
154
  let profile = null;
169
155
  let aboutMeContent = "";
170
156
  let homeContent = "";
@@ -180,100 +166,121 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
180
166
  ]);
181
167
  }
182
168
  const name = profile?.name || "User";
183
- const title = profile?.title || "Professional";
184
- profile?.experience || "some";
185
- const canonicalUrl = new URL(pathname, baseUrl).toString();
169
+ profile?.title || "Professional";
170
+ new URL(pathname, baseUrl).toString();
171
+ const strategies = {
172
+ home: async () => {
173
+ const { HomePageGenerator } = await import("./chunks/index-CGvOrVf8.js");
174
+ const generator = new HomePageGenerator();
175
+ return generator.generate({
176
+ routes,
177
+ footerLinks,
178
+ staticDetails,
179
+ apiUrl,
180
+ baseUrl,
181
+ pathname,
182
+ profile,
183
+ homeContent,
184
+ latestBlogs,
185
+ latestStories
186
+ });
187
+ },
188
+ about: async () => {
189
+ const { AboutPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
190
+ const generator = new AboutPageGenerator();
191
+ return generator.generate({
192
+ routes,
193
+ footerLinks,
194
+ staticDetails,
195
+ apiUrl,
196
+ baseUrl,
197
+ pathname,
198
+ profile
199
+ });
200
+ },
201
+ blogsList: async () => {
202
+ const { BlogsListPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
203
+ const generator = new BlogsListPageGenerator();
204
+ return generator.generate({
205
+ routes,
206
+ footerLinks,
207
+ staticDetails,
208
+ apiUrl,
209
+ baseUrl,
210
+ pathname,
211
+ latestBlogs,
212
+ name
213
+ });
214
+ },
215
+ storiesList: async () => {
216
+ const { StoriesListPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
217
+ const generator = new StoriesListPageGenerator();
218
+ return generator.generate({
219
+ routes,
220
+ footerLinks,
221
+ staticDetails,
222
+ apiUrl,
223
+ baseUrl,
224
+ pathname,
225
+ latestStories,
226
+ name
227
+ });
228
+ },
229
+ blogDetail: async (slug) => {
230
+ const { BlogDetailPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
231
+ const generator = new BlogDetailPageGenerator();
232
+ return generator.generate({
233
+ routes,
234
+ footerLinks,
235
+ staticDetails,
236
+ apiUrl,
237
+ baseUrl,
238
+ pathname,
239
+ slug
240
+ });
241
+ },
242
+ storyDetail: async (slug) => {
243
+ const { StoryDetailPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
244
+ const generator = new StoryDetailPageGenerator();
245
+ return generator.generate({
246
+ routes,
247
+ footerLinks,
248
+ staticDetails,
249
+ apiUrl,
250
+ baseUrl,
251
+ pathname,
252
+ slug
253
+ });
254
+ },
255
+ notFound: async () => {
256
+ const { NotFoundPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
257
+ const generator = new NotFoundPageGenerator();
258
+ return generator.generate({
259
+ routes,
260
+ footerLinks,
261
+ staticDetails,
262
+ apiUrl,
263
+ baseUrl,
264
+ pathname
265
+ });
266
+ }
267
+ };
186
268
  if (pathname === "/" || pathname === "") {
187
- const homeHtml = homeContent || `<h1>Welcome to ${name}</h1><p>Upload home.md to customize this page.</p>`;
188
- const blogGists = latestBlogs.map((b) => `<div class="gist-card"><a href="/blogs/${b.slug}"><h4>${b.title}</h4></a><p>${b.summary}</p><small>${b.date}</small></div>`).join("");
189
- const storyGists = latestStories.map((s) => `<div class="gist-card"><a href="/stories/${s.slug}"><h4>${s.title}</h4></a><p>${s.summary}</p><small>${s.date}</small></div>`).join("");
190
- const mainContent = `
191
- ${bannerTemplate}
192
- <main class="container container-wide column-layout">
193
- <div class="main-column">
194
- ${homeHtml}
195
- </div>
196
- <div class="sidebar-column">
197
- <h3>Recent Blogs</h3>
198
- ${blogGists || "<p>No blogs yet.</p>"}
199
- <h3 class="mt-2">Recent Stories</h3>
200
- ${storyGists || "<p>No stories yet.</p>"}
201
- </div>
202
- </main>
203
- ${footerTemplate}`;
204
- return {
205
- title: `${name} – ${title}`,
206
- description: `Welcome to ${name}'s personal website. Professional portfolio and content.`,
207
- canonicalUrl,
208
- content: mainContent
209
- };
269
+ return strategies.home();
210
270
  } else if (pathname === "/about-me") {
211
- const mainContent = `
212
- ${bannerTemplate}
213
- <main class="container container-narrow">
214
- <my-aboutme base-url="${apiUrl}"></my-aboutme>
215
- </main>
216
- ${footerTemplate}`;
217
- return {
218
- title: `About - ${name}`,
219
- description: `Learn more about ${name}'s experience and skills.`,
220
- canonicalUrl,
221
- content: mainContent
222
- };
271
+ return strategies.about();
223
272
  } else if (pathname === "/blogs" || pathname === "/blogs/") {
224
- const blogGists = latestBlogs.map((b) => `<div class="gist-card"><a href="/blogs/${b.slug}"><h4>${b.title}</h4></a><p>${b.summary}</p><small>${b.date}</small></div>`).join("");
225
- const mainContent = `
226
- ${bannerTemplate}
227
- <main class="container container-wide">
228
- <h1>Blogs</h1>
229
- <input type="text" placeholder="Search blogs..." class="search-input" />
230
- <div class="blog-list">
231
- ${blogGists || "<p>No blogs yet.</p>"}
232
- </div>
233
- </main>
234
- ${footerTemplate}`;
235
- return { title: `Blogs – ${name}`, description: "Read the latest blog posts.", canonicalUrl, content: mainContent };
273
+ return strategies.blogsList();
236
274
  } else if (pathname === "/stories" || pathname === "/stories/") {
237
- const storyGists = latestStories.map((s) => `<div class="gist-card"><a href="/stories/${s.slug}"><h4>${s.title}</h4></a><p>${s.summary}</p><small>${s.date}</small></div>`).join("");
238
- const mainContent = `
239
- ${bannerTemplate}
240
- <main class="container container-wide">
241
- <h1>Stories</h1>
242
- <input type="text" placeholder="Search stories..." class="search-input" />
243
- <div class="story-list">
244
- ${storyGists || "<p>No stories yet.</p>"}
245
- </div>
246
- </main>
247
- ${footerTemplate}`;
248
- return { title: `Stories – ${name}`, description: "Read the latest stories.", canonicalUrl, content: mainContent };
275
+ return strategies.storiesList();
249
276
  } else if (pathname.startsWith("/blogs/")) {
250
277
  const slug = pathname.replace("/blogs/", "").replace("/", "");
251
- const mainContent = `
252
- ${bannerTemplate}
253
- <main class="container container-narrow">
254
- <my-blog-viewer slug="${slug}"></my-blog-viewer>
255
- </main>
256
- ${footerTemplate}`;
257
- return { title: `Blog: ${slug}`, description: "Blog post", canonicalUrl, content: mainContent };
278
+ return strategies.blogDetail(slug);
258
279
  } else if (pathname.startsWith("/stories/")) {
259
280
  const slug = pathname.replace("/stories/", "").replace("/", "");
260
- const mainContent = `
261
- ${bannerTemplate}
262
- <main class="container container-narrow">
263
- <my-story-viewer slug="${slug}"></my-story-viewer>
264
- </main>
265
- ${footerTemplate}`;
266
- return { title: `Story: ${slug}`, description: "Story post", canonicalUrl, content: mainContent };
281
+ return strategies.storyDetail(slug);
267
282
  } else {
268
- const mainContent = `
269
- ${bannerTemplate}
270
- <main class="container container-narrow text-center">
271
- <h1>Page Not Found</h1>
272
- <p>The page you're looking for doesn't exist.</p>
273
- <p><a href="/">Return to home</a></p>
274
- </main>
275
- ${footerTemplate}`;
276
- return { title: "404 Not Found", description: "The page you requested could not be found.", canonicalUrl, content: mainContent };
283
+ return strategies.notFound();
277
284
  }
278
285
  };
279
286
  class WebsitePrerender {
package/dist/shared.js CHANGED
@@ -1,4 +1,4 @@
1
- import { R, S, T, W, b, c, g, a, i, r } from "./chunks/template-Boh_MKY5.js";
1
+ import { R, S, T, W, b, c, g, a, i, r } from "./chunks/template-D1uGvdWZ.js";
2
2
  export {
3
3
  R as Router,
4
4
  S as SiteStore,
@@ -1,21 +1,13 @@
1
1
  import { LitElement } from 'lit';
2
- import { ContentNode } from '@leadertechie/md2html';
3
2
  import { Profile, fetchAboutMe } from './api';
4
- import { AboutMeRenderer } from './renderer';
5
3
  export declare class MyAboutme extends LitElement {
6
4
  static styles: import('lit').CSSResult;
7
5
  accessor baseUrl: string;
8
6
  accessor profile: Profile | null;
9
- accessor contentNodes: ContentNode[];
7
+ accessor htmlContent: string;
10
8
  accessor loading: boolean;
11
- private renderer;
12
- /**
13
- * Injectable fetcher function used to retrieve About Me data.
14
- * Tests can override this (e.g. componentInstance.fetcher = myMock)
15
- * to avoid network I/O. By default it uses the stable `fetchAboutMe` helper.
16
- */
17
9
  fetcher: typeof fetchAboutMe;
18
- constructor(renderer?: AboutMeRenderer);
10
+ constructor();
19
11
  private get apiBaseUrl();
20
12
  connectedCallback(): Promise<void>;
21
13
  updated(changedProperties: Map<string, any>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAOrC,qBACa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAG9B,QAAQ,CAAC,OAAO,SAAM;IAGtB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGxC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAM;IAG1C,QAAQ,CAAC,OAAO,UAAQ;IAExB,OAAO,CAAC,QAAQ,CAAkB;IAClC;;;;OAIG;IACI,OAAO,sBAAgB;gBAElB,QAAQ,CAAC,EAAE,eAAe;IAKtC,OAAO,KAAK,UAAU,GAErB;IAEK,iBAAiB;IAgBvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;YAc7B,WAAW;IA8BzB,OAAO,CAAC,kBAAkB;IAkB1B,MAAM;CAoCP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,qBACa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAG9B,QAAQ,CAAC,OAAO,SAAM;IAGtB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAGlC,QAAQ,CAAC,OAAO,UAAQ;IAEjB,OAAO,sBAAgB;;IAM9B,OAAO,KAAK,UAAU,GAErB;IAEK,iBAAiB;IAcvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;YAY7B,WAAW;IAuBzB,OAAO,CAAC,kBAAkB;IAS1B,MAAM;CA6BP"}
@@ -0,0 +1,16 @@
1
+ import { ContentItem, AuthStatus, StaticDetails } from './types';
2
+ export declare class AdminApiService {
3
+ private apiUrl;
4
+ constructor(apiUrl: string);
5
+ checkAuthStatus(): Promise<AuthStatus>;
6
+ tryAutoLogin(): Promise<ContentItem[]>;
7
+ login(username: string, password: string): Promise<void>;
8
+ setup(username: string, password: string): Promise<void>;
9
+ logout(): Promise<void>;
10
+ fetchContent(): Promise<ContentItem[]>;
11
+ fetchStaticDetails(): Promise<StaticDetails>;
12
+ uploadContent(key: string, file: File): Promise<void>;
13
+ deleteContent(key: string): Promise<void>;
14
+ clearCache(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtE,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE5B,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC;IAMtC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQtC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQtC,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ5C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminAboutMeSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=AboutMeSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AboutMeSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/AboutMeSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,mBAAoB,SAAQ,YAAY;YACrC,YAAY;YAYZ,YAAY;IAS1B,MAAM;CAmBP"}
@@ -0,0 +1,13 @@
1
+ import { LitElement } from 'lit';
2
+ import { ContentItem, StaticDetails, AdminSectionProps } from '../types';
3
+ export declare abstract class AdminSection extends LitElement implements AdminSectionProps {
4
+ static styles: import('lit').CSSResult;
5
+ accessor contentList: ContentItem[];
6
+ accessor staticDetails: StaticDetails;
7
+ accessor onUpload: (key: string, file: File) => Promise<void>;
8
+ accessor onDelete: (key: string) => Promise<void>;
9
+ accessor onStatusMessage: (message: string) => void;
10
+ protected getContent(key: string): ContentItem | undefined;
11
+ protected getSectionFiles(prefix: string): ContentItem[];
12
+ }
13
+ //# sourceMappingURL=AdminSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/AdminSection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9E,8BAAsB,YAAa,SAAQ,UAAW,YAAW,iBAAiB;IAEhF,MAAM,CAAC,MAAM,0BAuGX;IAGF,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAGzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAG3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAkB;IAG/E,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAkB;IAGnE,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAY;IAE/D,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1D,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;CAGzD"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminBlogsSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=BlogsSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlogsSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/BlogsSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,iBAAkB,SAAQ,YAAY;YACnC,YAAY;YAgBZ,YAAY;IAU1B,MAAM;CA6BP"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminHomeSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=HomeSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/HomeSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,gBAAiB,SAAQ,YAAY;YAClC,YAAY;YAYZ,YAAY;IAS1B,MAAM;CAmBP"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminImagesSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=ImagesSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImagesSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/ImagesSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,kBAAmB,SAAQ,YAAY;YACpC,YAAY;YAcZ,YAAY;IAS1B,MAAM;CAwBP"}
@@ -0,0 +1,9 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class AdminLoginForm extends LitElement {
3
+ static styles: import('lit').CSSResult;
4
+ accessor errorMessage: string;
5
+ accessor isSetup: boolean;
6
+ private handleSubmit;
7
+ render(): import('lit-html').TemplateResult<1>;
8
+ }
9
+ //# sourceMappingURL=LoginForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/LoginForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,qBACa,cAAe,SAAQ,UAAU;IAE5C,MAAM,CAAC,MAAM,0BAsEX;IAGF,QAAQ,CAAC,YAAY,SAAM;IAG3B,QAAQ,CAAC,OAAO,UAAS;IAEzB,OAAO,CAAC,YAAY;IAcpB,MAAM;CAiBP"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminLogoSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=LogoSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/LogoSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,gBAAiB,SAAQ,YAAY;YAClC,YAAY;YAYZ,YAAY;IAS1B,MAAM;CAuBP"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminProfileSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=ProfileSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfileSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/ProfileSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,mBAAoB,SAAQ,YAAY;YACrC,YAAY;YAYZ,YAAY;IAS1B,MAAM;CAmBP"}
@@ -0,0 +1,13 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminStaticSection extends AdminSection {
3
+ accessor localDetails: {
4
+ siteTitle?: string;
5
+ copyright?: string;
6
+ linkedin?: string;
7
+ github?: string;
8
+ email?: string;
9
+ };
10
+ private handleSave;
11
+ render(): import('lit-html').TemplateResult<1>;
12
+ }
13
+ //# sourceMappingURL=StaticSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/StaticSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,kBAAmB,SAAQ,YAAY;IAElD,QAAQ,CAAC,YAAY;;;;;;MAA6B;YAEpC,UAAU;IAsBxB,MAAM;CAmCP"}
@@ -0,0 +1,7 @@
1
+ import { AdminSection } from './AdminSection';
2
+ export declare class AdminStoriesSection extends AdminSection {
3
+ private handleUpload;
4
+ private handleDelete;
5
+ render(): import('lit-html').TemplateResult<1>;
6
+ }
7
+ //# sourceMappingURL=StoriesSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoriesSection.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/StoriesSection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,mBAAoB,SAAQ,YAAY;YACrC,YAAY;YAgBZ,YAAY;IAU1B,MAAM;CA6BP"}
@@ -0,0 +1,11 @@
1
+ export * from './AdminSection';
2
+ export * from './LoginForm';
3
+ export * from './HomeSection';
4
+ export * from './ProfileSection';
5
+ export * from './AboutMeSection';
6
+ export * from './BlogsSection';
7
+ export * from './StoriesSection';
8
+ export * from './ImagesSection';
9
+ export * from './LogoSection';
10
+ export * from './StaticSection';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
@@ -1,16 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
- interface ContentItem {
3
- key: string;
4
- size: number;
5
- uploaded?: string;
6
- }
7
- interface StaticDetails {
8
- siteTitle?: string;
9
- copyright?: string;
10
- linkedin?: string;
11
- github?: string;
12
- email?: string;
13
- }
2
+ import { ContentItem, StaticDetails } from './types';
3
+ import { AdminLoginForm, AdminHomeSection, AdminProfileSection, AdminAboutMeSection, AdminBlogsSection, AdminStoriesSection, AdminImagesSection, AdminLogoSection, AdminStaticSection } from './components';
4
+ export { AdminLoginForm, AdminHomeSection, AdminProfileSection, AdminAboutMeSection, AdminBlogsSection, AdminStoriesSection, AdminImagesSection, AdminLogoSection, AdminStaticSection };
14
5
  export declare class AdminPortal extends LitElement {
15
6
  static styles: import('lit').CSSResult;
16
7
  accessor isAuthenticated: boolean;
@@ -21,31 +12,24 @@ export declare class AdminPortal extends LitElement {
21
12
  accessor activeSection: string;
22
13
  accessor staticDetails: StaticDetails;
23
14
  accessor loginError: string;
24
- get apiUrl(): any;
15
+ private apiService;
16
+ constructor();
17
+ private hasSessionCookie;
25
18
  connectedCallback(): Promise<void>;
26
19
  checkAuthStatus(): Promise<void>;
27
20
  tryAutoLogin(): Promise<void>;
28
- handleLogin(e: Event): Promise<void>;
29
- handleSetup(e: Event): Promise<void>;
21
+ handleLogin(e: CustomEvent): Promise<void>;
22
+ handleSetup(e: CustomEvent): Promise<void>;
30
23
  handleLogout(): Promise<void>;
31
24
  fetchContent(): Promise<void>;
32
25
  fetchStaticDetails(): Promise<void>;
33
26
  handleUpload(key: string, file: File): Promise<void>;
34
27
  handleClearCache(): Promise<void>;
35
28
  handleDelete(key: string): Promise<void>;
36
- getContent(key: string): ContentItem | undefined;
37
- getSectionFiles(prefix: string): ContentItem[];
29
+ private handleStatusMessage;
38
30
  renderLoginForm(): import('lit-html').TemplateResult<1>;
39
31
  renderLogin(): import('lit-html').TemplateResult<1>;
40
- renderHomeSection(): import('lit-html').TemplateResult<1>;
41
- renderProfileSection(): import('lit-html').TemplateResult<1>;
42
- renderAboutMeSection(): import('lit-html').TemplateResult<1>;
43
- renderBlogsSection(): import('lit-html').TemplateResult<1>;
44
- renderStoriesSection(): import('lit-html').TemplateResult<1>;
45
- renderImagesSection(): import('lit-html').TemplateResult<1>;
46
- renderLogoSection(): import('lit-html').TemplateResult<1>;
47
- renderStaticSection(): import('lit-html').TemplateResult<1>;
48
32
  render(): import('lit-html').TemplateResult<1>;
49
33
  }
50
- export {};
34
+ export declare const adminLoaded = true;
51
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAe;IAG5B,QAAQ,CAAC,eAAe,UAAS;IAGjC,QAAQ,CAAC,OAAO,UAAS;IAGzB,QAAQ,CAAC,SAAS,UAAQ;IAG1B,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAGzC,QAAQ,CAAC,aAAa,SAAM;IAG5B,QAAQ,CAAC,aAAa,SAAa;IAGnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAG3C,QAAQ,CAAC,UAAU,SAAM;IAEzB,IAAI,MAAM,QAET;IAEK,iBAAiB;IAKjB,eAAe;IAwBf,YAAY;IAaZ,WAAW,CAAC,CAAC,EAAE,KAAK;IAmCpB,WAAW,CAAC,CAAC,EAAE,KAAK;IAoDpB,YAAY;IAWZ,YAAY;IAeZ,kBAAkB;IAWlB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAoBpC,gBAAgB;IAkBhB,YAAY,CAAC,GAAG,EAAE,MAAM;IAmB9B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIhD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;IAI9C,eAAe;IAkBf,WAAW;IAiBX,iBAAiB;IAuBjB,oBAAoB;IAuBpB,oBAAoB;IAuBpB,kBAAkB;IAuClB,oBAAoB;IAuCpB,mBAAmB;IA+BnB,iBAAiB;IA2BjB,mBAAmB;IAmEnB,MAAM;CA4DP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,CAAC;AAEF,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAe;IAG5B,QAAQ,CAAC,eAAe,UAAS;IAGjC,QAAQ,CAAC,OAAO,UAAS;IAGzB,QAAQ,CAAC,SAAS,UAAQ;IAG1B,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAGzC,QAAQ,CAAC,aAAa,SAAM;IAG5B,QAAQ,CAAC,aAAa,SAAa;IAGnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAG3C,QAAQ,CAAC,UAAU,SAAM;IAEzB,OAAO,CAAC,UAAU,CAAkB;;IAQpC,OAAO,CAAC,gBAAgB;IAIlB,iBAAiB;IAMjB,eAAe;IAcf,YAAY;IASZ,WAAW,CAAC,CAAC,EAAE,WAAW;IAkB1B,WAAW,CAAC,CAAC,EAAE,WAAW;IAkC1B,YAAY;IAQZ,YAAY;IAQZ,kBAAkB;IAMlB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAWpC,gBAAgB;IAUhB,YAAY,CAAC,GAAG,EAAE,MAAM;IAS9B,OAAO,CAAC,mBAAmB;IAI3B,eAAe;IAUf,WAAW;IAUX,MAAM;CAsLP;AAED,eAAO,MAAM,WAAW,OAAO,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface ContentItem {
2
+ key: string;
3
+ size: number;
4
+ uploaded?: string;
5
+ }
6
+ export interface StaticDetails {
7
+ siteTitle?: string;
8
+ copyright?: string;
9
+ linkedin?: string;
10
+ github?: string;
11
+ email?: string;
12
+ }
13
+ export interface AuthStatus {
14
+ configured: boolean;
15
+ username: string | null;
16
+ }
17
+ export interface AdminSectionProps {
18
+ contentList: ContentItem[];
19
+ staticDetails: StaticDetails;
20
+ onUpload: (key: string, file: File) => Promise<void>;
21
+ onDelete: (key: string) => Promise<void>;
22
+ onStatusMessage: (message: string) => void;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C"}
@@ -1 +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"}
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,GAKrB;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"}
@@ -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;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,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;AAE/B,OAAO,YAAY,CAAC;AACpB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC"}
@@ -1 +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"}
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,GAKrB;IAEK,iBAAiB;IAOvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAMrC,SAAS;IAuBf,MAAM;IAiCN,OAAO,CAAC,cAAc;CAKvB"}
package/dist/ui.js CHANGED
@@ -1,9 +1,19 @@
1
- import { A, B, F, M, a, S } from "./chunks/index-Bq8WDk9L.js";
1
+ import { A, a, b, c, d, e, f, g, h, i, B, F, M, j, S, k } from "./chunks/index-CYd_Pe2U.js";
2
2
  export {
3
- A as AdminPortal,
3
+ A as AdminAboutMeSection,
4
+ a as AdminBlogsSection,
5
+ b as AdminHomeSection,
6
+ c as AdminImagesSection,
7
+ d as AdminLoginForm,
8
+ e as AdminLogoSection,
9
+ f as AdminPortal,
10
+ g as AdminProfileSection,
11
+ h as AdminStaticSection,
12
+ i as AdminStoriesSection,
4
13
  B as BlogViewer,
5
14
  F as FooterComponent,
6
15
  M as MyAboutme,
7
- a as MyBanner,
8
- S as StoryViewer
16
+ j as MyBanner,
17
+ S as StoryViewer,
18
+ k as adminLoaded
9
19
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leadertechie/personal-site-kit",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-alpha.8",
4
4
  "type": "module",
5
5
  "description": "A high-performance personal website engine for Cloudflare Workers and R2",
6
6
  "repository": {