use-vibes 0.5.7 → 0.11.0-dev-preview1

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 +21 -13
  6. package/components/ImgGen.d.ts +25 -0
  7. package/{dist/components → components}/ImgGen.js +25 -119
  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/{dist/utils → utils}/debug.js +0 -1
  81. package/utils/debug.js.map +1 -0
  82. package/utils/style-utils.d.ts +17 -0
  83. package/utils/style-utils.js +15 -0
  84. package/utils/style-utils.js.map +1 -0
  85. package/dist/components/ControlsBar.d.ts +0 -32
  86. package/dist/components/ControlsBar.js +0 -109
  87. package/dist/components/ControlsBar.js.map +0 -1
  88. package/dist/components/ImgGen.d.ts +0 -42
  89. package/dist/components/ImgGen.js.map +0 -1
  90. package/dist/components/ImgGenUtils/ImgGenDisplay.js +0 -264
  91. package/dist/components/ImgGenUtils/ImgGenDisplay.js.map +0 -1
  92. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.d.ts +0 -3
  93. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.js +0 -125
  94. package/dist/components/ImgGenUtils/ImgGenDisplayPlaceholder.js.map +0 -1
  95. package/dist/components/ImgGenUtils/ImgGenDisplayUtils.d.ts +0 -44
  96. package/dist/components/ImgGenUtils/ImgGenDisplayUtils.js.map +0 -1
  97. package/dist/components/ImgGenUtils/ImgGenError.d.ts +0 -3
  98. package/dist/components/ImgGenUtils/ImgGenError.js +0 -9
  99. package/dist/components/ImgGenUtils/ImgGenError.js.map +0 -1
  100. package/dist/components/ImgGenUtils/ImgGenFileDrop.d.ts +0 -21
  101. package/dist/components/ImgGenUtils/ImgGenFileDrop.js.map +0 -1
  102. package/dist/components/ImgGenUtils/ImgGenModal.d.ts +0 -31
  103. package/dist/components/ImgGenUtils/ImgGenModal.js +0 -34
  104. package/dist/components/ImgGenUtils/ImgGenModal.js.map +0 -1
  105. package/dist/components/ImgGenUtils/ImgGenModeUtils.d.ts +0 -16
  106. package/dist/components/ImgGenUtils/ImgGenModeUtils.js.map +0 -1
  107. package/dist/components/ImgGenUtils/ImgGenPromptWaiting.d.ts +0 -17
  108. package/dist/components/ImgGenUtils/ImgGenPromptWaiting.js.map +0 -1
  109. package/dist/components/ImgGenUtils/ImgGenUploadWaiting.d.ts +0 -30
  110. package/dist/components/ImgGenUtils/ImgGenUploadWaiting.js.map +0 -1
  111. package/dist/components/ImgGenUtils/index.d.ts +0 -6
  112. package/dist/components/ImgGenUtils/index.js +0 -9
  113. package/dist/components/ImgGenUtils/index.js.map +0 -1
  114. package/dist/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.d.ts +0 -10
  115. package/dist/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.js.map +0 -1
  116. package/dist/components/ImgGenUtils/overlays/ImageOverlay.d.ts +0 -29
  117. package/dist/components/ImgGenUtils/overlays/ImageOverlay.js +0 -11
  118. package/dist/components/ImgGenUtils/overlays/ImageOverlay.js.map +0 -1
  119. package/dist/components/ImgGenUtils/types.d.ts +0 -43
  120. package/dist/components/ImgGenUtils/types.js.map +0 -1
  121. package/dist/components/ImgGenUtils.d.ts +0 -6
  122. package/dist/components/ImgGenUtils.js +0 -7
  123. package/dist/components/ImgGenUtils.js.map +0 -1
  124. package/dist/components/PromptBar.d.ts +0 -15
  125. package/dist/components/PromptBar.js +0 -23
  126. package/dist/components/PromptBar.js.map +0 -1
  127. package/dist/hooks/image-gen/image-generator.d.ts +0 -18
  128. package/dist/hooks/image-gen/image-generator.js.map +0 -1
  129. package/dist/hooks/image-gen/index.d.ts +0 -6
  130. package/dist/hooks/image-gen/index.js +0 -6
  131. package/dist/hooks/image-gen/index.js.map +0 -1
  132. package/dist/hooks/image-gen/types.d.ts +0 -75
  133. package/dist/hooks/image-gen/use-image-gen.d.ts +0 -12
  134. package/dist/hooks/image-gen/use-image-gen.js +0 -675
  135. package/dist/hooks/image-gen/use-image-gen.js.map +0 -1
  136. package/dist/hooks/image-gen/utils.d.ts +0 -61
  137. package/dist/hooks/image-gen/utils.js.map +0 -1
  138. package/dist/hooks/use-image-gen.d.ts +0 -5
  139. package/dist/hooks/use-image-gen.js +0 -7
  140. package/dist/hooks/use-image-gen.js.map +0 -1
  141. package/dist/index.d.ts +0 -6
  142. package/dist/index.js +0 -8
  143. package/dist/index.js.map +0 -1
  144. package/dist/style-loader.d.ts +0 -16
  145. package/dist/style-loader.js +0 -43
  146. package/dist/style-loader.js.map +0 -1
  147. package/dist/utils/base64.js.map +0 -1
  148. package/dist/utils/debug.js.map +0 -1
  149. package/dist/utils/style-utils.d.ts +0 -55
  150. package/dist/utils/style-utils.js +0 -42
  151. package/dist/utils/style-utils.js.map +0 -1
  152. /package/{dist/components → components}/ImgGenUtils/types.js +0 -0
  153. /package/{dist/hooks → hooks}/image-gen/types.js +0 -0
  154. /package/{dist/utils → utils}/base64.d.ts +0 -0
  155. /package/{dist/utils → utils}/debug.d.ts +0 -0
