use-vibes 0.5.5 → 0.5.8

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 (155) hide show
  1. package/README.md +0 -7
  2. package/components/ControlsBar.d.ts +20 -0
  3. package/components/ControlsBar.js +80 -0
  4. package/components/ControlsBar.js.map +1 -0
  5. package/{dist/components → components}/ImgGen.css +34 -13
  6. package/components/ImgGen.d.ts +25 -0
  7. package/components/ImgGen.js +257 -0
  8. package/components/ImgGen.js.map +1 -0
  9. package/{dist/components → components}/ImgGenUtils/ImgGenDisplay.d.ts +2 -2
  10. package/components/ImgGenUtils/ImgGenDisplay.js +192 -0
  11. package/components/ImgGenUtils/ImgGenDisplay.js.map +1 -0
  12. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.d.ts +3 -0
  13. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.js +107 -0
  14. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.js.map +1 -0
  15. package/components/ImgGenUtils/ImgGenDisplayUtils.d.ts +27 -0
  16. package/{dist/components → components}/ImgGenUtils/ImgGenDisplayUtils.js +4 -36
  17. package/components/ImgGenUtils/ImgGenDisplayUtils.js.map +1 -0
  18. package/components/ImgGenUtils/ImgGenError.d.ts +3 -0
  19. package/components/ImgGenUtils/ImgGenError.js +6 -0
  20. package/components/ImgGenUtils/ImgGenError.js.map +1 -0
  21. package/components/ImgGenUtils/ImgGenFileDrop.d.ts +12 -0
  22. package/{dist/components → components}/ImgGenUtils/ImgGenFileDrop.js +2 -9
  23. package/components/ImgGenUtils/ImgGenFileDrop.js.map +1 -0
  24. package/components/ImgGenUtils/ImgGenModal.d.ts +24 -0
  25. package/components/ImgGenUtils/ImgGenModal.js +28 -0
  26. package/components/ImgGenUtils/ImgGenModal.js.map +1 -0
  27. package/components/ImgGenUtils/ImgGenModeUtils.d.ts +9 -0
  28. package/{dist/components → components}/ImgGenUtils/ImgGenModeUtils.js +0 -15
  29. package/components/ImgGenUtils/ImgGenModeUtils.js.map +1 -0
  30. package/components/ImgGenUtils/ImgGenPromptWaiting.d.ts +12 -0
  31. package/{dist/components → components}/ImgGenUtils/ImgGenPromptWaiting.js +3 -15
  32. package/components/ImgGenUtils/ImgGenPromptWaiting.js.map +1 -0
  33. package/components/ImgGenUtils/ImgGenUploadWaiting.d.ts +17 -0
  34. package/{dist/components → components}/ImgGenUtils/ImgGenUploadWaiting.js +3 -52
  35. package/components/ImgGenUtils/ImgGenUploadWaiting.js.map +1 -0
  36. package/components/ImgGenUtils/index.d.ts +6 -0
  37. package/components/ImgGenUtils/index.js +7 -0
  38. package/components/ImgGenUtils/index.js.map +1 -0
  39. package/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.d.ts +9 -0
  40. package/{dist/components → components}/ImgGenUtils/overlays/DeleteConfirmationOverlay.js +8 -10
  41. package/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.js.map +1 -0
  42. package/components/ImgGenUtils/overlays/ImageOverlay.d.ts +22 -0
  43. package/components/ImgGenUtils/overlays/ImageOverlay.js +8 -0
  44. package/components/ImgGenUtils/overlays/ImageOverlay.js.map +1 -0
  45. package/components/ImgGenUtils/types.d.ts +29 -0
  46. package/components/ImgGenUtils/types.js.map +1 -0
  47. package/components/ImgGenUtils.d.ts +2 -0
  48. package/components/ImgGenUtils.js +3 -0
  49. package/components/ImgGenUtils.js.map +1 -0
  50. package/components/PromptBar.d.ts +11 -0
  51. package/components/PromptBar.js +16 -0
  52. package/components/PromptBar.js.map +1 -0
  53. package/hooks/image-gen/image-generator.d.ts +11 -0
  54. package/{dist/hooks → hooks}/image-gen/image-generator.js +2 -42
  55. package/hooks/image-gen/image-generator.js.map +1 -0
  56. package/hooks/image-gen/index.d.ts +7 -0
  57. package/hooks/image-gen/index.js +6 -0
  58. package/hooks/image-gen/index.js.map +1 -0
  59. package/hooks/image-gen/types.d.ts +66 -0
  60. package/{dist/hooks → hooks}/image-gen/types.js.map +1 -1
  61. package/hooks/image-gen/use-image-gen.d.ts +4 -0
  62. package/hooks/image-gen/use-image-gen.js +544 -0
  63. package/hooks/image-gen/use-image-gen.js.map +1 -0
  64. package/hooks/image-gen/utils.d.ts +20 -0
  65. package/{dist/hooks → hooks}/image-gen/utils.js +11 -93
  66. package/hooks/image-gen/utils.js.map +1 -0
  67. package/hooks/use-image-gen.d.ts +1 -0
  68. package/hooks/use-image-gen.js +2 -0
  69. package/hooks/use-image-gen.js.map +1 -0
  70. package/index.d.ts +20 -0
  71. package/index.js +21 -0
  72. package/index.js.map +1 -0
  73. package/package.json +23 -24
  74. package/style-loader.d.ts +1 -0
  75. package/style-loader.js +23 -0
  76. package/style-loader.js.map +1 -0
  77. package/tsconfig.json +18 -0
  78. package/{dist/utils → utils}/base64.js +0 -4
  79. package/utils/base64.js.map +1 -0
  80. package/utils/debug.d.ts +2 -0
  81. package/utils/debug.js +8 -0
  82. package/utils/debug.js.map +1 -0
  83. package/utils/style-utils.d.ts +17 -0
  84. package/utils/style-utils.js +15 -0
  85. package/utils/style-utils.js.map +1 -0
  86. package/dist/components/ControlsBar.d.ts +0 -32
  87. package/dist/components/ControlsBar.js +0 -80
  88. package/dist/components/ControlsBar.js.map +0 -1
  89. package/dist/components/ImgGen.d.ts +0 -42
  90. package/dist/components/ImgGen.js +0 -350
  91. package/dist/components/ImgGen.js.map +0 -1
  92. package/dist/components/ImgGenUtils/ImgGenDisplay.js +0 -248
  93. package/dist/components/ImgGenUtils/ImgGenDisplay.js.map +0 -1
  94. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.d.ts +0 -3
  95. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.js +0 -125
  96. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.js.map +0 -1
  97. package/dist/components/ImgGenUtils/ImgGenDisplayUtils.d.ts +0 -44
  98. package/dist/components/ImgGenUtils/ImgGenDisplayUtils.js.map +0 -1
  99. package/dist/components/ImgGenUtils/ImgGenError.d.ts +0 -3
  100. package/dist/components/ImgGenUtils/ImgGenError.js +0 -9
  101. package/dist/components/ImgGenUtils/ImgGenError.js.map +0 -1
  102. package/dist/components/ImgGenUtils/ImgGenFileDrop.d.ts +0 -21
  103. package/dist/components/ImgGenUtils/ImgGenFileDrop.js.map +0 -1
  104. package/dist/components/ImgGenUtils/ImgGenModal.d.ts +0 -31
  105. package/dist/components/ImgGenUtils/ImgGenModal.js +0 -34
  106. package/dist/components/ImgGenUtils/ImgGenModal.js.map +0 -1
  107. package/dist/components/ImgGenUtils/ImgGenModeUtils.d.ts +0 -16
  108. package/dist/components/ImgGenUtils/ImgGenModeUtils.js.map +0 -1
  109. package/dist/components/ImgGenUtils/ImgGenPromptWaiting.d.ts +0 -17
  110. package/dist/components/ImgGenUtils/ImgGenPromptWaiting.js.map +0 -1
  111. package/dist/components/ImgGenUtils/ImgGenUploadWaiting.d.ts +0 -30
  112. package/dist/components/ImgGenUtils/ImgGenUploadWaiting.js.map +0 -1
  113. package/dist/components/ImgGenUtils/index.d.ts +0 -6
  114. package/dist/components/ImgGenUtils/index.js +0 -9
  115. package/dist/components/ImgGenUtils/index.js.map +0 -1
  116. package/dist/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.d.ts +0 -10
  117. package/dist/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.js.map +0 -1
  118. package/dist/components/ImgGenUtils/overlays/ImageOverlay.d.ts +0 -29
  119. package/dist/components/ImgGenUtils/overlays/ImageOverlay.js +0 -11
  120. package/dist/components/ImgGenUtils/overlays/ImageOverlay.js.map +0 -1
  121. package/dist/components/ImgGenUtils/types.d.ts +0 -43
  122. package/dist/components/ImgGenUtils/types.js.map +0 -1
  123. package/dist/components/ImgGenUtils.d.ts +0 -6
  124. package/dist/components/ImgGenUtils.js +0 -7
  125. package/dist/components/ImgGenUtils.js.map +0 -1
  126. package/dist/components/PromptBar.d.ts +0 -15
  127. package/dist/components/PromptBar.js +0 -23
  128. package/dist/components/PromptBar.js.map +0 -1
  129. package/dist/hooks/image-gen/image-generator.d.ts +0 -18
  130. package/dist/hooks/image-gen/image-generator.js.map +0 -1
  131. package/dist/hooks/image-gen/index.d.ts +0 -6
  132. package/dist/hooks/image-gen/index.js +0 -6
  133. package/dist/hooks/image-gen/index.js.map +0 -1
  134. package/dist/hooks/image-gen/types.d.ts +0 -75
  135. package/dist/hooks/image-gen/use-image-gen.d.ts +0 -12
  136. package/dist/hooks/image-gen/use-image-gen.js +0 -675
  137. package/dist/hooks/image-gen/use-image-gen.js.map +0 -1
  138. package/dist/hooks/image-gen/utils.d.ts +0 -61
  139. package/dist/hooks/image-gen/utils.js.map +0 -1
  140. package/dist/hooks/use-image-gen.d.ts +0 -5
  141. package/dist/hooks/use-image-gen.js +0 -7
  142. package/dist/hooks/use-image-gen.js.map +0 -1
  143. package/dist/index.d.ts +0 -6
  144. package/dist/index.js +0 -8
  145. package/dist/index.js.map +0 -1
  146. package/dist/style-loader.d.ts +0 -16
  147. package/dist/style-loader.js +0 -43
  148. package/dist/style-loader.js.map +0 -1
  149. package/dist/utils/base64.js.map +0 -1
  150. package/dist/utils/style-utils.d.ts +0 -55
  151. package/dist/utils/style-utils.js +0 -42
  152. package/dist/utils/style-utils.js.map +0 -1
  153. /package/{dist/components → components}/ImgGenUtils/types.js +0 -0
  154. /package/{dist/hooks → hooks}/image-gen/types.js +0 -0
  155. /package/{dist/utils → utils}/base64.d.ts +0 -0
