@vibes.diy/base 14.3.107 → 14.3.109

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.
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import type { BuildPhase } from "@vibes.diy/api-types";
3
+ export type HomeBuildChipStatus = "starting" | "planning" | "building" | "queued" | "needs-you" | "ready" | "continue" | "failed" | "add-credits" | "sign-in" | "saved";
4
+ export interface HomeBuildChip {
5
+ readonly id: string;
6
+ readonly title: string;
7
+ readonly status: HomeBuildChipStatus;
8
+ readonly dismissible?: boolean;
9
+ }
10
+ export interface HomeBuildChipArrival {
11
+ readonly id: string;
12
+ readonly from: {
13
+ readonly x: number;
14
+ readonly y: number;
15
+ };
16
+ }
17
+ export declare const HOME_BUILD_CHIP_LABELS: Readonly<Record<HomeBuildChipStatus, string>>;
18
+ export declare function homeBuildChipStatus(phase: BuildPhase, opts?: {
19
+ readonly guest?: boolean;
20
+ }): HomeBuildChipStatus;
21
+ export declare function HomeBuildChips(props: {
22
+ readonly items: readonly HomeBuildChip[];
23
+ readonly onOpen: (id: string) => void;
24
+ readonly onAnotherIdea: () => void;
25
+ readonly onDismiss?: (id: string) => void;
26
+ readonly returning?: boolean;
27
+ readonly arrival?: HomeBuildChipArrival;
28
+ readonly onArrival?: () => void;
29
+ }): React.ReactElement | null;
@@ -0,0 +1,152 @@
1
+ import * as React from "react";
2
+ import { HOME_BRAND_FONT } from "./homeBrandFont.js";
3
+ const paint = [
4
+ { color: "#ef77a9", face: "game", ink: "#151515" },
5
+ { color: "#445796", face: "education", ink: "#FEFFF1" },
6
+ { color: "#01a947", face: "health", ink: "#151515" },
7
+ { color: "#ff571e", face: "music", ink: "#151515" },
8
+ ];
9
+ export const HOME_BUILD_CHIP_LABELS = {
10
+ starting: "Starting…",
11
+ planning: "Planning…",
12
+ building: "Building…",
13
+ queued: "Up next",
14
+ "needs-you": "Needs you",
15
+ ready: "Ready",
16
+ continue: "Continue",
17
+ failed: "Take a look",
18
+ "add-credits": "Add credits",
19
+ "sign-in": "Sign in",
20
+ saved: "Open app",
21
+ };
22
+ const LIVE_STATUSES = ["starting", "planning", "building"];
23
+ export function homeBuildChipStatus(phase, opts = {}) {
24
+ switch (phase) {
25
+ case "requested":
26
+ return "starting";
27
+ case "deciding":
28
+ return "planning";
29
+ case "named":
30
+ case "building":
31
+ return "building";
32
+ case "queued":
33
+ return "queued";
34
+ case "needs-you":
35
+ return "needs-you";
36
+ case "ready":
37
+ return "ready";
38
+ case "unchanged":
39
+ return "continue";
40
+ case "failed":
41
+ return "failed";
42
+ case "out-of-credits":
43
+ return opts.guest === true ? "sign-in" : "add-credits";
44
+ case "seen":
45
+ return "saved";
46
+ }
47
+ }
48
+ const css = `
49
+ .home-build-chips{--hbc-ink:#151515;--hbc-paper:#FEFFF1;--hbc-field:var(--vwin-field,#CCCDC8);color:var(--vibes-home-title-ink,#151515);font-family:${HOME_BRAND_FONT};width:min(880px,calc(100% - 48px));margin:auto}
50
+ .home-build-chips p{text-align:center;font-size:15px;line-height:1.4;font-weight:700}
51
+ .home-build-chips .home-build-intro{margin:0 0 20px}
52
+ .home-build-chips .home-build-overflow{margin:10px 0 0;font-size:13px;font-weight:400}
53
+ .home-build-chip-row{display:flex;gap:24px;justify-content:center;align-items:stretch;padding-bottom:18px}
54
+ .home-build-chip-slot{position:relative;flex:0 0 82px;width:82px}
55
+ .home-build-chip{position:relative;display:grid;place-items:center;width:82px;height:82px;min-width:0;border:3px solid var(--hbc-ink);border-radius:20px;background:var(--hbc-paper);color:var(--hbc-ink);box-shadow:-4px 5px 0 var(--hbc-color);padding:10px;font:inherit;text-align:center;cursor:pointer;transition:transform .2s,box-shadow .2s}
56
+ .home-build-chip:hover{transform:translateY(-3px);box-shadow:-4px 8px 0 var(--hbc-color)}
57
+ .home-build-chip:focus-visible{outline:3px solid var(--vibes-home-title-ink,#151515);outline-offset:7px}
58
+ .home-build-chip img{width:57px;height:57px;mix-blend-mode:multiply}
59
+ .home-build-chip-copy{display:contents}
60
+ .home-build-chip-title{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(4px);width:max-content;max-width:190px;border-radius:5px;background:#FFE100;color:var(--hbc-ink);padding:9px 12px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:1}
61
+ .home-build-chip-title::after{content:'';position:absolute;top:100%;left:calc(50% - 8px);border:8px solid transparent;border-top-color:#FFE100}
62
+ .home-build-chip-title-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;line-height:1.3;font-weight:700;text-align:center}
63
+ .home-build-chip:hover .home-build-chip-title,.home-build-chip:focus .home-build-chip-title{opacity:1;transform:translateX(-50%) translateY(0)}
64
+ .home-build-chip-slot:first-child .home-build-chip-title{left:0;transform:translateY(4px)}
65
+ .home-build-chip-slot:first-child .home-build-chip:hover .home-build-chip-title,.home-build-chip-slot:first-child .home-build-chip:focus .home-build-chip-title{transform:translateY(0)}
66
+ .home-build-chip-slot:first-child .home-build-chip-title::after{left:24px}
67
+ .home-build-chip-slot:last-child .home-build-chip-title{left:auto;right:0;transform:translateY(4px)}
68
+ .home-build-chip-slot:last-child .home-build-chip:hover .home-build-chip-title,.home-build-chip-slot:last-child .home-build-chip:focus .home-build-chip-title{transform:translateY(0)}
69
+ .home-build-chip-slot:last-child .home-build-chip-title::after{left:auto;right:24px}
70
+ .home-build-chip-status{position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);display:flex;gap:5px;align-items:center;justify-content:center;white-space:nowrap;background:var(--hbc-color);color:var(--hbc-flag-ink);border-radius:5px;padding:5px 8px;font-size:12px;line-height:1.3;font-weight:700}
71
+ .home-build-chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
72
+ .home-build-chip[data-live=true] .home-build-chip-dot{animation:hbc-breathe 1.4s ease-in-out infinite}
73
+ .home-build-chip-dismiss{position:absolute;top:-10px;right:-10px;z-index:2;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--hbc-ink);background:var(--hbc-paper);color:var(--hbc-ink);font:inherit;font-size:14px;line-height:1;font-weight:700;cursor:pointer;opacity:0;transition:opacity .15s}
74
+ .home-build-chip-slot:hover .home-build-chip-dismiss,.home-build-chip-dismiss:focus-visible{opacity:1}
75
+ .home-build-chip-new{display:flex;flex-direction:column;gap:6px;justify-content:center;box-shadow:none;background:var(--hbc-field);border:2px dashed var(--vibes-home-title-ink,#55564e);color:var(--vibes-home-title-ink,#414139);font-size:12px;line-height:1.2;font-weight:700}
76
+ .home-build-chip-new:hover{box-shadow:none}.home-build-chip-new span{font-size:26px}
77
+ @keyframes hbc-breathe{50%{opacity:.25}}
78
+ @media(hover:none){.home-build-chip-dismiss{opacity:1}}
79
+ @media(max-width:600px){.home-build-chips{width:calc(100% - 32px)}.home-build-chips p{font-size:14px}.home-build-chip-row{gap:14px}.home-build-chip-slot{flex-basis:clamp(58px,18vw,72px);width:clamp(58px,18vw,72px)}.home-build-chip{width:100%;height:76px;border-radius:15px;padding:8px}.home-build-chip img{width:44px;height:44px}.home-build-chip-title{max-width:170px}.home-build-chip-title-text{font-size:12px}.home-build-chip-status{font-size:11px;padding:5px 6px;gap:3px}.home-build-chip-new{font-size:11px}}
80
+ @media(prefers-reduced-motion:reduce){.home-build-chip,.home-build-chip-title{transition:none;animation:none}.home-build-chip-dot{animation:none!important}}
81
+ `;
82
+ export function HomeBuildChips(props) {
83
+ const buttons = React.useRef(new Map());
84
+ const flights = React.useRef(new Set());
85
+ React.useEffect(() => () => {
86
+ for (const flight of flights.current)
87
+ flight.cancel();
88
+ }, []);
89
+ React.useLayoutEffect(() => {
90
+ const arrival = props.arrival;
91
+ if (arrival === undefined)
92
+ return;
93
+ const button = buttons.current.get(arrival.id);
94
+ if (button === undefined)
95
+ return;
96
+ if (typeof button.animate === "function" && !window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
97
+ const rect = button.getBoundingClientRect();
98
+ const dx = arrival.from.x - (rect.left + rect.width / 2);
99
+ const dy = arrival.from.y - (rect.top + rect.height / 2);
100
+ const apex = Math.min(dy, 0) - 140;
101
+ const path = Array.from({ length: 17 }, (_, index) => {
102
+ const t = index / 16;
103
+ const x = dx * (1 - t);
104
+ const y = (1 - t) ** 2 * dy + 2 * (1 - t) * t * apex;
105
+ const scale = 0.5 + 0.5 * t;
106
+ return {
107
+ offset: t * 0.86,
108
+ transform: `translate(${x}px,${y}px) scale(${scale}) rotate(${-12 * Math.sin(Math.PI * t)}deg)`,
109
+ };
110
+ });
111
+ path.push({ offset: 0.93, transform: "translateY(5px) scale(1.06,.94)" }, { offset: 1, transform: "none" });
112
+ const flight = button.animate(path, { duration: 850, easing: "linear" });
113
+ flights.current.add(flight);
114
+ const settled = () => flights.current.delete(flight);
115
+ void flight.finished.then(settled, settled);
116
+ }
117
+ props.onArrival?.();
118
+ }, [props.arrival, props.onArrival, props.items]);
119
+ if (props.items.length === 0)
120
+ return null;
121
+ const visible = props.items.slice(-4);
122
+ return (React.createElement("section", { className: "home-build-chips", "aria-label": "Your builds" },
123
+ React.createElement("style", null, css),
124
+ React.createElement("p", { className: "home-build-intro" }, props.returning === true ? "What would you make today?" : "Got another idea? Start it — these keep building."),
125
+ React.createElement("div", { className: "home-build-chip-row" },
126
+ visible.map((item, index) => {
127
+ const identity = paint[index % paint.length];
128
+ const chipStyle = { "--hbc-color": identity.color, "--hbc-flag-ink": identity.ink };
129
+ const label = HOME_BUILD_CHIP_LABELS[item.status];
130
+ return (React.createElement("div", { key: item.id, className: "home-build-chip-slot" },
131
+ React.createElement("button", { ref: (button) => {
132
+ if (button === null)
133
+ buttons.current.delete(item.id);
134
+ else
135
+ buttons.current.set(item.id, button);
136
+ }, type: "button", className: "home-build-chip", "data-status": item.status, "data-live": LIVE_STATUSES.includes(item.status), style: chipStyle, "aria-label": `${item.title}: ${label}`, onClick: () => props.onOpen(item.id) },
137
+ React.createElement("img", { src: `/lane-faces/vibes-face-${identity.face}.svg`, alt: "" }),
138
+ React.createElement("span", { className: "home-build-chip-copy" },
139
+ React.createElement("span", { className: "home-build-chip-title" },
140
+ React.createElement("span", { className: "home-build-chip-title-text" }, item.title)),
141
+ React.createElement("span", { className: "home-build-chip-status" },
142
+ React.createElement("span", { className: "home-build-chip-dot", "aria-hidden": "true" }),
143
+ label))),
144
+ props.onDismiss !== undefined && item.dismissible !== false && (React.createElement("button", { type: "button", className: "home-build-chip-dismiss", "aria-label": `Hide ${item.title}`, onClick: () => props.onDismiss?.(item.id) }, "\u00D7"))));
145
+ }),
146
+ props.items.length < 4 && (React.createElement("div", { className: "home-build-chip-slot" },
147
+ React.createElement("button", { type: "button", className: "home-build-chip home-build-chip-new", onClick: props.onAnotherIdea },
148
+ React.createElement("span", { "aria-hidden": "true" }, "\uFF0B"),
149
+ " Another idea")))),
150
+ props.items.length > 4 && React.createElement("p", { className: "home-build-overflow" }, "Find earlier builds in the sidebar.")));
151
+ }
152
+ //# sourceMappingURL=HomeBuildChips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeBuildChips.js","sourceRoot":"","sources":["../../jsr/components/HomeBuildChips.tsx"],"names":[],"mappings":"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"}
@@ -37,3 +37,4 @@ export * from "./vibe-menu/index.js";
37
37
  export * from "./VibesWindowFrame.styles.js";
