@vibes.diy/base 14.3.113 → 14.3.115
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/components/vibe-menu/VibeMenu.js +9 -3
- package/components/vibe-menu/VibeMenu.js.map +1 -1
- package/components/vibe-menu/cards/AccountCard.d.ts +4 -1
- package/components/vibe-menu/cards/AccountCard.js +25 -9
- package/components/vibe-menu/cards/AccountCard.js.map +1 -1
- package/components/vibe-menu/cards/CodeCard.d.ts +2 -1
- package/components/vibe-menu/cards/CodeCard.js +17 -6
- package/components/vibe-menu/cards/CodeCard.js.map +1 -1
- package/components/vibe-menu/cards/CodeModeWorkspace.d.ts +2 -1
- package/components/vibe-menu/cards/CodeModeWorkspace.js +8 -6
- package/components/vibe-menu/cards/CodeModeWorkspace.js.map +1 -1
- package/components/vibe-menu/geometry.d.ts +1 -0
- package/components/vibe-menu/geometry.js +5 -0
- package/components/vibe-menu/geometry.js.map +1 -1
- package/components/vibe-menu/index.d.ts +5 -0
- package/components/vibe-menu/index.js +5 -0
- package/components/vibe-menu/index.js.map +1 -1
- package/components/vibe-menu/parts/Chip.d.ts +2 -1
- package/components/vibe-menu/parts/Chip.js +26 -2
- package/components/vibe-menu/parts/Chip.js.map +1 -1
- package/components/vibe-menu/parts/Composer.d.ts +11 -0
- package/components/vibe-menu/parts/Composer.js +44 -1
- package/components/vibe-menu/parts/Composer.js.map +1 -1
- package/components/vibe-menu/parts/LookRestyleSection.d.ts +51 -0
- package/components/vibe-menu/parts/LookRestyleSection.js +290 -0
- package/components/vibe-menu/parts/LookRestyleSection.js.map +1 -0
- package/components/vibe-menu/parts/MomentLine.d.ts +1 -0
- package/components/vibe-menu/parts/MomentLine.js +4 -2
- package/components/vibe-menu/parts/MomentLine.js.map +1 -1
- package/components/vibe-menu/parts/SendCap.d.ts +8 -0
- package/components/vibe-menu/parts/SendCap.js +10 -0
- package/components/vibe-menu/parts/SendCap.js.map +1 -0
- package/components/vibe-menu/parts/StatusChipRow.d.ts +58 -0
- package/components/vibe-menu/parts/StatusChipRow.js +121 -0
- package/components/vibe-menu/parts/StatusChipRow.js.map +1 -0
- package/components/vibe-menu/parts/StatusLine.d.ts +21 -0
- package/components/vibe-menu/parts/StatusLine.js +25 -0
- package/components/vibe-menu/parts/StatusLine.js.map +1 -0
- package/components/vibe-menu/parts/SurveyStrip.d.ts +3 -1
- package/components/vibe-menu/parts/SurveyStrip.js +9 -1
- package/components/vibe-menu/parts/SurveyStrip.js.map +1 -1
- package/components/vibe-menu/parts/VibesSwitchGlass.d.ts +0 -9
- package/components/vibe-menu/parts/VibesSwitchGlass.js +2 -17
- package/components/vibe-menu/parts/VibesSwitchGlass.js.map +1 -1
- package/components/vibe-menu/parts/agent-log-frame.d.ts +9 -0
- package/components/vibe-menu/parts/agent-log-frame.js +10 -0
- package/components/vibe-menu/parts/agent-log-frame.js.map +1 -0
- package/components/vibe-menu/parts/use-composer-draft.js +30 -0
- package/components/vibe-menu/parts/use-composer-draft.js.map +1 -1
- package/components/vibe-menu/shell/VibeMenuShell.d.ts +5 -0
- package/components/vibe-menu/shell/VibeMenuShell.js +5 -1
- package/components/vibe-menu/shell/VibeMenuShell.js.map +1 -1
- package/components/vibe-menu/shell/shell.styles.js +270 -38
- package/components/vibe-menu/shell/shell.styles.js.map +1 -1
- package/components/vibe-menu/slices.d.ts +8 -2
- package/components/vibe-menu/slices.js.map +1 -1
- package/components/vibe-menu/vibe-menu.styles.d.ts +3 -3
- package/components/vibe-menu/vibe-menu.styles.js +99 -1
- package/components/vibe-menu/vibe-menu.styles.js.map +1 -1
- package/hooks/img-gen/use-img-gen.d.ts +1 -0
- package/hooks/img-gen/use-img-gen.js +374 -304
- package/hooks/img-gen/use-img-gen.js.map +1 -1
- package/package.json +5 -5
|
@@ -11,6 +11,7 @@ export interface MomentLogControl {
|
|
|
11
11
|
readonly lines: readonly AgentLogLine[];
|
|
12
12
|
readonly onToggle: () => void;
|
|
13
13
|
readonly tail?: React.ReactNode;
|
|
14
|
+
readonly history?: React.ReactNode;
|
|
14
15
|
}
|
|
15
16
|
export interface MomentLineProps {
|
|
16
17
|
readonly moment: CurrentMoment;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { AgentLogFrameContext } from "./agent-log-frame.js";
|
|
2
3
|
import { Chip } from "./Chip.js";
|
|
3
4
|
import { Glyph } from "./Glyph.js";
|
|
4
5
|
import { ThinkingLine, useElapsedText } from "./ThinkingLine.js";
|
|
@@ -45,6 +46,7 @@ function LiveMoment(props) {
|
|
|
45
46
|
const kindClass = item.kind === "progress" ? "is-progress" : "is-summary";
|
|
46
47
|
const words = item.kind === "progress" ? React.createElement(ProgressWords, { item: item }) : React.createElement("span", null, item.text);
|
|
47
48
|
const log = props.log;
|
|
49
|
+
const hasHistory = log !== null && log.history !== undefined && log.history !== null;
|
|
48
50
|
const link = item.link === undefined ? null : (React.createElement("a", { className: "vm-moment-link", href: item.link.href, onClick: stayIfHere }, item.link.label));
|
|
49
51
|
if (log === null) {
|
|
50
52
|
return (React.createElement("p", { className: `vm-moment ${kindClass}`, "data-moment": item.kind },
|
|
@@ -57,9 +59,9 @@ function LiveMoment(props) {
|
|
|
57
59
|
React.createElement(Glyph, { name: "chevron-right" })),
|
|
58
60
|
words),
|
|
59
61
|
link,
|
|
60
|
-
React.createElement("div", { className: "vm-log-clip", "data-log-clip": "", "data-open": log.open ? "true" : "false", inert: log.open ? undefined : true },
|
|
62
|
+
React.createElement("div", { className: "vm-log-clip", "data-log-clip": "", "data-open": log.open ? "true" : "false", "data-history": hasHistory ? "" : undefined, inert: log.open ? undefined : true }, hasHistory ? (React.createElement("div", { className: "vm-log-history", id: logId, role: "log", "aria-label": "Agent log" }, React.createElement(AgentLogFrameContext.Provider, { value: { tail: log.tail, fallback: React.createElement(AgentLog, { lines: log.lines }), compact: true } }, log.history))) : (React.createElement(React.Fragment, null,
|
|
61
63
|
React.createElement(AgentLog, { id: logId, lines: log.lines }),
|
|
62
|
-
log.tail)));
|
|
64
|
+
log.tail)))));
|
|
63
65
|
}
|
|
64
66
|
export function MomentLine(props) {
|
|
65
67
|
const { pinned, live } = props.moment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MomentLine.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/MomentLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWjE,MAAM,SAAS,GAA0C,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MomentLine.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/MomentLine.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface SendCapProps {
|
|
3
|
+
readonly label?: string;
|
|
4
|
+
readonly variant?: "send" | "cancel";
|
|
5
|
+
readonly disabled?: boolean;
|
|
6
|
+
readonly onPress: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function SendCap(props: SendCapProps): React.ReactElement;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export function SendCap(props) {
|
|
3
|
+
if (props.variant === "cancel") {
|
|
4
|
+
return (React.createElement("button", { className: "vm-cap", type: "button", "data-cancel": "", "aria-label": props.label ?? "Cancel rewrite", disabled: props.disabled, onClick: props.onPress },
|
|
5
|
+
React.createElement("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 24 24", width: 16, height: 16, fill: "none", stroke: "currentColor", strokeWidth: 2.4, strokeLinecap: "round" },
|
|
6
|
+
React.createElement("path", { d: "M18 6 6 18M6 6l12 12" }))));
|
|
7
|
+
}
|
|
8
|
+
return (React.createElement("button", { className: "vm-cap", type: "button", "data-send": "", disabled: props.disabled, onClick: props.onPress }, props.label ?? "Send"));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=SendCap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendCap.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/SendCap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CACL,gCACE,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,QAAQ,iBACD,EAAE,gBACF,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YAGtB,4CACc,MAAM,EAClB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,GAAG,EAChB,aAAa,EAAC,OAAO;gBAErB,8BAAM,CAAC,EAAC,sBAAsB,GAAG,CAC7B,CACC,CACV,CAAC;IACJ,CAAC;IACD,OAAO,CACL,gCAAQ,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,eAAW,EAAE,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IACnG,KAAK,CAAC,KAAK,IAAI,MAAM,CACf,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type StatusChipId = "examplesCleared" | "pending" | "admin" | "draft" | "locked" | "editing";
|
|
3
|
+
export declare const STATUS_CHIP_PRIORITY: Readonly<Record<StatusChipId, number>>;
|
|
4
|
+
export declare const ADMIN_BADGE_TEXT = "Admin";
|
|
5
|
+
export declare const ADMIN_BADGE_LABEL = "Admin mode is on for this page \u2014 you're seeing everyone's data.";
|
|
6
|
+
export declare const CHICLET_COPY: Readonly<Record<"draft" | "locked", {
|
|
7
|
+
readonly text: string;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
}>>;
|
|
10
|
+
export declare const EXAMPLES_CLEARED_TEXT = "Example data cleared \u00B7 bring back";
|
|
11
|
+
export declare const EXAMPLES_CLEARED_LABEL = "Your app starts fresh. Tap to bring the example data back.";
|
|
12
|
+
export declare const EXAMPLES_IMPORTING_TEXT = "Importing example data\u2026";
|
|
13
|
+
export declare const EXAMPLES_IMPORTING_LABEL = "Importing example data into your app.";
|
|
14
|
+
export declare const EXAMPLES_RETRY_TEXT = "Example data \u00B7 tap to try again";
|
|
15
|
+
export declare const EXAMPLES_RETRY_LABEL = "Tap to bring the example data back again.";
|
|
16
|
+
export type ExamplesChipPhase = "idle" | "importing" | "retry";
|
|
17
|
+
export declare function pendingChipText(n: number): string;
|
|
18
|
+
export interface StatusChip {
|
|
19
|
+
readonly id: StatusChipId;
|
|
20
|
+
readonly text: string;
|
|
21
|
+
readonly label: string;
|
|
22
|
+
readonly onTap?: () => void;
|
|
23
|
+
readonly paused?: boolean;
|
|
24
|
+
readonly busy?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface StatusChipInputs {
|
|
27
|
+
readonly pendingRequests: number;
|
|
28
|
+
readonly chiclet: "draft" | "locked" | null;
|
|
29
|
+
readonly adminMode?: boolean;
|
|
30
|
+
readonly editText?: {
|
|
31
|
+
readonly paused: boolean;
|
|
32
|
+
onPaused(paused: boolean): void;
|
|
33
|
+
} | null;
|
|
34
|
+
readonly examplesCleared?: {
|
|
35
|
+
onTap(): void;
|
|
36
|
+
readonly phase?: ExamplesChipPhase;
|
|
37
|
+
} | null;
|
|
38
|
+
}
|
|
39
|
+
export declare function statusChipsFor(b: StatusChipInputs, handlers: {
|
|
40
|
+
onChiclet(): void;
|
|
41
|
+
onPending(): void;
|
|
42
|
+
}): readonly StatusChip[];
|
|
43
|
+
export declare function visibleStatusChips<T extends {
|
|
44
|
+
readonly id: StatusChipId;
|
|
45
|
+
}>(chips: readonly T[], o: {
|
|
46
|
+
readonly collapsed: boolean;
|
|
47
|
+
readonly expanded: boolean;
|
|
48
|
+
}): {
|
|
49
|
+
readonly shown: readonly T[];
|
|
50
|
+
readonly more: number;
|
|
51
|
+
};
|
|
52
|
+
export interface StatusChipRowProps {
|
|
53
|
+
readonly chips: readonly StatusChip[];
|
|
54
|
+
readonly place: "floating" | "inside";
|
|
55
|
+
readonly onHide?: (id: StatusChipId) => void;
|
|
56
|
+
readonly collapsed?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export declare function StatusChipRow(props: StatusChipRowProps): React.ReactElement | null;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
import { EDIT_TEXT_EDITING, EDIT_TEXT_EDITING_LABEL, EDIT_TEXT_USING_APP, EDIT_TEXT_USING_APP_LABEL } from "../copy.js";
|
|
4
|
+
export const STATUS_CHIP_PRIORITY = Object.freeze({
|
|
5
|
+
examplesCleared: 0,
|
|
6
|
+
pending: 1,
|
|
7
|
+
admin: 2,
|
|
8
|
+
draft: 3,
|
|
9
|
+
locked: 3,
|
|
10
|
+
editing: 4,
|
|
11
|
+
});
|
|
12
|
+
export const ADMIN_BADGE_TEXT = "Admin";
|
|
13
|
+
export const ADMIN_BADGE_LABEL = "Admin mode is on for this page — you're seeing everyone's data.";
|
|
14
|
+
export const CHICLET_COPY = Object.freeze({
|
|
15
|
+
draft: { text: "Draft", label: "Dev draft — open the vibe menu to publish your latest changes." },
|
|
16
|
+
locked: { text: "Locked", label: "Version locked — open the vibe menu to unlock and let new edits go live." },
|
|
17
|
+
});
|
|
18
|
+
export const EXAMPLES_CLEARED_TEXT = "Example data cleared · bring back";
|
|
19
|
+
export const EXAMPLES_CLEARED_LABEL = "Your app starts fresh. Tap to bring the example data back.";
|
|
20
|
+
export const EXAMPLES_IMPORTING_TEXT = "Importing example data…";
|
|
21
|
+
export const EXAMPLES_IMPORTING_LABEL = "Importing example data into your app.";
|
|
22
|
+
export const EXAMPLES_RETRY_TEXT = "Example data · tap to try again";
|
|
23
|
+
export const EXAMPLES_RETRY_LABEL = "Tap to bring the example data back again.";
|
|
24
|
+
const EXAMPLES_FACES = Object.freeze({
|
|
25
|
+
idle: { text: EXAMPLES_CLEARED_TEXT, label: EXAMPLES_CLEARED_LABEL },
|
|
26
|
+
importing: { text: EXAMPLES_IMPORTING_TEXT, label: EXAMPLES_IMPORTING_LABEL },
|
|
27
|
+
retry: { text: EXAMPLES_RETRY_TEXT, label: EXAMPLES_RETRY_LABEL },
|
|
28
|
+
});
|
|
29
|
+
export function pendingChipText(n) {
|
|
30
|
+
return `${n} waiting`;
|
|
31
|
+
}
|
|
32
|
+
export function statusChipsFor(b, handlers) {
|
|
33
|
+
const chips = [];
|
|
34
|
+
if (b.examplesCleared !== undefined && b.examplesCleared !== null) {
|
|
35
|
+
const phase = b.examplesCleared.phase ?? "idle";
|
|
36
|
+
const face = EXAMPLES_FACES[phase];
|
|
37
|
+
chips.push({
|
|
38
|
+
id: "examplesCleared",
|
|
39
|
+
text: face.text,
|
|
40
|
+
label: face.label,
|
|
41
|
+
onTap: b.examplesCleared.onTap,
|
|
42
|
+
...(phase === "importing" ? { busy: true } : {}),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (b.pendingRequests > 0) {
|
|
46
|
+
const plural = b.pendingRequests === 1 ? "" : "s";
|
|
47
|
+
chips.push({
|
|
48
|
+
id: "pending",
|
|
49
|
+
text: pendingChipText(b.pendingRequests),
|
|
50
|
+
label: `${b.pendingRequests} access request${plural} waiting. Open Share.`,
|
|
51
|
+
onTap: handlers.onPending,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (b.adminMode === true)
|
|
55
|
+
chips.push({ id: "admin", text: ADMIN_BADGE_TEXT, label: ADMIN_BADGE_LABEL });
|
|
56
|
+
if (b.chiclet !== null) {
|
|
57
|
+
const copy = CHICLET_COPY[b.chiclet];
|
|
58
|
+
chips.push({ id: b.chiclet, text: copy.text, label: copy.label, onTap: handlers.onChiclet });
|
|
59
|
+
}
|
|
60
|
+
if (b.editText !== undefined && b.editText !== null) {
|
|
61
|
+
const edit = b.editText;
|
|
62
|
+
chips.push({
|
|
63
|
+
id: "editing",
|
|
64
|
+
text: edit.paused ? EDIT_TEXT_USING_APP : EDIT_TEXT_EDITING,
|
|
65
|
+
label: edit.paused ? EDIT_TEXT_USING_APP_LABEL : EDIT_TEXT_EDITING_LABEL,
|
|
66
|
+
onTap: () => edit.onPaused(edit.paused === false),
|
|
67
|
+
paused: edit.paused,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return chips.sort((a, c) => STATUS_CHIP_PRIORITY[a.id] - STATUS_CHIP_PRIORITY[c.id]);
|
|
71
|
+
}
|
|
72
|
+
export function visibleStatusChips(chips, o) {
|
|
73
|
+
if (o.collapsed === false || o.expanded === true)
|
|
74
|
+
return { shown: chips, more: 0 };
|
|
75
|
+
const ordered = [...chips].sort((a, c) => STATUS_CHIP_PRIORITY[a.id] - STATUS_CHIP_PRIORITY[c.id]);
|
|
76
|
+
const admin = ordered.find((c) => c.id === "admin");
|
|
77
|
+
const others = ordered.filter((c) => c.id !== "admin");
|
|
78
|
+
const picked = admin === undefined ? others.slice(0, 2) : [...others.slice(0, 1), admin];
|
|
79
|
+
const shown = ordered.filter((c) => picked.includes(c));
|
|
80
|
+
return { shown, more: chips.length - shown.length };
|
|
81
|
+
}
|
|
82
|
+
function ChipFace(props) {
|
|
83
|
+
const { chip } = props;
|
|
84
|
+
if (chip.id === "admin")
|
|
85
|
+
return (React.createElement("span", { className: "vm-admin-badge vm-row-chip", "data-chip": "admin", "data-testid": "admin-mode-badge", "aria-label": chip.label }, chip.text));
|
|
86
|
+
if (chip.id === "draft" || chip.id === "locked")
|
|
87
|
+
return (React.createElement("button", { type: "button", className: "vm-chiclet vm-row-chip", "data-chip": chip.id, "data-chiclet": chip.id, "aria-label": chip.label, onClick: chip.onTap }, chip.text));
|
|
88
|
+
if (chip.id === "editing")
|
|
89
|
+
return (React.createElement("button", { type: "button", className: "vm-edit-pill vm-row-chip", "data-chip": "editing", "data-testid": "edit-text-pill", "data-paused": chip.paused === true ? "" : undefined, "aria-pressed": chip.paused !== true, "aria-label": chip.label, onClick: chip.onTap }, chip.text));
|
|
90
|
+
if (chip.busy === true)
|
|
91
|
+
return (React.createElement("button", { type: "button", className: "vm-chip-pill vm-row-chip", "data-chip": chip.id, "data-busy": "", "aria-busy": "true", "aria-disabled": "true", "aria-label": chip.label }, chip.text));
|
|
92
|
+
return (React.createElement("button", { type: "button", className: "vm-chip-pill vm-row-chip", "data-chip": chip.id, "aria-label": chip.label, onClick: chip.onTap }, chip.text));
|
|
93
|
+
}
|
|
94
|
+
export function StatusChipRow(props) {
|
|
95
|
+
const floating = props.place === "floating";
|
|
96
|
+
const row = useRef(null);
|
|
97
|
+
const key = props.chips.map((c) => c.id).join("|");
|
|
98
|
+
const [collapsedFor, setCollapsedFor] = useState(null);
|
|
99
|
+
const [expandedFor, setExpandedFor] = useState(null);
|
|
100
|
+
const measuredCollapse = collapsedFor === key;
|
|
101
|
+
const collapsed = floating && (props.collapsed ?? measuredCollapse);
|
|
102
|
+
useLayoutEffect(() => {
|
|
103
|
+
const el = row.current;
|
|
104
|
+
if (floating === false || props.collapsed !== undefined || el === null || collapsedFor === key)
|
|
105
|
+
return;
|
|
106
|
+
if (el.scrollWidth > el.clientWidth + 0.5)
|
|
107
|
+
setCollapsedFor(key);
|
|
108
|
+
});
|
|
109
|
+
if (props.chips.length === 0)
|
|
110
|
+
return null;
|
|
111
|
+
const { shown, more } = visibleStatusChips(props.chips, { collapsed, expanded: expandedFor === key });
|
|
112
|
+
return (React.createElement("div", { ref: row, className: "vm-chip-row", "data-place": props.place, "data-collapsed": collapsed ? "" : undefined, "data-expanded": expandedFor === key ? "" : undefined, "data-testid": floating ? "chip-row-floating" : "chip-row-inside" },
|
|
113
|
+
shown.map((chip) => floating && props.onHide !== undefined && chip.busy !== true ? (React.createElement("span", { key: chip.id, className: "vm-chip-wrap", "data-chip-wrap": chip.id },
|
|
114
|
+
React.createElement(ChipFace, { chip: chip }),
|
|
115
|
+
React.createElement("button", { type: "button", className: "vm-chip-x", "data-testid": `hide-${chip.id}`, "aria-label": `Hide ${chip.text}`, onClick: () => props.onHide?.(chip.id) },
|
|
116
|
+
React.createElement("span", { "aria-hidden": "true" }, "\u00D7")))) : (React.createElement(ChipFace, { key: chip.id, chip: chip }))),
|
|
117
|
+
more > 0 ? (React.createElement("button", { type: "button", className: "vm-chip-pill vm-chip-more vm-row-chip", "data-chip": "more", "aria-label": `${more} more`, onClick: () => setExpandedFor(key) },
|
|
118
|
+
"+",
|
|
119
|
+
more)) : null));
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=StatusChipRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusChipRow.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/StatusChipRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { GlyphName } from "./Glyph.js";
|
|
3
|
+
export type StatusLineState = "problem" | "denied" | "olderVersion" | "working" | "checking" | "drafting" | "ready" | "confirm" | "syncing" | "keep";
|
|
4
|
+
export interface StatusLineSpec {
|
|
5
|
+
readonly state: StatusLineState;
|
|
6
|
+
readonly faces: boolean;
|
|
7
|
+
readonly clock?: {
|
|
8
|
+
readonly startedAtMs: number;
|
|
9
|
+
readonly showAfterMs: number;
|
|
10
|
+
};
|
|
11
|
+
readonly glyph?: GlyphName;
|
|
12
|
+
readonly before?: string;
|
|
13
|
+
readonly elastic?: string;
|
|
14
|
+
readonly after?: string;
|
|
15
|
+
readonly full: string;
|
|
16
|
+
}
|
|
17
|
+
export interface StatusLineProps {
|
|
18
|
+
readonly spec: StatusLineSpec;
|
|
19
|
+
readonly onTap: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function StatusLine(props: StatusLineProps): React.ReactElement;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { FacesGlyph, useElapsedText } from "./ThinkingLine.js";
|
|
3
|
+
import { Glyph } from "./Glyph.js";
|
|
4
|
+
function useLiveClock(clock) {
|
|
5
|
+
const text = useElapsedText(clock?.startedAtMs);
|
|
6
|
+
if (clock === undefined || text === undefined)
|
|
7
|
+
return undefined;
|
|
8
|
+
return Date.now() - clock.startedAtMs >= clock.showAfterMs ? text : undefined;
|
|
9
|
+
}
|
|
10
|
+
export function StatusLine(props) {
|
|
11
|
+
const { spec } = props;
|
|
12
|
+
const clock = useLiveClock(spec.clock);
|
|
13
|
+
return (React.createElement("button", { type: "button", className: "vm-status-tap", "data-testid": "status-line", "data-state": spec.state, "aria-label": spec.full, title: spec.full, onClick: props.onTap },
|
|
14
|
+
React.createElement("span", { className: "vm-status-chip" },
|
|
15
|
+
spec.faces ? React.createElement(FacesGlyph, { size: 16, ink: "current", style: { marginRight: 5 } }) : null,
|
|
16
|
+
spec.glyph === undefined ? null : React.createElement(Glyph, { name: spec.glyph }),
|
|
17
|
+
clock === undefined ? null : (React.createElement("span", { className: "vm-status-clock", "aria-hidden": "true", "data-testid": "status-line-clock" },
|
|
18
|
+
clock,
|
|
19
|
+
" \u00B7",
|
|
20
|
+
" ")),
|
|
21
|
+
spec.before === undefined ? null : (React.createElement("span", { className: "vm-status-fixed", "data-part": "before" }, spec.before)),
|
|
22
|
+
spec.elastic === undefined ? null : (React.createElement("span", { className: "vm-status-elastic", "data-part": "elastic" }, spec.elastic)),
|
|
23
|
+
spec.after === undefined ? null : (React.createElement("span", { className: "vm-status-fixed", "data-part": "after" }, spec.after)))));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=StatusLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusLine.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/StatusLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAqCnC,SAAS,YAAY,CAAC,KAA8B;IAClD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAID,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,eAAe,iBACb,aAAa,gBACb,IAAI,CAAC,KAAK,gBACV,IAAI,CAAC,IAAI,EACrB,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,OAAO,EAAE,KAAK,CAAC,KAAK;QAEpB,8BAAM,SAAS,EAAC,gBAAgB;YAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI;YACrF,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAC,KAAK,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI;YAC7D,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAE5B,8BAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,iBAAa,mBAAmB;gBACjF,KAAK;;gBAAI,GAAG,CACR,CACR;YACA,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,8BAAM,SAAS,EAAC,iBAAiB,eAAW,QAAQ,IACjD,IAAI,CAAC,MAAM,CACP,CACR;YACA,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnC,8BAAM,SAAS,EAAC,mBAAmB,eAAW,SAAS,IACpD,IAAI,CAAC,OAAO,CACR,CACR;YACA,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,8BAAM,SAAS,EAAC,iBAAiB,eAAW,OAAO,IAChD,IAAI,CAAC,KAAK,CACN,CACR,CACI,CACA,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -28,8 +28,10 @@ export declare const SURVEY_COPY: Readonly<{
|
|
|
28
28
|
}>;
|
|
29
29
|
export declare function surveyCountdownDigit(msLeft: number): number;
|
|
30
30
|
export declare function surveyTileLabel(face: SurveyFace, digit: number | undefined): string;
|
|
31
|
-
export declare const
|
|
31
|
+
export declare const SURVEY_TILE_MAX_PX = 300;
|
|
32
|
+
export declare const SURVEY_STRIP_CSS: string;
|
|
32
33
|
export declare function surveyMinLoaded(count: number): number;
|
|
34
|
+
export declare function useCountdownDigit(endsAtMs: number | undefined): number | undefined;
|
|
33
35
|
export declare function SurveyStrip(props: {
|
|
34
36
|
readonly survey: CodeSurvey;
|
|
35
37
|
readonly presentation?: "filmstrip";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { MENU_GEOMETRY } from "../geometry.js";
|
|
2
3
|
export const SURVEY_COUNTDOWN_MS = 3000;
|
|
3
4
|
export const SURVEY_COPY = Object.freeze({
|
|
4
5
|
choosing: "Pick a look for your app",
|
|
@@ -16,6 +17,7 @@ export function surveyTileLabel(face, digit) {
|
|
|
16
17
|
? `${face.label}: ${face.pitch}`
|
|
17
18
|
: `${face.label}: building this look in ${digit}. ${SURVEY_COPY.counting}.`;
|
|
18
19
|
}
|
|
20
|
+
export const SURVEY_TILE_MAX_PX = 300;
|
|
19
21
|
export const SURVEY_STRIP_CSS = `
|
|
20
22
|
/* Its own container: the aside steps out when the strip itself is narrow, on any host. */
|
|
21
23
|
[data-vibe-menu] .vm-survey { margin: 0 0 var(--space-14); container: vm-survey / inline-size; }
|
|
@@ -50,12 +52,18 @@ export const SURVEY_STRIP_CSS = `
|
|
|
50
52
|
[data-vibe-menu] .vm-survey[data-presentation="filmstrip"] .vm-survey-head { margin-top: var(--space-12); margin-bottom: var(--space-12); }
|
|
51
53
|
[data-vibe-menu] .vm-survey[data-presentation="filmstrip"] .vm-survey-title { font-size: 17px; }
|
|
52
54
|
[data-vibe-menu] .vm-survey[data-presentation="filmstrip"] .vm-survey-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-10); padding-right: 0; }
|
|
55
|
+
/* Past the phone width (owner report 2026-10-14) the 2×2 tiles ran ~400–600px and
|
|
56
|
+
pushed the card's tabs below the fold: the looks line up four wide, a quarter
|
|
57
|
+
of the strip each, never wider than ${SURVEY_TILE_MAX_PX}px however wide the card. */
|
|
58
|
+
@container vm-survey (min-width: ${MENU_GEOMETRY.phoneMaxWidth + 1}px) {
|
|
59
|
+
[data-vibe-menu] .vm-survey[data-presentation="filmstrip"] .vm-survey-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: calc(4 * ${SURVEY_TILE_MAX_PX}px + 3 * var(--space-10)); }
|
|
60
|
+
}
|
|
53
61
|
@container vm-survey (max-width: 360px) { [data-vibe-menu] .vm-survey:not([data-presentation="filmstrip"]) .vm-survey-aside { display: none; } }
|
|
54
62
|
`;
|
|
55
63
|
export function surveyMinLoaded(count) {
|
|
56
64
|
return Math.min(count, Math.max(3, count - 1));
|
|
57
65
|
}
|
|
58
|
-
function useCountdownDigit(endsAtMs) {
|
|
66
|
+
export function useCountdownDigit(endsAtMs) {
|
|
59
67
|
const [digit, setDigit] = React.useState(undefined);
|
|
60
68
|
React.useLayoutEffect(() => {
|
|
61
69
|
if (endsAtMs === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SurveyStrip.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/SurveyStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SurveyStrip.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/SurveyStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,18 +15,9 @@ export interface VibesSwitchGlassProps {
|
|
|
15
15
|
readonly barOpen: boolean;
|
|
16
16
|
readonly onToggle: () => void;
|
|
17
17
|
readonly pendingRequests: number;
|
|
18
|
-
readonly chiclet: SwitchChiclet | null;
|
|
19
|
-
readonly onChiclet: () => void;
|
|
20
|
-
readonly adminMode?: boolean;
|
|
21
|
-
readonly editText?: {
|
|
22
|
-
readonly paused: boolean;
|
|
23
|
-
onPaused(paused: boolean): void;
|
|
24
|
-
} | null;
|
|
25
18
|
readonly saveAskDot?: boolean;
|
|
26
19
|
readonly closedStatus: ReactNode;
|
|
27
20
|
readonly twinkling: boolean;
|
|
28
21
|
readonly pillRef?: Ref<HTMLButtonElement>;
|
|
29
22
|
}
|
|
30
|
-
export declare const ADMIN_BADGE_TEXT = "Admin";
|
|
31
|
-
export declare const ADMIN_BADGE_LABEL = "Admin mode is on for this page \u2014 you're seeing everyone's data.";
|
|
32
23
|
export declare function VibesSwitchGlass(props: VibesSwitchGlassProps): React.ReactElement;
|
|
@@ -3,7 +3,7 @@ import { useEffect, useState } from "react";
|
|
|
3
3
|
import { VibesSwitch } from "../../VibesSwitch.js";
|
|
4
4
|
import { MENU_GEOMETRY } from "../geometry.js";
|
|
5
5
|
import { MOTION } from "../motion.js";
|
|
6
|
-
import {
|
|
6
|
+
import { SAVE_ASK_SWITCH_LABEL } from "../copy.js";
|
|
7
7
|
const SWITCH_VIEWBOX = { x: 18, y: 58, height: 282 };
|
|
8
8
|
const SWITCH_STADIUM = { x: 59.9, y: 154.75, width: 479.73, height: 175.38 };
|
|
9
9
|
export function switchArtPlacement(box) {
|
|
@@ -15,12 +15,6 @@ export function switchArtPlacement(box) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
const ART = switchArtPlacement({ width: MENU_GEOMETRY.pillW, height: MENU_GEOMETRY.pillH });
|
|
18
|
-
export const ADMIN_BADGE_TEXT = "Admin";
|
|
19
|
-
export const ADMIN_BADGE_LABEL = "Admin mode is on for this page — you're seeing everyone's data.";
|
|
20
|
-
const CHICLET_COPY = {
|
|
21
|
-
draft: { text: "Draft", label: "Dev draft — open the vibe menu to publish your latest changes." },
|
|
22
|
-
locked: { text: "Locked", label: "Version locked — new edits aren't live. Open the vibe menu to unlock." },
|
|
23
|
-
};
|
|
24
18
|
function switchLabel(input) {
|
|
25
19
|
if (input.open)
|
|
26
20
|
return "Close vibe menu";
|
|
@@ -57,11 +51,7 @@ function ClosedStatusLine(props) {
|
|
|
57
51
|
return (React.createElement("div", { className: "vm-closed-status", "data-testid": "closed-build-status", "aria-hidden": visible ? undefined : true, inert: visible === false },
|
|
58
52
|
React.createElement("div", { className: "vm-closed-status-line", "data-revealed": revealed ? "true" : "false" }, retained)));
|
|
59
53
|
}
|
|
60
|
-
function EditTextPill(props) {
|
|
61
|
-
return (React.createElement("button", { type: "button", className: "vm-edit-pill", "data-testid": "edit-text-pill", "data-paused": props.paused ? "" : undefined, "aria-pressed": props.paused === false, "aria-label": props.paused ? EDIT_TEXT_USING_APP_LABEL : EDIT_TEXT_EDITING_LABEL, onClick: () => props.onPaused(props.paused === false) }, props.paused ? EDIT_TEXT_USING_APP : EDIT_TEXT_EDITING));
|
|
62
|
-
}
|
|
63
54
|
export function VibesSwitchGlass(props) {
|
|
64
|
-
const chiclet = props.chiclet === null ? undefined : CHICLET_COPY[props.chiclet];
|
|
65
55
|
return (React.createElement(React.Fragment, null,
|
|
66
56
|
React.createElement("div", { className: "vm-glass", "aria-hidden": "true" }),
|
|
67
57
|
React.createElement("button", { ref: props.pillRef, type: "button", className: "vm-pill", "data-vibe-switch-glass": "", "aria-label": switchLabel({
|
|
@@ -69,13 +59,8 @@ export function VibesSwitchGlass(props) {
|
|
|
69
59
|
pendingRequests: props.pendingRequests,
|
|
70
60
|
saveAskDot: props.saveAskDot === true,
|
|
71
61
|
}), "aria-expanded": props.open, onClick: props.onToggle },
|
|
72
|
-
React.createElement(VibesSwitch, { size: ART.size, className: "vm-switch-svg", style: { position: "absolute", left: ART.left, top: ART.top, pointerEvents: "none" }, isActive: props.barOpen === false, isTwinkling: props.twinkling }),
|
|
73
|
-
props.open === false && props.pendingRequests > 0 ? (React.createElement("span", { className: "vm-badge", "aria-hidden": "true" }, props.pendingRequests)) : null,
|
|
74
|
-
props.open === false && props.pendingRequests === 0 && props.saveAskDot === true ? (React.createElement("span", { className: "vm-badge is-dot", "data-save-ask-dot": "", "aria-hidden": "true" })) : null),
|
|
62
|
+
React.createElement(VibesSwitch, { size: ART.size, className: "vm-switch-svg", style: { position: "absolute", left: ART.left, top: ART.top, pointerEvents: "none" }, isActive: props.barOpen === false, isTwinkling: props.twinkling })),
|
|
75
63
|
React.createElement("div", { className: "vm-beside" },
|
|
76
|
-
props.adminMode === true ? (React.createElement("span", { className: "vm-admin-badge", "data-testid": "admin-mode-badge", "aria-label": ADMIN_BADGE_LABEL }, ADMIN_BADGE_TEXT)) : null,
|
|
77
|
-
props.editText === undefined || props.editText === null ? null : (React.createElement(EditTextPill, { paused: props.editText.paused, onPaused: props.editText.onPaused })),
|
|
78
|
-
chiclet === undefined || props.chiclet === null ? null : (React.createElement("button", { type: "button", className: "vm-chiclet", "data-chiclet": props.chiclet, "aria-label": chiclet.label, onClick: props.onChiclet }, chiclet.text)),
|
|
79
64
|
React.createElement(ClosedStatusLine, { content: props.closedStatus }))));
|
|
80
65
|
}
|
|
81
66
|
//# sourceMappingURL=VibesSwitchGlass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VibesSwitchGlass.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/VibesSwitchGlass.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"VibesSwitchGlass.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/VibesSwitchGlass.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AgentLogFrame {
|
|
3
|
+
readonly tail?: React.ReactNode;
|
|
4
|
+
readonly fallback?: React.ReactNode;
|
|
5
|
+
readonly compact?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const AgentLogFrameContext: React.Context<AgentLogFrame>;
|
|
8
|
+
export declare function useAgentLogFrame(): AgentLogFrame;
|
|
9
|
+
export declare function AgentLogFallback(): React.ReactElement | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export const AgentLogFrameContext = React.createContext({});
|
|
3
|
+
export function useAgentLogFrame() {
|
|
4
|
+
return React.useContext(AgentLogFrameContext);
|
|
5
|
+
}
|
|
6
|
+
export function AgentLogFallback() {
|
|
7
|
+
const frame = useAgentLogFrame();
|
|
8
|
+
return frame.fallback === undefined ? null : React.createElement(React.Fragment, null, frame.fallback);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=agent-log-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-log-frame.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/agent-log-frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAgB,EAAE,CAAC,CAAC;AAE3E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAChD,CAAC;AAGD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAC;AACrE,CAAC"}
|