@vibes.diy/base 5.5.16 → 6.0.0
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/EditorTabStrip.js +2 -7
- package/components/EditorTabStrip.js.map +1 -1
- package/components/ImgGen.d.ts +2 -2
- package/components/SharePanelView.d.ts +2 -1
- package/components/SharePanelView.js +52 -45
- package/components/SharePanelView.js.map +1 -1
- package/components/SubTabStrip.d.ts +10 -0
- package/components/SubTabStrip.js +11 -0
- package/components/SubTabStrip.js.map +1 -0
- package/components/ViewerTagView.js +4 -1
- package/components/ViewerTagView.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/index.js.map +1 -1
- package/hooks/img-gen/index.d.ts +1 -1
- package/hooks/img-gen/index.js +1 -1
- package/hooks/img-gen/index.js.map +1 -1
- package/hooks/img-gen/use-img-gen.d.ts +2 -2
- package/hooks/img-gen/use-img-gen.js +30 -26
- package/hooks/img-gen/use-img-gen.js.map +1 -1
- package/hooks/img-gen/utils.d.ts +1 -19
- package/hooks/img-gen/utils.js +1 -77
- package/hooks/img-gen/utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { SubTabStrip } from "./SubTabStrip.js";
|
|
2
3
|
const TAB_LABELS = {
|
|
3
4
|
"edit-chat": "Chat",
|
|
4
5
|
code: "Code",
|
|
@@ -9,12 +10,6 @@ const TAB_LABELS = {
|
|
|
9
10
|
};
|
|
10
11
|
const TAB_ORDER = ["edit-chat", "code", "data", "chat", "theme", "settings"];
|
|
11
12
|
export function EditorTabStrip({ tab, onTab }) {
|
|
12
|
-
return (React.createElement(
|
|
13
|
-
const selected = t === tab;
|
|
14
|
-
return (React.createElement("button", { key: t, type: "button", role: "tab", "aria-selected": selected, "aria-label": TAB_LABELS[t], onClick: () => onTab(t), className: "rounded px-3 py-1 text-sm font-medium " +
|
|
15
|
-
(selected
|
|
16
|
-
? "bg-white text-neutral-900 shadow-sm dark:bg-neutral-800 dark:text-neutral-100"
|
|
17
|
-
: "text-neutral-500 hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200") }, TAB_LABELS[t]));
|
|
18
|
-
})));
|
|
13
|
+
return (React.createElement(SubTabStrip, { ariaLabel: "Vibe editor", active: tab, onSelect: onTab, tabs: TAB_ORDER.map((t) => ({ key: t, label: TAB_LABELS[t] })) }));
|
|
19
14
|
}
|
|
20
15
|
//# sourceMappingURL=EditorTabStrip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorTabStrip.js","sourceRoot":"","sources":["../../jsr/components/EditorTabStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"EditorTabStrip.js","sourceRoot":"","sources":["../../jsr/components/EditorTabStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU/C,MAAM,UAAU,GAAiC;IAC/C,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAEtG,MAAM,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,EAA2D;IACpG,OAAO,CACL,oBAAC,WAAW,IACV,SAAS,EAAC,aAAa,EACvB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,KAA8B,EACxC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9D,CACH,CAAC;AACJ,CAAC"}
|
package/components/ImgGen.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { Database } from "@vibes.diy/vibe-runtime";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ImgGenInputImage, ImgGenRequestOptions, ImgGenResult } from "@vibes.diy/vibe-types";
|
|
4
4
|
import type { Result } from "@adviser/cement";
|
|
5
5
|
import { type UseFireproofHook } from "../hooks/img-gen/use-img-gen.js";
|
|
6
6
|
export interface ImgGenProps {
|
|
@@ -13,7 +13,7 @@ export interface ImgGenProps {
|
|
|
13
13
|
style?: React.CSSProperties;
|
|
14
14
|
showControls?: boolean;
|
|
15
15
|
model?: string;
|
|
16
|
-
imgGen?: (prompt: string,
|
|
16
|
+
imgGen?: (prompt: string, opts?: ImgGenRequestOptions) => Promise<Result<ImgGenResult>>;
|
|
17
17
|
useFireproof?: UseFireproofHook;
|
|
18
18
|
}
|
|
19
19
|
export declare function ImgGen({ prompt, _id: propId, images, database, className, alt, style, showControls, model, imgGen, useFireproof, }: ImgGenProps): React.JSX.Element;
|
|
@@ -26,6 +26,7 @@ export interface SharePanelViewProps {
|
|
|
26
26
|
readonly notificationsLoading?: boolean;
|
|
27
27
|
readonly notificationsError?: boolean;
|
|
28
28
|
readonly onSelectNotification?: (id: string) => void;
|
|
29
|
+
readonly commentsSlot?: React.ReactNode;
|
|
29
30
|
readonly className?: string;
|
|
30
31
|
}
|
|
31
|
-
export declare function SharePanelView({ url, copied, onCopy, viewer, members, access, onChangeAccess, accessPending, onSelectMember, notifications, notificationsLoading, notificationsError, onSelectNotification, className, }: SharePanelViewProps): React.JSX.Element;
|
|
32
|
+
export declare function SharePanelView({ url, copied, onCopy, viewer, members, access, onChangeAccess, accessPending, onSelectMember, notifications, notificationsLoading, notificationsError, onSelectNotification, commentsSlot, className, }: SharePanelViewProps): React.JSX.Element;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ViewerTagView } from "./ViewerTagView.js";
|
|
3
3
|
import { QrCode } from "./QrCode.js";
|
|
4
|
+
import { SubTabStrip } from "./SubTabStrip.js";
|
|
4
5
|
function relativeTime(iso) {
|
|
5
6
|
const d = new Date(iso);
|
|
6
7
|
if (Number.isNaN(d.getTime()))
|
|
@@ -38,54 +39,60 @@ const ROSTER_TAG_STYLE = {
|
|
|
38
39
|
fontSize: 13,
|
|
39
40
|
padding: "3px 10px 3px 4px",
|
|
40
41
|
};
|
|
41
|
-
export function SharePanelView({ url, copied, onCopy, viewer, members = [], access = "public", onChangeAccess, accessPending, onSelectMember, notifications, notificationsLoading, notificationsError, onSelectNotification, className, }) {
|
|
42
|
+
export function SharePanelView({ url, copied, onCopy, viewer, members = [], access = "public", onChangeAccess, accessPending, onSelectMember, notifications, notificationsLoading, notificationsError, onSelectNotification, commentsSlot, className, }) {
|
|
42
43
|
const isAuthor = viewer === "author";
|
|
44
|
+
const [subTab, setSubTab] = React.useState("share");
|
|
43
45
|
const showRoster = isAuthor || (viewer === "member" && access === "request");
|
|
44
46
|
const roster = [...members].sort((a, b) => Number(b.role === "owner") - Number(a.role === "owner"));
|
|
45
47
|
return (React.createElement("div", { className: `text-light-primary dark:text-dark-primary ${className ?? ""}`, style: { display: "flex", flexDirection: "column", gap: 14 } },
|
|
46
|
-
React.createElement(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
React.createElement("
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
48
|
+
commentsSlot !== undefined && (React.createElement(SubTabStrip, { ariaLabel: "Share", active: subTab, onSelect: (k) => setSubTab(k), tabs: [
|
|
49
|
+
{ key: "share", label: "Share" },
|
|
50
|
+
{ key: "comments", label: "Comments" },
|
|
51
|
+
] })),
|
|
52
|
+
commentsSlot !== undefined && subTab === "comments" ? (commentsSlot) : (React.createElement(React.Fragment, null,
|
|
53
|
+
React.createElement("div", { className: "rounded-md border border-light-decorative-01 dark:border-dark-decorative-01" },
|
|
54
|
+
React.createElement("div", { style: { display: "flex", justifyContent: "center", padding: "12px 12px 0" } },
|
|
55
|
+
React.createElement("div", { style: { background: "#ffffff", borderRadius: 6, padding: 8, lineHeight: 0 } },
|
|
56
|
+
React.createElement(QrCode, { value: url, size: 132, title: "QR code \u2014 scan to open this vibe" }))),
|
|
57
|
+
React.createElement("div", { className: "border-t border-light-decorative-01 dark:border-dark-decorative-01 py-1.5 pl-3 pr-1.5", style: { display: "flex", alignItems: "center", gap: 8, marginTop: 12 } },
|
|
58
|
+
React.createElement("span", { className: "flex-1 truncate text-sm" }, url),
|
|
59
|
+
React.createElement("button", { type: "button", onClick: onCopy, "aria-label": "Copy link", className: "shrink-0 rounded-[5px] border-2 border-[#1a1a1a] bg-blue-500 px-3 py-1 text-xs font-bold text-white transition-colors hover:bg-blue-600 active:translate-x-[2px] active:translate-y-[2px]" }, copied ? "Copied" : "Copy"))),
|
|
60
|
+
isAuthor ? (React.createElement("div", null,
|
|
61
|
+
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, "Who can open it"),
|
|
62
|
+
React.createElement("div", { role: "radiogroup", "aria-label": "Who can open it", style: { display: "flex", gap: 6 } }, [
|
|
63
|
+
{ value: "request", label: "People you approve" },
|
|
64
|
+
{ value: "public", label: "Anyone with the link" },
|
|
65
|
+
].map((opt) => {
|
|
66
|
+
const active = !accessPending && opt.value === access;
|
|
67
|
+
const publicAccent = opt.value === "public"
|
|
68
|
+
? active
|
|
69
|
+
? { background: "var(--vibes-blue, #3b82f6)", borderColor: "var(--vibes-blue, #3b82f6)", color: "#fff" }
|
|
70
|
+
: { borderColor: "rgba(59,130,246,0.55)", color: "var(--vibes-blue, #3b82f6)" }
|
|
71
|
+
: undefined;
|
|
72
|
+
return (React.createElement("button", { key: opt.value, type: "button", role: "radio", "aria-checked": active, disabled: accessPending, onClick: () => onChangeAccess?.(opt.value), style: publicAccent, className: "flex-1 rounded-md border px-3 py-2 text-center text-xs font-medium transition-colors " +
|
|
73
|
+
(accessPending ? "cursor-default opacity-60 " : "") +
|
|
74
|
+
(active
|
|
75
|
+
? "border-[#1a1a1a] bg-light-background-01 dark:bg-dark-background-01"
|
|
76
|
+
: "border-light-decorative-01 dark:border-dark-decorative-01 hover:bg-light-background-01 dark:hover:bg-dark-background-01") }, opt.label));
|
|
77
|
+
})))) : accessPending ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Checking who can open this vibe\u2026")) : (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, access === "public" ? "Anyone with the link can open this vibe." : "Only approved members can access this vibe.")),
|
|
78
|
+
showRoster && (React.createElement("div", null,
|
|
79
|
+
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, "In this vibe"),
|
|
80
|
+
React.createElement("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 } }, roster.map((m) => {
|
|
81
|
+
const tag = (React.createElement(ViewerTagView, { slug: m.handle, displayName: `@${m.handle}`, avatarUrl: m.avatarUrl, trailing: m.role ? React.createElement("span", { style: { fontSize: 11, opacity: 0.6, marginLeft: 2 } }, roleLabel(m.role)) : undefined, style: ROSTER_TAG_STYLE }));
|
|
82
|
+
return isAuthor ? (React.createElement("button", { key: m.handle, type: "button", "aria-label": `Manage @${m.handle}`, onClick: () => onSelectMember?.(m), style: { background: "none", border: "none", padding: 0, cursor: "pointer" } }, tag)) : (React.createElement("span", { key: m.handle }, tag));
|
|
83
|
+
})))),
|
|
84
|
+
notifications !== undefined && (React.createElement("div", null,
|
|
85
|
+
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, "Notifications for this vibe"),
|
|
86
|
+
notificationsError === true ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Couldn\u2019t load notifications for this vibe.")) : notificationsLoading === true && notifications.length === 0 ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Loading notifications\u2026")) : notifications.length === 0 ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "No notifications for this vibe yet.")) : (React.createElement("div", { className: "rounded-md border border-light-decorative-01 dark:border-dark-decorative-01", style: { display: "flex", flexDirection: "column" } }, notifications.map((n) => {
|
|
87
|
+
const isUnread = n.unread === true;
|
|
88
|
+
const interactive = onSelectNotification !== undefined;
|
|
89
|
+
const inner = (React.createElement(React.Fragment, null,
|
|
90
|
+
React.createElement("span", { "aria-hidden": "true", className: `mt-1.5 h-2 w-2 shrink-0 rounded-full ${isUnread ? "bg-blue-500" : "bg-transparent"}` }),
|
|
91
|
+
React.createElement("span", { className: "min-w-0 flex-1" },
|
|
92
|
+
React.createElement("span", { className: `block break-words text-sm ${isUnread ? "font-semibold" : ""}` }, n.body),
|
|
93
|
+
React.createElement("span", { className: "mt-0.5 block text-xs text-light-secondary dark:text-dark-secondary" }, relativeTime(n.created)))));
|
|
94
|
+
const rowClass = "flex w-full items-start gap-3 px-3 py-2.5 text-left border-b border-light-decorative-01 dark:border-dark-decorative-01 last:border-b-0";
|
|
95
|
+
return interactive ? (React.createElement("button", { key: n.id, type: "button", onClick: () => onSelectNotification?.(n.id), className: `${rowClass} transition-colors hover:bg-light-background-01 dark:hover:bg-dark-background-01` }, inner)) : (React.createElement("div", { key: n.id, className: rowClass }, inner));
|
|
96
|
+
})))))))));
|
|
90
97
|
}
|
|
91
98
|
//# sourceMappingURL=SharePanelView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare function SubTabStrip({ tabs, active, onSelect, ariaLabel, }: {
|
|
3
|
+
tabs: readonly {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}[];
|
|
7
|
+
active: string;
|
|
8
|
+
onSelect: (key: string) => void;
|
|
9
|
+
ariaLabel: string;
|
|
10
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export function SubTabStrip({ tabs, active, onSelect, ariaLabel, }) {
|
|
3
|
+
return (React.createElement("div", { role: "tablist", "aria-label": ariaLabel, className: "flex flex-shrink-0 gap-1 border-b border-neutral-200 bg-neutral-50 px-2 py-1 dark:border-neutral-700 dark:bg-neutral-900" }, tabs.map((t) => {
|
|
4
|
+
const selected = t.key === active;
|
|
5
|
+
return (React.createElement("button", { key: t.key, type: "button", role: "tab", "aria-selected": selected, "aria-label": t.label, onClick: () => onSelect(t.key), className: "rounded px-3 py-1 text-sm font-medium " +
|
|
6
|
+
(selected
|
|
7
|
+
? "bg-white text-neutral-900 shadow-sm dark:bg-neutral-800 dark:text-neutral-100"
|
|
8
|
+
: "text-neutral-500 hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200") }, t.label));
|
|
9
|
+
})));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=SubTabStrip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubTabStrip.js","sourceRoot":"","sources":["../../jsr/components/SubTabStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,GAMV;IACC,OAAO,CACL,6BACE,IAAI,EAAC,SAAS,gBACF,SAAS,EACrB,SAAS,EAAC,0HAA0H,IAEnI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;QAClC,OAAO,CACL,gCACE,GAAG,EAAE,CAAC,CAAC,GAAG,EACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,gBACX,CAAC,CAAC,KAAK,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAC9B,SAAS,EACP,wCAAwC;gBACxC,CAAC,QAAQ;oBACP,CAAC,CAAC,+EAA+E;oBACjF,CAAC,CAAC,2FAA2F,CAAC,IAGjG,CAAC,CAAC,KAAK,CACD,CACV,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -151,7 +151,10 @@ export function ViewerTagView({ slug, displayName, avatarUrl, editable, anonymou
|
|
|
151
151
|
fontWeight: 500,
|
|
152
152
|
color: "inherit",
|
|
153
153
|
cursor: "pointer",
|
|
154
|
-
|
|
154
|
+
whiteSpace: "nowrap",
|
|
155
|
+
overflow: "hidden",
|
|
156
|
+
textOverflow: "ellipsis",
|
|
157
|
+
} }, displayName ?? slug)) : (React.createElement("span", { style: { fontWeight: 500, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, displayName ?? slug)),
|
|
155
158
|
trailing,
|
|
156
159
|
editable && (React.createElement("input", { ref: fileRef, type: "file", accept: "image/*", style: { display: "none" }, onClick: (e) => e.stopPropagation(), onChange: handleFileChange }))));
|
|
157
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewerTagView.js","sourceRoot":"","sources":["../../jsr/components/ViewerTagView.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ViewerTagView.js","sourceRoot":"","sources":["../../jsr/components/ViewerTagView.tsx"],"names":[],"mappings":"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"}
|
package/components/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./HandlePickerMenu.js";
|
|
|
16
16
|
export * from "./HandleLookupView.js";
|
|
17
17
|
export * from "./UnifiedVibeCard.js";
|
|
18
18
|
export * from "./EditorTabStrip.js";
|
|
19
|
+
export * from "./SubTabStrip.js";
|
|
19
20
|
export * from "./RecommendedView.js";
|
|
20
21
|
export * from "./FaqView.js";
|
|
21
22
|
export * from "./QrCode.js";
|
package/components/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./HandlePickerMenu.js";
|
|
|
16
16
|
export * from "./HandleLookupView.js";
|
|
17
17
|
export * from "./UnifiedVibeCard.js";
|
|
18
18
|
export * from "./EditorTabStrip.js";
|
|
19
|
+
export * from "./SubTabStrip.js";
|
|
19
20
|
export * from "./RecommendedView.js";
|
|
20
21
|
export * from "./FaqView.js";
|
|
21
22
|
export * from "./QrCode.js";
|
package/components/index.js.map
CHANGED
|
@@ -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,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,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,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
package/hooks/img-gen/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { useImgGen } from "./use-img-gen.js";
|
|
2
|
-
export { addNewVersion, generateVersionId, generatePromptKey, sanitizeFiles } from "./utils.js";
|
|
2
|
+
export { addNewVersion, generateVersionId, generatePromptKey, sanitizeFiles, buildImgGenDocUpdate } from "./utils.js";
|
package/hooks/img-gen/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { useImgGen } from "./use-img-gen.js";
|
|
2
|
-
export { addNewVersion, generateVersionId, generatePromptKey, sanitizeFiles } from "./utils.js";
|
|
2
|
+
export { addNewVersion, generateVersionId, generatePromptKey, sanitizeFiles, buildImgGenDocUpdate } from "./utils.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useFireproof } from "@vibes.diy/vibe-runtime";
|
|
2
2
|
export type UseFireproofHook = typeof useFireproof;
|
|
3
|
-
import type {
|
|
3
|
+
import type { ImgGenRequestOptions, ImgGenResult, UseImgGenOptions, UseImgGenResult } from "@vibes.diy/vibe-types";
|
|
4
4
|
import { Result } from "@adviser/cement";
|
|
5
5
|
interface InjectedDeps {
|
|
6
|
-
imgGen?: (prompt: string,
|
|
6
|
+
imgGen?: (prompt: string, opts?: ImgGenRequestOptions) => Promise<Result<ImgGenResult>>;
|
|
7
7
|
useFireproof?: UseFireproofHook;
|
|
8
8
|
}
|
|
9
9
|
export declare function useImgGen(opts: Partial<UseImgGenOptions> & InjectedDeps): UseImgGenResult;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from "react";
|
|
2
2
|
import { useFireproof, imgGen as defaultImgGen } from "@vibes.diy/vibe-runtime";
|
|
3
3
|
import { exception2Result } from "@adviser/cement";
|
|
4
|
-
import {
|
|
4
|
+
import { buildImgGenDocUpdate } from "./utils.js";
|
|
5
5
|
export function useImgGen(opts) {
|
|
6
6
|
const { prompt, _id, database = "ImgGen", skip = false, generationId, inputImage, model, imgGen = defaultImgGen, useFireproof: useFireproofImpl = useFireproof, } = opts;
|
|
7
7
|
const [loading, setLoading] = useState(false);
|
|
@@ -52,47 +52,51 @@ export function useImgGen(opts) {
|
|
|
52
52
|
setLoading(true);
|
|
53
53
|
setProgress(10);
|
|
54
54
|
setError(null);
|
|
55
|
-
const
|
|
55
|
+
const target = { dbName, docId: _id, regen: isRegen };
|
|
56
|
+
const rFiles = await exception2Result(() => imgGen(promptText, { inputImage, model, target }));
|
|
56
57
|
if (rFiles.isErr()) {
|
|
57
58
|
setError(rFiles.Err());
|
|
58
59
|
setLoading(false);
|
|
59
60
|
currentGenRef.current = null;
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
|
-
const files = rFiles.Ok();
|
|
63
|
+
const { files, docWritten } = rFiles.Ok();
|
|
63
64
|
const file = files[0];
|
|
64
65
|
const rRun = await exception2Result(async () => {
|
|
66
|
+
setProgress(90);
|
|
67
|
+
if (docWritten === true) {
|
|
68
|
+
const saved = (await db.get(_id));
|
|
69
|
+
setDocument(saved);
|
|
70
|
+
setProgress(100);
|
|
71
|
+
setLoading(false);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
65
74
|
const fileMeta = {
|
|
66
75
|
uploadId: file.uploadId,
|
|
67
76
|
type: file.mimeType,
|
|
68
77
|
size: file.size,
|
|
69
78
|
lastModified: Date.now(),
|
|
70
79
|
};
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
setDocument(saved);
|
|
80
|
+
const rHead = await exception2Result(() => db.get(_id));
|
|
81
|
+
if (rHead.isErr() && existingDoc !== null) {
|
|
82
|
+
setError(new Error(`image generated but the doc head could not be verified — not writing a stale body: ${rHead.Err().message}`));
|
|
83
|
+
setLoading(false);
|
|
84
|
+
currentGenRef.current = null;
|
|
85
|
+
return;
|
|
78
86
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
currentVersion: 0,
|
|
88
|
-
versions: [{ id: "v1", created: now, promptKey: "p1", ...(model ? { model } : {}) }],
|
|
89
|
-
currentPromptKey: "p1",
|
|
90
|
-
prompts: { p1: { text: promptText, created: now } },
|
|
91
|
-
_files: { ...sanitizeFiles(existingDoc?._files), v1: fileMeta },
|
|
92
|
-
});
|
|
93
|
-
const saved = (await db.get(_id));
|
|
94
|
-
setDocument(saved);
|
|
87
|
+
const headDoc = rHead.isOk() ? rHead.Ok() : existingDoc;
|
|
88
|
+
const headFiles = (headDoc?._files ?? {});
|
|
89
|
+
const alreadyWritten = Object.values(headFiles).some((f) => f?.uploadId === fileMeta.uploadId);
|
|
90
|
+
if (alreadyWritten && headDoc) {
|
|
91
|
+
setDocument(headDoc);
|
|
92
|
+
setProgress(100);
|
|
93
|
+
setLoading(false);
|
|
94
|
+
return;
|
|
95
95
|
}
|
|
96
|
+
const updated = buildImgGenDocUpdate(headDoc ?? null, fileMeta, { promptText, model, regen: isRegen });
|
|
97
|
+
await db.put({ ...updated, _id });
|
|
98
|
+
const saved = (await db.get(_id));
|
|
99
|
+
setDocument(saved);
|
|
96
100
|
setProgress(100);
|
|
97
101
|
setLoading(false);
|
|
98
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-img-gen.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/use-img-gen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-img-gen.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/use-img-gen.ts"],"names":[],"mappings":"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"}
|
package/hooks/img-gen/utils.d.ts
CHANGED
|
@@ -1,19 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export type ImgGenTargetDoc = Omit<PartialImageDocument, "type"> & {
|
|
3
|
-
type?: string;
|
|
4
|
-
};
|
|
5
|
-
export declare function generateVersionId(versionNumber: number): string;
|
|
6
|
-
export declare function generatePromptKey(promptNumber: number): string;
|
|
7
|
-
export declare function getVersionsFromDocument(document: ImgGenTargetDoc | null | undefined): {
|
|
8
|
-
versions: VersionInfo[];
|
|
9
|
-
currentVersion: number;
|
|
10
|
-
};
|
|
11
|
-
export declare function getPromptsFromDocument(document: ImgGenTargetDoc | null | undefined): {
|
|
12
|
-
prompts: Record<string, PromptEntry>;
|
|
13
|
-
currentPromptKey: string;
|
|
14
|
-
};
|
|
15
|
-
export declare function sanitizeFiles(files: Record<string, unknown> | undefined): Record<string, FileMeta>;
|
|
16
|
-
export declare function addNewVersion(document: ImgGenTargetDoc, fileMeta: FileMeta, newPrompt?: string, model?: string): ImgGenTargetDoc & {
|
|
17
|
-
_files: Record<string, FileMeta>;
|
|
18
|
-
versions: VersionInfo[];
|
|
19
|
-
};
|
|
1
|
+
export { type ImgGenTargetDoc, type ImgGenWriteBody, generateVersionId, generatePromptKey, getVersionsFromDocument, getPromptsFromDocument, sanitizeFiles, addNewVersion, buildImgGenDocUpdate, shouldAppendVersion, type ImgGenTarget, type ImgGenResult, } from "@vibes.diy/vibe-types";
|
package/hooks/img-gen/utils.js
CHANGED
|
@@ -1,78 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
return `v${versionNumber}`;
|
|
3
|
-
}
|
|
4
|
-
export function generatePromptKey(promptNumber) {
|
|
5
|
-
return `p${promptNumber}`;
|
|
6
|
-
}
|
|
7
|
-
export function getVersionsFromDocument(document) {
|
|
8
|
-
if (document?.versions && document.versions.length > 0) {
|
|
9
|
-
return {
|
|
10
|
-
versions: document.versions,
|
|
11
|
-
currentVersion: document.currentVersion ?? document.versions.length - 1,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
return { versions: [], currentVersion: 0 };
|
|
15
|
-
}
|
|
16
|
-
export function getPromptsFromDocument(document) {
|
|
17
|
-
if (document?.prompts && document?.currentPromptKey) {
|
|
18
|
-
return {
|
|
19
|
-
prompts: document.prompts,
|
|
20
|
-
currentPromptKey: document.currentPromptKey,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
if (document?.prompt) {
|
|
24
|
-
return {
|
|
25
|
-
prompts: { p1: { text: document.prompt, created: document.created || Date.now() } },
|
|
26
|
-
currentPromptKey: "p1",
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return { prompts: {}, currentPromptKey: "" };
|
|
30
|
-
}
|
|
31
|
-
export function sanitizeFiles(files) {
|
|
32
|
-
const sanitized = {};
|
|
33
|
-
for (const [key, value] of Object.entries(files ?? {})) {
|
|
34
|
-
if (!value || typeof value !== "object")
|
|
35
|
-
continue;
|
|
36
|
-
const v = value;
|
|
37
|
-
sanitized[key] = {
|
|
38
|
-
uploadId: v.uploadId ?? "",
|
|
39
|
-
type: v.type ?? "application/octet-stream",
|
|
40
|
-
size: v.size ?? 0,
|
|
41
|
-
...(v.lastModified !== undefined ? { lastModified: v.lastModified } : {}),
|
|
42
|
-
...(v.url !== undefined ? { url: v.url } : {}),
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return sanitized;
|
|
46
|
-
}
|
|
47
|
-
export function addNewVersion(document, fileMeta, newPrompt, model) {
|
|
48
|
-
const { versions } = getVersionsFromDocument(document);
|
|
49
|
-
const versionCount = versions.length + 1;
|
|
50
|
-
const newVersionId = generateVersionId(versionCount);
|
|
51
|
-
const { prompts, currentPromptKey } = getPromptsFromDocument(document);
|
|
52
|
-
const updatedPrompts = { ...prompts };
|
|
53
|
-
let updatedCurrentPromptKey = currentPromptKey;
|
|
54
|
-
if (newPrompt && (!currentPromptKey || newPrompt !== prompts[currentPromptKey]?.text)) {
|
|
55
|
-
const promptCount = Object.keys(updatedPrompts).length + 1;
|
|
56
|
-
updatedCurrentPromptKey = generatePromptKey(promptCount);
|
|
57
|
-
updatedPrompts[updatedCurrentPromptKey] = { text: newPrompt, created: Date.now() };
|
|
58
|
-
}
|
|
59
|
-
else if (!updatedCurrentPromptKey && document.prompt) {
|
|
60
|
-
updatedCurrentPromptKey = "p1";
|
|
61
|
-
updatedPrompts["p1"] = { text: document.prompt, created: document.created || Date.now() };
|
|
62
|
-
}
|
|
63
|
-
const updatedFiles = sanitizeFiles(document._files);
|
|
64
|
-
updatedFiles[newVersionId] = fileMeta;
|
|
65
|
-
return {
|
|
66
|
-
...document,
|
|
67
|
-
type: document.type ?? "image",
|
|
68
|
-
currentVersion: versionCount - 1,
|
|
69
|
-
versions: [
|
|
70
|
-
...versions,
|
|
71
|
-
{ id: newVersionId, created: Date.now(), promptKey: updatedCurrentPromptKey, ...(model ? { model } : {}) },
|
|
72
|
-
],
|
|
73
|
-
prompts: updatedPrompts,
|
|
74
|
-
currentPromptKey: updatedCurrentPromptKey,
|
|
75
|
-
_files: updatedFiles,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
1
|
+
export { generateVersionId, generatePromptKey, getVersionsFromDocument, getPromptsFromDocument, sanitizeFiles, addNewVersion, buildImgGenDocUpdate, shouldAppendVersion, } from "@vibes.diy/vibe-types";
|
|
78
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/base",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
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
|
-
"@vibes.diy/vibe-runtime": "
|
|
15
|
-
"@vibes.diy/vibe-types": "
|
|
13
|
+
"@vibes.diy/use-vibes-types": "6.0.0",
|
|
14
|
+
"@vibes.diy/vibe-runtime": "6.0.0",
|
|
15
|
+
"@vibes.diy/vibe-types": "6.0.0",
|
|
16
16
|
"officeparser": "~7.2.3",
|
|
17
17
|
"qrcode-generator": "~2.0.4",
|
|
18
18
|
"react": "~19.2.7"
|