@feedlog-ai/webcomponents 0.0.39 → 0.0.41

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 (62) hide show
  1. package/dist/cjs/feedlog-badge.cjs.entry.js +3 -3
  2. package/dist/cjs/feedlog-button_3.cjs.entry.js +8 -8
  3. package/dist/cjs/feedlog-card.cjs.entry.js +3 -3
  4. package/dist/cjs/feedlog-issues-client.cjs.entry.js +2 -2
  5. package/dist/cjs/feedlog-issues.cjs.entry.js +4 -4
  6. package/dist/cjs/feedlog-toolkit.cjs.js +2 -2
  7. package/dist/cjs/{index-prPyjPBk.js → index-CXKBwRlh.js} +1 -1
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/collection/components/feedlog-badge/feedlog-badge.css +45 -35
  10. package/dist/collection/components/feedlog-badge/feedlog-badge.js +1 -1
  11. package/dist/collection/components/feedlog-button/feedlog-button.css +66 -16
  12. package/dist/collection/components/feedlog-button/feedlog-button.js +1 -1
  13. package/dist/collection/components/feedlog-card/feedlog-card.css +24 -22
  14. package/dist/collection/components/feedlog-card/feedlog-card.js +1 -1
  15. package/dist/collection/components/feedlog-issue/feedlog-issue.css +187 -99
  16. package/dist/collection/components/feedlog-issue/feedlog-issue.js +1 -1
  17. package/dist/collection/components/feedlog-issues/feedlog-issues.css +63 -34
  18. package/dist/collection/components/feedlog-issues/feedlog-issues.js +2 -2
  19. package/dist/collection/components/feedlog-issues-client/feedlog-issues-client.js +1 -1
  20. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +3 -3
  21. package/dist/components/feedlog-badge.js +1 -1
  22. package/dist/components/feedlog-button.js +1 -1
  23. package/dist/components/feedlog-card.js +1 -1
  24. package/dist/components/feedlog-issue.js +1 -1
  25. package/dist/components/feedlog-issues-client.js +1 -1
  26. package/dist/components/feedlog-issues-list.js +1 -1
  27. package/dist/components/feedlog-issues.js +1 -1
  28. package/dist/components/index.js +1 -1
  29. package/dist/components/{p-CvIMO_S7.js → p-2RPRQcjh.js} +2 -2
  30. package/dist/components/p-CVEXMLCP.js +1 -0
  31. package/dist/components/p-DMdb-G26.js +1 -0
  32. package/dist/components/p-DsLDsYLY.js +1 -0
  33. package/dist/components/p-DzATWlAC.js +1 -0
  34. package/dist/esm/feedlog-badge.entry.js +3 -3
  35. package/dist/esm/feedlog-button_3.entry.js +8 -8
  36. package/dist/esm/feedlog-card.entry.js +3 -3
  37. package/dist/esm/feedlog-issues-client.entry.js +2 -2
  38. package/dist/esm/feedlog-issues.entry.js +4 -4
  39. package/dist/esm/feedlog-toolkit.js +3 -3
  40. package/dist/esm/{index-Cu1eYdKa.js → index-CgNWSmzU.js} +1 -1
  41. package/dist/esm/loader.js +3 -3
  42. package/dist/feedlog-toolkit/feedlog-toolkit.css +1 -1
  43. package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
  44. package/dist/feedlog-toolkit/p-2901a753.entry.js +1 -0
  45. package/dist/feedlog-toolkit/p-32663f65.entry.js +1 -0
  46. package/dist/feedlog-toolkit/{p-ca90ade9.entry.js → p-8ab2cdd9.entry.js} +1 -1
  47. package/dist/feedlog-toolkit/p-CgNWSmzU.js +2 -0
  48. package/dist/feedlog-toolkit/p-c1e83493.entry.js +1 -0
  49. package/dist/feedlog-toolkit/p-da0268a8.entry.js +1 -0
  50. package/dist/types/index.d.ts +1 -1
  51. package/hydrate/index.js +19 -19
  52. package/hydrate/index.mjs +19 -19
  53. package/package.json +7 -4
  54. package/dist/components/p-BoxVrJId.js +0 -1
  55. package/dist/components/p-DFD585IK.js +0 -1
  56. package/dist/components/p-I6NOP29P.js +0 -1
  57. package/dist/components/p-fDVosM5p.js +0 -1
  58. package/dist/feedlog-toolkit/p-001d7353.entry.js +0 -1
  59. package/dist/feedlog-toolkit/p-556062d0.entry.js +0 -1
  60. package/dist/feedlog-toolkit/p-62554649.entry.js +0 -1
  61. package/dist/feedlog-toolkit/p-Cu1eYdKa.js +0 -2
  62. package/dist/feedlog-toolkit/p-b558fc9f.entry.js +0 -1
