@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.
Files changed (63) hide show
  1. package/components/vibe-menu/VibeMenu.js +9 -3
  2. package/components/vibe-menu/VibeMenu.js.map +1 -1
  3. package/components/vibe-menu/cards/AccountCard.d.ts +4 -1
  4. package/components/vibe-menu/cards/AccountCard.js +25 -9
  5. package/components/vibe-menu/cards/AccountCard.js.map +1 -1
  6. package/components/vibe-menu/cards/CodeCard.d.ts +2 -1
  7. package/components/vibe-menu/cards/CodeCard.js +17 -6
  8. package/components/vibe-menu/cards/CodeCard.js.map +1 -1
  9. package/components/vibe-menu/cards/CodeModeWorkspace.d.ts +2 -1
  10. package/components/vibe-menu/cards/CodeModeWorkspace.js +8 -6
  11. package/components/vibe-menu/cards/CodeModeWorkspace.js.map +1 -1
  12. package/components/vibe-menu/geometry.d.ts +1 -0
  13. package/components/vibe-menu/geometry.js +5 -0
  14. package/components/vibe-menu/geometry.js.map +1 -1
  15. package/components/vibe-menu/index.d.ts +5 -0
  16. package/components/vibe-menu/index.js +5 -0
  17. package/components/vibe-menu/index.js.map +1 -1
  18. package/components/vibe-menu/parts/Chip.d.ts +2 -1
  19. package/components/vibe-menu/parts/Chip.js +26 -2
  20. package/components/vibe-menu/parts/Chip.js.map +1 -1
  21. package/components/vibe-menu/parts/Composer.d.ts +11 -0
  22. package/components/vibe-menu/parts/Composer.js +44 -1
  23. package/components/vibe-menu/parts/Composer.js.map +1 -1
  24. package/components/vibe-menu/parts/LookRestyleSection.d.ts +51 -0
  25. package/components/vibe-menu/parts/LookRestyleSection.js +290 -0
  26. package/components/vibe-menu/parts/LookRestyleSection.js.map +1 -0
  27. package/components/vibe-menu/parts/MomentLine.d.ts +1 -0
  28. package/components/vibe-menu/parts/MomentLine.js +4 -2
  29. package/components/vibe-menu/parts/MomentLine.js.map +1 -1
  30. package/components/vibe-menu/parts/SendCap.d.ts +8 -0
  31. package/components/vibe-menu/parts/SendCap.js +10 -0
  32. package/components/vibe-menu/parts/SendCap.js.map +1 -0
  33. package/components/vibe-menu/parts/StatusChipRow.d.ts +58 -0
  34. package/components/vibe-menu/parts/StatusChipRow.js +121 -0
  35. package/components/vibe-menu/parts/StatusChipRow.js.map +1 -0
  36. package/components/vibe-menu/parts/StatusLine.d.ts +21 -0
  37. package/components/vibe-menu/parts/StatusLine.js +25 -0
  38. package/components/vibe-menu/parts/StatusLine.js.map +1 -0
  39. package/components/vibe-menu/parts/SurveyStrip.d.ts +3 -1
  40. package/components/vibe-menu/parts/SurveyStrip.js +9 -1
  41. package/components/vibe-menu/parts/SurveyStrip.js.map +1 -1
  42. package/components/vibe-menu/parts/VibesSwitchGlass.d.ts +0 -9
  43. package/components/vibe-menu/parts/VibesSwitchGlass.js +2 -17
  44. package/components/vibe-menu/parts/VibesSwitchGlass.js.map +1 -1
  45. package/components/vibe-menu/parts/agent-log-frame.d.ts +9 -0
  46. package/components/vibe-menu/parts/agent-log-frame.js +10 -0
  47. package/components/vibe-menu/parts/agent-log-frame.js.map +1 -0
  48. package/components/vibe-menu/parts/use-composer-draft.js +30 -0
  49. package/components/vibe-menu/parts/use-composer-draft.js.map +1 -1
  50. package/components/vibe-menu/shell/VibeMenuShell.d.ts +5 -0
  51. package/components/vibe-menu/shell/VibeMenuShell.js +5 -1
  52. package/components/vibe-menu/shell/VibeMenuShell.js.map +1 -1
  53. package/components/vibe-menu/shell/shell.styles.js +270 -38
  54. package/components/vibe-menu/shell/shell.styles.js.map +1 -1
  55. package/components/vibe-menu/slices.d.ts +8 -2
  56. package/components/vibe-menu/slices.js.map +1 -1
  57. package/components/vibe-menu/vibe-menu.styles.d.ts +3 -3
  58. package/components/vibe-menu/vibe-menu.styles.js +99 -1
  59. package/components/vibe-menu/vibe-menu.styles.js.map +1 -1
  60. package/hooks/img-gen/use-img-gen.d.ts +1 -0
  61. package/hooks/img-gen/use-img-gen.js +374 -304
  62. package/hooks/img-gen/use-img-gen.js.map +1 -1
  63. 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":"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"}
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 SURVEY_STRIP_CSS = "\n/* Its own container: the aside steps out when the strip itself is narrow, on any host. */\n[data-vibe-menu] .vm-survey { margin: 0 0 var(--space-14); container: vm-survey / inline-size; }\n/* Code mode's card is wide and its pinned top is capped: the strip keeps the card-sized tiles. */\n[data-vibe-menu] .vm-codemode .vm-survey { margin-bottom: 10px; max-width: 420px; }\n[data-vibe-menu] .vm-survey-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-8); margin: 0 0 var(--space-8); padding: 0 var(--space-2); }\n[data-vibe-menu] .vm-survey-title { font: 600 15px/1.3 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-survey-aside { font: 400 12px/1.3 var(--font-display); color: var(--muted); white-space: nowrap; }\n[data-vibe-menu] .vm-survey-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); }\n/* Three readings keep the four-up tile size: the missing tile's column stays empty. */\n[data-vibe-menu] .vm-survey-strip[data-count=\"3\"] { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-right: calc((100% - 24px) / 4 + 8px); }\n[data-vibe-menu] .vm-survey-cell { min-width: 0; }\n[data-vibe-menu] .vm-survey-tile { position: relative; display: block; width: 100%; min-height: 44px; padding: 0; aspect-ratio: 1; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-switch); overflow: hidden; background: var(--card-bg); cursor: pointer; touch-action: manipulation; }\n[data-vibe-menu] .vm-survey-tile[data-on=\"true\"] { outline: var(--stroke-focus) solid var(--accent); outline-offset: 2px; }\n[data-vibe-menu] .vm-survey-tile[aria-disabled=\"true\"] { cursor: default; }\n[data-vibe-menu] .vm-survey[data-selected] .vm-survey-cell:not([data-on=\"true\"]) .vm-survey-tile { opacity: 0.55; }\n[data-vibe-menu] .vm-survey[data-picked] .vm-survey-cell:not([data-on=\"true\"]) .vm-survey-tile { opacity: 0.35; }\n[data-vibe-menu] .vm-survey-art { display: block; width: 100%; height: 100%; object-fit: cover; }\n/* The countdown: a small chip in the corner, so the look stays in full view. */\n[data-vibe-menu] .vm-survey-count { position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 14px/1 var(--font-display); font-variant-numeric: tabular-nums; pointer-events: none; }\n[data-vibe-menu] .vm-survey-count b { font: inherit; animation: vm-survey-tick 240ms ease-out; }\n@keyframes vm-survey-tick { from { transform: scale(1.35); } to { transform: scale(1); } }\n@media (prefers-reduced-motion: reduce) { [data-vibe-menu] .vm-survey-count b { animation: none; } }\n[data-vibe-menu] .vm-survey-cap { margin-top: var(--space-6); padding: 0 var(--space-2); font: 700 13px/1.25 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-survey-foot { display: flex; align-items: center; gap: var(--space-12); margin-top: var(--space-10); padding: 0 var(--space-2); }\n[data-vibe-menu] .vm-survey-text { flex: 1 1 auto; min-width: 0; }\n[data-vibe-menu] .vm-survey-label { font: 700 14px/1.3 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-survey-pitch { margin-top: var(--space-2); font: 400 13px/1.4 var(--font-display); color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }\n[data-vibe-menu] .vm-survey-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }\n/* The first build's picker: a two-by-two grid of large tiles, each with its name. */\n[data-vibe-menu] .vm-survey[data-presentation=\"filmstrip\"] { margin-top: var(--space-16); }\n[data-vibe-menu] .vm-survey[data-presentation=\"filmstrip\"] .vm-survey-head { margin-top: var(--space-12); margin-bottom: var(--space-12); }\n[data-vibe-menu] .vm-survey[data-presentation=\"filmstrip\"] .vm-survey-title { font-size: 17px; }\n[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; }\n@container vm-survey (max-width: 360px) { [data-vibe-menu] .vm-survey:not([data-presentation=\"filmstrip\"]) .vm-survey-aside { display: none; } }\n";
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":"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"}
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 { EDIT_TEXT_EDITING, EDIT_TEXT_EDITING_LABEL, EDIT_TEXT_USING_APP, EDIT_TEXT_USING_APP_LABEL, SAVE_ASK_SWITCH_LABEL, } from "../copy.js";
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":"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"}
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"}