birdclaw 0.8.4 → 0.9.0
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/CHANGELOG.md +31 -0
- package/README.md +22 -2
- package/dist/cli/birdclaw.js +1233 -192
- package/dist/client/assets/AvatarChip-C8zELEVt.js +1 -0
- package/dist/client/assets/ProfilePreview-CsiLpFrb.js +1 -0
- package/dist/client/assets/SavedTimelineView-DE4CXK-h.js +1 -0
- package/dist/client/assets/SmartTimestamp-BypN4KPq.js +1 -0
- package/dist/client/assets/TimelineRouteFrame-D6djyMAT.js +1 -0
- package/dist/client/assets/blocks-h27nF3TL.js +1 -0
- package/dist/client/assets/{bookmarks-CbBkMvXk.js → bookmarks-Cprrli-V.js} +1 -1
- package/dist/client/assets/circle-check-BCK_qvXt.js +1 -0
- package/dist/client/assets/client-stream-contracts-D1QUdWfh.js +5 -0
- package/dist/client/assets/createLucideIcon-CMLcIxOz.js +1 -0
- package/dist/client/assets/data-sources-Beb3JZkl.js +1 -0
- package/dist/client/assets/discuss-ciwVz7Fo.js +1 -0
- package/dist/client/assets/dms-BZ3GUPey.js +1 -0
- package/dist/client/assets/inbox-Dajdut79.js +1 -0
- package/dist/client/assets/index-a1ZAcWSa.js +31 -0
- package/dist/client/assets/likes-CxZZqiZC.js +1 -0
- package/dist/client/assets/links-CsWS9uKL.js +1 -0
- package/dist/client/assets/mapbox-dx7h2mOm.js +2 -0
- package/dist/client/assets/{mapbox-gl-dgf_hX3a.js → mapbox-gl-WUhsQcSS.js} +1 -1
- package/dist/client/assets/{mentions-CxKCgzIf.js → mentions-C3JYXV2K.js} +1 -1
- package/dist/client/assets/network-map-D4XA7TTO.js +2 -0
- package/dist/client/assets/profile-analyze-QAznTMjZ.js +1 -0
- package/dist/client/assets/{profile-hydration-client-YEtJsNTv.js → profile-hydration-client-BQyC5--e.js} +1 -1
- package/dist/client/assets/profiles._handle-qntfbCE1.js +1 -0
- package/dist/client/assets/query-client-DZ5C7UNo.js +17 -0
- package/dist/client/assets/rate-limits-eHs_5dDB.js +1 -0
- package/dist/client/assets/react-BwGzW7mM.js +1 -0
- package/dist/client/assets/react-dom-DEMAB80t.js +1 -0
- package/dist/client/assets/{repeat-2-xCwHM9hD.js → repeat-2-CQ0lek01.js} +1 -1
- package/dist/client/assets/rolldown-runtime-B-9mzPXz.js +1 -0
- package/dist/client/assets/{routes-q7ZaW4En.js → routes-CeIv5bkV.js} +1 -1
- package/dist/client/assets/schemas-CntsNLmN.js +64 -0
- package/dist/client/assets/search-C_LqodNa.js +1 -0
- package/dist/client/assets/{sparkles-CQVlvHsZ.js → sparkles-Gx_BHkDX.js} +1 -1
- package/dist/client/assets/styles-DTMajAmk.css +2 -0
- package/dist/client/assets/today-DxppbQGF.js +1 -0
- package/dist/client/assets/{triangle-alert-CBL7s2pf.js → triangle-alert-DJPCW6jQ.js} +1 -1
- package/dist/client/assets/useTimelineRouteData-CWvBmHLE.js +1 -0
- package/dist/client/assets/{users-CHbKlqUr.js → users-DI3w8Mol.js} +1 -1
- package/dist/server/assets/{AvatarChip-zUDAEmjL.js → AvatarChip-DWag3IzT.js} +1 -1
- package/dist/server/assets/{FeedState-ntW0Q2GB.js → FeedState-CwzcvP-p.js} +1 -1
- package/dist/server/assets/{ProfileAnalysisStream-BFvhVdhn.js → ProfileAnalysisStream-CLjrYzEx.js} +2 -2
- package/dist/server/assets/{ProfilePreview-C6gAor_j.js → ProfilePreview-Bq-DSUM2.js} +7 -8
- package/dist/server/assets/{SavedTimelineView-BG1jnBp1.js → SavedTimelineView-Bk9nfnb-.js} +2 -2
- package/dist/server/assets/{SmartTimestamp-DfwE1NGf.js → SmartTimestamp-C06w_f9J.js} +1 -1
- package/dist/server/assets/SyncNowButton-CKuXKYcd.js +259 -0
- package/dist/server/assets/{TimelineRouteFrame-CU7ilM7U.js → TimelineRouteFrame-Bg3e7X_N.js} +5 -3
- package/dist/server/assets/{TweetRichText-DhCVv1-6.js → TweetRichText-wzUAtbPS.js} +2 -2
- package/dist/server/assets/{_tanstack-start-manifest_v-C-ZRnG_n.js → _tanstack-start-manifest_v-CjYYXQ8Z.js} +35 -35
- package/dist/server/assets/{blocks-DSgQghqP.js → blocks-CaP_u3mY.js} +3 -3
- package/dist/server/assets/{blocks-C1mgGTB3.js → blocks-DKy4yTF-.js} +3 -3
- package/dist/server/assets/{bookmarks-BJN8tykY.js → bookmarks-CPFq3JVX.js} +1 -1
- package/dist/server/assets/{client-stream-contracts-C2xbWVjm.js → client-stream-contracts-gtXEreFY.js} +72 -8
- package/dist/server/assets/{data-sources-BnA1Q94p.js → data-sources-DWwmQqcO.js} +1 -1
- package/dist/server/assets/{discuss-CJ1dau1j.js → discuss-BB8wFy4L.js} +3 -3
- package/dist/server/assets/{discuss-QTo08NCN.js → discuss-CVGB4_I0.js} +3 -3
- package/dist/server/assets/{dms-DAyQrVM2.js → dms-7NzdyQZQ.js} +6 -6
- package/dist/server/assets/{dms-BuLj4bp8.js → dms-vbEumuuO.js} +4 -4
- package/dist/server/assets/{empty-plugin-adapters-DzrEkdBF.js → empty-plugin-adapters-D9UWiqvJ.js} +1 -1
- package/dist/server/assets/{inbox-CkGOaW1q.js → inbox-CBeZctFd.js} +2 -2
- package/dist/server/assets/{inbox-DpWd1EzC.js → inbox-UpHhXODd.js} +4 -4
- package/dist/server/assets/{likes-DBOAtsJU.js → likes-CDAjYyTm.js} +1 -1
- package/dist/server/assets/{links-DAhSjynu.js → links-DU-TIHtg.js} +6 -6
- package/dist/server/assets/{links-DmH5lxHO.js → links-sQ3q2jvO.js} +6 -6
- package/dist/server/assets/{mentions-BH2MzKtB.js → mentions-DdndGSRw.js} +1 -1
- package/dist/server/assets/{network-map-D3CzRcC4.js → network-map-B9iOapuB.js} +2 -2
- package/dist/server/assets/{network-map-D5DoLOwR.js → network-map-CcOz-T9O.js} +2 -2
- package/dist/server/assets/{profile-analyze-C1NoM0tV.js → profile-analyze-BmDeTif5.js} +1 -1
- package/dist/server/assets/{profile-analyze-BP65PED0.js → profile-analyze-CUfXmXEH.js} +3 -3
- package/dist/server/assets/{profiles._handle-DsLNj2Ca.js → profiles._handle-8snagiR1.js} +4 -4
- package/dist/server/assets/{profiles._handle-DjwlN_ac.js → profiles._handle-BAqnghwo.js} +5 -5
- package/dist/server/assets/{rate-limits-VAr2qzYD.js → rate-limits-BY2-aQPT.js} +1 -1
- package/dist/server/assets/{router-DqkwSPiM.js → router-DP7iZD-q.js} +424 -128
- package/dist/server/assets/{routes-A9c9ZhwN.js → routes-D9226vKz.js} +1 -1
- package/dist/server/assets/start-5Z2QO8AU.js +4 -0
- package/dist/server/assets/{today-B5hVM57Z.js → today-BmvIMJzI.js} +3 -3
- package/dist/server/assets/{today-fvGiZ7ud.js → today-DKWphGrC.js} +112 -57
- package/dist/server/assets/{ui-qbmcMSSX.js → ui-rDHeS-cc.js} +2 -1
- package/dist/server/assets/{useTimelineRouteData-27cxynxa.js → useTimelineRouteData-BmDbGvQ8.js} +7 -7
- package/dist/server/server.js +50 -3413
- package/package.json +13 -13
- package/dist/client/assets/AvatarChip-DLoqM5xD.js +0 -1
- package/dist/client/assets/ProfilePreview-BejAuYsJ.js +0 -1
- package/dist/client/assets/SavedTimelineView-BIS7HKpp.js +0 -1
- package/dist/client/assets/SmartTimestamp-BR0-9se2.js +0 -1
- package/dist/client/assets/TimelineRouteFrame-CyGPj0eM.js +0 -1
- package/dist/client/assets/blocks-7UDKQp8H.js +0 -1
- package/dist/client/assets/chunk-C0phanGV.js +0 -1
- package/dist/client/assets/circle-check-C_Vq3ElD.js +0 -1
- package/dist/client/assets/client-stream-contracts-ys3XhWG4.js +0 -5
- package/dist/client/assets/createLucideIcon-JV8isFFR.js +0 -1
- package/dist/client/assets/data-sources-Cm2bpNvg.js +0 -1
- package/dist/client/assets/discuss-DTjaOugw.js +0 -1
- package/dist/client/assets/dms-CGd6Eogq.js +0 -1
- package/dist/client/assets/inbox-BHlGuOy2.js +0 -1
- package/dist/client/assets/index-CEIG7S6s.js +0 -31
- package/dist/client/assets/likes-cLrcAQem.js +0 -1
- package/dist/client/assets/links-CM9QO1LC.js +0 -1
- package/dist/client/assets/mapbox-BxTlqXt9.js +0 -2
- package/dist/client/assets/network-map-B5a3whqj.js +0 -2
- package/dist/client/assets/profile-analyze-CRtNEwlb.js +0 -1
- package/dist/client/assets/profiles._handle-C82_HoKX.js +0 -1
- package/dist/client/assets/query-client-fYu2rzRC.js +0 -17
- package/dist/client/assets/rate-limits-ScaEwdVK.js +0 -1
- package/dist/client/assets/react-dom-DHl6Ug7F.js +0 -1
- package/dist/client/assets/react-nBylq1U5.js +0 -1
- package/dist/client/assets/schemas-I9r6F6ya.js +0 -64
- package/dist/client/assets/search-Dq5kYsxA.js +0 -1
- package/dist/client/assets/styles-B8s3tt3r.css +0 -2
- package/dist/client/assets/today-CeG1O7Py.js +0 -1
- package/dist/client/assets/useTimelineRouteData-1HsqgvUi.js +0 -1
- package/dist/server/assets/SyncNowButton-BOn_IBXS.js +0 -76
- package/dist/server/assets/start-FaDOTmto.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as TimelineRouteFrame } from "./TimelineRouteFrame-
|
|
1
|
+
import { t as TimelineRouteFrame } from "./TimelineRouteFrame-Bg3e7X_N.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
//#region src/routes/index.tsx?tsr-split=component
|
|
4
4
|
function homeSubtitle(meta) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./ui-
|
|
2
|
-
import "./client-stream-contracts-
|
|
1
|
+
import "./ui-rDHeS-cc.js";
|
|
2
|
+
import "./client-stream-contracts-gtXEreFY.js";
|
|
3
3
|
import "./profile-hydration-client-GJ4kwJS8.js";
|
|
4
4
|
import { s as validateTodaySearch } from "./route-search-BUlQ5lGM.js";
|
|
5
5
|
import "react";
|
|
@@ -8,7 +8,7 @@ import "react/jsx-runtime";
|
|
|
8
8
|
import "lucide-react";
|
|
9
9
|
import "@tanstack/react-query";
|
|
10
10
|
//#region src/routes/today.tsx
|
|
11
|
-
var $$splitComponentImporter = () => import("./today-
|
|
11
|
+
var $$splitComponentImporter = () => import("./today-DKWphGrC.js");
|
|
12
12
|
var Route$1 = createFileRoute("/today")({
|
|
13
13
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
14
14
|
validateSearch: validateTodaySearch
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Dt as pageSubtitleClass, Et as pageHeaderRowClass,
|
|
2
|
-
import { a as useNdjsonRun, n as periodDigestStreamEventSchema, o as MarkdownViewer, t as isTerminalStreamEvent } from "./client-stream-contracts-
|
|
1
|
+
import { Dt as pageSubtitleClass, Et as pageHeaderRowClass, Jt as segmentedClass, Ot as pageTitleClass, Tt as pageHeaderClass, Wt as secondaryButtonClass, m as cx, q as errorCopyClass, qt as segmentClass, wt as pageHeaderActionsClass } from "./ui-rDHeS-cc.js";
|
|
2
|
+
import { a as useNdjsonRun, n as periodDigestStreamEventSchema, o as MarkdownViewer, t as isTerminalStreamEvent } from "./client-stream-contracts-gtXEreFY.js";
|
|
3
3
|
import { n as normalizeProfileHydrationHandle, t as hydrateProfileHandles } from "./profile-hydration-client-GJ4kwJS8.js";
|
|
4
4
|
import { s as validateTodaySearch } from "./route-search-BUlQ5lGM.js";
|
|
5
|
-
import { t as Route$1 } from "./today-
|
|
5
|
+
import { t as Route$1 } from "./today-BmvIMJzI.js";
|
|
6
6
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { CheckCircle2, Loader2, RefreshCw, Sparkles } from "lucide-react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { CheckCircle2, FileDown, Loader2, RefreshCw, Sparkles } from "lucide-react";
|
|
9
9
|
import { useQueryClient } from "@tanstack/react-query";
|
|
10
10
|
//#region src/routes/today.tsx?tsr-split=component
|
|
11
11
|
var PROFILE_HYDRATION_LIMIT = 12;
|
|
@@ -29,6 +29,23 @@ var periods = [
|
|
|
29
29
|
label: "Week"
|
|
30
30
|
}
|
|
31
31
|
];
|
|
32
|
+
function periodLabel(period) {
|
|
33
|
+
return periods.find((item) => item.value === period)?.label ?? "Digest";
|
|
34
|
+
}
|
|
35
|
+
function exportCurrentDigestPdf(title) {
|
|
36
|
+
const previousTitle = document.title;
|
|
37
|
+
let cleanedUp = false;
|
|
38
|
+
const cleanup = () => {
|
|
39
|
+
if (cleanedUp) return;
|
|
40
|
+
cleanedUp = true;
|
|
41
|
+
document.title = previousTitle;
|
|
42
|
+
window.removeEventListener("afterprint", cleanup);
|
|
43
|
+
};
|
|
44
|
+
document.title = title;
|
|
45
|
+
window.addEventListener("afterprint", cleanup, { once: true });
|
|
46
|
+
window.setTimeout(cleanup, 3e3);
|
|
47
|
+
window.print();
|
|
48
|
+
}
|
|
32
49
|
function digestUrl(period, includeDms, refresh) {
|
|
33
50
|
const url = new URL("/api/period-digest", window.location.origin);
|
|
34
51
|
url.searchParams.set("period", period);
|
|
@@ -206,62 +223,100 @@ function TodayRouteView({ searchState: controlledSearch, onSearchChange } = {})
|
|
|
206
223
|
const updateSearch = (next, options) => onSearchChange ? onSearchChange(next, options) : setLocalSearch(next);
|
|
207
224
|
const { period, includeDms } = searchState;
|
|
208
225
|
const { context, error, loading, markdown, result, run, status } = useDigestStream(period, includeDms);
|
|
226
|
+
useEffect(() => {
|
|
227
|
+
const root = document.documentElement;
|
|
228
|
+
root.classList.add("today-pdf-route");
|
|
229
|
+
return () => root.classList.remove("today-pdf-route");
|
|
230
|
+
}, []);
|
|
209
231
|
const sourceLabel = useMemo(() => formatCounts(result?.context ?? context), [context, result]);
|
|
232
|
+
const digestLabel = result?.context.window.label ?? context?.window.label ?? periodLabel(period);
|
|
233
|
+
const canExportPdf = Boolean(result?.markdown.trim()) && !loading;
|
|
234
|
+
const exportTitle = `BirdClaw ${digestLabel} digest`;
|
|
235
|
+
const exportUpdatedAt = result ? new Date(result.updatedAt).toLocaleString(void 0, {
|
|
236
|
+
dateStyle: "medium",
|
|
237
|
+
timeStyle: "short"
|
|
238
|
+
}) : null;
|
|
239
|
+
const handleExportPdf = useCallback(() => {
|
|
240
|
+
if (!canExportPdf) return;
|
|
241
|
+
exportCurrentDigestPdf(exportTitle);
|
|
242
|
+
}, [canExportPdf, exportTitle]);
|
|
210
243
|
return /* @__PURE__ */ jsxs("div", {
|
|
211
|
-
className: "flex min-h-screen flex-col",
|
|
244
|
+
className: "today-pdf-root flex min-h-screen flex-col",
|
|
212
245
|
children: [
|
|
213
246
|
/* @__PURE__ */ jsxs("header", {
|
|
214
|
-
className: pageHeaderClass,
|
|
215
|
-
children: [
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
247
|
+
className: cx("today-pdf-header", pageHeaderClass),
|
|
248
|
+
children: [
|
|
249
|
+
/* @__PURE__ */ jsxs("div", {
|
|
250
|
+
className: pageHeaderRowClass,
|
|
251
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
252
|
+
className: "min-w-0",
|
|
253
|
+
children: [/* @__PURE__ */ jsx("h1", {
|
|
254
|
+
className: pageTitleClass,
|
|
255
|
+
children: "What happened"
|
|
256
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
257
|
+
className: pageSubtitleClass,
|
|
258
|
+
children: sourceLabel
|
|
259
|
+
})]
|
|
260
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
261
|
+
className: cx("today-screen-only", pageHeaderActionsClass),
|
|
262
|
+
children: [canExportPdf ? /* @__PURE__ */ jsxs("button", {
|
|
263
|
+
type: "button",
|
|
264
|
+
className: secondaryButtonClass,
|
|
265
|
+
onClick: handleExportPdf,
|
|
266
|
+
children: [/* @__PURE__ */ jsx(FileDown, {
|
|
267
|
+
className: "size-4",
|
|
268
|
+
"aria-hidden": "true"
|
|
269
|
+
}), "Export PDF"]
|
|
270
|
+
}) : null, /* @__PURE__ */ jsxs("button", {
|
|
271
|
+
type: "button",
|
|
272
|
+
className: secondaryButtonClass,
|
|
273
|
+
onClick: () => run(true),
|
|
274
|
+
disabled: loading,
|
|
275
|
+
children: [/* @__PURE__ */ jsx(RefreshCw, {
|
|
276
|
+
className: cx("size-4", loading && "animate-spin"),
|
|
277
|
+
"aria-hidden": "true"
|
|
278
|
+
}), "Refresh"]
|
|
279
|
+
})]
|
|
225
280
|
})]
|
|
226
|
-
}),
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
},
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
})
|
|
262
|
-
})
|
|
263
|
-
})
|
|
264
|
-
|
|
281
|
+
}),
|
|
282
|
+
/* @__PURE__ */ jsxs("div", {
|
|
283
|
+
className: "today-pdf-meta",
|
|
284
|
+
"aria-hidden": "true",
|
|
285
|
+
children: [
|
|
286
|
+
/* @__PURE__ */ jsx("span", { children: digestLabel }),
|
|
287
|
+
/* @__PURE__ */ jsx("span", { children: "·" }),
|
|
288
|
+
/* @__PURE__ */ jsxs("span", { children: ["Sources: ", sourceLabel] }),
|
|
289
|
+
exportUpdatedAt ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", { children: "·" }), /* @__PURE__ */ jsxs("span", { children: ["Generated ", exportUpdatedAt] })] }) : null
|
|
290
|
+
]
|
|
291
|
+
}),
|
|
292
|
+
/* @__PURE__ */ jsxs("div", {
|
|
293
|
+
className: "today-screen-only flex flex-wrap items-center gap-2 px-4 pb-3",
|
|
294
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
295
|
+
className: segmentedClass,
|
|
296
|
+
"aria-label": "Digest period",
|
|
297
|
+
children: periods.map((item) => /* @__PURE__ */ jsx("button", {
|
|
298
|
+
type: "button",
|
|
299
|
+
"aria-pressed": period === item.value,
|
|
300
|
+
className: cx(segmentClass, period === item.value && "bg-[var(--accent-soft)]! text-[var(--accent)]! shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--accent)_36%,transparent)]"),
|
|
301
|
+
onClick: () => updateSearch({
|
|
302
|
+
...searchState,
|
|
303
|
+
period: item.value
|
|
304
|
+
}),
|
|
305
|
+
children: item.label
|
|
306
|
+
}, item.value))
|
|
307
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
308
|
+
className: "inline-flex items-center gap-2 rounded-full border border-[var(--line)] px-3 py-1 text-[13px] font-medium text-[var(--ink-soft)]",
|
|
309
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
310
|
+
type: "checkbox",
|
|
311
|
+
checked: includeDms,
|
|
312
|
+
onChange: (event) => updateSearch({
|
|
313
|
+
...searchState,
|
|
314
|
+
includeDms: event.currentTarget.checked
|
|
315
|
+
})
|
|
316
|
+
}), "DMs"]
|
|
317
|
+
})]
|
|
318
|
+
})
|
|
319
|
+
]
|
|
265
320
|
}),
|
|
266
321
|
error ? /* @__PURE__ */ jsxs("div", {
|
|
267
322
|
className: cx(errorCopyClass, "flex items-center justify-between gap-3"),
|
|
@@ -274,7 +329,7 @@ function TodayRouteView({ searchState: controlledSearch, onSearchChange } = {})
|
|
|
274
329
|
})]
|
|
275
330
|
}) : null,
|
|
276
331
|
/* @__PURE__ */ jsx("div", {
|
|
277
|
-
className: "border-b border-[var(--line)] px-4 py-2 text-[13px] text-[var(--ink-soft)]",
|
|
332
|
+
className: "today-screen-only border-b border-[var(--line)] px-4 py-2 text-[13px] text-[var(--ink-soft)]",
|
|
278
333
|
children: /* @__PURE__ */ jsxs("span", {
|
|
279
334
|
className: "inline-flex items-center gap-1",
|
|
280
335
|
children: [loading ? /* @__PURE__ */ jsx(Loader2, {
|
|
@@ -59,6 +59,7 @@ var dangerButtonClass = "inline-flex items-center justify-center gap-1.5 rounded
|
|
|
59
59
|
var segmentedClass = "inline-flex shrink-0 items-center gap-1 rounded-full border border-[var(--line)] bg-[var(--bg)] p-1";
|
|
60
60
|
var segmentClass = "rounded-full border-0 bg-transparent px-3 py-1 text-[13px] font-medium text-[var(--ink-soft)] capitalize transition-colors duration-150";
|
|
61
61
|
var segmentActiveClass = "bg-[var(--bg-active)] text-[var(--ink)]";
|
|
62
|
+
var segmentAccentActiveClass = "bg-[var(--accent-soft)]! text-[var(--accent)]! shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--accent)_36%,transparent)]";
|
|
62
63
|
var composerShellClass = "mt-2 flex flex-col gap-2 border-t border-[var(--line)] pt-3";
|
|
63
64
|
var composerInputClass = "min-h-[88px] w-full resize-y rounded-md border border-[var(--line)] bg-[var(--bg)] px-3 py-2.5 text-[15px] text-[var(--ink)] outline-none transition-colors duration-150 placeholder:text-[var(--ink-soft)] focus:border-[var(--accent)] focus:shadow-[0_0_0_1px_var(--accent)]";
|
|
64
65
|
var composerBarClass = "flex items-center justify-between gap-3";
|
|
@@ -134,4 +135,4 @@ var contextStatRowClass = "grid grid-cols-[minmax(0,1fr)_auto] items-center gap-
|
|
|
134
135
|
var contextStatTermClass = "min-w-0 text-[13px] text-[var(--ink-soft)]";
|
|
135
136
|
var contextStatValueClass = "shrink-0 whitespace-nowrap text-right text-[14px] font-bold text-[var(--ink)]";
|
|
136
137
|
//#endregion
|
|
137
|
-
export { feedRowBodyClass as $,
|
|
138
|
+
export { feedRowBodyClass as $, sidebarBrandMarkClass as $t, dmMessageRowClass as A, pillClass as At, embeddedCardClass as B, profilePreviewTriggerClass as Bt, dmListNameClass as C, navLinkLabelCompactClass as Ct, dmMessageBubbleInboundClass as D, pageSubtitleClass as Dt, dmMessageBubbleClass as E, pageHeaderRowClass as Et, dmThreadHeaderClass as F, profilePreviewClass as Ft, embeddedCardNameClass as G, segmentAccentActiveClass as Gt, embeddedCardHandleClass as H, searchFieldInputClass as Ht, dmThreadNameClass as I, profilePreviewHandleClass as It, feedActionButtonClass as J, segmentedClass as Jt, emptyStateClass as K, segmentActiveClass as Kt, dmThreadSubtitleClass as L, profilePreviewHeaderClass as Lt, dmMessagesClass as M, primaryButtonClass as Mt, dmShellClass as N, profilePreviewBioClass as Nt, dmMessageBubbleOutboundClass as O, pageTitleClass as Ot, dmThreadClass as P, profilePreviewCardClass as Pt, feedRowActionsClass as Q, sidebarBrandCopyCompactClass as Qt, dmThreadTitleClass as R, profilePreviewMetaClass as Rt, dmListItemClass as S, navLinkLabelClass as St, dmListTimestampClass as T, pageHeaderClass as Tt, embeddedCardHeaderClass as U, searchFieldShellClass as Ut, embeddedCardCopyClass as V, searchFieldIconClass as Vt, embeddedCardLabelClass as W, secondaryButtonClass as Wt, feedActionIconWrapClass as X, sidebarBrandClass as Xt, feedActionIconClass as Y, selectFieldClass as Yt, feedClass as Z, sidebarBrandCopyClass as Zt, dmListBodyClass as _, tweetMediaGridClass as _n, mutedDotClass as _t, blockRowClass as a, sidebarShellCompactClass as an, feedRowStatePillActiveClass as at, dmListHeaderClass as b, navLinkCompactClass as bt, composerBarClass as c, tabButtonActiveClass as cn, feedRowTextClass as ct, contextStatRowClass as d, tabStripClass as dn, linkPreviewCardClass as dt, sidebarBrandTaglineClass as en, feedRowClass as et, contextStatTermClass as f, textFieldClass as fn, linkPreviewDescClass as ft, dmComposerShellClass as g, tweetLinkClass as gn, mainColumnDmClass as gt, dangerButtonClass as h, tweetHashtagClass as hn, mainColumnClass as ht, blockRowBodyClass as i, sidebarShellClass as in, feedRowNameClass as it, dmMessageRowOutboundClass as j, pillSoftClass as jt, dmMessageMetaClass as k, pillAlertClass as kt, composerInputClass as l, tabButtonClass as ln, feedRowTimestampClass as lt, cx as m, timestampClass as mn, linkPreviewTitleClass as mt, avatarChipLargeClass as n, sidebarFooterClass as nn, feedRowHandleClass as nt, bodyClass as o, siteShellClass as on, feedRowStatePillClass as ot, contextStatValueClass as p, textFieldShortClass as pn, linkPreviewHostClass as pt, errorCopyClass as q, segmentClass as qt, avatarChipSmallClass as r, sidebarNavClass as rn, feedRowHeaderClass as rt, bodyCopyClass as s, statusCopyClass as sn, feedRowStatePillOpenClass as st, avatarChipClass as t, sidebarBrandTitleClass as tn, feedRowDotClass as tt, composerShellClass as u, tabButtonIndicatorClass as un, inboxAnalysisClass as ut, dmListClass as v, tweetMediaTileClass as vn, navLinkActiveClass as vt, dmListPreviewClass as w, pageHeaderActionsClass as wt, dmListItemActiveClass as x, navLinkIconClass as xt, dmListHandleClass as y, tweetMentionClass as yn, navLinkClass as yt, embeddedCardBodyClass as z, profilePreviewNameClass as zt };
|
package/dist/server/assets/{useTimelineRouteData-27cxynxa.js → useTimelineRouteData-BmDbGvQ8.js}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { $ as feedRowBodyClass, B as embeddedCardClass, Dt as pageSubtitleClass, Et as pageHeaderRowClass, G as embeddedCardNameClass, H as embeddedCardHandleClass, Ht as searchFieldInputClass, J as feedActionButtonClass, Ot as pageTitleClass, Q as feedRowActionsClass, Tt as pageHeaderClass, U as embeddedCardHeaderClass, Ut as searchFieldShellClass, V as embeddedCardCopyClass, Vt as searchFieldIconClass, W as embeddedCardLabelClass, X as feedActionIconWrapClass, Y as feedActionIconClass, Z as feedClass, _n as
|
|
1
|
+
import { $ as feedRowBodyClass, B as embeddedCardClass, Dt as pageSubtitleClass, Et as pageHeaderRowClass, G as embeddedCardNameClass, H as embeddedCardHandleClass, Ht as searchFieldInputClass, J as feedActionButtonClass, Ot as pageTitleClass, Q as feedRowActionsClass, Tt as pageHeaderClass, U as embeddedCardHeaderClass, Ut as searchFieldShellClass, V as embeddedCardCopyClass, Vt as searchFieldIconClass, W as embeddedCardLabelClass, X as feedActionIconWrapClass, Y as feedActionIconClass, Z as feedClass, _n as tweetMediaGridClass, at as feedRowStatePillActiveClass, ct as feedRowTextClass, dt as linkPreviewCardClass, et as feedRowClass, ft as linkPreviewDescClass, it as feedRowNameClass, lt as feedRowTimestampClass, m as cx, mt as linkPreviewTitleClass, nt as feedRowHandleClass, ot as feedRowStatePillClass, pt as linkPreviewHostClass, rt as feedRowHeaderClass, st as feedRowStatePillOpenClass, tt as feedRowDotClass, vn as tweetMediaTileClass, z as embeddedCardBodyClass } from "./ui-rDHeS-cc.js";
|
|
2
2
|
import { D as tweetConversationResponseSchema, a as fetchQueryEnvelope, d as runEffectPromise, i as fetchJsonEffect, n as queryKeys, o as fetchQueryResponse, r as fetchJson, s as postAction, x as linkPreviewResponseSchema } from "./query-client-BdauHBgd.js";
|
|
3
|
-
import { r as formatCompactNumber, t as AvatarChip } from "./AvatarChip-
|
|
3
|
+
import { r as formatCompactNumber, t as AvatarChip } from "./AvatarChip-DWag3IzT.js";
|
|
4
4
|
import { r as useSelectedAccountId } from "./account-selection-CTdFGWRk.js";
|
|
5
|
-
import { a as TweetSkeletonRows, n as FeedError, o as BirdclawEmpty, r as FeedLoading, s as BirdclawLoading, t as FeedEmpty } from "./FeedState-
|
|
6
|
-
import { d as isTweetArticleUrlEntity, f as normalizeTweetUrlEntityRangeForText, s as safeHttpUrl, t as ProfilePreview } from "./ProfilePreview-
|
|
7
|
-
import { t as SmartTimestamp } from "./SmartTimestamp-
|
|
5
|
+
import { a as TweetSkeletonRows, n as FeedError, o as BirdclawEmpty, r as FeedLoading, s as BirdclawLoading, t as FeedEmpty } from "./FeedState-CwzcvP-p.js";
|
|
6
|
+
import { d as isTweetArticleUrlEntity, f as normalizeTweetUrlEntityRangeForText, s as safeHttpUrl, t as ProfilePreview } from "./ProfilePreview-Bq-DSUM2.js";
|
|
7
|
+
import { t as SmartTimestamp } from "./SmartTimestamp-C06w_f9J.js";
|
|
8
8
|
import { t as useDebouncedValue } from "./useDebouncedValue-DOnA6Xcy.js";
|
|
9
|
-
import { t as TweetRichText } from "./TweetRichText-
|
|
9
|
+
import { t as TweetRichText } from "./TweetRichText-wzUAtbPS.js";
|
|
10
10
|
import { createContext, createElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { BookOpen, BookmarkCheck, CheckCircle2, Circle, ExternalLink, Heart, Image, MessageCircle, Repeat2, Search, UserSearch, X } from "lucide-react";
|
|
@@ -911,7 +911,7 @@ function TimelineFeedHeader({ title, subtitles, action, controls }) {
|
|
|
911
911
|
return /* @__PURE__ */ jsxs("header", {
|
|
912
912
|
className: pageHeaderClass,
|
|
913
913
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
914
|
-
className: pageHeaderRowClass
|
|
914
|
+
className: `${pageHeaderRowClass} flex-wrap`,
|
|
915
915
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
916
916
|
className: "flex min-w-0 flex-col",
|
|
917
917
|
children: [/* @__PURE__ */ jsx("h1", {
|