@leadertechie/personal-site-kit 0.0.0 → 0.1.0-alpha.10

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 (197) hide show
  1. package/dist/api/__tests__/info.test.d.ts +2 -0
  2. package/dist/api/__tests__/info.test.d.ts.map +1 -0
  3. package/dist/api/__tests__/utils.test.d.ts +2 -0
  4. package/dist/api/__tests__/utils.test.d.ts.map +1 -0
  5. package/dist/api/content-utils.d.ts +27 -0
  6. package/dist/api/content-utils.d.ts.map +1 -0
  7. package/dist/api/handlers/{aboutme.d.ts → about-me.d.ts} +1 -1
  8. package/dist/api/handlers/about-me.d.ts.map +1 -0
  9. package/dist/api/handlers/auth-handler.d.ts +2 -0
  10. package/dist/api/handlers/auth-handler.d.ts.map +1 -0
  11. package/dist/api/handlers/auth.d.ts +23 -0
  12. package/dist/api/handlers/auth.d.ts.map +1 -0
  13. package/dist/api/handlers/content-api.d.ts +0 -1
  14. package/dist/api/handlers/content-api.d.ts.map +1 -1
  15. package/dist/api/handlers/content.d.ts.map +1 -1
  16. package/dist/api/handlers/home.d.ts.map +1 -1
  17. package/dist/api/handlers/{staticdetails.d.ts → static-details.d.ts} +1 -1
  18. package/dist/api/handlers/static-details.d.ts.map +1 -0
  19. package/dist/api/index.d.ts +7 -8
  20. package/dist/api/index.d.ts.map +1 -1
  21. package/dist/api/website-api.d.ts +10 -0
  22. package/dist/api/website-api.d.ts.map +1 -0
  23. package/dist/api.d.ts +2 -0
  24. package/dist/api.js +19 -589
  25. package/dist/assets/logo-placeholder.svg +21 -0
  26. package/dist/chunks/index-CGvOrVf8.js +213 -0
  27. package/dist/chunks/index-_AMi6ort.js +2690 -0
  28. package/dist/chunks/site-store-Vqmjjz9c.js +86 -0
  29. package/dist/chunks/template-C1tMqlPY.js +597 -0
  30. package/dist/chunks/website-api-CuyeBej-.js +920 -0
  31. package/dist/index.d.ts +5 -2
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +48 -352
  34. package/dist/prerender/__tests__/page-content.test.d.ts +2 -0
  35. package/dist/prerender/__tests__/page-content.test.d.ts.map +1 -0
  36. package/dist/prerender/__tests__/template.test.d.ts +2 -0
  37. package/dist/prerender/__tests__/template.test.d.ts.map +1 -0
  38. package/dist/prerender/data-fetcher.d.ts +19 -0
  39. package/dist/prerender/data-fetcher.d.ts.map +1 -0
  40. package/dist/prerender/index.d.ts +5 -4
  41. package/dist/prerender/index.d.ts.map +1 -1
  42. package/dist/prerender/{pageContent.d.ts → page-content.d.ts} +1 -1
  43. package/dist/prerender/page-content.d.ts.map +1 -0
  44. package/dist/prerender/page-generators/about.d.ts +16 -0
  45. package/dist/prerender/page-generators/about.d.ts.map +1 -0
  46. package/dist/prerender/page-generators/base.d.ts +26 -0
  47. package/dist/prerender/page-generators/base.d.ts.map +1 -0
  48. package/dist/prerender/page-generators/blog-detail.d.ts +15 -0
  49. package/dist/prerender/page-generators/blog-detail.d.ts.map +1 -0
  50. package/dist/prerender/page-generators/blogs-list.d.ts +17 -0
  51. package/dist/prerender/page-generators/blogs-list.d.ts.map +1 -0
  52. package/dist/prerender/page-generators/home.d.ts +19 -0
  53. package/dist/prerender/page-generators/home.d.ts.map +1 -0
  54. package/dist/prerender/page-generators/index.d.ts +9 -0
  55. package/dist/prerender/page-generators/index.d.ts.map +1 -0
  56. package/dist/prerender/page-generators/not-found.d.ts +14 -0
  57. package/dist/prerender/page-generators/not-found.d.ts.map +1 -0
  58. package/dist/prerender/page-generators/stories-list.d.ts +17 -0
  59. package/dist/prerender/page-generators/stories-list.d.ts.map +1 -0
  60. package/dist/prerender/page-generators/story-detail.d.ts +15 -0
  61. package/dist/prerender/page-generators/story-detail.d.ts.map +1 -0
  62. package/dist/prerender/website-prerender.d.ts +22 -0
  63. package/dist/prerender/website-prerender.d.ts.map +1 -0
  64. package/dist/prerender.d.ts +2 -0
  65. package/dist/prerender.js +163 -151
  66. package/dist/shared/config/index.d.ts +1 -0
  67. package/dist/shared/config/index.d.ts.map +1 -1
  68. package/dist/shared/core/__tests__/theme-toggle.test.d.ts +2 -0
  69. package/dist/shared/core/__tests__/theme-toggle.test.d.ts.map +1 -0
  70. package/dist/shared/core/site-store.d.ts +1 -0
  71. package/dist/shared/core/site-store.d.ts.map +1 -1
  72. package/dist/shared/index.d.ts +5 -3
  73. package/dist/shared/index.d.ts.map +1 -1
  74. package/dist/shared/interfaces/{iFooterLink.d.ts → ifooter-link.d.ts} +1 -1
  75. package/dist/shared/interfaces/ifooter-link.d.ts.map +1 -0
  76. package/dist/shared/interfaces/{iRoute.d.ts → iroute.d.ts} +1 -1
  77. package/dist/shared/interfaces/iroute.d.ts.map +1 -0
  78. package/dist/shared/{pageContent.d.ts → page-content.d.ts} +4 -3
  79. package/dist/shared/page-content.d.ts.map +1 -0
  80. package/dist/shared/router.d.ts +23 -0
  81. package/dist/shared/router.d.ts.map +1 -0
  82. package/dist/shared/runtime.d.ts +6 -6
  83. package/dist/shared/runtime.d.ts.map +1 -1
  84. package/dist/shared/website-ui.d.ts +32 -0
  85. package/dist/shared/website-ui.d.ts.map +1 -0
  86. package/dist/shared.js +13 -8
  87. package/dist/ui/about-me/api.d.ts.map +1 -0
  88. package/dist/ui/{aboutme → about-me}/index.d.ts +2 -10
  89. package/dist/ui/about-me/index.d.ts.map +1 -0
  90. package/dist/ui/about-me/styles.d.ts.map +1 -0
  91. package/dist/ui/admin/api.d.ts +16 -0
  92. package/dist/ui/admin/api.d.ts.map +1 -0
  93. package/dist/ui/admin/components/AboutMeSection.d.ts +7 -0
  94. package/dist/ui/admin/components/AboutMeSection.d.ts.map +1 -0
  95. package/dist/ui/admin/components/AdminSection.d.ts +13 -0
  96. package/dist/ui/admin/components/AdminSection.d.ts.map +1 -0
  97. package/dist/ui/admin/components/BlogsSection.d.ts +7 -0
  98. package/dist/ui/admin/components/BlogsSection.d.ts.map +1 -0
  99. package/dist/ui/admin/components/HomeSection.d.ts +7 -0
  100. package/dist/ui/admin/components/HomeSection.d.ts.map +1 -0
  101. package/dist/ui/admin/components/ImagesSection.d.ts +7 -0
  102. package/dist/ui/admin/components/ImagesSection.d.ts.map +1 -0
  103. package/dist/ui/admin/components/LoginForm.d.ts +9 -0
  104. package/dist/ui/admin/components/LoginForm.d.ts.map +1 -0
  105. package/dist/ui/admin/components/LogoSection.d.ts +7 -0
  106. package/dist/ui/admin/components/LogoSection.d.ts.map +1 -0
  107. package/dist/ui/admin/components/ProfileSection.d.ts +7 -0
  108. package/dist/ui/admin/components/ProfileSection.d.ts.map +1 -0
  109. package/dist/ui/admin/components/StaticSection.d.ts +9 -0
  110. package/dist/ui/admin/components/StaticSection.d.ts.map +1 -0
  111. package/dist/ui/admin/components/StoriesSection.d.ts +7 -0
  112. package/dist/ui/admin/components/StoriesSection.d.ts.map +1 -0
  113. package/dist/ui/admin/components/index.d.ts +11 -0
  114. package/dist/ui/admin/components/index.d.ts.map +1 -0
  115. package/dist/ui/admin/index.d.ts +27 -26
  116. package/dist/ui/admin/index.d.ts.map +1 -1
  117. package/dist/ui/admin/styles.d.ts.map +1 -1
  118. package/dist/ui/admin/types.d.ts +24 -0
  119. package/dist/ui/admin/types.d.ts.map +1 -0
  120. package/dist/ui/banner/styles.d.ts.map +1 -1
  121. package/dist/ui/blog-viewer/__tests__/blogviewer.test.d.ts +2 -0
  122. package/dist/ui/blog-viewer/__tests__/blogviewer.test.d.ts.map +1 -0
  123. package/dist/ui/blog-viewer/index.d.ts +25 -0
  124. package/dist/ui/blog-viewer/index.d.ts.map +1 -0
  125. package/dist/ui/blog-viewer/styles.d.ts +2 -0
  126. package/dist/ui/blog-viewer/styles.d.ts.map +1 -0
  127. package/dist/ui/footer/index.d.ts +1 -1
  128. package/dist/ui/footer/index.d.ts.map +1 -1
  129. package/dist/ui/footer/styles.d.ts.map +1 -1
  130. package/dist/ui/index.d.ts +7 -0
  131. package/dist/ui/index.d.ts.map +1 -0
  132. package/dist/ui/story-viewer/__tests__/storyviewer.test.d.ts +2 -0
  133. package/dist/ui/story-viewer/__tests__/storyviewer.test.d.ts.map +1 -0
  134. package/dist/ui/story-viewer/index.d.ts +25 -0
  135. package/dist/ui/story-viewer/index.d.ts.map +1 -0
  136. package/dist/ui/story-viewer/styles.d.ts +2 -0
  137. package/dist/ui/story-viewer/styles.d.ts.map +1 -0
  138. package/dist/ui.d.ts +1 -1
  139. package/dist/ui.js +17 -818
  140. package/package.json +35 -12
  141. package/public/assets/logo-placeholder.svg +21 -0
  142. package/dist/api/handlers/aboutme.d.ts.map +0 -1
  143. package/dist/api/handlers/staticdetails.d.ts.map +0 -1
  144. package/dist/prerender/pageContent.d.ts.map +0 -1
  145. package/dist/shared/interfaces/iFooterLink.d.ts.map +0 -1
  146. package/dist/shared/interfaces/iRoute.d.ts.map +0 -1
  147. package/dist/shared/pageContent.d.ts.map +0 -1
  148. package/dist/ui/aboutme/api.d.ts.map +0 -1
  149. package/dist/ui/aboutme/index.d.ts.map +0 -1
  150. package/dist/ui/aboutme/renderer.d.ts +0 -5
  151. package/dist/ui/aboutme/renderer.d.ts.map +0 -1
  152. package/dist/ui/aboutme/styles.d.ts.map +0 -1
  153. package/src/api/__tests__/info.test.ts +0 -44
  154. package/src/api/__tests__/utils.test.ts +0 -78
  155. package/src/api/handlers/aboutme.ts +0 -99
  156. package/src/api/handlers/content-api.ts +0 -268
  157. package/src/api/handlers/content.ts +0 -72
  158. package/src/api/handlers/home.ts +0 -79
  159. package/src/api/handlers/info.ts +0 -12
  160. package/src/api/handlers/logo.ts +0 -55
  161. package/src/api/handlers/staticdetails.ts +0 -48
  162. package/src/api/index.ts +0 -125
  163. package/src/api/utils.ts +0 -16
  164. package/src/prerender/__tests__/pageContent.test.ts +0 -54
  165. package/src/prerender/__tests__/template.test.ts +0 -54
  166. package/src/prerender/index.ts +0 -138
  167. package/src/prerender/pageContent.ts +0 -263
  168. package/src/prerender/prerender.ts +0 -25
  169. package/src/prerender/template.ts +0 -65
  170. package/src/shared/config/api.ts +0 -16
  171. package/src/shared/config/index.ts +0 -41
  172. package/src/shared/config/types.ts +0 -16
  173. package/src/shared/core/__tests__/theme-toggle.test.ts +0 -204
  174. package/src/shared/core/site-store.ts +0 -38
  175. package/src/shared/core/theme-toggle.ts +0 -118
  176. package/src/shared/index.ts +0 -15
  177. package/src/shared/interfaces/iFooterLink.ts +0 -4
  178. package/src/shared/interfaces/iRoute.ts +0 -4
  179. package/src/shared/models/theme-variables.css +0 -25
  180. package/src/shared/pageContent.ts +0 -209
  181. package/src/shared/runtime.ts +0 -11
  182. package/src/shared/template.ts +0 -35
  183. package/src/styles/markdown.css +0 -129
  184. package/src/ui/aboutme/api.ts +0 -12
  185. package/src/ui/aboutme/index.ts +0 -155
  186. package/src/ui/aboutme/renderer.ts +0 -7
  187. package/src/ui/aboutme/styles.ts +0 -10
  188. package/src/ui/admin/index.ts +0 -492
  189. package/src/ui/admin/styles.ts +0 -317
  190. package/src/ui/banner/index.ts +0 -38
  191. package/src/ui/banner/styles.ts +0 -10
  192. package/src/ui/footer/index.ts +0 -37
  193. package/src/ui/footer/styles.ts +0 -9
  194. /package/{src/shared → dist}/styles/markdown.css +0 -0
  195. /package/{src → dist}/styles/theme.css +0 -0
  196. /package/dist/ui/{aboutme → about-me}/api.d.ts +0 -0
  197. /package/dist/ui/{aboutme → about-me}/styles.d.ts +0 -0
