@vibes.diy/base 14.3.114 → 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 (51) hide show
  1. package/components/vibe-menu/VibeMenu.js +2 -9
  2. package/components/vibe-menu/VibeMenu.js.map +1 -1
  3. package/components/vibe-menu/cards/CodeCard.d.ts +1 -1
  4. package/components/vibe-menu/cards/CodeCard.js +13 -6
  5. package/components/vibe-menu/cards/CodeCard.js.map +1 -1
  6. package/components/vibe-menu/cards/CodeModeWorkspace.d.ts +2 -1
  7. package/components/vibe-menu/cards/CodeModeWorkspace.js +8 -6
  8. package/components/vibe-menu/cards/CodeModeWorkspace.js.map +1 -1
  9. package/components/vibe-menu/geometry.d.ts +1 -0
  10. package/components/vibe-menu/geometry.js +5 -0
  11. package/components/vibe-menu/geometry.js.map +1 -1
  12. package/components/vibe-menu/index.d.ts +3 -0
  13. package/components/vibe-menu/index.js +3 -0
  14. package/components/vibe-menu/index.js.map +1 -1
  15. package/components/vibe-menu/parts/Chip.d.ts +2 -1
  16. package/components/vibe-menu/parts/Chip.js +26 -2
  17. package/components/vibe-menu/parts/Chip.js.map +1 -1
  18. package/components/vibe-menu/parts/Composer.d.ts +11 -0
  19. package/components/vibe-menu/parts/Composer.js +44 -1
  20. package/components/vibe-menu/parts/Composer.js.map +1 -1
  21. package/components/vibe-menu/parts/LookRestyleSection.d.ts +51 -0
  22. package/components/vibe-menu/parts/LookRestyleSection.js +290 -0
  23. package/components/vibe-menu/parts/LookRestyleSection.js.map +1 -0
  24. package/components/vibe-menu/parts/MomentLine.d.ts +1 -0
  25. package/components/vibe-menu/parts/MomentLine.js +4 -2
  26. package/components/vibe-menu/parts/MomentLine.js.map +1 -1
  27. package/components/vibe-menu/parts/SendCap.d.ts +8 -0
  28. package/components/vibe-menu/parts/SendCap.js +10 -0
  29. package/components/vibe-menu/parts/SendCap.js.map +1 -0
  30. package/components/vibe-menu/parts/StatusChipRow.d.ts +8 -1
  31. package/components/vibe-menu/parts/StatusChipRow.js +20 -5
  32. package/components/vibe-menu/parts/StatusChipRow.js.map +1 -1
  33. package/components/vibe-menu/parts/SurveyStrip.d.ts +3 -1
  34. package/components/vibe-menu/parts/SurveyStrip.js +9 -1
  35. package/components/vibe-menu/parts/SurveyStrip.js.map +1 -1
  36. package/components/vibe-menu/parts/agent-log-frame.d.ts +9 -0
  37. package/components/vibe-menu/parts/agent-log-frame.js +10 -0
  38. package/components/vibe-menu/parts/agent-log-frame.js.map +1 -0
  39. package/components/vibe-menu/parts/use-composer-draft.js +30 -0
  40. package/components/vibe-menu/parts/use-composer-draft.js.map +1 -1
  41. package/components/vibe-menu/shell/shell.styles.js +62 -2
  42. package/components/vibe-menu/shell/shell.styles.js.map +1 -1
  43. package/components/vibe-menu/slices.d.ts +3 -4
  44. package/components/vibe-menu/slices.js.map +1 -1
  45. package/components/vibe-menu/vibe-menu.styles.d.ts +3 -3
  46. package/components/vibe-menu/vibe-menu.styles.js +99 -1
  47. package/components/vibe-menu/vibe-menu.styles.js.map +1 -1
  48. package/hooks/img-gen/use-img-gen.d.ts +1 -0
  49. package/hooks/img-gen/use-img-gen.js +374 -304
  50. package/hooks/img-gen/use-img-gen.js.map +1 -1
  51. package/package.json +5 -5
