@vibes.diy/base 14.3.114 → 14.3.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/vibe-menu/VibeMenu.js +2 -9
- package/components/vibe-menu/VibeMenu.js.map +1 -1
- package/components/vibe-menu/cards/CodeCard.d.ts +1 -1
- package/components/vibe-menu/cards/CodeCard.js +13 -6
- package/components/vibe-menu/cards/CodeCard.js.map +1 -1
- package/components/vibe-menu/cards/CodeModeWorkspace.d.ts +2 -1
- package/components/vibe-menu/cards/CodeModeWorkspace.js +8 -6
- package/components/vibe-menu/cards/CodeModeWorkspace.js.map +1 -1
- package/components/vibe-menu/geometry.d.ts +2 -0
- package/components/vibe-menu/geometry.js +6 -0
- package/components/vibe-menu/geometry.js.map +1 -1
- package/components/vibe-menu/index.d.ts +3 -0
- package/components/vibe-menu/index.js +3 -0
- package/components/vibe-menu/index.js.map +1 -1
- package/components/vibe-menu/parts/Chip.d.ts +2 -1
- package/components/vibe-menu/parts/Chip.js +26 -2
- package/components/vibe-menu/parts/Chip.js.map +1 -1
- package/components/vibe-menu/parts/Composer.d.ts +11 -0
- package/components/vibe-menu/parts/Composer.js +44 -1
- package/components/vibe-menu/parts/Composer.js.map +1 -1
- package/components/vibe-menu/parts/LookRestyleSection.d.ts +51 -0
- package/components/vibe-menu/parts/LookRestyleSection.js +290 -0
- package/components/vibe-menu/parts/LookRestyleSection.js.map +1 -0
- package/components/vibe-menu/parts/MomentLine.d.ts +1 -0
- package/components/vibe-menu/parts/MomentLine.js +4 -2
- package/components/vibe-menu/parts/MomentLine.js.map +1 -1
- package/components/vibe-menu/parts/SendCap.d.ts +8 -0
- package/components/vibe-menu/parts/SendCap.js +10 -0
- package/components/vibe-menu/parts/SendCap.js.map +1 -0
- package/components/vibe-menu/parts/StatusChipRow.d.ts +8 -1
- package/components/vibe-menu/parts/StatusChipRow.js +20 -5
- package/components/vibe-menu/parts/StatusChipRow.js.map +1 -1
- package/components/vibe-menu/parts/SurveyStrip.d.ts +3 -1
- package/components/vibe-menu/parts/SurveyStrip.js +9 -1
- package/components/vibe-menu/parts/SurveyStrip.js.map +1 -1
- package/components/vibe-menu/parts/agent-log-frame.d.ts +9 -0
- package/components/vibe-menu/parts/agent-log-frame.js +10 -0
- package/components/vibe-menu/parts/agent-log-frame.js.map +1 -0
- package/components/vibe-menu/parts/use-composer-draft.js +30 -0
- package/components/vibe-menu/parts/use-composer-draft.js.map +1 -1
- package/components/vibe-menu/shell/shell.styles.js +79 -2
- package/components/vibe-menu/shell/shell.styles.js.map +1 -1
- package/components/vibe-menu/slices.d.ts +3 -4
- package/components/vibe-menu/slices.js.map +1 -1
- package/components/vibe-menu/vibe-menu.styles.d.ts +3 -3
- package/components/vibe-menu/vibe-menu.styles.js +131 -1
- package/components/vibe-menu/vibe-menu.styles.js.map +1 -1
- package/hooks/img-gen/use-img-gen.d.ts +1 -0
- package/hooks/img-gen/use-img-gen.js +374 -304
- package/hooks/img-gen/use-img-gen.js.map +1 -1
- package/package.json +5 -5
|
@@ -24,6 +24,8 @@ export const VIBE_MENU_LIGHT_VARS = `
|
|
|
24
24
|
--on-share: var(--menu-ink);
|
|
25
25
|
--badge: var(--section-account);
|
|
26
26
|
--on-badge: var(--vibes-cream);
|
|
27
|
+
--cancel-cap: #f3d6d2;
|
|
28
|
+
--on-cancel-cap: #9c2318;
|
|
27
29
|
--obsidian-fill: rgba(6, 9, 10, 0.94);
|
|
28
30
|
--obsidian-edge: rgba(255, 255, 255, 0.17);
|
|
29
31
|
--obsidian-highlight: rgba(255, 255, 255, 0.32);
|
|
@@ -99,6 +101,8 @@ export const VIBE_MENU_DARK_VARS = `
|
|
|
99
101
|
--line-card: #e0e0e0;
|
|
100
102
|
--line-hairline: #e0e0e02e;
|
|
101
103
|
--suggest-border: #e0e0e073;
|
|
104
|
+
--cancel-cap: #4a2420;
|
|
105
|
+
--on-cancel-cap: #f1b5ad;
|
|
102
106
|
--swatch-selected: 0 0 0 2px #1a1a1a, 0 0 0 4px #e0e0e0;`;
|
|
103
107
|
export const VIBE_MENU_CSS = `
|
|
104
108
|
/* ---------- tokens (tokens.json), light, then both dark arms ----------
|
|
@@ -599,10 +603,29 @@ export const VIBE_MENU_CSS = `
|
|
|
599
603
|
cursor: pointer;
|
|
600
604
|
}
|
|
601
605
|
[data-vibe-menu] .vm-suggest:hover,
|
|
602
|
-
[data-vibe-menu] .vm-suggest.is-hover
|
|
606
|
+
[data-vibe-menu] .vm-suggest.is-hover,
|
|
607
|
+
[data-vibe-menu] .vm-suggest[aria-busy="true"] {
|
|
603
608
|
border-color: var(--line-card);
|
|
604
609
|
background: color-mix(in srgb, var(--accent) 35%, transparent);
|
|
605
610
|
}
|
|
611
|
+
/* A pressed chip holds the row while its answer is on the way (a lookup, a
|
|
612
|
+
fork): it stays lit, and the row takes no second press. */
|
|
613
|
+
[data-vibe-menu] .vm-suggest:disabled {
|
|
614
|
+
cursor: default;
|
|
615
|
+
}
|
|
616
|
+
[data-vibe-menu] .vm-suggest:disabled:not([aria-busy="true"]) {
|
|
617
|
+
opacity: 0.5;
|
|
618
|
+
}
|
|
619
|
+
/* The pressed one is disabled too (the row takes no second press), so it
|
|
620
|
+
must outrank the app's global button:disabled dim (theme/global-styles.ts). */
|
|
621
|
+
[data-vibe-menu] .vm-suggest[aria-busy="true"] {
|
|
622
|
+
opacity: 1;
|
|
623
|
+
}
|
|
624
|
+
/* The same hold on the inline links at the end of the chat: the pressed link
|
|
625
|
+
keeps its lit underline, the others read as disabled (dimmed above). */
|
|
626
|
+
[data-vibe-menu] .vm-suggestions.is-inline .vm-suggest[aria-busy="true"] {
|
|
627
|
+
text-decoration-color: currentColor;
|
|
628
|
+
}
|
|
606
629
|
/* The gold option (#6768): the one capability the agent offered, a chip in the
|
|
607
630
|
same row and the same order as the others. It wears the lit state the others
|
|
608
631
|
take on hover, a full-ink outline and a filled star before the label, so it
|
|
@@ -703,6 +726,45 @@ export const VIBE_MENU_CSS = `
|
|
|
703
726
|
[data-vibe-menu] .vm-composer.is-building:has(textarea:not(:placeholder-shown)) .vm-cap[data-send] {
|
|
704
727
|
display: flex;
|
|
705
728
|
}
|
|
729
|
+
/* Rewrite mode (the settings tab's sharing rewrite): no attach button, so the
|
|
730
|
+
field takes the attach's inset; a dim red X cap sits left of the action cap. */
|
|
731
|
+
[data-vibe-menu] .vm-composer.is-rewrite {
|
|
732
|
+
position: relative;
|
|
733
|
+
}
|
|
734
|
+
[data-vibe-menu] .vm-composer.is-rewrite textarea {
|
|
735
|
+
margin-left: var(--space-24);
|
|
736
|
+
}
|
|
737
|
+
[data-vibe-menu] .vm-cap[data-cancel] {
|
|
738
|
+
padding: 0 var(--space-16);
|
|
739
|
+
background: var(--cancel-cap);
|
|
740
|
+
color: var(--on-cancel-cap);
|
|
741
|
+
}
|
|
742
|
+
[data-vibe-menu] .vm-cap[data-cancel]:hover {
|
|
743
|
+
background: color-mix(in oklch, var(--cancel-cap), var(--on-cancel-cap) 12%);
|
|
744
|
+
}
|
|
745
|
+
[data-vibe-menu] .vm-rewrite-shimmer {
|
|
746
|
+
position: absolute;
|
|
747
|
+
left: var(--space-24);
|
|
748
|
+
top: 50%;
|
|
749
|
+
width: 28%;
|
|
750
|
+
height: var(--space-12);
|
|
751
|
+
margin-top: calc(var(--space-12) / -2);
|
|
752
|
+
border-radius: var(--radius-full);
|
|
753
|
+
background: var(--placeholder);
|
|
754
|
+
opacity: 0.3;
|
|
755
|
+
pointer-events: none;
|
|
756
|
+
animation: vm-rewrite-shimmer 1.4s ease-in-out infinite;
|
|
757
|
+
}
|
|
758
|
+
@keyframes vm-rewrite-shimmer {
|
|
759
|
+
50% {
|
|
760
|
+
opacity: 0.12;
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
@media (prefers-reduced-motion: reduce) {
|
|
764
|
+
[data-vibe-menu] .vm-rewrite-shimmer {
|
|
765
|
+
animation: none;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
706
768
|
[data-vibe-menu] .vm-queue-note {
|
|
707
769
|
display: none;
|
|
708
770
|
margin: -10px 0 12px 18px;
|
|
@@ -1010,6 +1072,74 @@ export const VIBE_MENU_CSS = `
|
|
|
1010
1072
|
[data-vibe-menu] .vm-log-clip[data-open="true"]::-webkit-scrollbar {
|
|
1011
1073
|
display: none;
|
|
1012
1074
|
}
|
|
1075
|
+
/* The fold over the full chat (slots.agentLog): the history caps and scrolls
|
|
1076
|
+
itself (AgentLogHistory's compact box), so the clip drops the flat log's cap. */
|
|
1077
|
+
[data-vibe-menu] .vm-log-clip[data-open="true"][data-history] {
|
|
1078
|
+
max-height: none;
|
|
1079
|
+
overflow: hidden;
|
|
1080
|
+
}
|
|
1081
|
+
[data-vibe-menu] .vm-log-history {
|
|
1082
|
+
margin-top: var(--space-8);
|
|
1083
|
+
border-top: var(--stroke-hairline) solid var(--line-hairline);
|
|
1084
|
+
border-bottom: var(--stroke-hairline) solid var(--line-hairline);
|
|
1085
|
+
}
|
|
1086
|
+
/* One scroller: the tab-row card with the full chat open. The history's own
|
|
1087
|
+
cap (AgentLogHistory's compact box) knows nothing of what else the card
|
|
1088
|
+
holds, and the first build's request headline can take a third of it: the
|
|
1089
|
+
card then overflowed and scrolled too, the composer slid under the row, and
|
|
1090
|
+
the chat's end was out of reach. Here the card is a column whose fold gives
|
|
1091
|
+
up exactly what the card lacks, so the history scrolls and the card never
|
|
1092
|
+
does. Everything else in the card keeps its own height. */
|
|
1093
|
+
[data-vibe-menu] .vm-card:has(.vm-ctab .vm-log-clip[data-open="true"][data-history]) {
|
|
1094
|
+
display: flex;
|
|
1095
|
+
flex-direction: column;
|
|
1096
|
+
}
|
|
1097
|
+
[data-vibe-menu] .vm-card:has(.vm-ctab .vm-log-clip[data-open="true"][data-history])::before {
|
|
1098
|
+
flex: none;
|
|
1099
|
+
}
|
|
1100
|
+
[data-vibe-menu] .vm-card:has(.vm-ctab .vm-log-clip[data-open="true"][data-history]) .vm-card-body,
|
|
1101
|
+
[data-vibe-menu] .vm-ctab:has(.vm-log-clip[data-open="true"][data-history]),
|
|
1102
|
+
[data-vibe-menu] .vm-ctab .vm-moments:has(.vm-log-clip[data-open="true"][data-history]),
|
|
1103
|
+
[data-vibe-menu] .vm-ctab .vm-live:has(.vm-log-clip[data-open="true"][data-history]),
|
|
1104
|
+
[data-vibe-menu] .vm-ctab .vm-log-clip[data-open="true"][data-history],
|
|
1105
|
+
[data-vibe-menu] .vm-ctab .vm-log-clip[data-open="true"][data-history] .vm-log-history {
|
|
1106
|
+
display: flex;
|
|
1107
|
+
flex-direction: column;
|
|
1108
|
+
flex: 0 1 auto;
|
|
1109
|
+
min-height: 0;
|
|
1110
|
+
}
|
|
1111
|
+
[data-vibe-menu] .vm-ctab .vm-log-clip[data-open="true"][data-history] .vm-log-history > * {
|
|
1112
|
+
min-height: 0;
|
|
1113
|
+
}
|
|
1114
|
+
[data-vibe-menu] .vm-ctab:has(.vm-log-clip[data-open="true"][data-history]) > :not(.vm-moments),
|
|
1115
|
+
[data-vibe-menu] .vm-ctab .vm-live:has(.vm-log-clip[data-open="true"][data-history]) > :not(.vm-log-clip) {
|
|
1116
|
+
flex-shrink: 0;
|
|
1117
|
+
}
|
|
1118
|
+
[data-vibe-menu] .vm-agent-history-tail {
|
|
1119
|
+
padding: var(--space-10) 4px var(--space-14) var(--space-24);
|
|
1120
|
+
}
|
|
1121
|
+
/* Suggestions at the end of the chat: wrapped inline links, not chips. */
|
|
1122
|
+
[data-vibe-menu] .vm-suggestions.is-inline {
|
|
1123
|
+
gap: var(--space-6) var(--space-14);
|
|
1124
|
+
margin-bottom: 0;
|
|
1125
|
+
}
|
|
1126
|
+
[data-vibe-menu] .vm-suggestions.is-inline .vm-suggest {
|
|
1127
|
+
min-height: 0;
|
|
1128
|
+
padding: 0;
|
|
1129
|
+
border: none;
|
|
1130
|
+
border-radius: 0;
|
|
1131
|
+
background: none;
|
|
1132
|
+
text-decoration: underline;
|
|
1133
|
+
text-decoration-color: var(--suggest-border);
|
|
1134
|
+
text-decoration-thickness: 1px;
|
|
1135
|
+
text-underline-offset: 3px;
|
|
1136
|
+
}
|
|
1137
|
+
[data-vibe-menu] .vm-suggestions.is-inline .vm-suggest:hover,
|
|
1138
|
+
[data-vibe-menu] .vm-suggestions.is-inline .vm-suggest.is-hover,
|
|
1139
|
+
[data-vibe-menu] .vm-suggestions.is-inline .vm-suggest.is-gold {
|
|
1140
|
+
background: none;
|
|
1141
|
+
text-decoration-color: currentColor;
|
|
1142
|
+
}
|
|
1013
1143
|
[data-vibe-menu] .vm-log {
|
|
1014
1144
|
max-height: var(--size-log-max);
|
|
1015
1145
|
overflow-y: auto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vibe-menu.styles.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/vibe-menu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"vibe-menu.styles.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/vibe-menu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA6FJ,CAAC;AAEjC,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;2DAUwB,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;6BAKA,oBAAoB;;;;+BAIlB,mBAAmB;;;;mCAIf,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA26CrD,CAAC;AAGF,MAAM,UAAU,cAAc;IAC5B,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;AACtF,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { Result } from "@adviser/cement";
|
|
|
6
6
|
import { type LocalFileUrl } from "./local-pictures.js";
|
|
7
7
|
import type { PictureStore } from "./picture-bytes.js";
|
|
8
8
|
export declare function __setImgGenProbeDeadlineMsForTests(ms: number | undefined): void;
|
|
9
|
+
export declare function __resetImgGenLeasesForTests(): void;
|
|
9
10
|
export declare function __setImgGenCommitReprobeDelaysMsForTests(ms: readonly number[] | undefined): void;
|
|
10
11
|
interface InjectedDeps {
|
|
11
12
|
temporaryDraft?: boolean;
|