@@ -1,317 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export const adminStyles = css`
4
- :host {
5
- display: block;
6
- width: 100%;
7
- max-width: 100%;
8
- padding: 20px;
9
- font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
- color: var(--text-color, #213547);
11
- background-color: var(--background-color, #fff);
12
- min-height: 100vh;
13
- box-sizing: border-box;
14
- }
15
-
16
- *, *::before, *::after {
17
- box-sizing: border-box;
18
- }
19
-
20
- .container {
21
- width: 100%;
22
- max-width: 900px;
23
- margin: 0 auto;
24
- padding: 1rem;
25
- }
26
-
27
- .login-box {
28
- border: 1px solid var(--border-color, #e0e0e0);
29
- padding: 3rem 2.5rem;
30
- border-radius: 16px;
31
- width: 100%;
32
- max-width: 420px;
33
- margin: 80px auto;
34
- text-align: center;
35
- background: var(--card-bg, #fff);
36
- box-shadow: 0 4px 6px rgba(0,0,0,0.07), 0 10px 20px rgba(0,0,0,0.05);
37
- }
38
-
39
- .login-box h2 {
40
- margin: 0 0 0.5rem 0;
41
- font-size: 1.75rem;
42
- font-weight: 600;
43
- color: var(--text-color, #213547);
44
- }
45
-
46
- .login-box p {
47
- color: var(--secondary-text, #666);
48
- margin-bottom: 1.5rem;
49
- }
50
-
51
- .nav-tabs {
52
- display: flex;
53
- gap: 8px;
54
- margin-bottom: 24px;
55
- flex-wrap: wrap;
56
- padding: 0.5rem;
57
- background: var(--card-bg, #fff);
58
- border-radius: 12px;
59
- box-shadow: 0 2px 4px rgba(0,0,0,0.05);
60
- width: 100%;
61
- }
62
-
63
- .nav-tab {
64
- padding: 0.6rem 1.25rem;
65
- border: none;
66
- border-radius: 8px;
67
- cursor: pointer;
68
- background: transparent;
69
- color: var(--text-color, #213547);
70
- font-size: 0.95rem;
71
- font-weight: 500;
72
- transition: all 0.2s ease;
73
- }
74
-
75
- .nav-tab:hover {
76
- background: var(--nav-link-hover-bg, #f0f0f0);
77
- color: var(--link-color, #646cff);
78
- }
79
-
80
- .nav-tab.active {
81
- background: var(--link-color, #646cff);
82
- color: white;
83
- box-shadow: 0 2px 8px rgba(100, 108, 255, 0.3);
84
- }
85
-
86
- .section {
87
- width: 100%;
88
- border: none;
89
- padding: 24px;
90
- border-radius: 16px;
91
- background: var(--card-bg, #fff);
92
- box-shadow: 0 4px 6px rgba(0,0,0,0.07), 0 10px 20px rgba(0,0,0,0.05);
93
- margin-bottom: 20px;
94
- min-height: 450px;
95
- box-sizing: border-box;
96
- }
97
-
98
- .section h3 {
99
- margin: 0 0 0.5rem 0;
100
- font-size: 1.25rem;
101
- font-weight: 600;
102
- color: var(--text-color, #213547);
103
- display: flex;
104
- align-items: center;
105
- gap: 0.5rem;
106
- }
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
- .file-list {
116
- margin-top: 20px;
117
- }
118
-
119
- .file-item {
120
- display: flex;
121
- justify-content: space-between;
122
- align-items: center;
123
- padding: 12px 16px;
124
- border-bottom: 1px solid var(--border-color, #eee);
125
- border-radius: 8px;
126
- transition: background 0.15s ease;
127
- }
128
-
129
- .file-item:hover {
130
- background: var(--nav-link-hover-bg, #f8f9fa);
131
- }
132
-
133
- .file-item:last-child {
134
- border-bottom: none;
135
- }
136
-
137
- button {
138
- cursor: pointer;
139
- padding: 10px 20px;
140
- border-radius: 8px;
141
- font-weight: 500;
142
- font-size: 0.95rem;
143
- transition: all 0.2s ease;
144
- border: none;
145
- }
146
-
147
- .btn-primary {
148
- background: var(--link-color, #646cff);
149
- color: white;
150
- box-shadow: 0 2px 4px rgba(100, 108, 255, 0.25);
151
- }
152
-
153
- .btn-primary:hover {
154
- background: var(--link-hover-color, #535bf2);
155
- transform: translateY(-1px);
156
- box-shadow: 0 4px 8px rgba(100, 108, 255, 0.3);
157
- }
158
-
159
- .btn-danger {
160
- color: #dc3545;
161
- background: transparent;
162
- border: 1px solid #dc3545;
163
- padding: 6px 12px;
164
- font-size: 0.85rem;
165
- }
166
-
167
- .btn-danger:hover {
168
- background: #dc3545;
169
- color: white;
170
- }
171
-
172
- .btn-secondary {
173
- background: var(--nav-link-hover-bg, #f0f0f0);
174
- color: var(--text-color, #333);
175
- border: none;
176
- font-size: 0.85rem;
177
- padding: 8px 16px;
178
- }
179
-
180
- .btn-secondary:hover {
181
- background: #e0e0e0;
182
- }
183
-
184
- input[type="text"], input[type="password"], input[type="file"] {
185
- padding: 12px 14px;
186
- width: 100%;
187
- box-sizing: border-box;
188
- margin-bottom: 12px;
189
- border: 2px solid var(--border-color, #e0e0e0);
190
- border-radius: 10px;
191
- background-color: var(--background-color, #fff);
192
- color: var(--text-color, #213547);
193
- font-size: 0.95rem;
194
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
195
- }
196
-
197
- input[type="text"]:focus, input[type="password"]:focus {
198
- outline: none;
199
- border-color: var(--link-color, #646cff);
200
- box-shadow: 0 0 0 3px rgba(100, 108, 255, 0.15);
201
- }
202
-
203
- input[type="file"] {
204
- padding: 10px;
205
- border-style: dashed;
206
- cursor: pointer;
207
- }
208
-
209
- input[type="file"]:hover {
210
- border-color: var(--link-color, #646cff);
211
- background: rgba(100, 108, 255, 0.03);
212
- }
213
-
214
- .help-text {
215
- color: var(--secondary-text, #666);
216
- font-size: 0.9rem;
217
- margin-bottom: 16px;
218
- line-height: 1.5;
219
- }
220
-
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
- .status-message {
262
- padding: 12px 16px;
263
- border-radius: 8px;
264
- margin-bottom: 16px;
265
- font-size: 0.9rem;
266
- background: var(--nav-link-hover-bg, #f5f5f5);
267
- color: var(--text-color, #333);
268
- }
269
-
270
- .status-message.success {
271
- background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
272
- color: #2e7d32;
273
- border: 1px solid #a5d6a7;
274
- }
275
-
276
- .status-message.error {
277
- background: linear-gradient(135deg, #ffebee, #ffcdd2);
278
- color: #c62828;
279
- border: 1px solid #ef9a9a;
280
- }
281
-
282
- .header {
283
- display: flex;
284
- justify-content: space-between;
285
- align-items: center;
286
- margin-bottom: 24px;
287
- padding-bottom: 16px;
288
- border-bottom: 2px solid var(--border-color, #eee);
289
- }
290
-
291
- .header h1 {
292
- margin: 0;
293
- font-size: 1.5rem;
294
- font-weight: 600;
295
- color: var(--text-color, #213547);
296
- }
297
-
298
- .mt-1 { margin-top: 12px; }
299
- .mb-1 { margin-bottom: 1rem; }
300
-
301
- @media (max-width: 600px) {
302
- .container {
303
- padding: 0.5rem;
304
- }
305
- .section {
306
- padding: 16px;
307
- }
308
- .nav-tabs {
309
- gap: 4px;
310
- padding: 8px;
311
- }
312
- .nav-tab {
313
- padding: 8px 12px;
314
- font-size: 0.85rem;
315
- }
316
- }
317
- `;
@@ -1,38 +0,0 @@
1
- import { LitElement, html, css } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
-
4
- import { bannerStyles } from './styles';
5
-
6
- @customElement('my-banner')
7
- export class MyBanner extends LitElement {
8
- static styles = bannerStyles;
9
-
10
- static properties = {
11
- header: { type: String },
12
- logo: { type: String },
13
- };
14
-
15
- declare header: string;
16
- declare logo: string;
17
-
18
- constructor() {
19
- super();
20
- this.header = 'My App';
21
- this.logo = '';
22
- }
23
-
24
- render() {
25
- return html`
26
- <header class="banner banner-component">
27
- <div class="header-content">
28
- ${this.logo ? html`<img src="${this.logo}" alt="Logo" class="logo" />` : ''}
29
- <h1>${this.header}</h1>
30
- </div>
31
- <div class="nav-and-theme">
32
- <slot name="nav-links"></slot>
33
- <slot name="theme-switcher"></slot>
34
- </div>
35
- </header>
36
- `;
37
- }
38
- }
@@ -1,10 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export const bannerStyles = css`
4
- .banner {
5
- padding: 1rem;
6
- display: flex;
7
- justify-content: space-between;
8
- align-items: center;
9
- }
10
- `;
@@ -1,37 +0,0 @@
1
- import { LitElement, html, css } from 'lit';
2
- import { customElement, property } from 'lit/decorators.js';
3
-
4
- import { IFooterLink } from '../../shared/interfaces/iFooterLink';
5
-
6
- import { footerStyles } from './styles';
7
-
8
- @customElement('my-footer')
9
- export class FooterComponent extends LitElement {
10
- static styles = footerStyles;
11
-
12
- @property({ type: String })
13
- accessor copyright = '';
14
-
15
- @property({ type: Array })
16
- accessor footerLinks: IFooterLink[] = [];
17
-
18
- render() {
19
- return html`
20
- <div class="footer-content">
21
- <span>&copy; ${this.copyright}</span>
22
- <span class="links">
23
- ${this.footerLinks.map(
24
- (link) => {
25
- const isExternal = link.link.startsWith('http') || link.link.startsWith('mailto:');
26
- return html`<a
27
- href="${link.link}"
28
- target="${isExternal ? '_blank' : '_self'}"
29
- rel="${isExternal ? 'noopener noreferrer' : ''}"
30
- >${link.text}</a>`;
31
- }
32
- )}
33
- </span>
34
- </div>
35
- `;
36
- }
37
- }
@@ -1,9 +0,0 @@
1
- import { css } from 'lit';
2
-
3
- export const footerStyles = css`
4
- .footer-content {
5
- padding: 1rem;
6
- display: flex;
7
- justify-content: space-between;
8
- }
9
- `;
File without changes
File without changes
File without changes
File without changes