package/README.md CHANGED
@@ -67,7 +67,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
67
67
  ### Prompt Management
68
68
 
69
69
  - **Prompt Versioning**: Tracks the history of different prompts used to generate an image
70
-
71
70
  - Uses a structured `prompts` object with timestamp-based keys
72
71
  - Maintains `currentPromptKey` to reference the active prompt
73
72
 
@@ -87,7 +86,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
87
86
  ### Image Control & Manipulation
88
87
 
89
88
  - **Image Regeneration**: One-click regeneration with the same or edited prompt
90
-
91
89
  - Preserves document history and adds new versions
92
90
  - Uses a unique `generationId` to trigger regeneration while maintaining context
93
91
 
@@ -111,7 +109,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
111
109
  ### User Interface Components
112
110
 
113
111
  - **Interactive Overlay**: Toggle-able information and controls overlay
114
-
115
112
  - Shows prompt text (editable)
116
113
  - Version navigation controls
117
114
  - Regenerate/refresh button
@@ -123,7 +120,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
123
120
  ```
124
121
 
125
122
  - **Progress Visualization**: Shows generation progress with visual indicators
126
-
127
123
  - Progress bar updates in real-time
128
124
  - Automatic placeholder display during generation
129
125
 
@@ -140,7 +136,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
140
136
  ### File Management
141
137
 
142
138
  - **File Upload Interface**: Built-in support for image uploads
143
-
144
139
  - Drag-and-drop capabilities
145
140
  - File selection dialog
146
141
  - Preview of uploaded content
@@ -172,7 +167,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
172
167
  ### State Management
173
168
 
174
169
  - **Loading States**: Component handles all loading states internally
175
-
176
170
  - Initial waiting state
177
171
  - Generation in progress state
178
172
  - Upload waiting state
@@ -186,7 +180,6 @@ const imageFile = base64ToFile(imageResponse.data[0].b64_json, 'my-image.png');
186
180
  ### UI Customization
187
181
 
188
182
  - **Extensive Styling Options**: Multiple ways to customize appearance
189
-
190
183
  - CSS Variables for global styling
191
184
 
192
185
  ```css
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { ImgGenClasses } from '../utils/style-utils.js';
3
+ interface ControlsBarProps {
4
+ readonly handleDeleteConfirm: () => void;
5
+ readonly handlePrevVersion: () => void;
6
+ readonly handleNextVersion: () => void;
7
+ readonly handleRegen: () => void;
8
+ readonly versionIndex: number;
9
+ readonly totalVersions: number;
10
+ readonly classes?: Partial<ImgGenClasses>;
11
+ readonly showControls?: boolean;
12
+ readonly editedPrompt: string | null;
13
+ readonly promptText: string;
14
+ readonly progress?: number;
15
+ readonly showDelete?: boolean;
16
+ readonly versionFlash?: boolean;
17
+ readonly isRegenerating?: boolean;
18
+ }
19
+ export declare function ControlsBar({ handleDeleteConfirm, handlePrevVersion, handleNextVersion, handleRegen, versionIndex, totalVersions, classes, showControls, editedPrompt, promptText, progress, showDelete, versionFlash, isRegenerating }: ControlsBarProps): React.JSX.Element;
20
+ export {};
@@ -0,0 +1,80 @@
1
+ import * as React from 'react';
2
+ import { combineClasses, defaultClasses } from '../utils/style-utils.js';
3
+ import { logDebug } from '../utils/debug.js';
4
+ export function ControlsBar({ handleDeleteConfirm, handlePrevVersion, handleNextVersion, handleRegen, versionIndex, totalVersions, classes = defaultClasses, showControls = true, editedPrompt, promptText, progress = 100, showDelete = true, versionFlash = false, isRegenerating = false, }) {
5
+ const [showConfirmation, setShowConfirmation] = React.useState(false);
6
+ const cancelTimerRef = React.useRef(null);
7
+ const isConfirming = showConfirmation;
8
+ const onDeleteClick = () => {
9
+ if (isConfirming) {
10
+ logDebug('ControlsBar: Delete confirmed, calling handleDeleteConfirm');
11
+ handleDeleteConfirm();
12
+ setShowConfirmation(false);
13
+ if (cancelTimerRef.current) {
14
+ window.clearTimeout(cancelTimerRef.current);
15
+ cancelTimerRef.current = null;
16
+ }
17
+ }
18
+ else {
19
+ logDebug('ControlsBar: Showing delete confirmation');
20
+ setShowConfirmation(true);
21
+ cancelTimerRef.current = window.setTimeout(() => {
22
+ setShowConfirmation(false);
23
+ }, 6500);
24
+ }
25
+ };
26
+ React.useEffect(() => {
27
+ return () => {
28
+ if (cancelTimerRef.current) {
29
+ window.clearTimeout(cancelTimerRef.current);
30
+ }
31
+ };
32
+ }, []);
33
+ return (React.createElement(React.Fragment, null, progress < 100 && (React.createElement("div", { className: "imggen-progress", style: {
34
+ width: `${progress}%`,
35
+ position: 'absolute',
36
+ top: 0,
37
+ left: 0,
38
+ height: 'var(--imggen-progress-height)',
39
+ zIndex: 20,
40
+ } })), React.createElement("div", { className: combineClasses('imggen-controls', classes.controls) }, showControls ? (React.createElement(React.Fragment, null, React.createElement("div", { style: { display: 'flex', gap: '6px', alignItems: 'center', flex: 1 } }, showDelete && (React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' } }, React.createElement("button", { "aria-label": "Delete image", onClick: onDeleteClick, className: combineClasses('imggen-button imggen-delete-button', classes.button), style: {
41
+ position: 'static',
42
+ width: 'var(--imggen-button-size)',
43
+ height: 'var(--imggen-button-size)',
44
+ backgroundColor: isConfirming ? 'var(--imggen-error-border)' : undefined,
45
+ color: isConfirming ? 'white' : undefined,
46
+ opacity: isConfirming ? 1 : undefined,
47
+ } }), isConfirming && (React.createElement("div", { className: "fade-transition", style: { animationDelay: '6s' } }, React.createElement("button", { onClick: () => {
48
+ handleDeleteConfirm();
49
+ setShowConfirmation(false);
50
+ }, "aria-label": "Confirm delete", style: {
51
+ fontSize: 'var(--imggen-font-size)',
52
+ fontWeight: 'bold',
53
+ whiteSpace: 'nowrap',
54
+ border: '1px solid var(--imggen-error-border, #ff3333)',
55
+ background: 'var(--imggen-error-border, #ff3333)',
56
+ color: 'white',
57
+ borderRadius: '4px',
58
+ cursor: 'pointer',
59
+ padding: '2px 8px',
60
+ } }, "Delete image"), React.createElement("button", { onClick: () => {
61
+ logDebug('ControlsBar: Delete canceled');
62
+ setShowConfirmation(false);
63
+ if (cancelTimerRef.current) {
64
+ window.clearTimeout(cancelTimerRef.current);
65
+ }
66
+ }, "aria-label": "Cancel delete", style: {
67
+ fontSize: 'var(--imggen-font-size)',
68
+ whiteSpace: 'nowrap',
69
+ border: 'none',
70
+ background: 'none',
71
+ color: 'var(--imggen-font-color)',
72
+ cursor: 'pointer',
73
+ padding: '0 4px',
74
+ } }, "Cance")))))), React.createElement("div", { className: "imggen-control-group" }, totalVersions > 1 && (React.createElement("button", { "aria-label": "Previous version", disabled: versionIndex === 0, onClick: handlePrevVersion, className: combineClasses('imggen-button', classes.button) }, "\u25C0")), totalVersions > 1 && (React.createElement("span", { className: `imggen-version-indicator version-indicator ${versionFlash ? 'imggen-version-flash' : ''}`, "aria-live": "polite" }, versionIndex + 1, " / ", totalVersions)), totalVersions > 1 && (React.createElement("button", { "aria-label": "Next version", disabled: versionIndex >= totalVersions - 1, onClick: handleNextVersion, className: combineClasses('imggen-button', classes.button) }, "\u25B6")), React.createElement("button", { "aria-label": "Regenerate image", onClick: () => {
75
+ handleRegen();
76
+ }, disabled: isRegenerating, className: combineClasses('imggen-button', classes.button, editedPrompt !== null && editedPrompt.trim() !== promptText
77
+ ? 'imggen-button-highlight'
78
+ : '', isRegenerating ? 'imggen-button-disabled' : '') }, React.createElement("span", { className: isRegenerating ? 'imggen-regen-spinning' : '' }, "\u27F3"))))) : progress < 100 ? (React.createElement("div", { className: "imggen-status-text" }, "Generating...")) : null)));
79
+ }
80
+ //# sourceMappingURL=ControlsBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlsBar.js","sourceRoot":"","sources":["../../jsr/components/ControlsBar.tsx"],"names":[],"mappings":"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"}
@@ -17,18 +17,18 @@
17
17
  --imggen-button-bg: rgba(255, 255, 255, 0.7);