@@ -0,0 +1,51 @@
1
+ import * as React from "react";
2
+ import { surveyCountdownDigit, type SurveyChoosing } from "./SurveyStrip.js";
3
+ export interface LookRestyleTile {
4
+ readonly src?: string;
5
+ readonly name: string;
6
+ readonly fontLabel: string;
7
+ readonly fontFamily: string;
8
+ readonly fontUrl?: string;
9
+ readonly mode: "light" | "dark";
10
+ }
11
+ export type LookRestylePhase = "idle" | "loading" | "ready" | "sent" | "failed" | "credits-short" | "no-screenshot";
12
+ export interface LookRestyleView {
13
+ readonly phase: LookRestylePhase;
14
+ readonly now?: string;
15
+ readonly looks: readonly LookRestyleTile[];
16
+ readonly choosing?: SurveyChoosing;
17
+ readonly big?: number;
18
+ readonly picked?: number;
19
+ readonly onOpen?: () => void;
20
+ readonly onWanted?: () => void;
21
+ readonly onChoose?: (index: number) => void;
22
+ readonly onCancel?: () => void;
23
+ readonly onBig?: (index: number | undefined) => void;
24
+ readonly onRetry?: () => void;
25
+ }
26
+ export declare const LOOK_RESTYLE_COPY: Readonly<{
27
+ readonly title: "New looks for your app";
28
+ readonly aside: "Same features, new look";
29
+ readonly idle: "Four fresh looks for this app, painted from its latest picture.";
30
+ readonly now: "Your app now";
31
+ readonly nowSub: "From your latest version";
32
+ readonly loading: "Dreaming up new looks…";
33
+ readonly loadingSub: "Every button and label stays; colour and type get a fresh take.";
34
+ readonly counting: "Tap again to cancel";
35
+ readonly all: "All looks";
36
+ readonly compareNow: "Now";
37
+ readonly sent: (name: string) => string;
38
+ readonly sentSub: "Same features, new look. It lands in your app in a moment.";
39
+ readonly failed: "A fresh set of looks is one tap away.";
40
+ readonly retry: "Paint new looks";
41
+ readonly creditsShort: "Add credits and four fresh looks for this app are one scroll away.";
42
+ readonly noScreenshot: "New looks for your app appear here once its first picture is taken.";
43
+ readonly region: "New looks";
44
+ }>;
45
+ export declare function lookTileLabel(look: LookRestyleTile, digit: number | undefined): string;
46
+ export declare const LOOK_RESTYLE_CSS = "\n[data-vibe-menu] .vm-lr { display: flex; flex-direction: column; gap: var(--space-14); margin: var(--space-24) 0 var(--space-16); padding-top: var(--space-16); border-top: var(--stroke-rule) solid var(--line-hairline); container: vm-lr / inline-size; }\n[data-vibe-menu] .vm-lr-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-8); padding: 0 var(--space-2); }\n[data-vibe-menu] .vm-lr-title { font: 600 17px/1.3 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-lr-aside { font: 400 12px/1.3 var(--font-display); color: var(--muted); white-space: nowrap; }\n[data-vibe-menu] .vm-lr-sub { margin-top: var(--space-2); font: 400 13px/1.4 var(--font-display); color: var(--muted); }\n[data-vibe-menu] .vm-lr-note { padding: var(--space-10) var(--space-12); border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-moment); background: var(--card-bg); font: 400 13px/1.4 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-lr-retry { margin-top: var(--space-8); height: 32px; padding: 0 var(--space-14); border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 13px/1 var(--font-display); cursor: pointer; }\n[data-vibe-menu] .vm-lr-now { display: flex; align-items: center; gap: var(--space-12); }\n[data-vibe-menu] .vm-lr-now-pic { flex: none; width: 72px; aspect-ratio: 1; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-switch); overflow: hidden; background: var(--card-bg); }\n[data-vibe-menu] .vm-lr-pic { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }\n[data-vibe-menu] .vm-lr-now-text b { display: block; font: 700 14px/1.3 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-lr-now-text span { display: block; margin-top: var(--space-2); font: 400 13px/1.4 var(--font-display); color: var(--muted); }\n[data-vibe-menu] .vm-lr-status { display: flex; align-items: center; gap: var(--space-8); font: 600 14px/1.3 var(--font-display); color: var(--ink); }\n[data-vibe-menu] .vm-lr-status::before { content: \"\"; flex: none; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--accent); color: var(--on-accent); border: var(--stroke-rule) solid var(--line-card); animation: vm-lr-pulse 1.4s ease-in-out infinite; }\n@keyframes vm-lr-pulse { 50% { transform: scale(0.6); } }\n[data-vibe-menu] .vm-lr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-10); }\n@container vm-lr (min-width: 600px) {\n /* Wide (Code mode on a desktop): four across, each tile capped so the row stays a glance, not a wall. */\n [data-vibe-menu] .vm-lr-grid { grid-template-columns: repeat(4, minmax(0, 232px)); justify-content: start; }\n [data-vibe-menu] .vm-lr-now-pic { width: 96px; }\n [data-vibe-menu] .vm-lr-big { max-width: 320px; }\n}\n[data-vibe-menu] .vm-lr-cell { position: relative; min-width: 0; }\n[data-vibe-menu] .vm-lr-tile { position: relative; display: block; width: 100%; min-height: 44px; padding: 0; aspect-ratio: 3 / 4; 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-lr-tile[data-on=\"true\"] { outline: var(--stroke-focus) solid var(--accent); outline-offset: 2px; }\n[data-vibe-menu] .vm-lr-tile[aria-disabled=\"true\"] { cursor: default; }\n[data-vibe-menu] .vm-lr[data-counting] .vm-lr-cell:not([data-on=\"true\"]) .vm-lr-tile { opacity: 0.55; }\n[data-vibe-menu] .vm-lr[data-sent] .vm-lr-cell:not([data-on=\"true\"]) .vm-lr-tile { opacity: 0.35; }\n[data-vibe-menu] .vm-lr-ghost .vm-lr-tile { cursor: default; }\n[data-vibe-menu] .vm-lr-ghost .vm-lr-pic { filter: grayscale(1); opacity: 0.35; }\n[data-vibe-menu] .vm-lr-ghost .vm-lr-tile::after { content: \"\"; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, var(--card-bg) 50%, transparent 70%); background-size: 250% 100%; animation: vm-lr-sweep 1.6s linear infinite; }\n@keyframes vm-lr-sweep { from { background-position: 120% 0; } to { background-position: -120% 0; } }\n[data-vibe-menu] .vm-lr-count-big { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; background: color-mix(in srgb, var(--card-bg) 30%, transparent); }\n[data-vibe-menu] .vm-lr-count-big span { display: grid; place-items: center; width: 64px; height: 64px; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 32px/1 var(--font-display); font-variant-numeric: tabular-nums; }\n[data-vibe-menu] .vm-lr-count-big b, [data-vibe-menu] .vm-lr-count b { font: inherit; animation: vm-lr-tick 240ms ease-out; }\n@keyframes vm-lr-tick { from { transform: scale(1.35); } to { transform: scale(1); } }\n[data-vibe-menu] .vm-lr-count { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 17px/1 var(--font-display); font-variant-numeric: tabular-nums; pointer-events: none; }\n[data-vibe-menu] .vm-lr-grow { position: absolute; right: 6px; bottom: 6px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--card-bg); color: var(--ink); cursor: pointer; }\n[data-vibe-menu] .vm-lr-grow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }\n[data-vibe-menu] .vm-lr-cap { margin-top: var(--space-6); padding: 0 var(--space-2); min-width: 0; }\n[data-vibe-menu] .vm-lr-cap b { display: block; font: 700 13px/1.25 var(--font-display); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n[data-vibe-menu] .vm-lr-font { display: block; margin-top: var(--space-2); font-size: 15px; line-height: 1.2; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n[data-vibe-menu] .vm-lr-big { position: relative; }\n[data-vibe-menu] .vm-lr-big .vm-lr-tile { aspect-ratio: 390 / 600; }\n[data-vibe-menu] .vm-lr-bigbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); margin-bottom: var(--space-10); }\n[data-vibe-menu] .vm-lr-back { flex: none; white-space: nowrap; height: 32px; padding: 0 var(--space-12); border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: transparent; color: var(--ink); font: 700 12px/1 var(--font-display); letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }\n[data-vibe-menu] .vm-lr-inset { position: absolute; left: 10px; bottom: 10px; width: 64px; aspect-ratio: 3 / 4; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-meter); overflow: hidden; background: var(--card-bg); pointer-events: none; }\n[data-vibe-menu] .vm-lr-inset em { position: absolute; left: 0; right: 0; bottom: 0; padding: 2px 0; font: 700 10px/1.2 var(--font-display); font-style: normal; text-align: center; color: var(--ink); background: var(--card-bg); border-top: var(--stroke-rule) solid var(--line-card); }\n[data-vibe-menu] .vm-lr-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }\n@media (prefers-reduced-motion: reduce) {\n [data-vibe-menu] .vm-lr-ghost .vm-lr-tile::after, [data-vibe-menu] .vm-lr-status::before, [data-vibe-menu] .vm-lr-count-big b, [data-vibe-menu] .vm-lr-count b { animation: none; }\n}\n";
47
+ export declare function LookRestyleSection(props: {
48
+ readonly view: LookRestyleView;
49
+ }): React.ReactElement;
50
+ export declare const LOOK_RESTYLE_COUNTDOWN_MS = 3000;
51
+ export { surveyCountdownDigit as lookRestyleCountdownDigit };
@@ -0,0 +1,290 @@
1
+ import * as React from "react";
2
+ import { SURVEY_COUNTDOWN_MS, surveyCountdownDigit, useCountdownDigit } from "./SurveyStrip.js";
3
+ export const LOOK_RESTYLE_COPY = Object.freeze({
4
+ title: "New looks for your app",
5
+ aside: "Same features, new look",
6
+ idle: "Four fresh looks for this app, painted from its latest picture.",
7
+ now: "Your app now",
8
+ nowSub: "From your latest version",
9
+ loading: "Dreaming up new looks…",
10
+ loadingSub: "Every button and label stays; colour and type get a fresh take.",
11
+ counting: "Tap again to cancel",
12
+ all: "All looks",
13
+ compareNow: "Now",
14
+ sent: (name) => `Restyling in ${name}…`,
15
+ sentSub: "Same features, new look. It lands in your app in a moment.",
16
+ failed: "A fresh set of looks is one tap away.",
17
+ retry: "Paint new looks",
18
+ creditsShort: "Add credits and four fresh looks for this app are one scroll away.",
19
+ noScreenshot: "New looks for your app appear here once its first picture is taken.",
20
+ region: "New looks",
21
+ });
22
+ export function lookTileLabel(look, digit) {
23
+ const face = `${look.mode === "dark" ? "dark" : "light"}, ${look.fontLabel} headings`;
24
+ return digit === undefined ? `${look.name}: ${face}` : `${look.name}: restyling in ${digit}. ${LOOK_RESTYLE_COPY.counting}.`;
25
+ }
26
+ export const LOOK_RESTYLE_CSS = `
27
+ [data-vibe-menu] .vm-lr { display: flex; flex-direction: column; gap: var(--space-14); margin: var(--space-24) 0 var(--space-16); padding-top: var(--space-16); border-top: var(--stroke-rule) solid var(--line-hairline); container: vm-lr / inline-size; }
28
+ [data-vibe-menu] .vm-lr-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-8); padding: 0 var(--space-2); }
29
+ [data-vibe-menu] .vm-lr-title { font: 600 17px/1.3 var(--font-display); color: var(--ink); }
30
+ [data-vibe-menu] .vm-lr-aside { font: 400 12px/1.3 var(--font-display); color: var(--muted); white-space: nowrap; }
31
+ [data-vibe-menu] .vm-lr-sub { margin-top: var(--space-2); font: 400 13px/1.4 var(--font-display); color: var(--muted); }
32
+ [data-vibe-menu] .vm-lr-note { padding: var(--space-10) var(--space-12); border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-moment); background: var(--card-bg); font: 400 13px/1.4 var(--font-display); color: var(--ink); }
33
+ [data-vibe-menu] .vm-lr-retry { margin-top: var(--space-8); height: 32px; padding: 0 var(--space-14); border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 13px/1 var(--font-display); cursor: pointer; }
34
+ [data-vibe-menu] .vm-lr-now { display: flex; align-items: center; gap: var(--space-12); }
35
+ [data-vibe-menu] .vm-lr-now-pic { flex: none; width: 72px; aspect-ratio: 1; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-switch); overflow: hidden; background: var(--card-bg); }
36
+ [data-vibe-menu] .vm-lr-pic { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
37
+ [data-vibe-menu] .vm-lr-now-text b { display: block; font: 700 14px/1.3 var(--font-display); color: var(--ink); }
38
+ [data-vibe-menu] .vm-lr-now-text span { display: block; margin-top: var(--space-2); font: 400 13px/1.4 var(--font-display); color: var(--muted); }
39
+ [data-vibe-menu] .vm-lr-status { display: flex; align-items: center; gap: var(--space-8); font: 600 14px/1.3 var(--font-display); color: var(--ink); }
40
+ [data-vibe-menu] .vm-lr-status::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--accent); color: var(--on-accent); border: var(--stroke-rule) solid var(--line-card); animation: vm-lr-pulse 1.4s ease-in-out infinite; }
41
+ @keyframes vm-lr-pulse { 50% { transform: scale(0.6); } }
42
+ [data-vibe-menu] .vm-lr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-10); }
43
+ @container vm-lr (min-width: 600px) {
44
+ /* Wide (Code mode on a desktop): four across, each tile capped so the row stays a glance, not a wall. */
45
+ [data-vibe-menu] .vm-lr-grid { grid-template-columns: repeat(4, minmax(0, 232px)); justify-content: start; }
46
+ [data-vibe-menu] .vm-lr-now-pic { width: 96px; }
47
+ [data-vibe-menu] .vm-lr-big { max-width: 320px; }
48
+ }
49
+ [data-vibe-menu] .vm-lr-cell { position: relative; min-width: 0; }
50
+ [data-vibe-menu] .vm-lr-tile { position: relative; display: block; width: 100%; min-height: 44px; padding: 0; aspect-ratio: 3 / 4; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-switch); overflow: hidden; background: var(--card-bg); cursor: pointer; touch-action: manipulation; }
51
+ [data-vibe-menu] .vm-lr-tile[data-on="true"] { outline: var(--stroke-focus) solid var(--accent); outline-offset: 2px; }
52
+ [data-vibe-menu] .vm-lr-tile[aria-disabled="true"] { cursor: default; }
53
+ [data-vibe-menu] .vm-lr[data-counting] .vm-lr-cell:not([data-on="true"]) .vm-lr-tile { opacity: 0.55; }
54
+ [data-vibe-menu] .vm-lr[data-sent] .vm-lr-cell:not([data-on="true"]) .vm-lr-tile { opacity: 0.35; }
55
+ [data-vibe-menu] .vm-lr-ghost .vm-lr-tile { cursor: default; }
56
+ [data-vibe-menu] .vm-lr-ghost .vm-lr-pic { filter: grayscale(1); opacity: 0.35; }
57
+ [data-vibe-menu] .vm-lr-ghost .vm-lr-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, var(--card-bg) 50%, transparent 70%); background-size: 250% 100%; animation: vm-lr-sweep 1.6s linear infinite; }
58
+ @keyframes vm-lr-sweep { from { background-position: 120% 0; } to { background-position: -120% 0; } }
59
+ [data-vibe-menu] .vm-lr-count-big { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; background: color-mix(in srgb, var(--card-bg) 30%, transparent); }
60
+ [data-vibe-menu] .vm-lr-count-big span { display: grid; place-items: center; width: 64px; height: 64px; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 32px/1 var(--font-display); font-variant-numeric: tabular-nums; }
61
+ [data-vibe-menu] .vm-lr-count-big b, [data-vibe-menu] .vm-lr-count b { font: inherit; animation: vm-lr-tick 240ms ease-out; }
62
+ @keyframes vm-lr-tick { from { transform: scale(1.35); } to { transform: scale(1); } }
63
+ [data-vibe-menu] .vm-lr-count { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--accent); color: var(--on-accent); font: 700 17px/1 var(--font-display); font-variant-numeric: tabular-nums; pointer-events: none; }
64
+ [data-vibe-menu] .vm-lr-grow { position: absolute; right: 6px; bottom: 6px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: var(--card-bg); color: var(--ink); cursor: pointer; }
65
+ [data-vibe-menu] .vm-lr-grow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
66
+ [data-vibe-menu] .vm-lr-cap { margin-top: var(--space-6); padding: 0 var(--space-2); min-width: 0; }
67
+ [data-vibe-menu] .vm-lr-cap b { display: block; font: 700 13px/1.25 var(--font-display); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
68
+ [data-vibe-menu] .vm-lr-font { display: block; margin-top: var(--space-2); font-size: 15px; line-height: 1.2; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
69
+ [data-vibe-menu] .vm-lr-big { position: relative; }
70
+ [data-vibe-menu] .vm-lr-big .vm-lr-tile { aspect-ratio: 390 / 600; }
71
+ [data-vibe-menu] .vm-lr-bigbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); margin-bottom: var(--space-10); }
72
+ [data-vibe-menu] .vm-lr-back { flex: none; white-space: nowrap; height: 32px; padding: 0 var(--space-12); border-radius: var(--radius-full); border: var(--stroke-rule) solid var(--line-card); background: transparent; color: var(--ink); font: 700 12px/1 var(--font-display); letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }
73
+ [data-vibe-menu] .vm-lr-inset { position: absolute; left: 10px; bottom: 10px; width: 64px; aspect-ratio: 3 / 4; border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-meter); overflow: hidden; background: var(--card-bg); pointer-events: none; }
74
+ [data-vibe-menu] .vm-lr-inset em { position: absolute; left: 0; right: 0; bottom: 0; padding: 2px 0; font: 700 10px/1.2 var(--font-display); font-style: normal; text-align: center; color: var(--ink); background: var(--card-bg); border-top: var(--stroke-rule) solid var(--line-card); }
75
+ [data-vibe-menu] .vm-lr-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
76
+ @media (prefers-reduced-motion: reduce) {
77
+ [data-vibe-menu] .vm-lr-ghost .vm-lr-tile::after, [data-vibe-menu] .vm-lr-status::before, [data-vibe-menu] .vm-lr-count-big b, [data-vibe-menu] .vm-lr-count b { animation: none; }
78
+ }
79
+ `;
80
+ function scrollParentOf(el) {
81
+ let at = el.parentElement;
82
+ while (at !== null) {
83
+ const overflow = getComputedStyle(at).overflowY;
84
+ if (overflow === "auto" || overflow === "scroll")
85
+ return at;
86
+ at = at.parentElement;
87
+ }
88
+ return undefined;
89
+ }
90
+ function useScrollDownIntent(ref, onWanted) {
91
+ const wantedRef = React.useRef(onWanted);
92
+ wantedRef.current = onWanted;
93
+ const armed = onWanted !== undefined;
94
+ React.useEffect(() => {
95
+ const el = ref.current;
96
+ if (armed === false || el === null)
97
+ return;
98
+ const parent = scrollParentOf(el);
99
+ const host = parent ?? document.documentElement;
100
+ function top() {
101
+ return parent === undefined ? window.scrollY : parent.scrollTop;
102
+ }
103
+ const startTop = top();
104
+ let touchY;
105
+ let fired = false;
106
+ function fire() {
107
+ if (fired)
108
+ return;
109
+ fired = true;
110
+ wantedRef.current?.();
111
+ }
112
+ function onWheel(e) {
113
+ if (e.deltaY > 0)
114
+ fire();
115
+ }
116
+ function onScroll() {
117
+ if (top() > startTop)
118
+ fire();
119
+ }
120
+ function onTouchStart(e) {
121
+ touchY = e.touches[0]?.clientY;
122
+ }
123
+ function onTouchMove(e) {
124
+ const y = e.touches[0]?.clientY;
125
+ if (touchY !== undefined && y !== undefined && y < touchY - 8)
126
+ fire();
127
+ }
128
+ const opts = { passive: true };
129
+ host.addEventListener("wheel", onWheel, opts);
130
+ host.addEventListener("touchstart", onTouchStart, opts);
131
+ host.addEventListener("touchmove", onTouchMove, opts);
132
+ if (parent === undefined)
133
+ window.addEventListener("scroll", onScroll, opts);
134
+ else
135
+ parent.addEventListener("scroll", onScroll, opts);
136
+ return () => {
137
+ host.removeEventListener("wheel", onWheel);
138
+ host.removeEventListener("touchstart", onTouchStart);
139
+ host.removeEventListener("touchmove", onTouchMove);
140
+ if (parent === undefined)
141
+ window.removeEventListener("scroll", onScroll);
142
+ else
143
+ parent.removeEventListener("scroll", onScroll);
144
+ };
145
+ }, [ref, armed]);
146
+ }
147
+ function GrowGlyph() {
148
+ return (React.createElement("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false" },
149
+ React.createElement("polyline", { points: "15 3 21 3 21 9" }),
150
+ React.createElement("polyline", { points: "9 21 3 21 3 15" }),
151
+ React.createElement("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
152
+ React.createElement("line", { x1: "3", y1: "21", x2: "10", y2: "14" })));
153
+ }
154
+ function NowRow(props) {
155
+ return (React.createElement("div", { className: "vm-lr-now" },
156
+ React.createElement("div", { className: "vm-lr-now-pic" }, props.src === undefined ? null : React.createElement("img", { className: "vm-lr-pic", src: props.src, alt: "Your app as it looks now" })),
157
+ React.createElement("div", { className: "vm-lr-now-text" },
158
+ React.createElement("b", null, LOOK_RESTYLE_COPY.now),
159
+ React.createElement("span", null, LOOK_RESTYLE_COPY.nowSub))));
160
+ }
161
+ function Caption(props) {
162
+ return (React.createElement("div", { className: "vm-lr-cap" },
163
+ React.createElement("b", null, props.look.name),
164
+ React.createElement("span", { className: "vm-lr-font", style: { fontFamily: props.look.fontFamily } }, props.look.fontLabel)));
165
+ }
166
+ function LookTile(props) {
167
+ const { view, index, digit } = props;
168
+ const look = view.looks[index];
169
+ if (look === undefined)
170
+ return null;
171
+ const counting = view.choosing?.index === index;
172
+ const picked = view.picked === index;
173
+ const on = picked || counting;
174
+ const locked = view.phase === "sent";
175
+ function tap() {
176
+ if (locked)
177
+ return;
178
+ if (counting)
179
+ view.onCancel?.();
180
+ else
181
+ view.onChoose?.(index);
182
+ }
183
+ return (React.createElement("div", { className: "vm-lr-cell", "data-on": on },
184
+ React.createElement("div", { style: { position: "relative" } },
185
+ React.createElement("button", { type: "button", role: "radio", "aria-checked": on, "aria-label": lookTileLabel(look, counting ? digit : undefined), "aria-disabled": locked, className: "vm-lr-tile", "data-on": on, "data-testid": "look-restyle-tile", onClick: tap },
186
+ look.src === undefined ? null : React.createElement("img", { className: "vm-lr-pic", src: look.src, alt: "", draggable: false }),
187
+ counting && digit !== undefined ? (React.createElement("span", { className: "vm-lr-count-big", "data-testid": "look-restyle-countdown", "aria-hidden": "true" },
188
+ React.createElement("span", null,
189
+ React.createElement("b", { key: digit }, digit)))) : null),
190
+ locked ? null : (React.createElement("button", { type: "button", className: "vm-lr-grow", "aria-label": `See ${look.name} big`, onClick: () => view.onBig?.(index) },
191
+ React.createElement(GrowGlyph, null)))),
192
+ React.createElement(Caption, { look: look })));
193
+ }
194
+ function GhostTile(props) {
195
+ return (React.createElement("div", { className: "vm-lr-cell vm-lr-ghost" },
196
+ React.createElement("div", { className: "vm-lr-tile", "aria-hidden": "true" }, props.src === undefined ? null : React.createElement("img", { className: "vm-lr-pic", src: props.src, alt: "", draggable: false })),
197
+ React.createElement("div", { className: "vm-lr-cap" }, "\u00A0")));
198
+ }
199
+ function BigView(props) {
200
+ const { view, index, digit } = props;
201
+ const look = view.looks[index];
202
+ if (look === undefined)
203
+ return null;
204
+ const counting = view.choosing?.index === index;
205
+ return (React.createElement("div", { className: "vm-lr-big" },
206
+ React.createElement("div", { className: "vm-lr-bigbar" },
207
+ React.createElement(Caption, { look: look }),
208
+ React.createElement("button", { type: "button", className: "vm-lr-back", onClick: () => view.onBig?.(undefined) }, LOOK_RESTYLE_COPY.all)),
209
+ React.createElement("button", { type: "button", role: "radio", "aria-checked": counting, "aria-label": lookTileLabel(look, counting ? digit : undefined), className: "vm-lr-tile", "data-on": counting, "data-testid": "look-restyle-big", onClick: () => (counting ? view.onCancel?.() : view.onChoose?.(index)) },
210
+ look.src === undefined ? null : React.createElement("img", { className: "vm-lr-pic", src: look.src, alt: "", draggable: false }),
211
+ view.now === undefined ? null : (React.createElement("span", { className: "vm-lr-inset" },
212
+ React.createElement("img", { className: "vm-lr-pic", src: view.now, alt: "" }),
213
+ React.createElement("em", null, LOOK_RESTYLE_COPY.compareNow))),
214
+ counting && digit !== undefined ? (React.createElement("span", { className: "vm-lr-count", "data-testid": "look-restyle-countdown", "aria-hidden": "true" },
215
+ React.createElement("b", { key: digit }, digit))) : null)));
216
+ }
217
+ function Head(props) {
218
+ const { view } = props;
219
+ if (view.phase === "sent" && view.picked !== undefined) {
220
+ return (React.createElement("div", null,
221
+ React.createElement("div", { className: "vm-lr-title" }, LOOK_RESTYLE_COPY.sent(view.looks[view.picked]?.name ?? "")),
222
+ React.createElement("div", { className: "vm-lr-sub" }, LOOK_RESTYLE_COPY.sentSub)));
223
+ }
224
+ if (view.phase === "loading") {
225
+ return (React.createElement("div", null,
226
+ React.createElement("div", { className: "vm-lr-status", role: "status" }, LOOK_RESTYLE_COPY.loading),
227
+ React.createElement("div", { className: "vm-lr-sub" }, LOOK_RESTYLE_COPY.loadingSub)));
228
+ }
229
+ return (React.createElement("div", null,
230
+ React.createElement("div", { className: "vm-lr-head" },
231
+ React.createElement("span", { className: "vm-lr-title" }, LOOK_RESTYLE_COPY.title),
232
+ React.createElement("span", { className: "vm-lr-aside" }, view.choosing === undefined ? LOOK_RESTYLE_COPY.aside : LOOK_RESTYLE_COPY.counting)),
233
+ view.phase === "idle" ? React.createElement("div", { className: "vm-lr-sub" }, LOOK_RESTYLE_COPY.idle) : null));
234
+ }
235
+ function Body(props) {
236
+ const { view, digit } = props;
237
+ switch (view.phase) {
238
+ case "no-screenshot":
239
+ return React.createElement("div", { className: "vm-lr-note" }, LOOK_RESTYLE_COPY.noScreenshot);
240
+ case "credits-short":
241
+ return (React.createElement(React.Fragment, null,
242
+ React.createElement(NowRow, { src: view.now }),
243
+ React.createElement("div", { className: "vm-lr-note" }, LOOK_RESTYLE_COPY.creditsShort)));
244
+ case "failed":
245
+ return (React.createElement(React.Fragment, null,
246
+ React.createElement(NowRow, { src: view.now }),
247
+ React.createElement("div", { className: "vm-lr-note" },
248
+ LOOK_RESTYLE_COPY.failed,
249
+ React.createElement("div", null,
250
+ React.createElement("button", { type: "button", className: "vm-lr-retry", onClick: () => view.onRetry?.() }, LOOK_RESTYLE_COPY.retry)))));
251
+ case "idle":
252
+ return React.createElement(NowRow, { src: view.now });
253
+ case "loading":
254
+ return (React.createElement(React.Fragment, null,
255
+ React.createElement(NowRow, { src: view.now }),
256
+ React.createElement("div", { className: "vm-lr-grid", "aria-hidden": "true" }, [0, 1, 2, 3].map((i) => (React.createElement(GhostTile, { key: i, src: view.now }))))));
257
+ case "ready":
258
+ case "sent":
259
+ if (view.big !== undefined && view.phase === "ready")
260
+ return React.createElement(BigView, { view: view, index: view.big, digit: digit });
261
+ return (React.createElement(React.Fragment, null,
262
+ React.createElement(NowRow, { src: view.now }),
263
+ React.createElement("div", { className: "vm-lr-grid", role: "radiogroup", "aria-label": LOOK_RESTYLE_COPY.title }, view.looks.map((look, i) => (React.createElement(LookTile, { key: `${i}-${look.name}`, view: view, index: i, digit: digit }))))));
264
+ }
265
+ }
266
+ function FontLinks(props) {
267
+ const urls = [...new Set(props.looks.flatMap((l) => (l.fontUrl === undefined ? [] : [l.fontUrl])))];
268
+ return (React.createElement(React.Fragment, null, urls.map((href) => (React.createElement("link", { key: href, rel: "stylesheet", href: href })))));
269
+ }
270
+ export function LookRestyleSection(props) {
271
+ const { view } = props;
272
+ const ref = React.useRef(null);
273
+ useScrollDownIntent(ref, view.phase === "idle" ? view.onWanted : undefined);
274
+ const onOpenRef = React.useRef(view.onOpen);
275
+ onOpenRef.current = view.onOpen;
276
+ React.useEffect(() => {
277
+ onOpenRef.current?.();
278
+ }, []);
279
+ const digit = useCountdownDigit(view.choosing?.endsAtMs);
280
+ const name = view.choosing === undefined ? undefined : view.looks[view.choosing.index]?.name;
281
+ return (React.createElement("section", { ref: ref, className: "vm-lr", "aria-label": LOOK_RESTYLE_COPY.region, "data-testid": "look-restyle", "data-phase": view.phase, "data-counting": view.choosing === undefined ? undefined : "", "data-sent": view.phase === "sent" ? "" : undefined },
282
+ React.createElement("style", null, LOOK_RESTYLE_CSS),
283
+ React.createElement(FontLinks, { looks: view.looks }),
284
+ React.createElement(Head, { view: view }),
285
+ React.createElement(Body, { view: view, digit: digit }),
286
+ React.createElement("span", { className: "vm-lr-live", role: "status", "aria-live": "polite" }, name === undefined || digit === undefined ? "" : `${name}: restyling in ${digit}.`)));
287
+ }
288
+ export const LOOK_RESTYLE_COUNTDOWN_MS = SURVEY_COUNTDOWN_MS;
289
+ export { surveyCountdownDigit as lookRestyleCountdownDigit };
290
+ //# sourceMappingURL=LookRestyleSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookRestyleSection.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/LookRestyleSection.tsx"],"names":[],"mappings":"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"}
@@ -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"}
@@ -7,8 +7,13 @@ export declare const CHICLET_COPY: Readonly<Record<"draft" | "locked", {
7
7
  readonly text: string;
8
8
  readonly label: string;
9
9
  }>>;