@@ -1,109 +0,0 @@
1
- import * as React from 'react';
2
- import { combineClasses, defaultClasses } from '../utils/style-utils';
3
- import { logDebug } from '../utils/debug';
4
- /**
5
- * ControlsBar component - Displays controls for deleting, navigating between versions, and regenerating
6
- */
7
- export function ControlsBar({ handleDeleteConfirm, handlePrevVersion, handleNextVersion, handleRegen, versionIndex, totalVersions, classes = defaultClasses, showControls = true, editedPrompt, promptText, progress = 100, showDelete = true, versionFlash = false, isRegenerating = false, }) {
8
- // State for managing delete confirmation
9
- const [showConfirmation, setShowConfirmation] = React.useState(false);
10
- // Timer ref for automatic cancellation
11
- const cancelTimerRef = React.useRef(null);
12
- // Use external state if provided
13
- const isConfirming = showConfirmation;
14
- // Handle delete click
15
- const onDeleteClick = () => {
16
- if (isConfirming) {
17
- // User clicked delete while confirmation is showing - confirm the delete
18
- logDebug('ControlsBar: Delete confirmed, calling handleDeleteConfirm');
19
- // Ensure we call handleDeleteConfirm with no arguments, it will handle the document ID
20
- handleDeleteConfirm();
21
- // Reset confirmation state
22
- setShowConfirmation(false);
23
- if (cancelTimerRef.current) {
24
- window.clearTimeout(cancelTimerRef.current);
25
- cancelTimerRef.current = null;
26
- }
27
- }
28
- else {
29
- // Show confirmation
30
- logDebug('ControlsBar: Showing delete confirmation');
31
- setShowConfirmation(true);
32
- // Set timer to auto-hide confirmation after 6.5 seconds (allows 0.5s for fade)
33
- cancelTimerRef.current = window.setTimeout(() => {
34
- setShowConfirmation(false);
35
- }, 6500);
36
- }
37
- };
38
- // Clean up timer on unmount
39
- React.useEffect(() => {
40
- return () => {
41
- if (cancelTimerRef.current) {
42
- window.clearTimeout(cancelTimerRef.current);
43
- }
44
- };
45
- }, []);
46
- return (React.createElement(React.Fragment, null,
47
- progress < 100 && (React.createElement("div", { className: "imggen-progress", style: {
48
- width: `${progress}%`,
49
- position: 'absolute',
50
- top: 0,
51
- left: 0,
52
- height: 'var(--imggen-progress-height)',
53
- zIndex: 20,
54
- } })),
55
- React.createElement("div", { className: combineClasses('imggen-controls', classes.controls) }, showControls ? (React.createElement(React.Fragment, null,
56
- React.createElement("div", { style: { display: 'flex', gap: '6px', alignItems: 'center', flex: 1 } }, showDelete && (React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' } },
57
- React.createElement("button", { "aria-label": "Delete image", onClick: onDeleteClick, className: combineClasses('imggen-button imggen-delete-button', classes.button), style: {
58
- position: 'static',
59
- width: 'var(--imggen-button-size)',
60
- height: 'var(--imggen-button-size)',
61
- backgroundColor: isConfirming ? 'var(--imggen-error-border)' : undefined,
62
- color: isConfirming ? 'white' : undefined,
63
- opacity: isConfirming ? 1 : undefined,
64
- } }, "\u2715"),
65
- isConfirming && (React.createElement("div", { className: "fade-transition", style: { animationDelay: '6s' } },
66
- React.createElement("button", { onClick: () => {
67
- handleDeleteConfirm();
68
- setShowConfirmation(false);
69
- }, "aria-label": "Confirm delete", style: {
70
- fontSize: 'var(--imggen-font-size)',
71
- fontWeight: 'bold',
72
- whiteSpace: 'nowrap',
73
- border: '1px solid var(--imggen-error-border, #ff3333)',
74
- background: 'var(--imggen-error-border, #ff3333)',
75
- color: 'white',
76
- borderRadius: '4px',
77
- cursor: 'pointer',
78
- padding: '2px 8px',
79
- } }, "Delete image?"),
80
- React.createElement("button", { onClick: () => {
81
- logDebug('ControlsBar: Delete canceled');
82
- setShowConfirmation(false);
83
- if (cancelTimerRef.current) {
84
- window.clearTimeout(cancelTimerRef.current);
85
- }
86
- }, "aria-label": "Cancel delete", style: {
87
- fontSize: 'var(--imggen-font-size)',
88
- whiteSpace: 'nowrap',
89
- border: 'none',
90
- background: 'none',
91
- color: 'var(--imggen-font-color)',
92
- cursor: 'pointer',
93
- padding: '0 4px',
94
- } }, "Cancel")))))),
95
- React.createElement("div", { className: "imggen-control-group" },
96
- totalVersions > 1 && (React.createElement("button", { "aria-label": "Previous version", disabled: versionIndex === 0, onClick: handlePrevVersion, className: combineClasses('imggen-button', classes.button) }, "\u25C0\uFE0E")),
97
- totalVersions > 1 && (React.createElement("span", { className: `imggen-version-indicator version-indicator ${versionFlash ? 'imggen-version-flash' : ''}`, "aria-live": "polite" },
98
- versionIndex + 1,
99
- " / ",
100
- totalVersions)),
101
- totalVersions > 1 && (React.createElement("button", { "aria-label": "Next version", disabled: versionIndex >= totalVersions - 1, onClick: handleNextVersion, className: combineClasses('imggen-button', classes.button) }, "\u25B6\uFE0E")),
102
- React.createElement("button", { "aria-label": "Regenerate image", onClick: () => {
103
- handleRegen();
104
- }, disabled: isRegenerating, className: combineClasses('imggen-button', classes.button, editedPrompt !== null && editedPrompt.trim() !== promptText
105
- ? 'imggen-button-highlight'
106
- : '', isRegenerating ? 'imggen-button-disabled' : '') },
107
- React.createElement("span", { className: isRegenerating ? 'imggen-regen-spinning' : '' }, "\u27F3"))))) : progress < 100 ? (React.createElement("div", { className: "imggen-status-text" }, "Generating...")) : null)));
108
- }
109
- //# sourceMappingURL=ControlsBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlsBar.js","sourceRoot":"","sources":["../../src/components/ControlsBar.tsx"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import * as React from 'react';
2
- import type { ImageGenOptions } from 'call-ai';
3
- import { Database } from 'use-fireproof';
4
- import { ImgGenClasses } from '../utils/style-utils';
5
- import './ImgGen.css';
6
- export interface ImgGenProps {
7
- /** Text prompt for image generation (required unless _id is provided) */
8
- prompt?: string;
9
- /** Document ID to load a specific image instead of generating a new one */
10
- _id?: string;
11
- /** Classname(s) to apply to the image */
12
- className?: string;
13
- /** Alt text for the image */
14
- alt?: string;
15
- /** Array of images to edit or combine with AI */
16
- images?: File[];
17
- /** Image generation options */
18
- options?: ImageGenOptions;
19
- /** Database name or instance to use for storing images */
20
- database?: string | Database;
21
- /** Callback when image load completes successfully */
22
- onComplete?: () => void;
23
- /** Callback when image load fails */
24
- onError?: (error: Error) => void;
25
- /** Callback when document is deleted */
26
- onDelete?: (id: string) => void;
27
- /** Callback when prompt is edited */
28
- onPromptEdit?: (id: string, newPrompt: string) => void;
29
- /** Custom CSS classes for styling component parts */
30
- classes?: ImgGenClasses;
31
- /** Callback when a new document is created via drop or file picker */
32
- onDocumentCreated?: (docId: string) => void;
33
- /** Enable debug logging */
34
- debug?: boolean;
35
- }
36
- /**
37
- * Main component for generating images with call-ai's imageGen
38
- * Provides automatic caching, reactive updates, and placeholder handling
39
- * Uses a mountKey to ensure clean state when switching documents
40
- */
41
- export declare function ImgGen(props: ImgGenProps): React.ReactElement;
42
- export default ImgGen;
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImgGen.js","sourceRoot":"","sources":["../../src/components/ImgGen.tsx"],"names":[],"mappings":"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"}
@@ -1,264 +0,0 @@
1
- import * as React from 'react';
2
- import { ImgFile } from 'use-fireproof';
3
- import { ImgGenError } from './ImgGenError';
4
- import { combineClasses, defaultClasses } from '../../utils/style-utils';
5
- import { getCurrentFileKey, getPromptInfo, getVersionInfo } from './ImgGenDisplayUtils';
6
- import { ImgGenModal } from './ImgGenModal';
7
- import { logDebug } from '../../utils/debug';
8
- // Component for displaying the generated image
9
- export function ImgGenDisplay({ document, className, alt, onDelete, onRegen, onPromptEdit, classes = defaultClasses, loading, progress, error, debug, // Add debug flag to props interface
10
- }) {
11
- // Delete confirmation is now handled within ControlsBar
12
- // Use null to indicate not editing, or string for edit mode
13
- const [editedPrompt, setEditedPrompt] = React.useState(null);
14
- // Track the prompt that's currently being generated
15
- const [generatingPrompt, setGeneratingPrompt] = React.useState(null);
16
- // --- Fullscreen backdrop state ---
17
- const [isFullscreen, setIsFullscreen] = React.useState(false);
18
- const openFullscreen = () => setIsFullscreen(true);
19
- const closeFullscreen = () => setIsFullscreen(false);
20
- // Get version information directly at render time
21
- const { versions, currentVersion } = getVersionInfo(document);
22
- // Calculate the initial version index based on document state
23
- const initialVersionIndex = React.useMemo(() => {
24
- return typeof currentVersion === 'number'
25
- ? currentVersion
26
- : versions?.length
27
- ? versions.length - 1
28
- : 0;
29
- }, [currentVersion, versions]);
30
- // Track previous version count to detect when new versions are added
31
- const prevVersionsCountRef = React.useRef(versions.length);
32
- // Set flash effect when new version is added
33
- React.useEffect(() => {
34
- // If we have more versions than before, it means a new version was added
35
- if (versions.length > prevVersionsCountRef.current) {
36
- // Trigger the flash effect
37
- setVersionFlash(true);
38
- // Auto-reset flash after animation completes
39
- const timer = setTimeout(() => {
40
- setVersionFlash(false);
41
- }, 2000); // Match the animation duration in CSS
42
- return () => clearTimeout(timer);
43
- }
44
- // Update ref for next comparison
45
- prevVersionsCountRef.current = versions.length;
46
- }, [versions.length]);
47
- // Only track user-selected version index as state
48
- const [userSelectedIndex, setUserSelectedIndex] = React.useState(null);
49
- // Track when a new version has been added to enable flash effect
50
- const [versionFlash, setVersionFlash] = React.useState(false);
51
- // Explicitly track regeneration state while waiting for progress to update
52
- const [pendingRegeneration, setPendingRegeneration] = React.useState(false);
53
- // Keep track of pending regeneration requests
54
- const pendingRegenerationRef = React.useRef(false);
55
- // We now use progress directly from props
56
- // Derive the final version index - use user selection if available, otherwise use the document's current version
57
- const versionIndex = userSelectedIndex !== null ? userSelectedIndex : initialVersionIndex;
58
- // Custom setter function that manages user selections
59
- const setVersionIndex = React.useCallback((index) => {
60
- setUserSelectedIndex(index);
61
- }, []);
62
- const fileKey = getCurrentFileKey(document, versionIndex, versions);
63
- const totalVersions = versions ? versions.length : 0;
64
- // We now use getPromptInfo directly at render time as a pure function
65
- // Navigation handlers
66
- function handlePrevVersion() {
67
- if (versionIndex > 0) {
68
- setVersionIndex(versionIndex - 1);
69
- // Exit edit mode when changing versions
70
- setEditedPrompt(null);
71
- }
72
- }
73
- function handleNextVersion() {
74
- if (versionIndex < totalVersions - 1) {
75
- setVersionIndex(versionIndex + 1);
76
- // Exit edit mode when changing versions
77
- setEditedPrompt(null);
78
- }
79
- }
80
- // ESC handling moved to ImgGenModal component
81
- // Determine which file to use - either the versioned file or the legacy 'image' file
82
- const currentFile = fileKey && document._files
83
- ? document._files[fileKey]
84
- : document._files?.image;
85
- // Get prompt text early (moved before portal)
86
- const promptInfo = getPromptInfo(document, versionIndex);
87
- const promptText = promptInfo.currentPrompt || alt || 'Generated image';
88
- // State for delete confirmation is managed directly
89
- // Handle delete confirmation
90
- function handleDeleteConfirm() {
91
- if (debug) {
92
- logDebug('[ImgGenDisplay] handleDeleteConfirm called, document ID:', document._id);
93
- }
94
- if (onDelete && document && document._id) {
95
- if (debug) {
96
- logDebug('[ImgGenDisplay] Calling onDelete with ID:', document._id);
97
- }
98
- onDelete(document._id);
99
- }
100
- else {
101
- console.error('[ImgGenDisplay] Cannot delete - missing onDelete handler or document ID');
102
- if (debug) {
103
- logDebug('[ImgGenDisplay] Delete details:', {
104
- hasOnDelete: !!onDelete,
105
- documentId: document?._id,
106
- });
107
- }
108
- }
109
- }
110
- // Handle generating a new version
111
- function handleRegen() {
112
- // Set pending regeneration flag
113
- setPendingRegeneration(true);
114
- pendingRegenerationRef.current = true;
115
- // const { currentPrompt } = getPromptInfo(document, versionIndex);
116
- if (editedPrompt !== null) {
117
- // User has edited the prompt - always use the edited version
118
- // even if it happens to be the same as the current prompt
119
- const newPrompt = editedPrompt.trim();
120
- if (newPrompt) {
121
- // Always submit the edited prompt as a new prompt
122
- onPromptEdit?.(document._id, newPrompt);
123
- }
124
- else {
125
- // Empty prompt, just regenerate with existing prompt
126
- onRegen?.(document._id);
127
- }
128
- }
129
- else {
130
- // Not in edit mode → regenerate current prompt
131
- onRegen?.(document._id);
132
- }
133
- // Reset user selection when generating a new version
134
- // This will make the display automatically switch to the latest version when it returns
135
- setUserSelectedIndex(null);
136
- // Save the prompt we're generating with
137
- let promptToGenerate = '';
138
- if (editedPrompt !== null) {
139
- promptToGenerate = editedPrompt.trim();
140
- }
141
- else {
142
- const { currentPrompt } = getPromptInfo(document, versionIndex);
143
- promptToGenerate = currentPrompt;
144
- }
145
- setGeneratingPrompt(promptToGenerate);
146
- // Reset edited prompt since we're no longer in edit mode
147
- setEditedPrompt(null);
148
- }
149
- // Handle prompt editing
150
- function handlePromptEdit(newPrompt) {
151
- // Get the current prompt for comparison at the exact time of editing
152
- const { currentPrompt } = getPromptInfo(document, versionIndex);
153
- const trimmedPrompt = newPrompt.trim();
154
- if (trimmedPrompt && trimmedPrompt !== currentPrompt) {
155
- // Set the edited prompt to the new trimmed value
156
- setEditedPrompt(trimmedPrompt);
157
- // Now use handleRegen to handle the regeneration process
158
- // This ensures the regeneration logic is consistent
159
- handleRegen();
160
- }
161
- else {
162
- // If the prompt hasn't changed, just exit edit mode
163
- setEditedPrompt(null);
164
- }
165
- }
166
- // We're not using document.progress as it's always 100
167
- // Just track the document loading state
168
- const documentLoading = document.loading ?? false;
169
- // Reset regeneration state when loading state changes
170
- React.useEffect(() => {
171
- if (!documentLoading && pendingRegenerationRef.current) {
172
- pendingRegenerationRef.current = false;
173
- setPendingRegeneration(false);
174
- // Clear the generating prompt after completion
175
- setTimeout(() => {
176
- setGeneratingPrompt(null);
177
- }, 500);
178
- }
179
- }, [documentLoading]);
180
- // Additional check for document updates to detect version changes
181
- const documentIdRef = React.useRef(document?._id);
182
- const versionsLengthRef = React.useRef(versions?.length || 0);
183
- React.useEffect(() => {
184
- // Check if a new version was added (version count increased)
185
- if (versions?.length > versionsLengthRef.current) {
186
- pendingRegenerationRef.current = false;
187
- setPendingRegeneration(false);
188
- }
189
- // Update refs
190
- versionsLengthRef.current = versions?.length || 0;
191
- documentIdRef.current = document?._id;
192
- }, [document?._id, versions?.length]);
193
- // Cleanup no longer needed as we're using real progress
194
- // Calculate the effective progress - use real progress during loading, otherwise 100%
195
- const effectiveProgress = loading ? progress : 100;
196
- // Is regeneration in progress - either from loading state or pending state
197
- const isRegenerating = pendingRegeneration || documentLoading === true || loading === true;
198
- // Debug logging for render conditions
199
- if (debug) {
200
- logDebug('[ImgGenDisplay Debug] Render state:', {
201
- documentId: document._id,
202
- hasFiles: !!document._files,
203
- fileKey,
204
- versions,
205
- versionIndex,
206
- hasDefaultImage: !!document._files?.image,
207
- isRegenerating,
208
- loading,
209
- error: error?.message,
210
- totalVersions,
211
- promptText,
212
- });
213
- }
214
- if (!document._files || (!fileKey && !document._files.image)) {
215
- if (debug) {
216
- logDebug('[ImgGenDisplay Debug] Missing image file - showing error', {
217
- hasFiles: !!document._files,
218
- fileKey,
219
- defaultImageExists: !!document._files?.image,
220
- loading,
221
- });
222
- }
223
- return React.createElement(ImgGenError, { message: "Missing image file" });
224
- }
225
- // Determine which prompt to display:
226
- // 1. If in edit mode, show the edited prompt
227
- // 2. If generating, show the generating prompt
228
- // 3. Otherwise, show the document's prompt
229
- const displayPrompt = editedPrompt !== null
230
- ? editedPrompt
231
- : pendingRegeneration && generatingPrompt !== null
232
- ? generatingPrompt
233
- : promptText;
234
- return (React.createElement("div", { className: combineClasses('imggen-root', className, classes.root), title: displayPrompt },
235
- React.createElement("div", { className: "imggen-image-container", style: { position: 'relative', width: '100%' } },
236
- React.createElement("button", { className: "imggen-expand-button", onClick: (e) => {
237
- e.stopPropagation(); // Prevent click from propagating to parent elements
238
- openFullscreen();
239
- }, title: "Expand image", "aria-label": "Expand image" },
240
- React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "24", height: "24", stroke: "currentColor", strokeWidth: "2", fill: "none", strokeLinecap: "round", strokeLinejoin: "round" },
241
- React.createElement("polyline", { points: "15,5 20,5 20,10" }),
242
- React.createElement("polyline", { points: "9,19 4,19 4,14" }),
243
- React.createElement("line", { x1: "20", y1: "5", x2: "14", y2: "11" }),
244
- React.createElement("line", { x1: "4", y1: "19", x2: "10", y2: "13" }))),
245
- React.createElement(ImgFile, { file: currentFile, className: combineClasses('imggen-image', classes.image), alt: alt || 'Generated image', style: { width: '100%' } }),
246
- isRegenerating && (React.createElement("div", { className: "imggen-progress-container", style: {
247
- position: 'absolute',
248
- top: 0,
249
- left: 0,
250
- width: '100%',
251
- height: '6px',
252
- overflow: 'hidden',
253
- backgroundColor: 'rgba(0, 0, 0, 0.1)',
254
- zIndex: 10,
255
- } },
256
- React.createElement("div", { className: combineClasses('imggen-progress', classes.progress), style: {
257
- width: `${effectiveProgress}%`,
258
- height: '100%',
259
- backgroundColor: 'var(--imggen-accent-color, #0074d9)',
260
- transition: 'width 0.5s ease-out',
261
- }, "aria-hidden": "true" })))),
262
- React.createElement(ImgGenModal, { isOpen: isFullscreen, onClose: closeFullscreen, currentFile: currentFile, alt: alt, promptText: displayPrompt, editedPrompt: editedPrompt, setEditedPrompt: setEditedPrompt, handlePromptEdit: handlePromptEdit, handleDeleteConfirm: handleDeleteConfirm, handlePrevVersion: handlePrevVersion, handleNextVersion: handleNextVersion, handleRegen: handleRegen, versionIndex: versionIndex, totalVersions: totalVersions, progress: effectiveProgress, classes: classes, versionFlash: versionFlash, isRegenerating: isRegenerating, error: error })));
263
- }
264
- //# sourceMappingURL=ImgGenDisplay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImgGenDisplay.js","sourceRoot":"","sources":["../../../src/components/ImgGenUtils/ImgGenDisplay.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import * as React from 'react';
2
- import { ImgGenPlaceholderProps } from './types';
3
- export declare function ImgGenDisplayPlaceholder({ className, alt, prompt, progress, error, classes, }: ImgGenPlaceholderProps): React.JSX.Element;
@@ -1,125 +0,0 @@
1
- import * as React from 'react';
2
- import { combineClasses, defaultClasses } from '../../utils/style-utils';
3
- import { ImageOverlay } from './overlays/ImageOverlay';
4
- // Component for loading/placeholder state
5
- export function ImgGenDisplayPlaceholder({ className, alt, prompt, progress, error, classes = defaultClasses, }) {
6
- // State to track the visible progress width for animation
7
- const [visibleProgress, setVisibleProgress] = React.useState(0);
8
- // Animate progress bar when component mounts or progress changes
9
- React.useEffect(() => {
10
- // Only start at zero on initial mount, not on every progress update
11
- if (progress === 0) {
12
- setVisibleProgress(0);
13
- }
14
- // Smoothly animate to the actual progress (or minimum 5%)
15
- const timer = setTimeout(() => {
16
- setVisibleProgress(Math.max(5, progress));
17
- }, 20); // Smaller delay for smoother transitions
18
- return () => clearTimeout(timer);
19
- }, [progress]);
20
- // Extract error information from the error object
21
- const parseErrorInfo = (error) => {
22
- const errorMsg = error.message;
23
- let title = 'Image Generation Failed';
24
- let body = errorMsg;
25
- let code = '';
26
- // Try to parse JSON error details if present
27
- if (errorMsg.includes('{')) {
28
- try {
29
- const jsonStart = errorMsg.indexOf('{');
30
- const jsonStr = errorMsg.substring(jsonStart);
31
- const jsonObj = JSON.parse(jsonStr);
32
- // Get error code if it exists
33
- if (errorMsg.match(/\d{3}/)) {
34
- code = errorMsg.match(/\d{3}/)?.[0] || '';
35
- }
36
- // Special handling for moderation blocked errors
37
- if (jsonObj.details?.error?.code === 'moderation_blocked' ||
38
- jsonObj.code === 'moderation_blocked') {
39
- // Include error code in title but avoid duplication
40
- title = code ? `${code} - Failed to generate image` : 'Failed to generate image';
41
- body =
42
- 'Your request was rejected as a result of our safety system. Your request may contain content that is not allowed by our safety system.';
43
- return { title, body, code };
44
- }
45
- // Set the title from the main error message
46
- if (jsonObj.error) {
47
- title = jsonObj.error;
48
- }
49
- // Set the body from the detailed error message
50
- if (jsonObj.details?.error?.message) {
51
- body = jsonObj.details.error.message;
52
- }
53
- else if (jsonObj.error?.details?.error?.message) {
54
- body = jsonObj.error.details.error.message;
55
- }
56
- }
57
- catch { }
58
- }
59
- return { title, body, code };
60
- };
61
- // Check if we're displaying an error
62
- if (error) {
63
- return (React.createElement("div", { className: combineClasses('imggen-placeholder', 'imggen-error-container', className, classes.placeholder), style: {
64
- backgroundColor: '#222', // Dark gray background
65
- width: '100%',
66
- height: '100%',
67
- minHeight: '512px', // Standard image height
68
- aspectRatio: '1 / 1', // Square aspect ratio like images
69
- }, "aria-label": alt || 'Error display', role: "img" },
70
- React.createElement("div", { className: combineClasses('imggen-error', classes.error) }, (() => {
71
- const { title, body } = parseErrorInfo(error);
72
- return (React.createElement(React.Fragment, null,
73
- React.createElement("h3", { className: "imggen-error-title", style: { color: '#ff4d4d', margin: '0 0 0.75rem 0' } }, title),
74
- React.createElement("p", { className: "imggen-error-message", style: { color: '#e0e0e0', margin: '0' } }, body)));
75
- })())));
76
- }
77
- // Regular placeholder when no error
78
- return (React.createElement("div", { className: combineClasses('imggen-placeholder', className, classes.placeholder), "aria-label": alt || prompt || 'Image placeholder', role: "img", style: {
79
- display: 'flex',
80
- flexDirection: 'column',
81
- justifyContent: 'center',
82
- alignItems: 'center',
83
- textAlign: 'center',
84
- minHeight: '200px',
85
- position: 'relative',
86
- backgroundColor: '#222', // Ensure dark background
87
- color: '#eee', // Light text color
88
- } },
89
- prompt && (React.createElement("div", { className: "imggen-progress-container", style: {
90
- position: 'absolute',
91
- top: 0,
92
- left: 0,
93
- width: '100%',
94
- height: '6px',
95
- overflow: 'hidden',
96
- backgroundColor: 'rgba(0, 0, 0, 0.1)',
97
- zIndex: 10,
98
- } },
99
- React.createElement("div", { className: combineClasses('imggen-progress', classes.progress), style: {
100
- width: `${visibleProgress}%`,
101
- height: '100%',
102
- backgroundColor: 'var(--imggen-accent-color, #0074d9)',
103
- transition: 'width 0.5s ease-out',
104
- }, "aria-hidden": "true" }))),
105
- !prompt && (React.createElement("div", { style: {
106
- color: '#eee',
107
- fontSize: 'var(--imggen-font-size)',
108
- padding: '20px',
109
- } }, "Waiting for prompt")),
110
- prompt && !error && (
111
- /* In production environment, show the styled prompt text */
112
- React.createElement(React.Fragment, null,
113
- React.createElement("div", { style: {
114
- color: '#eee',
115
- fontSize: 'var(--imggen-font-size)',
116
- padding: '20px',
117
- maxWidth: '90%',
118
- wordBreak: 'break-word',
119
- fontWeight: 'bold',
120
- textAlign: 'center',
121
- } }, prompt),
122
- React.createElement("div", { style: { display: 'none' } },
123
- React.createElement(ImageOverlay, { promptText: prompt || '', editedPrompt: null, setEditedPrompt: () => { }, handlePromptEdit: () => { }, handleDeleteConfirm: () => { }, handlePrevVersion: () => { }, handleNextVersion: () => { }, handleRegen: () => { }, versionIndex: 0, totalVersions: 1, classes: classes, showControls: false, showDelete: false }))))));
124
- }
125
- //# sourceMappingURL=ImgGenDisplayPlaceholder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImgGenDisplayPlaceholder.js","sourceRoot":"","sources":["../../../src/components/ImgGenUtils/ImgGenDisplayPlaceholder.tsx"],"names":[],"mappings":"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"}