Fix slide modal preview sizing
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m21s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 31s

This commit is contained in:
lzstealth committed 2026-10-26 22:15:18 +00:00
1 parent 9e865bcae9
commit c923dcc1c5
7 files changed
+18 -6

No files matched your search

+6
View File
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## 2.21.1 - 2026-10-26
### Fixed
- Slide layout and animation previews now resize to fill their modal workspace instead of retaining the editor sidebar preview dimensions.
## 2.21.0 - 2026-10-26 ## 2.21.0 - 2026-10-26
### Added ### Added
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "pulse-signage-player", "name": "pulse-signage-player",
"version": "2.21.0", "version": "2.21.1",
"private": false, "private": false,
"description": "Pulse Signage player application bundle", "description": "Pulse Signage player application bundle",
"engines": { "engines": {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "pulse-signage-web", "name": "pulse-signage-web",
"version": "2.21.0", "version": "2.21.1",
"private": false, "private": false,
"description": "Pulse Signage web and bridge application bundle", "description": "Pulse Signage web and bridge application bundle",
"engines": { "engines": {
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "pulse-signage", "name": "pulse-signage",
"version": "2.21.0", "version": "2.21.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pulse-signage", "name": "pulse-signage",
"version": "2.21.0", "version": "2.21.1",
"dependencies": { "dependencies": {
"@better-auth/passkey": "^1.7.13", "@better-auth/passkey": "^1.7.13",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "pulse-signage", "name": "pulse-signage",
"version": "2.21.0", "version": "2.21.1",
"private": false, "private": false,
"description": "Pulse Signage application with MySQL and media storage", "description": "Pulse Signage application with MySQL and media storage",
"engines": { "engines": {
+6 -1
View File
@@ -792,7 +792,12 @@ import { createSlideAnimationEditor } from '/assets/js/slides/slide-animation-ed
var containerStyle = window.getComputedStyle(stageContainer); var containerStyle = window.getComputedStyle(stageContainer);
var availableWidth = stageContainer.clientWidth - parseFloat(containerStyle.paddingLeft) - parseFloat(containerStyle.paddingRight); var availableWidth = stageContainer.clientWidth - parseFloat(containerStyle.paddingLeft) - parseFloat(containerStyle.paddingRight);
var maxHeight = parseFloat(window.getComputedStyle(slidePreviewStage).maxHeight); var maxHeight = parseFloat(window.getComputedStyle(slidePreviewStage).maxHeight);
if (!availableWidth || !Number.isFinite(maxHeight)) { if (!Number.isFinite(maxHeight)) {
slidePreviewStage.style.removeProperty('width');
slidePreviewStage.style.removeProperty('margin-inline');
return;
}
if (!availableWidth) {
return; return;
} }
+1
View File
@@ -116,6 +116,7 @@ test('slide preview shrinks proportionally without adding a nested scrollbar', (
assert.match(stylesheet, /\.slide-editor-shell \.slide-preview-stage\s*\{[^}]*max-height:\s*max\(12rem,\s*calc\(100vh\s*-\s*22rem\)\);/s); assert.match(stylesheet, /\.slide-editor-shell \.slide-preview-stage\s*\{[^}]*max-height:\s*max\(12rem,\s*calc\(100vh\s*-\s*22rem\)\);/s);
assert.doesNotMatch(stylesheet, /\.slide-editor-shell \.slide-preview-scroll\s*\{[^}]*overflow:\s*auto;/s); assert.doesNotMatch(stylesheet, /\.slide-editor-shell \.slide-preview-scroll\s*\{[^}]*overflow:\s*auto;/s);
assert.match(slideFormSource, /if \(!Number\.isFinite\(maxHeight\)\)\s*\{\s*slidePreviewStage\.style\.removeProperty\('width'\);\s*slidePreviewStage\.style\.removeProperty\('margin-inline'\);\s*return;\s*\}/);
assert.match(slideFormSource, /function sizePreviewStage\(canvasWidth, canvasHeight\)[\s\S]*?stageContainer\.clientWidth - parseFloat\(containerStyle\.paddingLeft\) - parseFloat\(containerStyle\.paddingRight\)[\s\S]*?Math\.min\(availableWidth, maxHeight \* canvasWidth \/ canvasHeight\)[\s\S]*?marginInline = 'auto'/); assert.match(slideFormSource, /function sizePreviewStage\(canvasWidth, canvasHeight\)[\s\S]*?stageContainer\.clientWidth - parseFloat\(containerStyle\.paddingLeft\) - parseFloat\(containerStyle\.paddingRight\)[\s\S]*?Math\.min\(availableWidth, maxHeight \* canvasWidth \/ canvasHeight\)[\s\S]*?marginInline = 'auto'/);
}); });