@@ -1,32 +1,78 @@
1
1
  :host {
2
2
  display: block;
3
- font-family: var(--feedlog-font-family);
3
+ font-family:
4
+ ui-sans-serif,
5
+ system-ui,
6
+ -apple-system,
7
+ BlinkMacSystemFont,
8
+ 'Segoe UI',
9
+ Roboto,
10
+ 'Helvetica Neue',
11
+ Arial,
12
+ sans-serif;
13
+
14
+ /* Light theme defaults */
15
+ --feedlog-background: #ffffff;
16
+ --feedlog-foreground: oklch(0.145 0 0);
17
+ --feedlog-card: #ffffff;
18
+ --feedlog-card-foreground: oklch(0.145 0 0);
19
+ --feedlog-muted: #f1f5f9;
20
+ --feedlog-muted-foreground: #64748b;
21
+ --feedlog-border: rgba(0, 0, 0, 0.08);
22
+ --feedlog-accent-color: #2563eb;
23
+ --feedlog-destructive: #d4183d;
24
+ --feedlog-blue-400: oklch(0.707 0.165 254.624);
25
+ --feedlog-blue-600: oklch(0.546 0.245 262.881);
26
+ --feedlog-red-600: #db2777;
27
+ --feedlog-radius: 0.625rem;
28
+ --feedlog-gap: 0.5rem;
4
29
 
5
30
  /* Customization variables */
6
- --feedlog-card-padding: var(--feedlog-space-6);
7
- --feedlog-title-font-size: var(--feedlog-text-xl);
8
- --feedlog-title-font-weight: var(--feedlog-font-semibold);
9
- --feedlog-body-font-size: var(--feedlog-text-sm);
31
+ --feedlog-card-padding: 1.25rem;
32
+ --feedlog-title-font-size: 1.125rem;
33
+ --feedlog-title-font-weight: 600;
34
+ --feedlog-body-font-size: 0.875rem;
10
35
  --feedlog-body-line-height: 1.6;
11
- --feedlog-timestamp-font-size: var(--feedlog-text-xs);
36
+ --feedlog-timestamp-font-size: 0.6875rem;
12
37
  --feedlog-timestamp-color: var(--feedlog-muted-foreground);
13
- --feedlog-card-radius: 16px;
38
+ --feedlog-card-radius: 0.75rem;
14
39
  --feedlog-icon-color: var(--feedlog-muted-foreground);
15
40
  --feedlog-icon-color-muted: var(--feedlog-muted-foreground);
16
- --feedlog-pin-color: var(--feedlog-primary);
17
- --feedlog-upvote-icon-color: var(--feedlog-primary);
18
- --feedlog-upvote-icon-filled-color: var(--feedlog-primary);
41
+ --feedlog-pin-color: var(--feedlog-accent-color);
42
+ --feedlog-upvote-icon-color: var(--feedlog-blue-600);
43
+ --feedlog-upvote-icon-filled-color: var(--feedlog-red-600);
44
+ /* Layered shadows for depth */
45
+ --feedlog-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.5);
46
+ --feedlog-shadow-hover-enhancement: 0 8px 16px rgba(37, 99, 235, 0.08), 0 12px 24px rgba(37, 99, 235, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6);
47
+ --feedlog-shadow-hover-bug: 0 8px 16px rgba(212, 24, 61, 0.08), 0 12px 24px rgba(212, 24, 61, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6);
19
48
  }
