@vibes.diy/base 14.3.66 → 14.3.68
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/cards/CodeCard.d.ts +1 -1
- package/components/vibe-menu/cards/CodeCard.js +6 -2
- package/components/vibe-menu/cards/CodeCard.js.map +1 -1
- package/components/vibe-menu/index.d.ts +1 -0
- package/components/vibe-menu/index.js +1 -0
- package/components/vibe-menu/index.js.map +1 -1
- package/components/vibe-menu/parts/SurveyStrip.d.ts +23 -0
- package/components/vibe-menu/parts/SurveyStrip.js +64 -0
- package/components/vibe-menu/parts/SurveyStrip.js.map +1 -0
- package/components/vibe-menu/slices.d.ts +2 -0
- package/components/vibe-menu/slices.js.map +1 -1
- package/package.json +4 -4
|
@@ -6,7 +6,7 @@ export declare const CODE_DRILL_TITLES: Readonly<{
|
|
|
6
6
|
readonly details: "App details";
|
|
7
7
|
readonly help: "Help";
|
|
8
8
|
}>;
|
|
9
|
-
export declare const CODE_CARD_CSS = "\n[data-vibe-menu] .vm-code .vm-moments { margin-bottom: var(--space-14); }\n[data-vibe-menu] .vm-code .vm-suggestions { margin-bottom: var(--space-14); }\n[data-vibe-menu] .vm-codemode { display: flex; flex-direction: column; flex: 0 0 auto; min-height: 0; }\n[data-vibe-menu] .vm-codemode[data-fill] { flex: 1 1 auto; }\n/* The pinned top (kicker, composer, moment) keeps to half the Code mode card\n (80cqh) and scrolls on its own past that, so on a short frame (phone\n landscape) a multi-line composer stays reachable and the tab strip stays in\n the card. At normal sizes it never reaches the cap: only the tab body scrolls. */\n[data-vibe-menu] .vm-codemode-top { flex: none; max-height: 40cqh; overflow-y: auto; overscroll-behavior: contain; }\n[data-vibe-menu] .vm-codemode .vm-composer,\n[data-vibe-menu] .vm-codemode .vm-moments { margin-bottom: 10px; }\n";
|
|
9
|
+
export declare const CODE_CARD_CSS = "\n[data-vibe-menu] .vm-code .vm-moments { margin-bottom: var(--space-14); }\n[data-vibe-menu] .vm-code .vm-suggestions { margin-bottom: var(--space-14); }\n[data-vibe-menu] .vm-codemode { display: flex; flex-direction: column; flex: 0 0 auto; min-height: 0; }\n[data-vibe-menu] .vm-codemode[data-fill] { flex: 1 1 auto; }\n/* The pinned top (kicker, composer, moment) keeps to half the Code mode card\n (80cqh) and scrolls on its own past that, so on a short frame (phone\n landscape) a multi-line composer stays reachable and the tab strip stays in\n the card. At normal sizes it never reaches the cap: only the tab body scrolls. */\n[data-vibe-menu] .vm-codemode-top { flex: none; max-height: 40cqh; overflow-y: auto; overscroll-behavior: contain; }\n[data-vibe-menu] .vm-codemode .vm-composer,\n[data-vibe-menu] .vm-codemode .vm-moments { margin-bottom: 10px; }\n\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-tile { position: relative; 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; }\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-picked] .vm-survey-tile:not([data-on=\"true\"]) { opacity: 0.35; }\n[data-vibe-menu] .vm-survey-art { display: block; width: 100%; height: 100%; object-fit: cover; }\n[data-vibe-menu] .vm-survey-pending { width: 100%; height: 100%; background: linear-gradient(110deg, var(--line-hairline) 30%, color-mix(in srgb, var(--ink) 14%, transparent) 50%, var(--line-hairline) 70%); background-size: 200% 100%; animation: vm-survey-shimmer 1.4s linear infinite; }\n@keyframes vm-survey-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }\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-pick { flex: none; height: 36px; padding: 0 var(--space-16); border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-full); background: var(--accent); color: var(--on-accent); font: 700 14px/1 var(--font-display); cursor: pointer; white-space: nowrap; }\n[data-vibe-menu] .vm-survey-pick:disabled { opacity: 0.45; cursor: default; }\n@container vm-survey (max-width: 360px) { [data-vibe-menu] .vm-survey-aside { display: none; } }\n@media (prefers-reduced-motion: reduce) { [data-vibe-menu] .vm-survey-pending { animation: none; } }\n";
|
|
10
10
|
export interface CodeCardProps {
|
|
11
11
|
readonly viewer: ViewerSlice;
|
|
12
12
|
readonly code: CodeSlice;
|
|
@@ -9,6 +9,7 @@ import { Composer } from "../parts/Composer.js";
|
|
|
9
9
|
import { DoneButton } from "../parts/DoneButton.js";
|
|
10
10
|
import { MomentLine } from "../parts/MomentLine.js";
|
|
11
11
|
import { Row } from "../parts/Row.js";
|
|
12
|
+
import { SURVEY_STRIP_CSS, SurveyStrip } from "../parts/SurveyStrip.js";
|
|
12
13
|
import { CodeModeWorkspace, WORKSPACE_CODE_TABS, resolveActiveCodeTab } from "./CodeModeWorkspace.js";
|
|
13
14
|
export const CODE_DRILL_TITLES = Object.freeze({ look: "Look", details: "App details", help: "Help" });
|
|
14
15
|
export const CODE_CARD_CSS = `
|
|
@@ -23,7 +24,7 @@ export const CODE_CARD_CSS = `
|
|
|
23
24
|
[data-vibe-menu] .vm-codemode-top { flex: none; max-height: 40cqh; overflow-y: auto; overscroll-behavior: contain; }
|
|
24
25
|
[data-vibe-menu] .vm-codemode .vm-composer,
|
|
25
26
|
[data-vibe-menu] .vm-codemode .vm-moments { margin-bottom: 10px; }
|
|
26
|
-
`;
|
|
27
|
+
${SURVEY_STRIP_CSS}`;
|
|
27
28
|
const NO_MOMENT = { pinned: null, live: null };
|
|
28
29
|
function codeDrillOf(input) {
|
|
29
30
|
if (input.view === null)
|
|
@@ -61,6 +62,7 @@ export function CodeCard(props) {
|
|
|
61
62
|
? withOpenLog(currentMoment(code.moments), { logOpen: props.logOpen, hasLog: logLines.length > 0, codeMode: codeModeOn })
|
|
62
63
|
: NO_MOMENT;
|
|
63
64
|
const hasMoment = moment.pinned !== null || moment.live !== null;
|
|
65
|
+
const survey = editor && code.survey !== undefined && code.survey !== null ? React.createElement(SurveyStrip, { survey: code.survey }) : null;
|
|
64
66
|
const kicker = kickerFor({ code, banner: nav.banner, editor, pending });
|
|
65
67
|
const composer = pending === true ? neutralComposer(code.composer) : code.composer;
|
|
66
68
|
const placeholder = pending === true ? "" : composer.cap === "Remix this" && props.remixHint !== "" ? props.remixHint : composer.placeholder;
|
|
@@ -79,7 +81,8 @@ export function CodeCard(props) {
|
|
|
79
81
|
React.createElement("style", null, CODE_CARD_CSS),
|
|
80
82
|
React.createElement("div", { className: "vm-codemode-top" },
|
|
81
83
|
head,
|
|
82
|
-
hasMoment ? React.createElement(MomentLine, { moment: moment, log: null, onAction: code.onMomentAction }) : null
|
|
84
|
+
hasMoment ? React.createElement(MomentLine, { moment: moment, log: null, onAction: code.onMomentAction }) : null,
|
|
85
|
+
survey),
|
|
83
86
|
React.createElement(CodeModeWorkspace, { tab: tab, disabledTabs: code.disabledCodeTabs, onTab: onTab, onCodeModeOff: () => code.onCodeMode(false), slots: { look: code.slots.look, help: code.slots.help, agentLog: code.slots.agentLog }, log: logLines, queued: queuedLines, workspacePanelId: props.workspacePanelId })));
|
|
84
87
|
}
|
|
85
88
|
const toggle = { open: props.logOpen, onToggle: () => props.onLogOpen(props.logOpen === false), lines: logLines };
|
|
@@ -101,6 +104,7 @@ export function CodeCard(props) {
|
|
|
101
104
|
return (React.createElement("div", { className: "vm-code", "data-card": "vibe" },
|
|
102
105
|
React.createElement("style", null, CODE_CARD_CSS),
|
|
103
106
|
top,
|
|
107
|
+
survey,
|
|
104
108
|
React.createElement(Suggestions, { items: suggestions, onPick: code.onSuggestion, fastPaths: code.suggestionFastPaths, onToggleFastPath: onToggleFastPath }),
|
|
105
109
|
React.createElement("div", { className: "vm-group" },
|
|
106
110
|
owner ? (React.createElement(Row, { lead: "palette", label: CODE_DRILL_TITLES.look, compact: true, tail: { kind: "drill" }, onClick: () => nav.onDrill({ drill: "look" }) })) : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeCard.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/cards/CodeCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMtG,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAW,CAAC,CAAC;AAGhH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"CodeCard.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/cards/CodeCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export * from "./parts/Chip.js";
|
|
|
14
14
|
export * from "./parts/Composer.js";
|
|
15
15
|
export * from "./parts/use-composer-draft.js";
|
|
16
16
|
export * from "./parts/MomentLine.js";
|
|
17
|
+
export * from "./parts/SurveyStrip.js";
|
|
17
18
|
export * from "./parts/AccessToggle.js";
|
|
18
19
|
export * from "./parts/GrantControls.js";
|
|
19
20
|
export * from "./parts/MemberRow.js";
|
|
@@ -14,6 +14,7 @@ export * from "./parts/Chip.js";
|
|
|
14
14
|
export * from "./parts/Composer.js";
|
|
15
15
|
export * from "./parts/use-composer-draft.js";
|
|
16
16
|
export * from "./parts/MomentLine.js";
|
|
17
|
+
export * from "./parts/SurveyStrip.js";
|
|
17
18
|
export * from "./parts/AccessToggle.js";
|
|
18
19
|
export * from "./parts/GrantControls.js";
|
|
19
20
|
export * from "./parts/MemberRow.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface SurveyFace {
|
|
3
|
+
readonly src?: string;
|
|
4
|
+
readonly label: string;
|
|
5
|
+
readonly pitch: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CodeSurvey {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly faces: readonly SurveyFace[];
|
|
10
|
+
readonly picked?: number;
|
|
11
|
+
readonly onPick?: (index: number) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const SURVEY_COPY: Readonly<{
|
|
14
|
+
readonly choosing: "Want to steer the look?";
|
|
15
|
+
readonly aside: "Optional · the build goes on";
|
|
16
|
+
readonly picked: "Building in this look";
|
|
17
|
+
readonly pick: "Build this one";
|
|
18
|
+
readonly region: "Steer the look";
|
|
19
|
+
}>;
|
|
20
|
+
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-tile { position: relative; 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; }\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-picked] .vm-survey-tile:not([data-on=\"true\"]) { opacity: 0.35; }\n[data-vibe-menu] .vm-survey-art { display: block; width: 100%; height: 100%; object-fit: cover; }\n[data-vibe-menu] .vm-survey-pending { width: 100%; height: 100%; background: linear-gradient(110deg, var(--line-hairline) 30%, color-mix(in srgb, var(--ink) 14%, transparent) 50%, var(--line-hairline) 70%); background-size: 200% 100%; animation: vm-survey-shimmer 1.4s linear infinite; }\n@keyframes vm-survey-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }\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-pick { flex: none; height: 36px; padding: 0 var(--space-16); border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-full); background: var(--accent); color: var(--on-accent); font: 700 14px/1 var(--font-display); cursor: pointer; white-space: nowrap; }\n[data-vibe-menu] .vm-survey-pick:disabled { opacity: 0.45; cursor: default; }\n@container vm-survey (max-width: 360px) { [data-vibe-menu] .vm-survey-aside { display: none; } }\n@media (prefers-reduced-motion: reduce) { [data-vibe-menu] .vm-survey-pending { animation: none; } }\n";
|
|
21
|
+
export declare function SurveyStrip(props: {
|
|
22
|
+
readonly survey: CodeSurvey;
|
|
23
|
+
}): React.ReactElement;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export const SURVEY_COPY = Object.freeze({
|
|
3
|
+
choosing: "Want to steer the look?",
|
|
4
|
+
aside: "Optional · the build goes on",
|
|
5
|
+
picked: "Building in this look",
|
|
6
|
+
pick: "Build this one",
|
|
7
|
+
region: "Steer the look",
|
|
8
|
+
});
|
|
9
|
+
export const SURVEY_STRIP_CSS = `
|
|
10
|
+
/* Its own container: the aside steps out when the strip itself is narrow, on any host. */
|
|
11
|
+
[data-vibe-menu] .vm-survey { margin: 0 0 var(--space-14); container: vm-survey / inline-size; }
|
|
12
|
+
/* Code mode's card is wide and its pinned top is capped: the strip keeps the card-sized tiles. */
|
|
13
|
+
[data-vibe-menu] .vm-codemode .vm-survey { margin-bottom: 10px; max-width: 420px; }
|
|
14
|
+
[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); }
|
|
15
|
+
[data-vibe-menu] .vm-survey-title { font: 600 15px/1.3 var(--font-display); color: var(--ink); }
|
|
16
|
+
[data-vibe-menu] .vm-survey-aside { font: 400 12px/1.3 var(--font-display); color: var(--muted); white-space: nowrap; }
|
|
17
|
+
[data-vibe-menu] .vm-survey-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); }
|
|
18
|
+
/* Three readings keep the four-up tile size: the missing tile's column stays empty. */
|
|
19
|
+
[data-vibe-menu] .vm-survey-strip[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-right: calc((100% - 24px) / 4 + 8px); }
|
|
20
|
+
[data-vibe-menu] .vm-survey-tile { position: relative; 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; }
|
|
21
|
+
[data-vibe-menu] .vm-survey-tile[data-on="true"] { outline: var(--stroke-focus) solid var(--accent); outline-offset: 2px; }
|
|
22
|
+
[data-vibe-menu] .vm-survey-tile[aria-disabled="true"] { cursor: default; }
|
|
23
|
+
[data-vibe-menu] .vm-survey[data-picked] .vm-survey-tile:not([data-on="true"]) { opacity: 0.35; }
|
|
24
|
+
[data-vibe-menu] .vm-survey-art { display: block; width: 100%; height: 100%; object-fit: cover; }
|
|
25
|
+
[data-vibe-menu] .vm-survey-pending { width: 100%; height: 100%; background: linear-gradient(110deg, var(--line-hairline) 30%, color-mix(in srgb, var(--ink) 14%, transparent) 50%, var(--line-hairline) 70%); background-size: 200% 100%; animation: vm-survey-shimmer 1.4s linear infinite; }
|
|
26
|
+
@keyframes vm-survey-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
|
|
27
|
+
[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); }
|
|
28
|
+
[data-vibe-menu] .vm-survey-text { flex: 1 1 auto; min-width: 0; }
|
|
29
|
+
[data-vibe-menu] .vm-survey-label { font: 700 14px/1.3 var(--font-display); color: var(--ink); }
|
|
30
|
+
[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; }
|
|
31
|
+
[data-vibe-menu] .vm-survey-pick { flex: none; height: 36px; padding: 0 var(--space-16); border: var(--stroke-rule) solid var(--line-card); border-radius: var(--radius-full); background: var(--accent); color: var(--on-accent); font: 700 14px/1 var(--font-display); cursor: pointer; white-space: nowrap; }
|
|
32
|
+
[data-vibe-menu] .vm-survey-pick:disabled { opacity: 0.45; cursor: default; }
|
|
33
|
+
@container vm-survey (max-width: 360px) { [data-vibe-menu] .vm-survey-aside { display: none; } }
|
|
34
|
+
@media (prefers-reduced-motion: reduce) { [data-vibe-menu] .vm-survey-pending { animation: none; } }
|
|
35
|
+
`;
|
|
36
|
+
function Art(props) {
|
|
37
|
+
return props.face.src === undefined ? (React.createElement("div", { className: "vm-survey-pending", "data-testid": "survey-face-pending" })) : (React.createElement("img", { className: "vm-survey-art", src: props.face.src, alt: "", draggable: false }));
|
|
38
|
+
}
|
|
39
|
+
function SurveyStripBody(props) {
|
|
40
|
+
const { faces, picked, onPick } = props.survey;
|
|
41
|
+
const [focus, setFocus] = React.useState(0);
|
|
42
|
+
const chosen = picked !== undefined;
|
|
43
|
+
const shown = picked ?? focus;
|
|
44
|
+
const face = faces[shown];
|
|
45
|
+
const ready = face?.src !== undefined && onPick !== undefined;
|
|
46
|
+
return (React.createElement("section", { className: "vm-survey", "data-testid": "survey-strip", "data-picked": chosen ? "" : undefined, "aria-label": SURVEY_COPY.region },
|
|
47
|
+
React.createElement("div", { className: "vm-survey-head" },
|
|
48
|
+
React.createElement("span", { className: "vm-survey-title" }, chosen ? SURVEY_COPY.picked : SURVEY_COPY.choosing),
|
|
49
|
+
chosen ? null : React.createElement("span", { className: "vm-survey-aside" }, SURVEY_COPY.aside)),
|
|
50
|
+
React.createElement("div", { className: "vm-survey-strip", role: "radiogroup", "aria-label": SURVEY_COPY.choosing, "data-count": faces.length }, faces.map((f, i) => (React.createElement("button", { key: i, type: "button", role: "radio", "aria-checked": shown === i, "aria-label": `${f.label}: ${f.pitch}`, "aria-disabled": chosen, className: "vm-survey-tile", "data-on": shown === i, onClick: () => {
|
|
51
|
+
if (!chosen)
|
|
52
|
+
setFocus(i);
|
|
53
|
+
} },
|
|
54
|
+
React.createElement(Art, { face: f }))))),
|
|
55
|
+
React.createElement("div", { className: "vm-survey-foot" },
|
|
56
|
+
React.createElement("div", { className: "vm-survey-text", "aria-live": "polite" },
|
|
57
|
+
React.createElement("div", { className: "vm-survey-label" }, face?.label),
|
|
58
|
+
React.createElement("div", { className: "vm-survey-pitch" }, face?.pitch)),
|
|
59
|
+
chosen ? null : (React.createElement("button", { type: "button", className: "vm-survey-pick", disabled: !ready, onClick: () => onPick?.(shown) }, SURVEY_COPY.pick)))));
|
|
60
|
+
}
|
|
61
|
+
export function SurveyStrip(props) {
|
|
62
|
+
return React.createElement(SurveyStripBody, { key: props.survey.id, survey: props.survey });
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=SurveyStrip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurveyStrip.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/SurveyStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import type { MemberRowMember } from "./parts/MemberRow.js";
|
|
|
10
10
|
import type { AgentLogLine } from "./parts/MomentLine.js";
|
|
11
11
|
import type { ComposerSlice } from "./parts/Composer.js";
|
|
12
12
|
import type { SuggestionFastPath } from "./parts/Chip.js";
|
|
13
|
+
import type { CodeSurvey } from "./parts/SurveyStrip.js";
|
|
13
14
|
export type Posture = AccessPosture;
|
|
14
15
|
export type DataGrant = GrantData;
|
|
15
16
|
export type RosterMember = MemberRowMember;
|
|
@@ -80,6 +81,7 @@ export interface CodeSlice {
|
|
|
80
81
|
workspace: ReactNode;
|
|
81
82
|
agentLog?: ReactNode;
|
|
82
83
|
};
|
|
84
|
+
readonly survey?: CodeSurvey | null;
|
|
83
85
|
}
|
|
84
86
|
export type AppClipCardStatus = "requested" | "submitted" | "in_review" | "live" | "rejected" | "failed" | "deactivated";
|
|
85
87
|
export interface ShareAppSlice {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/slices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/slices.ts"],"names":[],"mappings":"AA+NA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,qDAAqD;IACjE,eAAe,EAAE,sDAAsD;CAC/D,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/base",
|
|
3
|
-
"version": "14.3.
|
|
3
|
+
"version": "14.3.68",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@adviser/cement": "~0.5.34",
|
|
12
12
|
"@emotion/css": "~11.13.5",
|
|
13
|
-
"@vibes.diy/use-vibes-types": "14.3.
|
|
14
|
-
"@vibes.diy/vibe-runtime": "14.3.
|
|
15
|
-
"@vibes.diy/vibe-types": "14.3.
|
|
13
|
+
"@vibes.diy/use-vibes-types": "14.3.68",
|
|
14
|
+
"@vibes.diy/vibe-runtime": "14.3.68",
|
|
15
|
+
"@vibes.diy/vibe-types": "14.3.68",
|
|
16
16
|
"arktype": "~2.2.6",
|
|
17
17
|
"officeparser": "~8.0.0",
|
|
18
18
|
"qrcode-generator": "~2.0.4",
|