@vibes.diy/base 2.2.9 → 2.2.11

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 (73) hide show
  1. package/components/ExpandedVibesPill.d.ts +3 -1
  2. package/components/ExpandedVibesPill.js +76 -11
  3. package/components/ExpandedVibesPill.js.map +1 -1
  4. package/components/ImgGen.d.ts +16 -0
  5. package/components/{ImgVibes.js → ImgGen.js} +12 -9
  6. package/components/ImgGen.js.map +1 -0
  7. package/hooks/img-gen/index.d.ts +2 -0
  8. package/hooks/img-gen/index.js +3 -0
  9. package/hooks/img-gen/index.js.map +1 -0
  10. package/hooks/img-gen/use-img-gen.d.ts +7 -0
  11. package/hooks/img-gen/use-img-gen.js +109 -0
  12. package/hooks/img-gen/use-img-gen.js.map +1 -0
  13. package/hooks/{img-vibes → img-gen}/utils.d.ts +7 -4
  14. package/hooks/{img-vibes → img-gen}/utils.js +18 -2
  15. package/hooks/img-gen/utils.js.map +1 -0
  16. package/index.d.ts +4 -8
  17. package/index.js +2 -5
  18. package/index.js.map +1 -1
  19. package/package.json +4 -3
  20. package/components/ImgVibes.d.ts +0 -15
  21. package/components/ImgVibes.js.map +0 -1
  22. package/components/ImgVibesUtils/AsyncImg.d.ts +0 -7
  23. package/components/ImgVibesUtils/AsyncImg.js +0 -41
  24. package/components/ImgVibesUtils/AsyncImg.js.map +0 -1
  25. package/components/ImgVibesUtils/ImgVibesDisplay.d.ts +0 -3
  26. package/components/ImgVibesUtils/ImgVibesDisplay.js +0 -230
  27. package/components/ImgVibesUtils/ImgVibesDisplay.js.map +0 -1
  28. package/components/ImgVibesUtils/ImgVibesDisplayPlaceholder.d.ts +0 -3
  29. package/components/ImgVibesUtils/ImgVibesDisplayPlaceholder.js +0 -97
  30. package/components/ImgVibesUtils/ImgVibesDisplayPlaceholder.js.map +0 -1
  31. package/components/ImgVibesUtils/ImgVibesDisplayUtils.d.ts +0 -27
  32. package/components/ImgVibesUtils/ImgVibesDisplayUtils.js +0 -90
  33. package/components/ImgVibesUtils/ImgVibesDisplayUtils.js.map +0 -1
  34. package/components/ImgVibesUtils/ImgVibesError.d.ts +0 -3
  35. package/components/ImgVibesUtils/ImgVibesError.js +0 -9
  36. package/components/ImgVibesUtils/ImgVibesError.js.map +0 -1
  37. package/components/ImgVibesUtils/ImgVibesFileDrop.d.ts +0 -11
  38. package/components/ImgVibesUtils/ImgVibesFileDrop.js +0 -56
  39. package/components/ImgVibesUtils/ImgVibesFileDrop.js.map +0 -1
  40. package/components/ImgVibesUtils/ImgVibesModal.d.ts +0 -25
  41. package/components/ImgVibesUtils/ImgVibesModal.js +0 -67
  42. package/components/ImgVibesUtils/ImgVibesModal.js.map +0 -1
  43. package/components/ImgVibesUtils/ImgVibesModeUtils.d.ts +0 -9
  44. package/components/ImgVibesUtils/ImgVibesModeUtils.js +0 -58
  45. package/components/ImgVibesUtils/ImgVibesModeUtils.js.map +0 -1
  46. package/components/ImgVibesUtils/ImgVibesPromptWaiting.d.ts +0 -11
  47. package/components/ImgVibesUtils/ImgVibesPromptWaiting.js +0 -40
  48. package/components/ImgVibesUtils/ImgVibesPromptWaiting.js.map +0 -1
  49. package/components/ImgVibesUtils/ImgVibesUploadWaiting.d.ts +0 -16
  50. package/components/ImgVibesUtils/ImgVibesUploadWaiting.js +0 -154
  51. package/components/ImgVibesUtils/ImgVibesUploadWaiting.js.map +0 -1
  52. package/components/ImgVibesUtils/index.d.ts +0 -6
  53. package/components/ImgVibesUtils/index.js +0 -7
  54. package/components/ImgVibesUtils/index.js.map +0 -1
  55. package/components/ImgVibesUtils/overlays/DeleteConfirmationOverlay.d.ts +0 -9
  56. package/components/ImgVibesUtils/overlays/DeleteConfirmationOverlay.js +0 -31
  57. package/components/ImgVibesUtils/overlays/DeleteConfirmationOverlay.js.map +0 -1
  58. package/components/ImgVibesUtils/overlays/ImageOverlay.d.ts +0 -22
  59. package/components/ImgVibesUtils/overlays/ImageOverlay.js +0 -11
  60. package/components/ImgVibesUtils/overlays/ImageOverlay.js.map +0 -1
  61. package/components/ImgVibesUtils/types.d.ts +0 -29
  62. package/components/ImgVibesUtils/types.js +0 -2
  63. package/components/ImgVibesUtils/types.js.map +0 -1
  64. package/components/ImgVibesUtils.d.ts +0 -2
  65. package/components/ImgVibesUtils.js +0 -3
  66. package/components/ImgVibesUtils.js.map +0 -1
  67. package/hooks/img-vibes/index.d.ts +0 -1
  68. package/hooks/img-vibes/index.js +0 -2
  69. package/hooks/img-vibes/index.js.map +0 -1
  70. package/hooks/img-vibes/use-img-vibes.d.ts +0 -2
  71. package/hooks/img-vibes/use-img-vibes.js +0 -96
  72. package/hooks/img-vibes/use-img-vibes.js.map +0 -1
  73. package/hooks/img-vibes/utils.js.map +0 -1