20
49
 
21
50
  :host(.dark) {
22
51
  /* Dark theme values */
52
+ --feedlog-background: oklch(0.18 0.01 260);
53
+ --feedlog-foreground: oklch(0.985 0 0);
54
+ --feedlog-card: oklch(0.24 0.01 260);
55
+ --feedlog-card-foreground: oklch(0.985 0 0);
56
+ --feedlog-muted: oklch(0.32 0.01 260);
57
+ --feedlog-muted-foreground: oklch(0.72 0.02 260);
58
+ --feedlog-border: oklch(0.34 0.01 260);
59
+ --feedlog-accent-color: #3b82f6;
60
+ --feedlog-destructive: oklch(0.396 0.141 25.723);
61
+ --feedlog-blue-300: oklch(0.78 0.12 255);
62
+ --feedlog-blue-400: oklch(0.707 0.165 254.624);
63
+ --feedlog-blue-600: oklch(0.546 0.245 262.881);
64
+ --feedlog-upvote-icon-color: var(--feedlog-blue-400);
65
+ --feedlog-upvote-icon-filled-color: var(--feedlog-red-600);
66
+ --feedlog-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.05);
67
+ --feedlog-shadow-hover-enhancement: 0 8px 16px rgba(59, 130, 246, 0.15), 0 12px 24px rgba(59, 130, 246, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08);
68
+ --feedlog-shadow-hover-bug: 0 8px 16px rgba(220, 38, 38, 0.15), 0 12px 24px rgba(220, 38, 38, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08);
23
69
  }
24
70
 
25
71
  .issue-card {
26
- background-color: var(--feedlog-card);
72
+ background: linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 98%, var(--feedlog-muted) 2%) 100%);
27
73
  border: 1px solid var(--feedlog-border);
28
74
  border-radius: var(--feedlog-card-radius, var(--feedlog-radius));
29
- box-shadow: var(--feedlog-shadow-sm);
75
+ box-shadow: var(--feedlog-shadow);
30
76
  transition:
31
77
  box-shadow 0.2s ease,
32
78
  transform 0.2s ease;
@@ -35,8 +81,14 @@
35
81
  }
36
82
 
37
83
  .issue-card:hover {
38
- box-shadow: var(--feedlog-shadow);
39
- transform: translateY(-2px);
84
+ }
85
+
86
+ .issue-card.issue-type-enhancement:hover {
87
+ box-shadow: var(--feedlog-shadow-hover-enhancement);
88
+ }
89
+
90
+ .issue-card.issue-type-bug:hover {
91
+ box-shadow: var(--feedlog-shadow-hover-bug);
40
92
  }
41
93
 
42
94
  /* Media area - ready for future images/videos. Hidden until media support is added. */
@@ -65,21 +117,21 @@
65
117
  padding: var(--feedlog-card-padding);
66
118
  display: flex;
67
119
  flex-direction: column;
68
- gap: var(--feedlog-space-3);
120
+ gap: 0.875rem;
69
121
  }
70
122
 
71
123
  .issue-header-top {
72
124
  display: flex;
73
125
  align-items: flex-start;
74
126
  justify-content: space-between;
75
- gap: var(--feedlog-space-4);
76
- margin-bottom: var(--feedlog-space-3);
127
+ gap: 1rem;
128
+ margin-bottom: 0.875rem;
77
129
  }
78
130
 
