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

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 (129) hide show
  1. package/dist/api/content-utils.d.ts +27 -0
  2. package/dist/api/content-utils.d.ts.map +1 -0
  3. package/dist/api/handlers/about-me.d.ts.map +1 -1
  4. package/dist/api/handlers/content-api.d.ts +0 -1
  5. package/dist/api/handlers/content-api.d.ts.map +1 -1
  6. package/dist/api/website-api.d.ts.map +1 -1
  7. package/dist/api.js +2 -2
  8. package/dist/chunks/index-CGvOrVf8.js +213 -0
  9. package/dist/chunks/{index-Bq8WDk9L.js → index-CnSEOZse.js} +1285 -477
  10. package/dist/chunks/{template-Boh_MKY5.js → template-DWcsZW22.js} +8 -7
  11. package/dist/chunks/{website-api-XoeLwo_N.js → website-api-BEYGOsT3.js} +137 -156
  12. package/dist/index.js +19 -9
  13. package/dist/prerender/data-fetcher.d.ts +19 -0
  14. package/dist/prerender/data-fetcher.d.ts.map +1 -0
  15. package/dist/prerender/page-content.d.ts.map +1 -1
  16. package/dist/prerender/page-generators/about.d.ts +16 -0
  17. package/dist/prerender/page-generators/about.d.ts.map +1 -0
  18. package/dist/prerender/page-generators/base.d.ts +26 -0
  19. package/dist/prerender/page-generators/base.d.ts.map +1 -0
  20. package/dist/prerender/page-generators/blog-detail.d.ts +15 -0
  21. package/dist/prerender/page-generators/blog-detail.d.ts.map +1 -0
  22. package/dist/prerender/page-generators/blogs-list.d.ts +17 -0
  23. package/dist/prerender/page-generators/blogs-list.d.ts.map +1 -0
  24. package/dist/prerender/page-generators/home.d.ts +19 -0
  25. package/dist/prerender/page-generators/home.d.ts.map +1 -0
  26. package/dist/prerender/page-generators/index.d.ts +9 -0
  27. package/dist/prerender/page-generators/index.d.ts.map +1 -0
  28. package/dist/prerender/page-generators/not-found.d.ts +14 -0
  29. package/dist/prerender/page-generators/not-found.d.ts.map +1 -0
  30. package/dist/prerender/page-generators/stories-list.d.ts +17 -0
  31. package/dist/prerender/page-generators/stories-list.d.ts.map +1 -0
  32. package/dist/prerender/page-generators/story-detail.d.ts +15 -0
  33. package/dist/prerender/page-generators/story-detail.d.ts.map +1 -0
  34. package/dist/prerender.js +109 -102
  35. package/dist/shared.js +1 -1
  36. package/dist/ui/about-me/index.d.ts +2 -10
  37. package/dist/ui/about-me/index.d.ts.map +1 -1
  38. package/dist/ui/admin/api.d.ts +16 -0
  39. package/dist/ui/admin/api.d.ts.map +1 -0
  40. package/dist/ui/admin/components/AboutMeSection.d.ts +7 -0
  41. package/dist/ui/admin/components/AboutMeSection.d.ts.map +1 -0
  42. package/dist/ui/admin/components/AdminSection.d.ts +13 -0
  43. package/dist/ui/admin/components/AdminSection.d.ts.map +1 -0
  44. package/dist/ui/admin/components/BlogsSection.d.ts +7 -0
  45. package/dist/ui/admin/components/BlogsSection.d.ts.map +1 -0
  46. package/dist/ui/admin/components/HomeSection.d.ts +7 -0
  47. package/dist/ui/admin/components/HomeSection.d.ts.map +1 -0
  48. package/dist/ui/admin/components/ImagesSection.d.ts +7 -0
  49. package/dist/ui/admin/components/ImagesSection.d.ts.map +1 -0
  50. package/dist/ui/admin/components/LoginForm.d.ts +9 -0
  51. package/dist/ui/admin/components/LoginForm.d.ts.map +1 -0
  52. package/dist/ui/admin/components/LogoSection.d.ts +7 -0
  53. package/dist/ui/admin/components/LogoSection.d.ts.map +1 -0
  54. package/dist/ui/admin/components/ProfileSection.d.ts +7 -0
  55. package/dist/ui/admin/components/ProfileSection.d.ts.map +1 -0
  56. package/dist/ui/admin/components/StaticSection.d.ts +13 -0
  57. package/dist/ui/admin/components/StaticSection.d.ts.map +1 -0
  58. package/dist/ui/admin/components/StoriesSection.d.ts +7 -0
  59. package/dist/ui/admin/components/StoriesSection.d.ts.map +1 -0
  60. package/dist/ui/admin/components/index.d.ts +11 -0
  61. package/dist/ui/admin/components/index.d.ts.map +1 -0
  62. package/dist/ui/admin/index.d.ts +18 -26
  63. package/dist/ui/admin/index.d.ts.map +1 -1
  64. package/dist/ui/admin/types.d.ts +24 -0
  65. package/dist/ui/admin/types.d.ts.map +1 -0
  66. package/dist/ui/blog-viewer/index.d.ts.map +1 -1
  67. package/dist/ui/index.d.ts.map +1 -1
  68. package/dist/ui/story-viewer/index.d.ts.map +1 -1
  69. package/dist/ui.js +14 -4
  70. package/package.json +4 -4
  71. package/dist/ui/about-me/renderer.d.ts +0 -6
  72. package/dist/ui/about-me/renderer.d.ts.map +0 -1
  73. package/src/api/__tests__/info.test.ts +0 -44
  74. package/src/api/__tests__/utils.test.ts +0 -78
  75. package/src/api/handlers/about-me.ts +0 -99
  76. package/src/api/handlers/auth-handler.ts +0 -194
  77. package/src/api/handlers/auth.ts +0 -157
  78. package/src/api/handlers/content-api.ts +0 -268
  79. package/src/api/handlers/content.ts +0 -139
  80. package/src/api/handlers/home.ts +0 -79
  81. package/src/api/handlers/info.ts +0 -12
  82. package/src/api/handlers/logo.ts +0 -55
  83. package/src/api/handlers/static-details.ts +0 -48
  84. package/src/api/index.ts +0 -9
  85. package/src/api/utils.ts +0 -16
  86. package/src/api/website-api.ts +0 -138
  87. package/src/index.ts +0 -4
  88. package/src/prerender/__tests__/page-content.test.ts +0 -54
  89. package/src/prerender/__tests__/template.test.ts +0 -54
  90. package/src/prerender/index.ts +0 -7
  91. package/src/prerender/page-content.ts +0 -263
  92. package/src/prerender/prerender.ts +0 -25
  93. package/src/prerender/template.ts +0 -65
  94. package/src/prerender/website-prerender.ts +0 -152
  95. package/src/shared/config/api.ts +0 -16
  96. package/src/shared/config/index.ts +0 -43
  97. package/src/shared/config/types.ts +0 -16
  98. package/src/shared/core/__tests__/theme-toggle.test.ts +0 -204
  99. package/src/shared/core/site-store.ts +0 -38
  100. package/src/shared/core/theme-toggle.ts +0 -118
  101. package/src/shared/index.ts +0 -17
  102. package/src/shared/interfaces/ifooter-link.ts +0 -4
  103. package/src/shared/interfaces/iroute.ts +0 -4
  104. package/src/shared/models/theme-variables.css +0 -25
  105. package/src/shared/page-content.ts +0 -210
  106. package/src/shared/router.ts +0 -250
  107. package/src/shared/runtime.ts +0 -11
  108. package/src/shared/template.ts +0 -35
  109. package/src/shared/website-ui.ts +0 -92
  110. package/src/styles/markdown.css +0 -129
  111. package/src/ui/about-me/api.ts +0 -12
  112. package/src/ui/about-me/index.ts +0 -164
  113. package/src/ui/about-me/renderer.ts +0 -23
  114. package/src/ui/about-me/styles.ts +0 -85
  115. package/src/ui/admin/index.ts +0 -655
  116. package/src/ui/admin/styles.ts +0 -270
  117. package/src/ui/banner/index.ts +0 -38
  118. package/src/ui/banner/styles.ts +0 -95
  119. package/src/ui/blog-viewer/__tests__/blogviewer.test.ts +0 -7
  120. package/src/ui/blog-viewer/index.ts +0 -124
  121. package/src/ui/blog-viewer/styles.ts +0 -23
  122. package/src/ui/footer/index.ts +0 -37
  123. package/src/ui/footer/styles.ts +0 -50
  124. package/src/ui/index.ts +0 -6
  125. package/src/ui/story-viewer/__tests__/storyviewer.test.ts +0 -7
  126. package/src/ui/story-viewer/index.ts +0 -120
  127. package/src/ui/story-viewer/styles.ts +0 -54
  128. /package/{src/shared → dist}/styles/markdown.css +0 -0
  129. /package/{src → dist}/styles/theme.css +0 -0
