@stevecastaneda/paseo-progress 0.1.0 → 0.1.1

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/client/panel.tsx CHANGED
@@ -3,7 +3,7 @@ import { Icon } from "@getpaseo/plugin/client/react-native";
3
3
  import { DeliverablesList } from "./deliverables";
4
4
  import { LauncherBanner, SkillBanner } from "./launcher";
5
5
  import { AnsweredQuestionsList, QuestionsSection } from "./questions";
6
- import { Spinner, StalledPulse } from "./spinner";
6
+ import { Spinner, StalledPulse, WaitingDot } from "./spinner";
7
7
  import { IconSwap, Presence, StaggerRoot, nativeDriver } from "./motion";
8
8
  import { SectionTitle } from "./section-title";
9
9
  import { raised } from "./surfaces";
@@ -427,11 +427,11 @@ function TicketRow({ colors, ticket, live, now, onOpen, deliverables }: { colors
427
427
  <IconSwap swapKey={ticket.waitingFor ? "waiting" : ticket.status === "working" ? `working-${live}` : ticket.status} size={14}><StatusIcon colors={colors} status={ticket.status} live={live} waiting={Boolean(ticket.waitingFor)} /></IconSwap>
428
428
  </View>
429
429
  <View style={{ flex: 1, minWidth: 0, gap: 2 }}>
430
- {/* A paperclip before the title when the ticket has deliverables; they're listed in its dialog. */}
430
+ {/* The Deliverables tab's icon before the title when the ticket has deliverables; they're listed in its dialog. */}
431
431
  <View style={{ flexDirection: "row", gap: 6 }}>
432
432
  {deliverables ? (
433
433
  <View accessibilityLabel={deliverables === 1 ? "Has a deliverable" : `Has ${deliverables} deliverables`} style={{ height: 18, justifyContent: "center" }}>
434
- <Icon name="Paperclip" size={12} color={colors.foregroundMuted} />
434
+ <Icon name="Package" size={12} color={colors.foregroundMuted} />
435
435
  </View>
436
436
  ) : null}
437
437
  <Text style={{ flex: 1, color: muted ? colors.foregroundMuted : colors.foreground, fontSize: 13, lineHeight: 18, textDecorationLine: muted ? "line-through" : "none" }}>
@@ -463,7 +463,7 @@ function TicketRow({ colors, ticket, live, now, onOpen, deliverables }: { colors
463
463
  }
464
464
 
465
465
  function StatusIcon({ colors, status, live, waiting }: { colors: Colors; status: TicketStatus; live: boolean; waiting: boolean }) {
466
- if (waiting) return <Icon name="Hourglass" size={14} color={colors.foregroundMuted} />;
466
+ if (waiting) return <WaitingDot color={colors.foregroundMuted} size={14} />;
467
467
  switch (status) {
468
468
  case "done":
469
469
  return <Icon name="Check" size={14} color={colors.statusSuccess} />;
@@ -33,3 +33,14 @@ export function StalledPulse({ color, size = 12 }: { color: string; size?: numbe
33
33
  </Animated.View>
34
34
  );
35
35
  }
36
+
37
+ // A ticket waiting on another one: a still, faded dot, so it reads as parked
38
+ // rather than busy. Centered in the same slot an icon would take.
39
+ export function WaitingDot({ color, size = 12 }: { color: string; size?: number }) {
40
+ const dot = Math.round(size / 2);
41
+ return (
42
+ <View accessibilityLabel="Waiting" style={{ width: size, height: size, alignItems: "center", justifyContent: "center" }}>
43
+ <View style={{ width: dot, height: dot, borderRadius: dot / 2, backgroundColor: color, opacity: 0.5 }} />
44
+ </View>
45
+ );
46
+ }
@@ -9,7 +9,7 @@ import { type Attachment, AttachmentList, deliverableAttachment } from "./attach
9
9
  import { StackedDialog } from "./dialog-stack";
10
10
  import { IconSwap } from "./motion";
11
11
  import { PressableRow } from "./row";
12
- import { Spinner, StalledPulse } from "./spinner";
12
+ import { Spinner, StalledPulse, WaitingDot } from "./spinner";
13
13
  import { StatusBadge } from "./status-badge";
14
14
  import { When } from "./when";
15
15
 
@@ -65,7 +65,7 @@ export function TicketStoryView({ colors, dashboard, ticket, now, live, onOpenAt
65
65
  {ticket.waitingFor ? (
66
66
  <View style={{ flexDirection: "row", gap: 4 }}>
67
67
  {/* Held on the first line when a long title wraps. */}
68
- <View style={{ height: 18, justifyContent: "center" }}><Icon name="Hourglass" size={12} color={colors.foregroundMuted} /></View>
68
+ <View style={{ height: 18, justifyContent: "center" }}><WaitingDot color={colors.foregroundMuted} /></View>
69
69
  <Text style={{ flex: 1, color: colors.foregroundMuted, fontSize: 12, lineHeight: 18 }}>Waits for {ticket.waitingFor.id}: {ticket.waitingFor.title}</Text>
70
70
  </View>
71
71
  ) : null}
@@ -158,8 +158,8 @@ function LinkNote({ colors, link }: { colors: Colors; link: Link }) {
158
158
  // The same icons as the ticket rows, so a step reads like the status it was.
159
159
  // Past stage steps get an accent ringed dot: work that happened, now over.
160
160
  function Marker({ colors, step }: { colors: Colors; step: TimelineStep & { waiting?: boolean } }) {
161
- const icon = step.waiting ? { name: "Hourglass", color: colors.foregroundMuted }
162
- : step.label === "Added" ? { name: "CirclePlus", color: colors.foregroundMuted }
161
+ if (step.waiting) return <WaitingDot color={colors.foregroundMuted} />;
162
+ const icon = step.label === "Added" ? { name: "CirclePlus", color: colors.foregroundMuted }
163
163
  : step.status === "done" ? { name: "CircleCheck", color: colors.statusSuccess }
164
164
  : step.status === "blocked" ? { name: "Ban", color: colors.statusDanger }
165
165
  : step.status === "skipped" ? { name: "CircleSlash", color: colors.foregroundMuted }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@stevecastaneda/paseo-progress",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@stevecastaneda/paseo-progress",
9
- "version": "0.1.0",
9
+ "version": "0.1.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@getpaseo/client": "^0.9.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stevecastaneda/paseo-progress",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "A live progress dashboard per worktree for Paseo, drawn from a file agents write with the paseo-progress command.",
5
5
  "license": "MIT",
6
6
  "author": "Steve Castaneda",