10
- export declare const EXAMPLES_CLEARED_TEXT = "Examples cleared \u00B7 bring back";
10
+ export declare const EXAMPLES_CLEARED_TEXT = "Example data cleared \u00B7 bring back";
11
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";
12
17
  export declare function pendingChipText(n: number): string;
13
18
  export interface StatusChip {
14
19
  readonly id: StatusChipId;
@@ -16,6 +21,7 @@ export interface StatusChip {
16
21
  readonly label: string;
17
22
  readonly onTap?: () => void;
18
23
  readonly paused?: boolean;
24
+ readonly busy?: boolean;
19
25
  }
20
26
  export interface StatusChipInputs {
21
27
  readonly pendingRequests: number;
@@ -27,6 +33,7 @@ export interface StatusChipInputs {
27
33
  } | null;
28
34
  readonly examplesCleared?: {
29
35
  onTap(): void;
36
+ readonly phase?: ExamplesChipPhase;
30
37
  } | null;
31
38
  }
32
39
  export declare function statusChipsFor(b: StatusChipInputs, handlers: {
@@ -15,20 +15,33 @@ export const CHICLET_COPY = Object.freeze({
15
15
  draft: { text: "Draft", label: "Dev draft — open the vibe menu to publish your latest changes." },
16
16
  locked: { text: "Locked", label: "Version locked — open the vibe menu to unlock and let new edits go live." },
17
17
  });
18
- export const EXAMPLES_CLEARED_TEXT = "Examples cleared · bring back";
18
+ export const EXAMPLES_CLEARED_TEXT = "Example data cleared · bring back";
19
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
+ });
20
29
  export function pendingChipText(n) {
21
30
  return `${n} waiting`;
22
31
  }
23
32
  export function statusChipsFor(b, handlers) {
24
33
  const chips = [];
25
- if (b.examplesCleared !== undefined && b.examplesCleared !== null)
34
+ if (b.examplesCleared !== undefined && b.examplesCleared !== null) {
35
+ const phase = b.examplesCleared.phase ?? "idle";
36
+ const face = EXAMPLES_FACES[phase];
26
37
  chips.push({
27
38
  id: "examplesCleared",
28
- text: EXAMPLES_CLEARED_TEXT,
29
- label: EXAMPLES_CLEARED_LABEL,
39
+ text: face.text,
40
+ label: face.label,
30
41
  onTap: b.examplesCleared.onTap,
42
+ ...(phase === "importing" ? { busy: true } : {}),
31
43
  });
44
+ }
32
45
  if (b.pendingRequests > 0) {
33
46
  const plural = b.pendingRequests === 1 ? "" : "s";
34
47
  chips.push({
@@ -74,6 +87,8 @@ function ChipFace(props) {
74
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));
75
88
  if (chip.id === "editing")
76
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));
77
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));
78
93
  }
