From 925af4e1e9170ed1fdd3c71a3b6144f3ad5526fc Mon Sep 17 00:00:00 2001 From: Elena Torro Date: Tue, 24 Jun 2025 09:34:04 +0200 Subject: [PATCH] :bug: Fix text auto height --- .../render-wasm/get-multiple-texts-base.json | 1858 +++++++++++++++++ .../ui/render-wasm-specs/texts.spec.js | 140 +- ...ates-text-alignment-edition---part-1-1.png | Bin 0 -> 28728 bytes ...ates-text-alignment-edition---part-2-1.png | Bin 0 -> 28945 bytes ...ates-text-alignment-edition---part-3-1.png | Bin 0 -> 29005 bytes .../workspace/sidebar/options/menus/text.cljs | 1 + render-wasm/src/wasm/text.rs | 13 +- 7 files changed, 2008 insertions(+), 4 deletions(-) create mode 100644 frontend/playwright/data/render-wasm/get-multiple-texts-base.json create mode 100644 frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-1-1.png create mode 100644 frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-2-1.png create mode 100644 frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-3-1.png diff --git a/frontend/playwright/data/render-wasm/get-multiple-texts-base.json b/frontend/playwright/data/render-wasm/get-multiple-texts-base.json new file mode 100644 index 0000000000..353ddd4552 --- /dev/null +++ b/frontend/playwright/data/render-wasm/get-multiple-texts-base.json @@ -0,0 +1,1858 @@ +{ + "~:features": { + "~#set": [ + "fdata/path-data", + "plugins/runtime", + "design-tokens/v1", + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "render-wasm/v1", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:team-id": "~u6bd7c17d-4f59-815e-8006-5c1f6882469a", + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "text_base", + "~:revn": 32, + "~:modified-at": "~m1750756543053", + "~:vern": 0, + "~:id": "~uf8b42814-8653-81cf-8006-638aacdc3ffa", + "~:is-shared": false, + "~:migrations": { + "~#ordered-set": [ + "legacy-2", + "legacy-3", + "legacy-5", + "legacy-6", + "legacy-7", + "legacy-8", + "legacy-9", + "legacy-10", + "legacy-11", + "legacy-12", + "legacy-13", + "legacy-14", + "legacy-16", + "legacy-17", + "legacy-18", + "legacy-19", + "legacy-25", + "legacy-26", + "legacy-27", + "legacy-28", + "legacy-29", + "legacy-31", + "legacy-32", + "legacy-33", + "legacy-34", + "legacy-36", + "legacy-37", + "legacy-38", + "legacy-39", + "legacy-40", + "legacy-41", + "legacy-42", + "legacy-43", + "legacy-44", + "legacy-45", + "legacy-46", + "legacy-47", + "legacy-48", + "legacy-49", + "legacy-50", + "legacy-51", + "legacy-52", + "legacy-53", + "legacy-54", + "legacy-55", + "legacy-56", + "legacy-57", + "legacy-59", + "legacy-62", + "legacy-65", + "legacy-66", + "legacy-67", + "0001-remove-tokens-from-groups", + "0002-normalize-bool-content", + "0002-clean-shape-interactions", + "0003-fix-root-shape", + "0003-convert-path-content", + "0004-clean-shadow-and-colors", + "0005-deprecate-image-type", + "0006-fix-old-texts-fills", + "0007-clear-invalid-strokes-and-fills-v2", + "0008-fix-library-colors-opacity", + "0009-add-partial-text-touched-flags" + ] + }, + "~:version": 67, + "~:project-id": "~u6bd7c17d-4f59-815e-8006-5c1f68846e43", + "~:created-at": "~m1750754545523", + "~:data": { + "~:pages": [ + "~uf8b42814-8653-81cf-8006-638aacdc3ffb" + ], + "~:pages-index": { + "~uf8b42814-8653-81cf-8006-638aacdc3ffb": { + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:r2": 0, + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:r3": 0, + "~:r1": 0, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1, + "~:r4": 0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~u2d36f842-6329-801b-8006-638c5e8808cd", + "~u2d36f842-6329-801b-8006-638c578d864d", + "~u2d36f842-6329-801b-8006-638c4b1765cb", + "~u2d36f842-6329-801b-8006-638c35c32b39", + "~u2d36f842-6329-801b-8006-638aedf61630", + "~u2d36f842-6329-801b-8006-638ae53d4e66", + "~u2d36f842-6329-801b-8006-638ad618c609", + "~u2d36f842-6329-801b-8006-638aceecaf72", + "~u2d36f842-6329-801b-8006-638aca630922", + "~u2d36f842-6329-801b-8006-638ac5d4c21d", + "~u2d36f842-6329-801b-8006-638abd13d5b9", + "~u2d36f842-6329-801b-8006-638aaee1355f" + ] + } + }, + "~u2d36f842-6329-801b-8006-638aceecaf72": { + "~#shape": { + "~:y": 350, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 5" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 5", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 474 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638aceecaf72", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 97.00000238418579, + "~:selrect": { + "~#rect": { + "~:x": 97.00000238418579, + "~:y": 350, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 97.00000238418579, + "~:y1": 350, + "~:x2": 510.0000147819519, + "~:y2": 474 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638aedf61630": { + "~#shape": { + "~:y": 350, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 8" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 8", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 474 + } + } + ], + "~:layout-item-h-sizing": "~:fix", + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638aedf61630", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 1410.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 1410.9999947547913, + "~:y": 350, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 1410.9999947547913, + "~:y1": 350, + "~:x2": 1824.0000071525574, + "~:y2": 474 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638abd13d5b9": { + "~#shape": { + "~:y": 226, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 2" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 2", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 350 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638abd13d5b9", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 534.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 534.9999947547913, + "~:y": 226, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 534.9999947547913, + "~:y1": 226, + "~:x2": 948.0000071525574, + "~:y2": 350 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638c35c32b39": { + "~#shape": { + "~:y": 474, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 9" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 9", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 598 + } + }, + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 598 + } + } + ], + "~:layout-item-h-sizing": "~:fix", + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638c35c32b39", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 97.00000238418579, + "~:selrect": { + "~#rect": { + "~:x": 97.00000238418579, + "~:y": 474, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 97.00000238418579, + "~:y1": 474, + "~:x2": 510.0000147819519, + "~:y2": 598 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638aaee1355f": { + "~#shape": { + "~:y": 226, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 1" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 1", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 510.0000147819519, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 97.00000238418582, + "~:y": 350 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638aaee1355f", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 97.00000238418579, + "~:selrect": { + "~#rect": { + "~:x": 97.00000238418579, + "~:y": 226, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 97.00000238418579, + "~:y1": 226, + "~:x2": 510.0000147819519, + "~:y2": 350 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638ac5d4c21d": { + "~#shape": { + "~:y": 226, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 3" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 3", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 350 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638ac5d4c21d", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 972.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 972.9999947547913, + "~:y": 226, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 972.9999947547913, + "~:y1": 226, + "~:x2": 1386.0000071525574, + "~:y2": 350 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638aca630922": { + "~#shape": { + "~:y": 226, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 4" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 4", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 226 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 350 + } + } + ], + "~:layout-item-h-sizing": "~:fix", + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638aca630922", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 1410.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 1410.9999947547913, + "~:y": 226, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 1410.9999947547913, + "~:y1": 226, + "~:x2": 1824.0000071525574, + "~:y2": 350 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638ae53d4e66": { + "~#shape": { + "~:y": 350, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 7" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 7", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 474 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638ae53d4e66", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 972.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 972.9999947547913, + "~:y": 350, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 972.9999947547913, + "~:y1": 350, + "~:x2": 1386.0000071525574, + "~:y2": 474 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638c578d864d": { + "~#shape": { + "~:y": 474, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 11" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 11", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 1386.0000071525574, + "~:y": 598 + } + }, + { + "~#point": { + "~:x": 972.9999947547913, + "~:y": 598 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638c578d864d", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 972.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 972.9999947547913, + "~:y": 474, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 972.9999947547913, + "~:y1": 474, + "~:x2": 1386.0000071525574, + "~:y2": 598 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638c5e8808cd": { + "~#shape": { + "~:y": 474, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 12" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 12", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 1824.0000071525574, + "~:y": 598 + } + }, + { + "~#point": { + "~:x": 1410.9999947547913, + "~:y": 598 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638c5e8808cd", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 1410.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 1410.9999947547913, + "~:y": 474, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 1410.9999947547913, + "~:y1": 474, + "~:x2": 1824.0000071525574, + "~:y2": 598 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638ad618c609": { + "~#shape": { + "~:y": 350, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 6" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 6", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 350 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 474 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638ad618c609", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 534.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 534.9999947547913, + "~:y": 350, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 534.9999947547913, + "~:y1": 350, + "~:x2": 948.0000071525574, + "~:y2": 474 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + }, + "~u2d36f842-6329-801b-8006-638c4b1765cb": { + "~#shape": { + "~:y": 474, + "~:transform": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:content": { + "~:type": "root", + "~:key": "18iiwe28c8", + "~:children": [ + { + "~:type": "paragraph-set", + "~:children": [ + { + "~:line-height": "1.2", + "~:font-style": "normal", + "~:children": [ + { + "~:line-height": "", + "~:font-style": "normal", + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:font-id": "sourcesanspro", + "~:key": "189wz0cyaiq", + "~:font-size": "36", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro", + "~:text": "text 10" + } + ], + "~:typography-ref-id": null, + "~:text-transform": "none", + "~:text-align": "left", + "~:font-id": "sourcesanspro", + "~:key": "pu0nozn04k", + "~:font-size": "0", + "~:font-weight": "400", + "~:typography-ref-file": null, + "~:text-direction": "ltr", + "~:type": "paragraph", + "~:font-variant-id": "regular", + "~:text-decoration": "none", + "~:letter-spacing": "0", + "~:fills": [ + { + "~:fill-color": "#000000", + "~:fill-opacity": 1 + } + ], + "~:font-family": "sourcesanspro" + } + ] + } + ], + "~:vertical-align": "top" + }, + "~:hide-in-viewer": false, + "~:name": "Text 10", + "~:width": 413.0000123977661, + "~:type": "~:text", + "~:points": [ + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 474 + } + }, + { + "~#point": { + "~:x": 948.0000071525574, + "~:y": 598 + } + }, + { + "~#point": { + "~:x": 534.9999947547913, + "~:y": 598 + } + } + ], + "~:transform-inverse": { + "~#matrix": { + "~:a": 1, + "~:b": 0, + "~:c": 0, + "~:d": 1, + "~:e": 0, + "~:f": 0 + } + }, + "~:id": "~u2d36f842-6329-801b-8006-638c4b1765cb", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:x": 534.9999947547913, + "~:selrect": { + "~#rect": { + "~:x": 534.9999947547913, + "~:y": 474, + "~:width": 413.0000123977661, + "~:height": 124, + "~:x1": 534.9999947547913, + "~:y1": 474, + "~:x2": 948.0000071525574, + "~:y2": 598 + } + }, + "~:flip-x": null, + "~:height": 124, + "~:flip-y": null + } + } + }, + "~:id": "~uf8b42814-8653-81cf-8006-638aacdc3ffb", + "~:name": "Page 1" + } + }, + "~:id": "~uf8b42814-8653-81cf-8006-638aacdc3ffa", + "~:options": { + "~:components-v2": true, + "~:base-font-size": "16px" + } + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js b/frontend/playwright/ui/render-wasm-specs/texts.spec.js index 9827661f4d..b007ba4089 100644 --- a/frontend/playwright/ui/render-wasm-specs/texts.spec.js +++ b/frontend/playwright/ui/render-wasm-specs/texts.spec.js @@ -158,7 +158,6 @@ test("Renders a file with multiple emoji", async ({ page }) => { pageId: "6bd7c17d-4f59-815e-8006-5e999f38f211", }); - await workspace.waitForFirstRender(); await expect(workspace.canvas).toHaveScreenshot(); }); @@ -175,3 +174,142 @@ test("Renders a file with texts with different alignments", async ({ page }) => await workspace.waitForFirstRender(); await expect(workspace.canvas).toHaveScreenshot(); }); + +test("Updates text alignment edition - part 1", async ({ page }) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-multiple-texts-base.json"); + + await workspace.goToWorkspace({ + id: "6bd7c17d-4f59-815e-8006-5c1f68846e43", + pageId: "f8b42814-8653-81cf-8006-638aacdc3ffb", + }); + await workspace.waitForFirstRender({ hideUI: false }); + await workspace.clickLeafLayer("Text 1"); + + const textOptionsButton = workspace.page.getByTestId("text-align-options-button"); + const autoWidthButton = workspace.page.getByTitle("Auto width"); + const autoHeightButton = workspace.page.getByTitle("Auto height"); + const alignMiddleButton = workspace.page.getByTitle("Align middle"); + const alignBottomButton = workspace.page.getByTitle("Align bottom"); + const alignRightButton = workspace.page.getByTitle("Align right (Ctrl+Alt+R)"); + + await textOptionsButton.click(); + + await workspace.clickLeafLayer("Text 1"); + await autoWidthButton.click(); + + await workspace.clickLeafLayer("Text 2"); + await autoHeightButton.click(); + + await workspace.clickLeafLayer("Text 3"); + await alignMiddleButton.click(); + await alignRightButton.click(); + + await workspace.clickLeafLayer("Text 4"); + await alignBottomButton.click(); + + await workspace.page.keyboard.press("Escape"); + await workspace.hideUI(); + + await expect(workspace.canvas).toHaveScreenshot({timeout: 10000}); +}); + +test("Updates text alignment edition - part 2", async ({ page }) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-multiple-texts-base.json"); + + await workspace.goToWorkspace({ + id: "6bd7c17d-4f59-815e-8006-5c1f68846e43", + pageId: "f8b42814-8653-81cf-8006-638aacdc3ffb", + }); + await workspace.waitForFirstRender({ hideUI: false }); + await workspace.clickLeafLayer("Text 1"); + + const textOptionsButton = workspace.page.getByTestId("text-align-options-button"); + const alignTopButton = workspace.page.getByTitle("Align top"); + const alignMiddleButton = workspace.page.getByTitle("Align middle"); + const alignBottomButton = workspace.page.getByTitle("Align bottom"); + const alignCenterButton = workspace.page.getByTitle("Align center (Ctrl+Alt+T)"); + const alignJustifyButton = workspace.page.getByTitle("Justify (Ctrl+Alt+J)"); + const LTRButton = workspace.page.getByTitle("LTR"); + const RTLButton = workspace.page.getByTitle("RTL"); + + await textOptionsButton.click(); + + await workspace.clickLeafLayer("Text 5"); + await alignBottomButton.click(); + await alignTopButton.click(); + await alignCenterButton.click(); + + await workspace.clickLeafLayer("Text 6"); + await alignJustifyButton.click(); + await RTLButton.click(); + + await workspace.clickLeafLayer("Text 7"); + await alignJustifyButton.click(); + await RTLButton.click(); + await LTRButton.click(); + + await workspace.clickLeafLayer("Text 8"); + await alignMiddleButton.click(); + await alignJustifyButton.click(); + await RTLButton.click(); + + await workspace.page.keyboard.press("Escape"); + await workspace.hideUI(); + + await expect(workspace.canvas).toHaveScreenshot({timeout: 10000}); +}); + +test("Updates text alignment edition - part 3", async ({ page }) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-multiple-texts-base.json"); + + await workspace.goToWorkspace({ + id: "6bd7c17d-4f59-815e-8006-5c1f68846e43", + pageId: "f8b42814-8653-81cf-8006-638aacdc3ffb", + }); + await workspace.waitForFirstRender({ hideUI: false }); + await workspace.clickLeafLayer("Text 1"); + + const textOptionsButton = workspace.page.getByTestId("text-align-options-button"); + const autoWidthButton = workspace.page.getByTitle("Auto width"); + const autoHeightButton = workspace.page.getByTitle("Auto height"); + const alignMiddleButton = workspace.page.getByTitle("Align middle"); + const alignBottomButton = workspace.page.getByTitle("Align bottom"); + const alignLeftButton = workspace.page.getByTitle("Align left (Ctrl+Alt+L)"); + const alignCenterButton = workspace.page.getByTitle("Align center (Ctrl+Alt+T)"); + const alignJustifyButton = workspace.page.getByTitle("Justify (Ctrl+Alt+J)"); + const RTLButton = workspace.page.getByTitle("RTL"); + + await textOptionsButton.click(); + + await workspace.clickLeafLayer("Text 9"); + await autoHeightButton.click(); + await alignBottomButton.click(); + await alignJustifyButton.click(); + await RTLButton.click(); + + await workspace.clickLeafLayer("Text 10"); + await alignBottomButton.click(); + await alignJustifyButton.click(); + await RTLButton.click(); + await autoWidthButton.click(); + + await workspace.clickLeafLayer("Text 11"); + await alignCenterButton.click(); + await alignBottomButton.click(); + + await workspace.clickLeafLayer("Text 12"); + await alignCenterButton.click(); + await alignLeftButton.click(); + await alignMiddleButton.click(); + + await workspace.page.keyboard.press("Escape"); + await workspace.hideUI(); + + await expect(workspace.canvas).toHaveScreenshot({timeout: 10000}); +}); \ No newline at end of file diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-1-1.png b/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6925ea8fa8edb041774e9c7bfc845eebef4e6a25 GIT binary patch literal 28728 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 literal 0 HcmV?d00001 diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-2-1.png b/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Updates-text-alignment-edition---part-2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d364d1e16b66eea7187c41a102beda53dc5d9eaf GIT binary patch literal 28945 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 Hg+Kfa^JZpb literal 0 HcmV?d00001 diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index d5c36f08d8..84bf713ae0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -324,6 +324,7 @@ [:> grow-options opts] [:> icon-button* {:variant "ghost" :aria-label (tr "labels.options") + :data-testid "text-align-options-button" :on-click toggle-more-options :icon "menu"}]] diff --git a/render-wasm/src/wasm/text.rs b/render-wasm/src/wasm/text.rs index 6619bf0cf8..a7b0b2c078 100644 --- a/render-wasm/src/wasm/text.rs +++ b/render-wasm/src/wasm/text.rs @@ -49,10 +49,17 @@ pub extern "C" fn get_text_dimensions() -> *mut u8 { if let Type::Text(content) = &shape.shape_type { let paragraphs = content.get_skia_paragraphs(font_col); - height = auto_height(¶graphs).ceil(); m_width = max_width(¶graphs); - if content.grow_type() == GrowType::AutoWidth { - width = auto_width(¶graphs).ceil(); + + match content.grow_type() { + GrowType::AutoHeight => { + height = auto_height(¶graphs).ceil(); + } + GrowType::AutoWidth => { + width = auto_width(¶graphs).ceil(); + height = auto_height(¶graphs).ceil(); + } + GrowType::Fixed => {} } } });