@@ -1,120 +0,0 @@
1
- import { LitElement, html, css } from 'lit';
2
- import { customElement, property, state } from 'lit/decorators.js';
3
- import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
- import { MarkdownPipeline } from '@leadertechie/md2html';
5
-
6
- import { storyviewerStyles } from './styles';
7
-
8
- const pipeline = new MarkdownPipeline({
9
- imagePathPrefix: 'images/',
10
- styleOptions: {
11
- classPrefix: 'md-',
12
- addHeadingIds: true
13
- }
14
- });
15
-
16
- interface StoryPost {
17
- title: string;
18
- description: string;
19
- date: string;
20
- tags: string[];
21
- author: string;
22
- imageUrl: string;
23
- content: string;
24
- }
25
-
26
- @customElement('my-story-viewer')
27
- export class StoryViewer extends LitElement {
28
- static styles = storyviewerStyles;
29
-
30
- @property({ type: String })
31
- accessor slug = '';
32
-
33
- @state()
34
- accessor storyPost: StoryPost | null = null;
35
-
36
- @state()
37
- accessor loading = true;
38
-
39
- @state()
40
- accessor error = '';
41
-
42
- private get apiBaseUrl(): string {
43
- return 'https://api.techieleader.com';
44
- }
45
-
46
- async connectedCallback() {
47
- super.connectedCallback();
48
- if (this.slug) {
49
- await this.loadStory();
50
- }
51
- }
52
-
53
- updated(changedProperties: Map<string, any>) {
54
- if (changedProperties.has('slug') && this.slug) {
55
- this.loadStory();
56
- }
57
- }
58
-
59
- async loadStory() {
60
- this.loading = true;
61
- this.error = '';
62
-
63
- try {
64
- const res = await fetch(`${this.apiBaseUrl}/api/stories/${this.slug}`);
65
- if (res.ok) {
66
- const story = await res.json();
67
- if (story && story.content) {
68
- this.storyPost = story;
69
- } else {
70
- this.error = 'Story content not found';
71
- }
72
- } else {
73
- this.error = 'Story not found';
74
- }
75
- } catch (e) {
76
- this.error = 'Failed to load story';
77
- }
78
-
79
- this.loading = false;
80
- }
81
-
82
- render() {
83
- if (this.loading) {
84
- return html`<div class="loading">Loading...</div>`;
85
- }
86
-
87
- if (this.error) {
88
- return html`<div class="error">${this.error}</div>`;
89
- }
90
-
91
- if (!this.storyPost) {
92
- return html`<div class="error">Story not found</div>`;
93
- }
94
-
95
- const { title, date, tags, content } = this.storyPost;
96
-
97
- return html`
98
- <article>
99
- <h1>${title}</h1>
100
- <div class="meta">
101
- <span>${date}</span>
102
- </div>
103
- ${tags?.length ? html`
104
- <div class="tags">
105
- ${tags.map(tag => html`<span class="tag">${tag}</span>`)}
106
- </div>
107
- ` : ''}
108
- <div class="content">
109
- ${unsafeHTML(this.renderMarkdown(content))}
110
- </div>
111
- </article>
112
- `;
113
- }
114
-
115
- private renderMarkdown(content: string): string {
116
- if (!content) return '';
117
- const nodes = pipeline.parse(content);
118
- return pipeline.render(nodes);
119
- }
120
- }
@@ -1,54 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export const storyviewerStyles = css`
4
- :host {
5
- display: block;
6
- max-width: 800px;
7
- margin: 0 auto;
8
- }
9
-
10
- .loading {
11
- text-align: center;
12
- padding: 2rem;
13
- }
14
-
15
- .error {
16
- color: red;
17
- text-align: center;
18
- padding: 2rem;
19
- }
20
-
21
- h1 {
22
- margin-bottom: 0.5rem;
23
- }
24
-
25
- .meta {
26
- color: #666;
27
- margin-bottom: 2rem;
28
- }
29
-
30
- .tags {
31
- display: flex;
32
- gap: 0.5rem;
33
- flex-wrap: wrap;
34
- margin-top: 1rem;
35
- }
36
-
37
- .tag {
38
- background: var(--nav-link-hover-bg, #f0f0f0);
39
- color: var(--text-color, #333);
40
- padding: 0.25rem 0.5rem;
41
- border-radius: 4px;
42
- font-size: 0.875rem;
43
- border: 1px solid var(--border-color, transparent);
44
- }
45
-
46
- .content {
47
- line-height: 1.8;
48
- text-align: left;
49
- }
50
-
51
- .content h1, .content h2, .content h3 {
52
- margin-top: 1.5rem;
53
- }
54
- `;
File without changes
File without changes