79
131
  .issue-badges {
80
132
  display: flex;
81
133
  align-items: center;
82
- gap: var(--feedlog-space-1);
134
+ gap: 0.375rem;
83
135
  flex-wrap: wrap;
84
136
  margin-left: -0.25rem;
85
137
  }
@@ -87,13 +139,13 @@
87
139
  .issue-meta-right {
88
140
  display: flex;
89
141
  align-items: center;
90
- gap: var(--feedlog-space-2);
142
+ gap: 0.5rem;
91
143
  }
92
144
 
93
145
  .pinned-indicator {
94
146
  display: flex;
95
147
  align-items: center;
96
- color: var(--feedlog-pin-color, var(--feedlog-primary));
148
+ color: var(--feedlog-pin-color, var(--feedlog-accent-color));
97
149
  opacity: 0.9;
98
150
  }
99
151
 
@@ -122,9 +174,9 @@
122
174
  flex-direction: row;
123
175
  align-items: center;
124
176
  justify-content: space-between;
125
- gap: var(--feedlog-space-3);
126
- margin-top: var(--feedlog-space-3);
127
- padding-top: var(--feedlog-space-4);
177
+ gap: 0.75rem;
178
+ margin-top: 0.75rem;
179
+ padding-top: 1rem;
128
180
  border-top: 1px solid var(--feedlog-border);
129
181
  flex-wrap: wrap;
130
182
  }
@@ -132,24 +184,19 @@
132
184
  .issue-footer-meta {
133
185
  display: flex;
134
186
  align-items: center;
135
- gap: var(--feedlog-space-2);
136
- font-size: var(--feedlog-text-xs);
187
+ gap: 0.5rem;
188
+ font-size: 0.75rem;
137
189
  color: var(--feedlog-muted-foreground);
138
190
  flex-wrap: wrap;
139
191
  }
140
192
 
141
- /* Keeps upvote on the right when footer-meta is omitted (e.g. null repo name, no GitHub link) */
142
- .issue-footer .upvote-button {
143
- margin-left: auto;
144
- }
145
-
146
193
  .issue-title {
147
194
  color: var(--feedlog-card-foreground);
148
195
  font-size: var(--feedlog-title-font-size);
149
196
  font-weight: var(--feedlog-title-font-weight);
150
- margin: 0 0 var(--feedlog-space-3) 0;
197
+ margin: 0 0 0.5rem 0;
151
198
  line-height: 1.3;
152
- letter-spacing: -0.02em;
199
+ letter-spacing: -0.015em;
153
200
  word-break: break-word;
154
201
  }
155
202
 
@@ -157,27 +204,10 @@
157
204
  color: var(--feedlog-muted-foreground);
158
205
  font-size: var(--feedlog-body-font-size);
159
206
  line-height: var(--feedlog-body-line-height);
160
- margin: 0 0 var(--feedlog-space-3) 0;
207
+ margin: 0 0 0.75rem 0;
161
208
  word-break: break-word;
162
209
  }
163
210
 
164
- .issue-body h1,
165
- .issue-body h2,
166
- .issue-body h3,
167
- .issue-body h4,
168
- .issue-body h5,
169
- .issue-body h6 {
170
- color: var(--feedlog-card-foreground);
171
- margin-top: 1.5em;
172
- margin-bottom: 0.5em;
173
- font-weight: var(--feedlog-font-semibold);
174
- letter-spacing: -0.01em;
175
- }
176
-
177
- .issue-body h1 { font-size: 1.5em; }
178
- .issue-body h2 { font-size: 1.25em; }
179
- .issue-body h3 { font-size: 1.125em; }
180
-
181
211
  .issue-body :first-child {
182
212
  margin-top: 0;
183
213
  }
@@ -195,7 +225,7 @@
195
225
  }
196
226
 
197
227
  .issue-body a {
198
- color: var(--feedlog-primary);
228
+ color: var(--feedlog-accent-color);
199
229
  text-decoration: none;
200
230
  }
201
231
 
