diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index accc1ca09..928eeeb6c 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -428,9 +428,11 @@ onBeforeUnmount(() => {
- +
+ +
diff --git a/src/renderer/src/components/artifacts/HTMLArtifact.vue b/src/renderer/src/components/artifacts/HTMLArtifact.vue index 6c784b53a..0ee4de172 100644 --- a/src/renderer/src/components/artifacts/HTMLArtifact.vue +++ b/src/renderer/src/components/artifacts/HTMLArtifact.vue @@ -1,18 +1,14 @@ @@ -39,9 +35,26 @@ const props = defineProps<{ }>() const iframeRef = ref() +const resolvedViewportSize = computed(() => props.viewportSize || 'desktop') + +const containerClasses = computed(() => { + if (resolvedViewportSize.value === 'desktop') { + return 'flex h-full min-h-0 w-full overflow-hidden' + } + + return 'flex h-full min-h-0 w-full items-center justify-center overflow-auto' +}) + +const frameContainerClasses = computed(() => { + if (resolvedViewportSize.value === 'desktop') { + return 'h-full min-h-0 w-full' + } + + return 'relative shrink-0' +}) const viewportClasses = computed(() => { - const size = props.viewportSize || 'desktop' + const size = resolvedViewportSize.value const baseClasses = 'html-iframe-wrapper transition-all duration-300 ease-in-out' switch (size) { @@ -49,12 +62,12 @@ const viewportClasses = computed(() => { case 'tablet': return `${baseClasses} border border-gray-300 dark:border-gray-600 relative` default: - return `${baseClasses} w-full h-full` + return `${baseClasses} block h-full min-h-0 w-full` } }) const viewportStyles = computed(() => { - const size = props.viewportSize || 'desktop' + const size = resolvedViewportSize.value if (size === 'mobile' || size === 'tablet') { const dimensions = VIEWPORT_SIZES[size] @@ -75,7 +88,7 @@ const setupIframe = () => { if (!doc) return // Add viewport meta tag - const viewportSize = props.viewportSize || 'desktop' + const viewportSize = resolvedViewportSize.value let viewportContent = 'width=device-width, initial-scale=1.0' if (viewportSize === 'mobile' || viewportSize === 'tablet') { diff --git a/src/renderer/src/components/artifacts/MermaidArtifact.vue b/src/renderer/src/components/artifacts/MermaidArtifact.vue index 38ed4182d..3f169be1f 100644 --- a/src/renderer/src/components/artifacts/MermaidArtifact.vue +++ b/src/renderer/src/components/artifacts/MermaidArtifact.vue @@ -1,13 +1,17 @@