standout 0.1.0 → 0.2.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.
@@ -0,0 +1,8 @@
1
+ export type ChronoCritter = "morning_bird" | "daytimer" | "night_owl";
2
+ export interface ChronoCritterInfo {
3
+ key: ChronoCritter;
4
+ label: string;
5
+ art: string;
6
+ }
7
+ export declare const CHRONO_CRITTERS: Record<ChronoCritter, ChronoCritterInfo>;
8
+ export declare function chronoCritterForHour(hour: number): ChronoCritterInfo;
@@ -0,0 +1,32 @@
1
+ // Time-of-day mascots for the "WHEN YOU CODE" card. The peak coding hour maps
2
+ // to one of three critters; buckets are contiguous so every hour 0-23 resolves.
3
+ const MORNING_BIRD = ` __
4
+ ___( o)>
5
+ \\ <_. )
6
+ \`---'`;
7
+ const DAYTIMER = ` __ (\\_
8
+ (_ \\ ( '>
9
+ ) \\/_)=
10
+ (_(_ )_`;
11
+ const NIGHT_OWL = ` ,_,
12
+ (o,o)
13
+ /)_)
14
+ " "`;
15
+ export const CHRONO_CRITTERS = {
16
+ morning_bird: {
17
+ key: "morning_bird",
18
+ label: "morning bird",
19
+ art: MORNING_BIRD,
20
+ },
21
+ daytimer: { key: "daytimer", label: "daytimer", art: DAYTIMER },
22
+ night_owl: { key: "night_owl", label: "night owl", art: NIGHT_OWL },
23
+ };
24
+ // 6-11 morning bird · 12-18 daytimer · 19-5 night owl.
25
+ export function chronoCritterForHour(hour) {
26
+ const h = ((Math.floor(hour) % 24) + 24) % 24;
27
+ if (h >= 6 && h <= 11)
28
+ return CHRONO_CRITTERS.morning_bird;
29
+ if (h >= 12 && h <= 18)
30
+ return CHRONO_CRITTERS.daytimer;
31
+ return CHRONO_CRITTERS.night_owl;
32
+ }
@@ -0,0 +1,3 @@
1
+ export { renderWrapped, type RenderResult } from "./render.js";
2
+ export { aggregateView } from "./aggregate.js";
3
+ export type { WrappedAggregateView, MascotPose } from "./types.js";
@@ -0,0 +1,2 @@
1
+ export { renderWrapped } from "./render.js";
2
+ export { aggregateView } from "./aggregate.js";
@@ -0,0 +1,2 @@
1
+ import type { MascotPose } from "./types.js";
2
+ export declare const MASCOTS: Record<MascotPose, string>;
@@ -0,0 +1,35 @@
1
+ // Small ASCII Clawdius variants. Five lines each so they render at consistent
2
+ // height inside boxen. The OG image (PR 7) uses richer SVG; this is the
3
+ // terminal-only fallback.
4
+ export const MASCOTS = {
5
+ default: ` ___
6
+ /o o\\
7
+ ( =^= )
8
+ \`---'
9
+ / | \\`,
10
+ night: ` * ___ .
11
+ . /o o\\ *
12
+ ( =^= ) ☾
13
+ * \`---' .
14
+ / | \\`,
15
+ caffeinated: ` ___ ___
16
+ /o o\\ | |
17
+ ( =O= )---|☕|
18
+ \`---' |_|
19
+ / | \\`,
20
+ crown: ` ◇♛◇
21
+ ___
22
+ /o o\\
23
+ ( =^= )
24
+ \`---'`,
25
+ circuit: ` ┌─┐___┌─┐
26
+ │ /o o\\ │
27
+ ├( =>= )┤
28
+ │ \`---' │
29
+ └─/─|─\\─┘`,
30
+ ship: ` ___ ▲
31
+ /o o\\ ╱│╲
32
+ ( =^= )---│ │
33
+ \`---' ╲│╱
34
+ / | \\ ▼`,
35
+ };
@@ -0,0 +1,13 @@
1
+ import type { WrappedAggregateView } from "./types.js";
2
+ export interface RenderResult {
3
+ shared: boolean;
4
+ cancelled: boolean;
5
+ }
6
+ type RenderMode = "preview" | "finale" | "final";
7
+ export declare function buildRenderableCards(view: WrappedAggregateView, mode?: RenderMode): string[];
8
+ export declare function renderWrapped(view: WrappedAggregateView): Promise<RenderResult>;
9
+ export declare function renderWrappedPreview(view: WrappedAggregateView): Promise<RenderResult>;
10
+ export declare function renderWrappedAll(view: WrappedAggregateView): Promise<{
11
+ cancelled: boolean;
12
+ }>;
13
+ export {};