79
94
  export function StatusChipRow(props) {
@@ -95,7 +110,7 @@ export function StatusChipRow(props) {
95
110
  return null;
96
111
  const { shown, more } = visibleStatusChips(props.chips, { collapsed, expanded: expandedFor === key });
97
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" },
98
- shown.map((chip) => floating && props.onHide !== undefined ? (React.createElement("span", { key: chip.id, className: "vm-chip-wrap", "data-chip-wrap": chip.id },
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 },
99
114
  React.createElement(ChipFace, { chip: chip }),
100
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) },
101
116
  React.createElement("span", { "aria-hidden": "true" }, "\u00D7")))) : (React.createElement(ChipFace, { key: chip.id, chip: chip }))),
@@ -1 +1 @@
1
- {"version":3,"file":"StatusChipRow.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/StatusChipRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusChipRow.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/StatusChipRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAiBxH,MAAM,CAAC,MAAM,oBAAoB,GAA2C,MAAM,CAAC,MAAM,CAAC;IACxF,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;CACX,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,iEAAiE,CAAC;AAEnG,MAAM,CAAC,MAAM,YAAY,GAA4F,MAAM,CAAC,MAAM,CAAC;IACjI,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gEAAgE,EAAE;IACjG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0EAA0E,EAAE;CAC9G,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,4DAA4D,CAAC;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAKhF,MAAM,cAAc,GAA2F,MAAM,CAAC,MAAM,CAAC;IAC3H,IAAI,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACpE,SAAS,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC7E,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE;CAClE,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,OAAO,GAAG,CAAC,UAAU,CAAC;AACxB,CAAC;AAuBD,MAAM,UAAU,cAAc,CAAC,CAAmB,EAAE,QAAkD;IACpG,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,KAAK,IAAI,MAAM,CAAC;QAChD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK;YAC9B,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;YACxC,KAAK,EAAE,GAAG,CAAC,CAAC,eAAe,kBAAkB,MAAM,uBAAuB;YAC1E,KAAK,EAAE,QAAQ,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxG,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB;YAC3D,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB;YACxE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;YACjD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAID,MAAM,UAAU,kBAAkB,CAChC,KAAmB,EACnB,CAA8D;IAE9D,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACnF,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAoC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO;QAErB,OAAO,CACL,8BAAM,SAAS,EAAC,4BAA4B,eAAW,OAAO,iBAAa,kBAAkB,gBAAa,IAAI,CAAC,KAAK,IACjH,IAAI,CAAC,IAAI,CACL,CACR,CAAC;IACJ,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC7C,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,eACvB,IAAI,CAAC,EAAE,kBACJ,IAAI,CAAC,EAAE,gBACT,IAAI,CAAC,KAAK,EACtB,OAAO,EAAE,IAAI,CAAC,KAAK,IAElB,IAAI,CAAC,IAAI,CACH,CACV,CAAC;IACJ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;QACvB,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,eAC1B,SAAS,iBACP,gBAAgB,iBACf,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBACpC,IAAI,CAAC,MAAM,KAAK,IAAI,gBACtB,IAAI,CAAC,KAAK,EACtB,OAAO,EAAE,IAAI,CAAC,KAAK,IAElB,IAAI,CAAC,IAAI,CACH,CACV,CAAC;IACJ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAEpB,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,eACzB,IAAI,CAAC,EAAE,eACR,EAAE,eACF,MAAM,mBACF,MAAM,gBACR,IAAI,CAAC,KAAK,IAErB,IAAI,CAAC,IAAI,CACH,CACV,CAAC;IACJ,OAAO,CACL,gCAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,0BAA0B,eAAY,IAAI,CAAC,EAAE,gBAAc,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,IACvH,IAAI,CAAC,IAAI,CACH,CACV,CAAC;AACJ,CAAC;AAcD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAGnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,YAAY,KAAK,GAAG,CAAC;IAC9C,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC;IACpE,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,YAAY,KAAK,GAAG;YAAE,OAAO;QACvG,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,GAAG;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;IACtG,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,aAAa,gBACX,KAAK,CAAC,KAAK,oBACP,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,mBAC3B,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,iBACtC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB;QAE9D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAC7D,8BAAM,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAC,cAAc,oBAAiB,IAAI,CAAC,EAAE;YAClE,oBAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI;YACxB,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,WAAW,iBACR,QAAQ,IAAI,CAAC,EAAE,EAAE,gBAClB,QAAQ,IAAI,CAAC,IAAI,EAAE,EAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEtC,6CAAkB,MAAM,aAAS,CAC1B,CACJ,CACR,CAAC,CAAC,CAAC,CACF,oBAAC,QAAQ,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAI,CACvC,CACF;QACA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CACV,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uCAAuC,eACvC,MAAM,gBACJ,GAAG,IAAI,OAAO,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC;;YAEhC,IAAI,CACC,CACV,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC"}