@rmdes/indiekit-endpoint-activitypub 2.5.4 → 2.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets/reader.css
CHANGED
|
@@ -1595,6 +1595,81 @@
|
|
|
1595
1595
|
cursor: pointer;
|
|
1596
1596
|
}
|
|
1597
1597
|
|
|
1598
|
+
/* ==========================================================================
|
|
1599
|
+
Skeleton Loaders
|
|
1600
|
+
========================================================================== */
|
|
1601
|
+
|
|
1602
|
+
@keyframes ap-skeleton-shimmer {
|
|
1603
|
+
0% { background-position: 200% 0; }
|
|
1604
|
+
100% { background-position: -200% 0; }
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
.ap-skeleton {
|
|
1608
|
+
background: linear-gradient(90deg,
|
|
1609
|
+
var(--color-offset) 25%,
|
|
1610
|
+
var(--color-background) 50%,
|
|
1611
|
+
var(--color-offset) 75%);
|
|
1612
|
+
background-size: 200% 100%;
|
|
1613
|
+
animation: ap-skeleton-shimmer 1.5s ease-in-out infinite;
|
|
1614
|
+
border-radius: var(--border-radius-small);
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
.ap-card--skeleton {
|
|
1618
|
+
pointer-events: none;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
.ap-card--skeleton .ap-card__author {
|
|
1622
|
+
display: flex;
|
|
1623
|
+
align-items: center;
|
|
1624
|
+
gap: var(--space-s);
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
.ap-skeleton--avatar {
|
|
1628
|
+
width: 2.5rem;
|
|
1629
|
+
height: 2.5rem;
|
|
1630
|
+
border-radius: 50%;
|
|
1631
|
+
flex-shrink: 0;
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
.ap-skeleton-lines {
|
|
1635
|
+
flex: 1;
|
|
1636
|
+
display: flex;
|
|
1637
|
+
flex-direction: column;
|
|
1638
|
+
gap: 0.4rem;
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
.ap-skeleton--name {
|
|
1642
|
+
height: 0.85rem;
|
|
1643
|
+
width: 40%;
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
.ap-skeleton--handle {
|
|
1647
|
+
height: 0.7rem;
|
|
1648
|
+
width: 25%;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.ap-skeleton-body {
|
|
1652
|
+
display: flex;
|
|
1653
|
+
flex-direction: column;
|
|
1654
|
+
gap: 0.5rem;
|
|
1655
|
+
margin-top: var(--space-s);
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
.ap-skeleton--line {
|
|
1659
|
+
height: 0.75rem;
|
|
1660
|
+
width: 100%;
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
.ap-skeleton--short {
|
|
1664
|
+
width: 60%;
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1667
|
+
.ap-skeleton-group {
|
|
1668
|
+
display: flex;
|
|
1669
|
+
flex-direction: column;
|
|
1670
|
+
gap: var(--space-m);
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1598
1673
|
/* ==========================================================================
|
|
1599
1674
|
Responsive
|
|
1600
1675
|
========================================================================== */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rmdes/indiekit-endpoint-activitypub",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.5",
|
|
4
4
|
"description": "ActivityPub federation endpoint for Indiekit via Fedify. Adds full fediverse support: actor, inbox, outbox, followers, following, syndication, and Mastodon migration.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"indiekit",
|
|
@@ -256,10 +256,14 @@
|
|
|
256
256
|
x-data="apInfiniteScroll()"
|
|
257
257
|
x-init="init()">
|
|
258
258
|
<div class="ap-load-more__sentinel" x-ref="sentinel"></div>
|
|
259
|
-
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done">
|
|
260
|
-
|
|
261
|
-
<span x-show="loading">{{ __("activitypub.reader.pagination.loading") }}</span>
|
|
259
|
+
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done && !loading">
|
|
260
|
+
{{ __("activitypub.reader.pagination.loadMore") }}
|
|
262
261
|
</button>
|
|
262
|
+
<div class="ap-skeleton-group" x-show="loading" x-cloak>
|
|
263
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
264
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
265
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
266
|
+
</div>
|
|
263
267
|
<p class="ap-load-more__done" x-show="done" x-cloak>{{ __("activitypub.reader.pagination.noMore") }}</p>
|
|
264
268
|
</div>
|
|
265
269
|
{% endif %}
|
|
@@ -283,10 +287,12 @@
|
|
|
283
287
|
<template x-if="tab.type === 'instance'">
|
|
284
288
|
<div class="ap-explore-instance-panel">
|
|
285
289
|
|
|
286
|
-
{#
|
|
287
|
-
<div class="ap-
|
|
290
|
+
{# Skeleton loaders — first load, no content yet #}
|
|
291
|
+
<div class="ap-skeleton-group"
|
|
288
292
|
x-show="tabState[tab._id] && tabState[tab._id].loading && !tabState[tab._id].html">
|
|
289
|
-
|
|
293
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
294
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
295
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
290
296
|
</div>
|
|
291
297
|
|
|
292
298
|
{# Error state with retry #}
|
|
@@ -304,7 +310,7 @@
|
|
|
304
310
|
x-html="tabState[tab._id] ? tabState[tab._id].html : ''">
|
|
305
311
|
</div>
|
|
306
312
|
|
|
307
|
-
{# Load more button +
|
|
313
|
+
{# Load more button + skeleton loaders for subsequent pages #}
|
|
308
314
|
<div class="ap-load-more"
|
|
309
315
|
x-show="tabState[tab._id] && tabState[tab._id].html && !tabState[tab._id].done">
|
|
310
316
|
<button class="ap-load-more__btn"
|
|
@@ -313,10 +319,11 @@
|
|
|
313
319
|
:disabled="tabState[tab._id]?.loading">
|
|
314
320
|
{{ __("activitypub.reader.pagination.loadMore") }}
|
|
315
321
|
</button>
|
|
316
|
-
<
|
|
322
|
+
<div class="ap-skeleton-group"
|
|
317
323
|
x-show="tabState[tab._id]?.loading">
|
|
318
|
-
{
|
|
319
|
-
|
|
324
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
325
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
326
|
+
</div>
|
|
320
327
|
</div>
|
|
321
328
|
|
|
322
329
|
{# Empty state — loaded successfully but no posts #}
|
|
@@ -347,10 +354,12 @@
|
|
|
347
354
|
x-text="hashtagSourcesLine(tab)"
|
|
348
355
|
x-cloak></p>
|
|
349
356
|
|
|
350
|
-
{#
|
|
351
|
-
<div class="ap-
|
|
357
|
+
{# Skeleton loaders — first load, no content yet #}
|
|
358
|
+
<div class="ap-skeleton-group"
|
|
352
359
|
x-show="tabState[tab._id] && tabState[tab._id].loading && !tabState[tab._id].html">
|
|
353
|
-
|
|
360
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
361
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
362
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
354
363
|
</div>
|
|
355
364
|
|
|
356
365
|
{# Error state with retry #}
|
|
@@ -368,7 +377,7 @@
|
|
|
368
377
|
x-html="tabState[tab._id] ? tabState[tab._id].html : ''">
|
|
369
378
|
</div>
|
|
370
379
|
|
|
371
|
-
{# Load more button +
|
|
380
|
+
{# Load more button + skeleton loaders for subsequent pages #}
|
|
372
381
|
<div class="ap-load-more"
|
|
373
382
|
x-show="tabState[tab._id] && tabState[tab._id].html && !tabState[tab._id].done">
|
|
374
383
|
<button class="ap-load-more__btn"
|
|
@@ -377,10 +386,11 @@
|
|
|
377
386
|
:disabled="tabState[tab._id]?.loading">
|
|
378
387
|
{{ __("activitypub.reader.pagination.loadMore") }}
|
|
379
388
|
</button>
|
|
380
|
-
<
|
|
389
|
+
<div class="ap-skeleton-group"
|
|
381
390
|
x-show="tabState[tab._id]?.loading">
|
|
382
|
-
{
|
|
383
|
-
|
|
391
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
392
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
393
|
+
</div>
|
|
384
394
|
</div>
|
|
385
395
|
|
|
386
396
|
{# Empty state — no instance tabs pinned yet #}
|
|
@@ -150,10 +150,14 @@
|
|
|
150
150
|
x-data="apInfiniteScroll()"
|
|
151
151
|
x-init="init()">
|
|
152
152
|
<div class="ap-load-more__sentinel" x-ref="sentinel"></div>
|
|
153
|
-
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done">
|
|
154
|
-
|
|
155
|
-
<span x-show="loading">{{ __("activitypub.reader.pagination.loading") }}</span>
|
|
153
|
+
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done && !loading">
|
|
154
|
+
{{ __("activitypub.reader.pagination.loadMore") }}
|
|
156
155
|
</button>
|
|
156
|
+
<div class="ap-skeleton-group" x-show="loading" x-cloak>
|
|
157
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
158
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
159
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
160
|
+
</div>
|
|
157
161
|
<p class="ap-load-more__done" x-show="done" x-cloak>{{ __("activitypub.reader.pagination.noMore") }}</p>
|
|
158
162
|
</div>
|
|
159
163
|
{% endif %}
|
|
@@ -75,10 +75,14 @@
|
|
|
75
75
|
x-data="apInfiniteScroll()"
|
|
76
76
|
x-init="init()">
|
|
77
77
|
<div class="ap-load-more__sentinel" x-ref="sentinel"></div>
|
|
78
|
-
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done">
|
|
79
|
-
|
|
80
|
-
<span x-show="loading">{{ __("activitypub.reader.pagination.loading") }}</span>
|
|
78
|
+
<button class="ap-load-more__btn" @click="loadMore()" :disabled="loading" x-show="!done && !loading">
|
|
79
|
+
{{ __("activitypub.reader.pagination.loadMore") }}
|
|
81
80
|
</button>
|
|
81
|
+
<div class="ap-skeleton-group" x-show="loading" x-cloak>
|
|
82
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
83
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
84
|
+
{% include "partials/ap-skeleton-card.njk" %}
|
|
85
|
+
</div>
|
|
82
86
|
<p class="ap-load-more__done" x-show="done">{{ __("activitypub.reader.pagination.noMore") }}</p>
|
|
83
87
|
</div>
|
|
84
88
|
{% endif %}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{# Skeleton loading card — animated placeholder while content loads #}
|
|
2
|
+
<div class="ap-card ap-card--skeleton" aria-hidden="true">
|
|
3
|
+
<header class="ap-card__author">
|
|
4
|
+
<div class="ap-skeleton ap-skeleton--avatar"></div>
|
|
5
|
+
<div class="ap-skeleton-lines">
|
|
6
|
+
<div class="ap-skeleton ap-skeleton--name"></div>
|
|
7
|
+
<div class="ap-skeleton ap-skeleton--handle"></div>
|
|
8
|
+
</div>
|
|
9
|
+
</header>
|
|
10
|
+
<div class="ap-skeleton-body">
|
|
11
|
+
<div class="ap-skeleton ap-skeleton--line"></div>
|
|
12
|
+
<div class="ap-skeleton ap-skeleton--line"></div>
|
|
13
|
+
<div class="ap-skeleton ap-skeleton--line ap-skeleton--short"></div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|