@anthusai/papyrus 5.46.0 → 5.47.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.
@@ -34,6 +34,10 @@ body:has(.newsroom-organizer)>[data-staging-banner]{flex-shrink:0}
34
34
  .organizer-bottom-nav{display:none}
35
35
  .organizer-bottom-nav button{appearance:none;border:0;background:transparent;color:inherit}
36
36
  .organizer-main:has(.organizer-native-board){display:flex;overflow:hidden}
37
+ @media (min-width:768px){
38
+ .organizer-main:has(>[data-category-steering]>[data-news-desk-section=references]){display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
39
+ .organizer-main>[data-category-steering]:has(>[data-news-desk-section=references]){display:flex;flex-direction:column;flex:1;min-height:0}
40
+ }
37
41
  .organizer-native-board{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;gap:8px}
38
42
  .organizer-board-view-toggle{display:flex;gap:4px;flex-shrink:0}
39
43
  .organizer-header-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border:1px solid var(--org-line);font:inherit;color:inherit;background:transparent;text-decoration:none;white-space:nowrap;cursor:pointer}
@@ -770,7 +770,7 @@ export function NewsroomReferencesView({
770
770
 
771
771
  return (
772
772
  <div
773
- className="flex min-h-0 flex-1 flex-col gap-4 md:max-h-[calc(100dvh-8.5rem)] md:flex-row"
773
+ className="flex min-h-0 flex-1 flex-col gap-4 md:max-h-[100dvh] md:flex-row"
774
774
  data-detail-reserved={view === "feed" ? "true" : undefined}
775
775
  data-news-desk-section="references"
776
776
  data-detail-open={selectedReference || routeLineageId ? "true" : "false"}
@@ -293,7 +293,7 @@ export function FeedCard({
293
293
  </span>
294
294
  </button>
295
295
 
296
- <div className="relative bg-[var(--feed-footer)] p-3" data-feed-actions>
296
+ <div className="relative bg-[var(--feed-footer)] px-4 pb-4 pt-3" data-feed-actions>
297
297
  <RatingGrid
298
298
  answer={chosen}
299
299
  decided={answer}
@@ -303,6 +303,7 @@ export function FeedCard({
303
303
  note={reasonLabel ? `Reason: ${reasonLabel}` : null}
304
304
  onChoose={(choice) => { if (!disabledReason) store.choose(item.lineageId, choice); }}
305
305
  prediction={decision ? predictionFromDecision(decision) : predictionLoading ? { state: "loading" } : { state: "none" }}
306
+ statusOverlay
306
307
  />
307
308
  {rating.askReason ? (
308
309
  // Covers the footer rather than adding to it, so asking for a reason never pushes the cards below it down.
@@ -47,6 +47,7 @@ export function RatingGrid({
47
47
  prediction,
48
48
  showPrediction = true,
49
49
  size = "compact",
50
+ statusOverlay = false,
50
51
  surface = "footer",
51
52
  }: {
52
53
  /** The side the buttons show as chosen (it may be a pending choice that is still saving). */
@@ -63,6 +64,8 @@ export function RatingGrid({
63
64
  /** False for a card with nothing to predict (an AI draft): the Cyclotron row and the "You" label are left out and only the two buttons remain. */
64
65
  showPrediction?: boolean;
65
66
  size?: "compact" | "large";
67
+ /** Lay the Saved / note line over the bottom padding of the nearest positioned ancestor, so it adds no height under the buttons. */
68
+ statusOverlay?: boolean;
66
69
  /** The tone the grid sits on, so the bar's centre notch matches it. */
67
70
  surface?: "footer" | "card";
68
71
  }) {
@@ -78,7 +81,7 @@ export function RatingGrid({
78
81
  return (
79
82
  <div
80
83
  className={cn(
81
- "grid gap-x-2 gap-y-2.5",
84
+ "grid gap-x-2 gap-y-2",
82
85
  showPrediction ? "grid-cols-[4.5rem_minmax(0,1fr)_minmax(0,1fr)]" : "grid-cols-2",
83
86
  showPrediction && size === "large" && "grid-cols-[5rem_minmax(0,1fr)_minmax(0,1fr)]",
84
87
  )}
@@ -113,7 +116,7 @@ export function RatingGrid({
113
116
  </span>
114
117
  );
115
118
  })}
116
- <div className="col-span-2 col-start-2 flex flex-col gap-1" data-confidence>
119
+ <div className="col-span-2 col-start-2 flex flex-col justify-center" data-confidence>
117
120
  <div
118
121
  aria-label={ready ? `Cyclotron confidence: leans ${leansAccept ? "Accept" : "Reject"}, ${Math.round(confidenceFillPercent(probability))} percent of the way` : "No confidence"}
119
122
  className="relative h-2.5 w-full overflow-hidden rounded-full bg-[var(--feed-control)]"
@@ -131,9 +134,9 @@ export function RatingGrid({
131
134
  ) : null}
132
135
  <span aria-hidden="true" className={cn("absolute inset-y-0 left-1/2 w-1 -translate-x-1/2", surface === "footer" ? "bg-[var(--feed-footer)]" : "bg-[var(--feed-card)]")} />
133
136
  </div>
134
- {/* The line is always there, so a prediction arriving later never changes the card's height. */}
135
- <small className="min-h-4 text-center text-xs text-muted-foreground" data-cyclotron-state={prediction.state === "ready" ? undefined : prediction.state}>
136
- {prediction.state === "ready" ? "\u00a0" : prediction.state === "loading" ? "Loading…" : prediction.state === "error" ? "Prediction unavailable" : "No prediction"}
137
+ {/* Screen-reader status only: a visible line under the bar would push it off the middle between the Cyclotron and You rows. */}
138
+ <small className="sr-only" data-cyclotron-state={prediction.state === "ready" ? undefined : prediction.state}>
139
+ {prediction.state === "ready" ? "" : prediction.state === "loading" ? "Loading…" : prediction.state === "error" ? "Prediction unavailable" : "No prediction"}
137
140
  </small>
138
141
  </div>
139
142
  </div> : null}
@@ -165,7 +168,7 @@ export function RatingGrid({
165
168
  })}
166
169
  </div>
167
170
 
168
- <div className={cn("flex min-h-5 flex-wrap items-center gap-x-3 text-xs text-muted-foreground", showPrediction ? "col-span-3" : "col-span-2")} data-feed-saved role="status">
171
+ <div className={cn("flex flex-wrap items-center gap-x-3 text-xs text-muted-foreground", statusOverlay ? "absolute inset-x-4 bottom-0 h-4 overflow-hidden leading-4" : cn("min-h-5", showPrediction ? "col-span-3" : "col-span-2"))} data-feed-saved role="status">
169
172
  {note ? <span data-feed-reason>{note}</span> : null}
170
173
  {feedback.phase === "saving" ? <span className="inline-flex items-center gap-1"><Loader2Icon aria-hidden="true" className="size-3.5 animate-spin" />Saving…</span> : null}
171
174
  {feedback.phase === "saved" ? <span className="inline-flex items-center gap-1" data-review-saved><CheckIcon aria-hidden="true" className="size-3.5" />Saved</span> : null}
package/package.json CHANGED
@@ -486,7 +486,7 @@
486
486
  "optional": true
487
487
  }
488
488
  },
489
- "version": "5.46.0",
489
+ "version": "5.47.0",
490
490
  "dependencies": {
491
491
  "@aws-amplify/adapter-nextjs": "^1.7.3",
492
492
  "@aws-crypto/sha256-js": "5.2.0",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.46.0",
2
+ "version": "5.47.0",
3
3
  "routes": [
4
4
  {
5
5
  "file": "app/%5F_preview/[[...path]]/route.ts",