+ .${overlayButtonsClassName}`]: overlayButtonsActiveSx,
+ '&:hover .overlay-text': overlayButtonsActiveSx,
- // resizeable image
- '& picture': { display: 'flex', justifyContent: 'center' },
- '& img': { maxWidth: '100%', maxHeight: '100%', filter: props.disabled ? 'grayscale(100%)' : undefined },
- [`&:hover > .${overlayButtonsClassName}`]: overlayButtonsActiveSx,
- '&:hover .overlay-text': overlayButtonsActiveSx,
+ // layout
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
- // layout
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- justifyContent: 'center',
+ // this shall apply font scaling and maybe margins, not much
+ ...props.scaledImageSx,
+ }}
+ >
- // this shall apply font scaling and maybe margins, not much
- ...props.scaledImageSx,
- }}
- >
+ {/* Image and Overlay - clickable to view/maximize */}
+
- {/* Image and Overlay */}
-
-
- {/* Image / Loading Indicator */}
- {props.imageURL ? (
-
-
-
- ) : (
-
- {loadingTimeout ? 'Image Missing' : 'Loading...'}
-
- )}
-
- {/* [overlay] Description */}
- {!!props.overlayText && (
-
- {props.overlayText}
-
- )}
-
-
- {/* Bottom Expander: information */}
- {!!props.expandableText && infoOpen && (
-
- {props.expandableText}
+ {/* Image / Loading Indicator */}
+ {props.imageURL ? (
+
+
+
+ ) : (
+
+ {loadingTimeout ? 'Image Missing' : 'Loading...'}
)}
- {/* [overlay] Buttons (RenderImage) */}
- {!props.disabled &&
+ {/* [overlay] Description */}
+ {!!props.overlayText && (
+
+ {props.overlayText}
+
+ )}
+
- {!!props.expandableText && (
-
-
-
- )}
-
- {!!props.imageURL && (
- props.onViewImage ? (
-
-
-
- ) : props.imageURL.startsWith('http') ? (
-
-
-
- ) :
- )}
-
-
- {/* Deletion */}
-
- {deleteArmed && !regenArmed && (
-
-
-
- )}
-
- {!!onImageDelete && !regenArmed && (
-
- {deleteArmed ? : }
-
- )}
-
- {!!onImageRegenerate && !deleteArmed && (
-
- {regenArmed
- ?
- :
- }
-
- )}
-
- {/* Regenerate [armed, arming] buttons */}
- {regenArmed && !deleteArmed && (
-
-
-
- )}
-
- }
-
-
-
- {/* (Remove in 2025) Dalle Warning notice */}
- {isTempDalleUrl && showDalleAlert && (
- }
- endDecorator={
- setShowDalleAlert(on => !on)} sx={{ my: -0.5 }}>
-
-
- }
- sx={{
- mx: 0.5,
- ...props.scaledImageSx,
- }}
- >
-
- Please Save Locally ยท OpenAI will delete this image link from their servers one hour after creation.
-
-
+ {/* Bottom Expander: information */}
+ {!!props.expandableText && infoOpen && (
+
+ {props.expandableText}
+
)}
-
+ {/* [overlay] Buttons (RenderImage) */}
+ {!props.disabled &&