@@ -1,96 +0,0 @@
1
- import { useState, useEffect, useRef } from "react";
2
- import { useFireproof } from "@fireproof/use-fireproof";
3
- import { imgVibes } from "@vibes.diy/vibe-runtime";
4
- import { addNewVersion } from "./utils.js";
5
- export function useImgVibes({ prompt, _id, database = "ImgVibes", skip = false, generationId, inputImage, model, }) {
6
- const [assetUrl, setAssetUrl] = useState(null);
7
- const [loading, setLoading] = useState(false);
8
- const [progress, setProgress] = useState(0);
9
- const [error, setError] = useState(null);
10
- const [document, setDocument] = useState(null);
11
- const { database: db } = useFireproof(database ?? "ImgVibes");
12
- const currentGenRef = useRef(null);
13
- useEffect(() => {
14
- if (skip || !_id)
15
- return;
16
- const genKey = `${_id}-${generationId ?? ""}-${inputImage?.name ?? ""}${inputImage?.lastModified ?? ""}-${model ?? ""}`;
17
- if (currentGenRef.current === genKey)
18
- return;
19
- currentGenRef.current = genKey;
20
- const isRegen = !!generationId;
21
- async function run() {
22
- if (!_id)
23
- return;
24
- let existingDoc = null;
25
- try {
26
- existingDoc = (await db.get(_id));
27
- }
28
- catch {
29
- }
30
- const currentVer = existingDoc?.versions?.[existingDoc?.currentVersion ?? 0];
31
- const modelMatch = !model || currentVer?.model === model;
32
- if (existingDoc?.versions?.length && !isRegen && !inputImage && modelMatch) {
33
- const ver = existingDoc.versions[existingDoc.currentVersion ?? 0];
34
- if (ver?.assetUrl) {
35
- setDocument(existingDoc);
36
- setAssetUrl(ver.assetUrl);
37
- return;
38
- }
39
- }
40
- const promptText = prompt ?? existingDoc?.prompt;
41
- if (!promptText) {
42
- if (existingDoc)
43
- setDocument(existingDoc);
44
- return;
45
- }
46
- if (!imgVibes) {
47
- setError(new Error("imgVibes not available — vibe-runtime not initialized"));
48
- return;
49
- }
50
- setLoading(true);
51
- setProgress(10);
52
- setError(null);
53
- try {
54
- const urls = await imgVibes(promptText, inputImage, model);
55
- const imageUrl = urls[0];
56
- if (!imageUrl)
57
- throw new Error("No image URL received from service");
58
- setAssetUrl(imageUrl);
59
- setProgress(90);
60
- if (existingDoc?._id && (isRegen || !modelMatch)) {
61
- const fresh = (await db.get(existingDoc._id));
62
- const updated = addNewVersion(fresh, imageUrl, promptText, model);
63
- await db.put(updated);
64
- const saved = (await db.get(existingDoc._id));
65
- setDocument(saved);
66
- }
67
- else {
68
- const now = Date.now();
69
- await db.put({
70
- _id,
71
- type: "image",
72
- prompt: promptText,
73
- created: now,
74
- currentVersion: 0,
75
- versions: [{ id: "v1", created: now, promptKey: "p1", assetUrl: imageUrl, ...(model ? { model } : {}) }],
76
- currentPromptKey: "p1",
77
- prompts: { p1: { text: promptText, created: now } },
78
- });
79
- const saved = (await db.get(_id));
80
- setDocument(saved);
81
- }
82
- setProgress(100);
83
- setLoading(false);
84
- }
85
- catch (err) {
86
- console.error("[ImgVibes] Image generation failed:", err);
87
- setError(err instanceof Error ? err : new Error(String(err)));
88
- setLoading(false);
89
- currentGenRef.current = null;
90
- }
91
- }
92
- run();
93
- }, [_id, prompt, generationId, skip, db, inputImage, model]);
94
- return { assetUrl, loading, progress, error, document };
95
- }
96
- //# sourceMappingURL=use-img-vibes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-img-vibes.js","sourceRoot":"","sources":["../../../jsr/hooks/img-vibes/use-img-vibes.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../jsr/hooks/img-vibes/utils.ts"],"names":[],"mappings":"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"}