18
18
  --imggen-error-text-body: #ffffff;
19
19
  --imggen-delete-hover-color: #ff3333;
20
-
20
+
21
21
  /* Dimensions */
22
22
  --imggen-border-radius: 8px;
23
23
  --imggen-padding: 8px;
24
24
  --imggen-button-size: 28px;
25
25
  --imggen-progress-height: 8px;
26
-
26
+
27
27
  /* Typography */
28
28
  --imggen-font-size: 14px;
29
29
  --imggen-font-weight: bold;
30
30
  --imggen-line-height: 1.5;
31
-
31
+
32
32
  /* Effects */
33
33
  --imggen-blur-radius: 4px;
34
34
  --imggen-transition-speed: 0.2s;
@@ -76,7 +76,9 @@
76
76
  border: none;
77
77
  cursor: pointer;
78
78
  opacity: 0; /* Initially invisible */
79
- transition: opacity var(--imggen-transition-speed) ease, transform var(--imggen-transition-speed) ease;
79
+ transition:
80
+ opacity var(--imggen-transition-speed) ease,
81
+ transform var(--imggen-transition-speed) ease;
80
82
  padding: 0;
81
83
  color: var(--imggen-text-color);
82
84
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
@@ -299,21 +301,21 @@
299
301
 
300
302
  /* Version flash animation */