38
38
  export * from "./VibesWindowHeader.js";
39
39
  export * from "./VibesWindowFrame.js";
40
+ export * from "./HomeBuildChips.js";
@@ -37,4 +37,5 @@ export * from "./vibe-menu/index.js";
37
37
  export * from "./VibesWindowFrame.styles.js";
38
38
  export * from "./VibesWindowHeader.js";
39
39
  export * from "./VibesWindowFrame.js";
40
+ export * from "./HomeBuildChips.js";
40
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../jsr/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../jsr/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/base",
3
- "version": "14.3.107",
3
+ "version": "14.3.109",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -10,10 +10,10 @@
10
10
  "dependencies": {
11
11
  "@adviser/cement": "~0.5.34",
12
12
  "@emotion/css": "~11.13.5",
13
- "@vibes.diy/api-types": "14.3.107",
14
- "@vibes.diy/use-vibes-types": "14.3.107",
15
- "@vibes.diy/vibe-runtime": "14.3.107",
16
- "@vibes.diy/vibe-types": "14.3.107",
13
+ "@vibes.diy/api-types": "14.3.109",
14
+ "@vibes.diy/use-vibes-types": "14.3.109",
15
+ "@vibes.diy/vibe-runtime": "14.3.109",
16
+ "@vibes.diy/vibe-types": "14.3.109",
17
17
  "arktype": "~2.2.6",
18
18
  "officeparser": "~8.0.0",
19
19
  "qrcode-generator": "~2.0.4",