@@ -206,15 +236,15 @@
206
236
  .issue-body code {
207
237
  background-color: var(--feedlog-muted);
208
238
  padding: 0.125em 0.375em;
209
- border-radius: var(--feedlog-radius-sm);
239
+ border-radius: 0.25rem;
210
240
  font-size: 0.9em;
211
241
  }
212
242
 
213
243
  .issue-body pre {
214
244
  margin: 0.5em 0;
215
- padding: var(--feedlog-space-3);
245
+ padding: 0.75rem;
216
246
  background-color: var(--feedlog-muted);
217
- border-radius: var(--feedlog-radius-sm);
247
+ border-radius: 0.25rem;
218
248
  overflow-x: auto;
219
249
  font-size: 0.85em;
220
250
  }
@@ -225,7 +255,7 @@
225
255
  }
226
256
 
227
257
  .issue-body strong {
228
- font-weight: var(--feedlog-font-semibold);
258
+ font-weight: 600;
229
259
  }
230
260
 
231
261
  .issue-body ul,
@@ -246,19 +276,19 @@
246
276
  }
247
277
 
248
278
  .repo-name {
249
- font-weight: var(--feedlog-font-medium);
279
+ font-weight: 500;
250
280
  }
251
281
 
252
282
  .github-link {
253
283
  display: inline-flex;
254
284
  align-items: center;
255
- gap: var(--feedlog-space-1);
285
+ gap: 0.25rem;
256
286
  color: var(--feedlog-muted-foreground);
257
287
  text-decoration: none;
258
- font-weight: var(--feedlog-font-medium);
259
- font-size: var(--feedlog-text-xs);
260
- padding: var(--feedlog-space-1) var(--feedlog-space-2);
261
- border-radius: var(--feedlog-radius-sm);
288
+ font-weight: 500;
289
+ font-size: 0.75rem;
290
+ padding: 0.25rem 0.5rem;
291
+ border-radius: 0.375rem;
262
292
  transition:
263
293
  background-color 0.2s ease,
264
294
  color 0.2s ease;
@@ -279,12 +309,12 @@
279
309
  }
280
310
 
281
311
  .github-number {
282
- color: var(--feedlog-primary);
283
- font-weight: var(--feedlog-font-semibold);
312
+ color: var(--feedlog-blue-600);
313
+ font-weight: 600;
284
314
  }
285
315
 
286
316
  :host(.dark) .github-number {
287
- color: var(--feedlog-primary);
317
+ color: var(--feedlog-blue-400);
288
318
  }
289
319
 
290
320
  .upvote-button {
@@ -292,56 +322,64 @@
292
322
  flex-direction: row;
293
323
  align-items: center;
294
324
  border-radius: 9999px;
295
- background-color: var(--feedlog-muted);
296
- border: 1px solid transparent;
325
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
326
+ border: 1px solid #e2e8f0;
297
327
  cursor: pointer;
298
- transition: all 0.2s ease;
328
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
299
329
  flex-shrink: 0;
330
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
300
331
  overflow: hidden;
301
- padding: var(--feedlog-space-1) var(--feedlog-space-3);
302
- gap: var(--feedlog-space-2);
332
+ padding: 0.375rem 0.875rem;
333
+ gap: 0.5rem;
303
334
  font-family: inherit;
304
335
  line-height: 1;
305
336
  }
306
337
 
307
338
  .upvote-button:hover {
308
- background-color: color-mix(in oklab, var(--feedlog-muted) 90%, var(--feedlog-foreground));
339
+ background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
340
+ border-color: #cbd5e1;
341
+ transform: translateY(-1px);
342
+ box-shadow:
343
+ 0 4px 6px -1px rgba(0, 0, 0, 0.08),
344
+ 0 2px 4px -2px rgba(0, 0, 0, 0.04);
309
345
  }
310
346
 
311
347
  .upvote-button:active {
312
- transform: translateY(1px);
348
+ transform: translateY(0);
349
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
313
350
  }