301
303
  @keyframes version-flash {
302
- 0% {
304
+ 0% {
303
305
  color: var(--imggen-text-color);
304
- transform: scale(1);
306
+ transform: scale(1);
305
307
  }
306
- 30% {
308
+ 30% {
307
309
  color: var(--imggen-flash);
308
- transform: scale(1.3);
310
+ transform: scale(1.3);
309
311
  /* font-weight: bold; */
310
312
  }
311
- 70% {
313
+ 70% {
312
314
  color: var(--imggen-flash);
313
315
  transform: scale(1.1);
314
316
  font-weight: bold;
315
317
  }
316
- 100% {
318
+ 100% {
317
319
  color: var(--imggen-text-color);
318
320
  transform: scale(1);
319
321
  }
@@ -325,8 +327,12 @@
325
327
 
326
328
  /* Regenerate spinner animation */
327
329
  @keyframes regen-spin {
328
- 0% { transform: rotate(0deg); }
329
- 100% { transform: rotate(360deg); }
330
+ 0% {
331
+ transform: rotate(0deg);
332
+ }
333
+ 100% {
334
+ transform: rotate(360deg);
335
+ }
330
336
  }
331
337
 
332
338
  .imggen-regen-spinning {
@@ -530,7 +536,9 @@
530
536
  border-radius: 8px;
531
537
  text-align: center;
532
538
  cursor: pointer;
533
- transition: border-color 0.2s, background-color 0.2s;
539
+ transition:
540
+ border-color 0.2s,
541
+ background-color 0.2s;
534
542
  margin-bottom: 1rem;
535
543
  }
536
544
 
@@ -652,3 +660,16 @@
652
660
  background-color: #ccc;
653
661
  cursor: not-allowed;
654
662
  }
663
+
664
+ .fade-transition {
665
+ animation: fadeOut 0.3s ease-in-out forwards;
666
+ }
667
+
668
+ @keyframes fadeOut {
669
+ 0% {
670
+ opacity: 1;
671
+ }
672
+ 100% {
673
+ opacity: 0;
674
+ }
675
+ }
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import type { ImageGenOptions } from 'call-ai';
3
+ import { Database } from 'use-fireproof';
4
+ import type { UseImageGenOptions, UseImageGenResult } from '../hooks/image-gen/types.js';
5
+ import { ImgGenClasses } from '../utils/style-utils.js';
6
+ import './ImgGen.css';
7
+ export interface ImgGenProps {
8
+ readonly prompt: string;
9
+ readonly _id: string;
10
+ readonly className: string;
11
+ readonly alt: string;
12
+ readonly images: File[];
13
+ readonly options: ImageGenOptions;
14
+ readonly database: string | Database;
15
+ readonly useImageGen: (options: Partial<UseImageGenOptions>) => UseImageGenResult;
16
+ readonly onComplete: () => void;
17
+ readonly onError: (error: Error) => void;
18
+ readonly onDelete: (id: string) => void;
19
+ readonly onPromptEdit: (id: string, newPrompt: string) => void;
20
+ readonly classes: ImgGenClasses;
21
+ readonly onDocumentCreated: (docId: string) => void;
22
+ readonly debug: boolean;
23
+ }
24
+ export declare function ImgGen(props: Partial<ImgGenProps>): React.ReactElement;
25
+ export default ImgGen;
@@ -0,0 +1,257 @@
1
+ import * as React from 'react';
2
+ import { v4 as uuid } from 'uuid';
3
+ import { useImageGen as defaultUseImageGen } from '../hooks/image-gen/use-image-gen.js';
4
+ import { useFireproof } from 'use-fireproof';
5
+ import { ImgGenPromptWaiting, ImgGenDisplayPlaceholder, ImgGenDisplay, ImgGenError, } from './ImgGenUtils.js';
6
+ import { ImgGenUploadWaiting } from './ImgGenUtils/ImgGenUploadWaiting.js';
7
+ import { getImgGenMode } from './ImgGenUtils/ImgGenModeUtils.js';
8
+ import { defaultClasses } from '../utils/style-utils.js';
9
+ import { logDebug } from '../utils/debug.js';
10
+ import './ImgGen.css';
11
+ function ImgGenCore(props) {
12
+ const { prompt, _id, className, alt, images, options, database, onComplete, onError, onDelete, onPromptEdit, onDocumentCreated, classes = defaultClasses, debug, useImageGen, } = props;
13
+ const { database: db } = useFireproof(database || 'ImgGen');
14
+ const [generationId, setGenerationId] = React.useState(undefined);
15
+ const [currentEditedPrompt, setCurrentEditedPrompt] = React.useState(undefined);
16
+ const [imageGenDocument, setImageGenDocument] = React.useState(null);
17
+ const mergedOptions = React.useMemo(() => (images ? { ...options, images } : options), [options, images]);
18
+ const effectivePrompt = currentEditedPrompt || prompt || '';
19
+ const shouldSkipGeneration = !effectivePrompt && !_id;
20
+ const { imageData, loading, error, progress, document } = (useImageGen || defaultUseImageGen)({
21
+ prompt: effectivePrompt,
22
+ _id: _id,
23
+ options: {
24
+ ...mergedOptions,
25
+ ...(imageGenDocument ? { document: imageGenDocument } : {}),
26
+ },
27
+ database,
28
+ generationId,
29
+ skip: shouldSkipGeneration,
30
+ });
31
+ const mode = React.useMemo(() => {
32
+ return getImgGenMode({
33
+ document,
34
+ prompt: effectivePrompt, // Use effectivePrompt instead of just props.prompt
35
+ loading,
36
+ error: error || undefined,
37
+ debug,
38
+ });
39
+ }, [document, effectivePrompt, loading, error, debug]);
40
+ if (debug) {
41
+ logDebug('[ImgGenCore] Current mode:', mode, {
42
+ document: !!document,
43
+ documentId: document?._id,
44
+ prompt: !!prompt,
45
+ loading,
46
+ error: !!error,
47
+ });
48
+ }
49
+ React.useEffect(() => {
50
+ if (onComplete && imageData && !loading && !error) {
51
+ onComplete();
52
+ }
53
+ }, [onComplete, imageData, loading, error]);
54
+ React.useEffect(() => {
55
+ if (onError && error) {
56
+ onError(error);
57
+ }
58
+ }, [onError, error]);
59
+ const handleRegen = React.useCallback(() => {
60
+ if (document?._id || _id || prompt) {
61
+ const newGenId = crypto.randomUUID();
62
+ setGenerationId(newGenId);
63
+ }
64
+ }, [document, _id, prompt]);
65
+ const handlePromptEdit = React.useCallback(async (id, newPrompt) => {
66
+ setCurrentEditedPrompt(newPrompt);
67
+ try {
68
+ const doc = await db.get(id);
69
+ if (!doc) {
70
+ logDebug('Document not found:', id);
71
+ return;
72
+ }
73
+ const updatedDoc = { ...doc };
74
+ if (updatedDoc.prompts) {
75
+ const promptKey = `p${Date.now()}`;
76
+ updatedDoc.prompts = {
77
+ ...updatedDoc.prompts,
78
+ [promptKey]: { text: newPrompt },
79
+ };
80
+ updatedDoc.currentPromptKey = promptKey;
81
+ }
82
+ else {
83
+ updatedDoc.prompt = newPrompt;
84
+ }
85
+ await db.put(updatedDoc);
86
+ if (onPromptEdit) {
87
+ onPromptEdit(id, newPrompt);
88
+ }
89
+ const refreshedDoc = await db.get(id);
90
+ if (refreshedDoc) {
91
+ setImageGenDocument(refreshedDoc);
92
+ if (debug) {
93
+ logDebug('[ImgGen] Setting document for image generation:', refreshedDoc._id, 'with files:', Object.keys(refreshedDoc._files || {}).filter((key) => key.startsWith('in')));
94
+ }
95
+ }
96
+ handleRegen();
97
+ }
98
+ catch (error) {
99
+ logDebug('Error updating prompt:', error);
100
+ }
101
+ }, [db, handleRegen, onPromptEdit]);
102
+ const handleDelete = React.useCallback(async (id) => {
103
+ logDebug('[ImgGen] Attempting to delete document:', id);
104
+ try {
105
+ const result = await db.del(id);
106
+ if (debug) {
107
+ logDebug('[ImgGen] Document deletion result:', result);
108
+ }
109
+ if (onDelete) {
110
+ if (debug) {
111
+ logDebug('[ImgGen] Calling onDelete callback with id:', id);
112
+ }
113
+ onDelete(id);
114
+ }
115
+ }
116
+ catch (error) {
117
+ logDebug('Error deleting document:', error);
118
+ }
119
+ }, [db, onDelete, debug]);
120
+ const handleDocCreated = React.useCallback((docId) => {
121
+ if (debug) {
122
+ logDebug('[ImgGenCore] Document created:', docId);
123
+ }
124
+ if (onDocumentCreated) {
125
+ onDocumentCreated(docId);
126
+ }
127
+ }, [onDocumentCreated, debug]);
128
+ function renderContent() {
129
+ if (debug) {
130
+ logDebug('[ImgGen Debug] Render state:', {
131
+ mode,
132
+ document: document?._id,
133
+ loading,
134
+ error: error?.message,
135
+ currentEditedPrompt: currentEditedPrompt || null,
136
+ imageData: !!imageData,
137
+ });
138
+ }
139
+ switch (mode) {
140
+ case 'placeholder': {
141
+ return (React.createElement(ImgGenUploadWaiting, { className: className, classes: classes, debug: debug, database: database, onDocumentCreated: handleDocCreated, onPromptSubmit: (newPrompt) => {
142
+ if (debug) {
143
+ logDebug('[ImgGenCore] Prompt submitted from initial view:', newPrompt);
144
+ }
145
+ setCurrentEditedPrompt(newPrompt);
146
+ setGenerationId(uuid());
147
+ } }));
148
+ }
149
+ case 'uploadWaiting': {
150
+ if (!document || !document._id) {
151
+ return React.createElement(ImgGenPromptWaiting, { className: className, classes: classes });
152
+ }
153
+ if (loading) {
154
+ const displayPrompt = currentEditedPrompt || prompt;
155
+ return (React.createElement(ImgGenDisplayPlaceholder, { prompt: displayPrompt || '', loading: loading, progress: progress, error: error, className: className, classes: classes }));
156
+ }
157
+ return (React.createElement(React.Fragment, null, React.createElement(ImgGenUploadWaiting, { document: document, className: className, classes: classes, debug: debug, database: database, onFilesAdded: () => {
158
+ if (debug) {
159
+ logDebug('[ImgGenCore] Files added to existing document:', document._id);
160
+ }
161
+ }, onPromptSubmit: (newPrompt, docId) => {
162
+ const targetDocId = docId || (document && document._id);
163
+ if (debug) {
164
+ logDebug('[ImgGenCore] Prompt submitted for existing uploads:', newPrompt);
165
+ logDebug('[ImgGenCore] Using document ID:', targetDocId);
166
+ }
167
+ if (targetDocId) {
168
+ handlePromptEdit(targetDocId, newPrompt);
169
+ }
170
+ } })));
171
+ }
172
+ case 'generating': {
173
+ let displayPrompt = currentEditedPrompt || prompt;
174
+ if (!displayPrompt &&
175
+ document &&
176
+ 'prompt' in document &&
177
+ typeof document.prompt === 'string') {
178
+ displayPrompt = document.prompt;
179
+ }
180
+ if (debug) {
181
+ logDebug('[ImgGen Debug] Generating state prompt sources:', {
182
+ currentEditedPrompt: currentEditedPrompt || null,
183
+ propPrompt: prompt || null,
184
+ documentPrompt: document?.prompt || null,
185
+ finalDisplayPrompt: displayPrompt || null,
186
+ });
187
+ }
188
+ return (React.createElement(ImgGenDisplayPlaceholder, { prompt: displayPrompt || '', loading: loading, progress: progress, error: error, className: className, classes: classes }));
189
+ }
190
+ case 'display': {
191
+ if (!document || !document._id) {
192
+ return React.createElement(ImgGenError, { message: "Missing document" });
193
+ }
194
+ return (React.createElement(React.Fragment, null, React.createElement(ImgGenDisplay, { document: document, loading: loading, progress: progress, onPromptEdit: handlePromptEdit, onDelete: handleDelete, onRegen: handleRegen, alt: alt || '', className: className, classes: classes, debug: debug, error: error })));
195
+ }
196
+ case 'error': {
197
+ return (React.createElement(ImgGenError, { message: error ? error.message : 'Unknown error', className: className }));
198
+ }
199
+ default: {
200
+ return React.createElement(ImgGenError, { message: "Unknown state" });
201
+ }
202
+ }
203
+ }
204
+ return renderContent();
205
+ }
206
+ export function ImgGen(props) {
207
+ const { _id, prompt, debug, onDocumentCreated } = props;
208
+ const [mountKey, setMountKey] = React.useState(() => uuid());
209
+ const [uploadedDocId, setUploadedDocId] = React.useState(undefined);
210
+ const handleDocCreated = React.useCallback((docId) => {
211
+ if (debug)
212
+ logDebug('[ImgGen] Document created:', docId);
213
+ setUploadedDocId(docId);
214
+ if (onDocumentCreated) {
215
+ if (debug)
216
+ logDebug('[ImgGen] Calling onDocumentCreated callback');
217
+ onDocumentCreated(docId);
218
+ }
219
+ }, [debug, onDocumentCreated]);
220
+ const prevIdRef = React.useRef(_id);
221
+ const prevPromptRef = React.useRef(prompt);
222
+ const prevUploadedDocIdRef = React.useRef(uploadedDocId);
223
+ React.useEffect(() => {
224
+ const idChanged = _id !== prevIdRef.current;
225
+ const promptChanged = prompt && prompt !== prevPromptRef.current;
226
+ const uploadedDocIdChanged = uploadedDocId !== prevUploadedDocIdRef.current;
227
+ if (idChanged || (!_id && promptChanged) || uploadedDocIdChanged) {
228
+ if (debug) {
229
+ logDebug('[ImgGen] Identity change detected, generating new mountKey:', {
230
+ idChanged,
231
+ _id,
232
+ prevId: prevIdRef.current,
233
+ promptChanged: !_id && promptChanged,
234
+ prompt,
235
+ prevPrompt: prevPromptRef.current,
236
+ uploadedDocIdChanged,
237
+ uploadedDocId,
238
+ prevUploadedDocId: prevUploadedDocIdRef.current,
239
+ });
240
+ }
241
+ setMountKey(uuid());
242
+ }
243
+ prevIdRef.current = _id;
244
+ prevPromptRef.current = prompt;
245
+ prevUploadedDocIdRef.current = uploadedDocId;
246
+ }, [_id, prompt, uploadedDocId, debug]);
247
+ const coreProps = {
248
+ ...props,
249
+ onDocumentCreated: handleDocCreated,
250
+ };
251
+ if (uploadedDocId && !_id) {
252
+ coreProps._id = uploadedDocId;
253
+ }
254
+ return React.createElement(ImgGenCore, { ...coreProps, key: mountKey });
255
+ }
256
+ export default ImgGen;
257
+ //# sourceMappingURL=ImgGen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImgGen.js","sourceRoot":"","sources":["../../jsr/components/ImgGen.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import * as React from 'react';
2
- import { ImgGenDisplayProps } from './types';
3
- export declare function ImgGenDisplay({ document, className, alt, onDelete, onRegen, onPromptEdit, classes, loading, progress, error, debug, }: ImgGenDisplayProps): React.JSX.Element;
2
+ import { ImgGenDisplayProps } from './types.js';
3
+ export declare function ImgGenDisplay({ document, className, alt, onDelete, onRegen, onPromptEdit, classes, loading, progress, error, debug }: Partial<ImgGenDisplayProps>): React.JSX.Element;