314
351
 
315
352
  .upvote-button.upvoted {
316
- background-color: var(--feedlog-badge-enhancement-bg, #eef2ff);
317
- border-color: color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 15%, transparent);
353
+ background: linear-gradient(180deg, #eff6ff 0%, #e0e7ff 100%);
354
+ border-color: #bfdbfe;
318
355
  }
319
356
 
320
357
  .upvote-button.upvoted:hover {
321
- opacity: 0.9;
358
+ background: linear-gradient(180deg, #dbeafe 0%, #c7d2fe 100%);
359
+ border-color: #93c5fd;
322
360
  }
323
361
 
324
362
  .upvote-action {
325
363
  display: flex;
326
364
  flex-direction: row;
327
365
  align-items: center;
328
- gap: var(--feedlog-space-1);
329
- color: var(--feedlog-muted-foreground);
330
- font-size: var(--feedlog-text-sm);
331
- font-weight: var(--feedlog-font-medium);
366
+ gap: 0.375rem;
367
+ color: #475569;
368
+ font-size: 0.875rem;
369
+ font-weight: 600;
332
370
  transition: color 0.2s ease;
333
371
  }
334
372
 
335
373
  .upvote-button:hover .upvote-action {
336
- color: var(--feedlog-foreground);
374
+ color: #0f172a;
337
375
  }
338
376
 
339
377
  .upvote-button.upvoted .upvote-action {
340
- color: var(--feedlog-badge-enhancement-text, #4338ca);
378
+ color: #2563eb;
341
379
  }
342
380
 
343
381
  .upvote-button.upvoted:hover .upvote-action {
344
- color: var(--feedlog-badge-enhancement-text, #4338ca);
382
+ color: #1d4ed8;
345
383
  }
346
384
 
347
385
  .upvote-icon {
@@ -353,15 +391,15 @@
353
391
  flex-shrink: 0;
354
392
  display: block;
355
393
  vertical-align: middle;
356
- transition: transform 0.2s ease;
394
+ transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
357
395
  }
358
396
 
359
397
  .upvote-button:hover .upvote-icon {
360
- transform: translateY(-1px);
398
+ transform: translateY(-2px);
361
399
  }
362
400
 
363
401
  .upvote-button:active .upvote-icon {
364
- transform: translateY(0) scale(0.95);
402
+ transform: translateY(0) scale(0.9);
365
403
  }
366
404
 
367
405
  .upvote-icon.filled {
@@ -378,38 +416,46 @@
378
416
  align-items: center;
379
417
  height: 1.25rem;
380
418
  overflow: hidden;
381
- border-left: 1px solid var(--feedlog-border);
382
- padding-left: var(--feedlog-space-2);
419
+ border-left: 1px solid #e2e8f0;
420
+ padding-left: 0.5rem;
383
421
  transition: border-color 0.2s ease;
384
422
  }
385
423
 
424
+ .upvote-button:hover .reel-container {
425
+ border-color: #cbd5e1;
426
+ }
427
+
386
428
  .upvote-button.upvoted .reel-container {
387
- border-color: color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 20%, transparent);
429
+ border-color: #bfdbfe;
430
+ }
431
+
432
+ .upvote-button.upvoted:hover .reel-container {
433
+ border-color: #93c5fd;
388
434
  }
389
435
 
390
436
  .upvote-count {
391
- font-size: var(--feedlog-text-sm);
392
- font-weight: var(--feedlog-font-medium);
393
- color: var(--feedlog-muted-foreground);
437
+ font-size: 0.875rem;
438
+ font-weight: 600;
439
+ color: #475569;
394
440
  transition: color 0.2s ease;
395
441
  line-height: 1.25rem;
396
442
  }
397
443
 
398
444
  .upvote-button:hover .upvote-count {
399
- color: var(--feedlog-foreground);
445
+ color: #0f172a;
400
446
  }
401
447
 
402
448
  .upvote-button.upvoted .upvote-count {
403
- color: var(--feedlog-badge-enhancement-text, #4338ca);
449
+ color: #2563eb;
404
450
  }
405
451
 
406
452
  .upvote-button.upvoted:hover .upvote-count {
407
- color: var(--feedlog-badge-enhancement-text, #4338ca);
453
+ color: #1d4ed8;
408
454
  }
409
455
 
410
456
  .reel-number {
411
457
  display: inline-block;
412
- animation: reelIn 0.3s ease forwards;
458
+ animation: reelIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
413
459
  }
414
460
 
415
461
  @keyframes reelIn {
@@ -425,15 +471,57 @@
425
471
 
426
472
  /* Dark theme overrides */
427
473
  :host(.dark) .upvote-button {
428
- background-color: var(--feedlog-muted);
429
- border-color: transparent;
474
+ background: linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 95%, var(--feedlog-muted) 5%) 100%);
475
+ border-color: var(--feedlog-border);
430
476
  }
431
477
 
432
478
  :host(.dark) .upvote-button:hover {
433
- background-color: color-mix(in oklab, var(--feedlog-muted) 80%, var(--feedlog-foreground));
479
+ background: var(--feedlog-muted);
480
+ border-color: var(--feedlog-muted-foreground);
434
481
  }
435
482
 
436
483
  :host(.dark) .upvote-button.upvoted {
437
- background-color: var(--feedlog-badge-enhancement-bg);
438
- border-color: color-mix(in oklab, var(--feedlog-badge-enhancement-text) 15%, transparent);
484
+ background: linear-gradient(180deg, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0.2) 100%);
485
+ border-color: rgba(37, 99, 235, 0.3);
486
+ }
487
+
488
+ :host(.dark) .upvote-button.upvoted:hover {
489
+ background: linear-gradient(180deg, rgba(37, 99, 235, 0.25) 0%, rgba(37, 99, 235, 0.3) 100%);
490
+ border-color: rgba(37, 99, 235, 0.4);
491
+ }
492
+
493
+ :host(.dark) .upvote-action,
494
+ :host(.dark) .upvote-count {
495
+ color: var(--feedlog-muted-foreground);
496
+ }
497
+
498
+ :host(.dark) .upvote-button:hover .upvote-action,
499
+ :host(.dark) .upvote-button:hover .upvote-count {
500
+ color: var(--feedlog-card-foreground);
501
+ }
502
+
503
+ :host(.dark) .upvote-button.upvoted .upvote-action,
504
+ :host(.dark) .upvote-button.upvoted .upvote-count {
505
+ color: var(--feedlog-blue-400);
506
+ }
507
+
508
+ :host(.dark) .upvote-button.upvoted:hover .upvote-action,
509
+ :host(.dark) .upvote-button.upvoted:hover .upvote-count {
510
+ color: var(--feedlog-blue-300);
511
+ }
512
+
513
+ :host(.dark) .reel-container {
514
+ border-color: var(--feedlog-border);
515
+ }
516
+
517
+ :host(.dark) .upvote-button:hover .reel-container {
518
+ border-color: var(--feedlog-muted-foreground);
519
+ }
520
+
521
+ :host(.dark) .upvote-button.upvoted .reel-container {
522
+ border-color: rgba(37, 99, 235, 0.3);
523
+ }
524
+
525
+ :host(.dark) .upvote-button.upvoted:hover .reel-container {
526
+ border-color: rgba(37, 99, 235, 0.4);
439
527
  }
@@ -130,7 +130,7 @@ export class FeedlogIssueComponent {
130
130
  const statusBadgeLabel = this.getStatusBadgeLabel();
131
131
  const githubUrl = (_b = issue.githubIssueLink) !== null && _b !== void 0 ? _b : issueUrl;
132
132
  const showGithubButton = githubUrl != null && githubUrl !== '';
133
- return (h(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, h("div", { class: `issue-card issue-type-${issue.type}`, part: "base" }, h("div", { class: "issue-media", part: "media" }, h("slot", { name: "media" })), h("div", { class: "issue-content", part: "content" }, h("div", { class: "issue-main", part: "main" }, h("div", { class: "issue-header-top", part: "header-top" }, h("div", { class: "issue-badges", part: "badges" }, issue.type === 'bug' ? (h("feedlog-badge", { variant: "destructive", part: "badge badge-bug" }, "Bug")) : (h("feedlog-badge", { variant: "enhancement", part: "badge badge-enhancement" }, "Enhancement")), statusBadgeLabel && (h("feedlog-badge", { variant: "secondary", part: "badge badge-status" }, statusBadgeLabel))), h("div", { class: "issue-meta-right", part: "meta-right" }, issue.pinnedAt && (h("div", { class: "pinned-indicator", title: "Pinned issue", part: "pinned-indicator" }, this.renderPinIcon())), h("span", { class: "issue-timestamp", title: timestampTitle, part: "timestamp" }, timestampLabel, " ", this.formatDate(timestampDate)))), h("h3", { class: "issue-title", part: "title" }, displayTitle), issue.body != null && issue.body !== '' && (h("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body), part: "body" })), (repoName != null || showGithubButton || issue.type !== 'bug') && (h("div", { class: "issue-footer", part: "footer" }, (repoName != null || showGithubButton) && (h("div", { class: "issue-footer-meta", part: "footer-meta" }, repoName != null && (h("span", { class: "repo-name", title: repoTooltip, part: "repo-name" }, repoName)), showGithubButton && (h("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), h("span", { class: "github-link-text", part: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (h("button", { part: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, h("div", { class: "upvote-action", part: "upvote-action" }, h("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), h("span", { class: "upvote-label", part: "upvote-label" }, "Upvote")), h("div", { class: "reel-container", part: "upvote-reel-container" }, h("span", { class: "upvote-count reel-number", key: issue.upvoteCount, part: "upvote-count" }, issue.upvoteCount)))))))))));
133
+ return (h(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, h("div", { class: `issue-card issue-type-${issue.type}` }, h("div", { class: "issue-media", part: "media" }, h("slot", { name: "media" })), h("div", { class: "issue-content" }, h("div", { class: "issue-main" }, h("div", { class: "issue-header-top" }, h("div", { class: "issue-badges" }, issue.type === 'bug' ? (h("feedlog-badge", { variant: "destructive" }, "Bug")) : (h("feedlog-badge", { variant: "enhancement" }, "Enhancement")), statusBadgeLabel && (h("feedlog-badge", { variant: "secondary" }, statusBadgeLabel))), h("div", { class: "issue-meta-right" }, issue.pinnedAt && (h("div", { class: "pinned-indicator", title: "Pinned issue" }, this.renderPinIcon())), h("span", { class: "issue-timestamp", title: timestampTitle }, timestampLabel, " ", this.formatDate(timestampDate)))), h("h3", { class: "issue-title" }, displayTitle), issue.body != null && issue.body !== '' && (h("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body) })), (repoName != null || showGithubButton || issue.type !== 'bug') && (h("div", { class: "issue-footer" }, (repoName != null || showGithubButton) && (h("div", { class: "issue-footer-meta" }, repoName != null && (h("span", { class: "repo-name", title: repoTooltip }, repoName)), showGithubButton && (h("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), h("span", { class: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (h("button", { part: "upvote-button", class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, h("div", { class: "upvote-action" }, h("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), h("span", { class: "upvote-label" }, "Upvote")), h("div", { class: "reel-container" }, h("span", { class: "upvote-count reel-number", key: issue.upvoteCount }, issue.upvoteCount)))))))))));
134
134
  }
135
135
  static get is() { return "feedlog-issue"; }
136
136
  static get encapsulation() { return "shadow"; }